Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

parseInt on packetization mode #15

Closed
wants to merge 1 commit into from
Closed

Conversation

artushin
Copy link

Edge provides local capability parameters as strings, so H264 gets caught as not supported.

I didn't see contribution guidelines on the repo, so I'm just adding this to the src to be added at your discretion.

ibc added a commit that referenced this pull request Jan 22, 2018
@ibc
Copy link
Member

ibc commented Jan 22, 2018

Thanks, good catch. However I've followed a different approach in 094601f so values are also correctly stored as numbers.

NOTE: I don't have a Windows computer right now so cannot test Edge. May you please paste here the full RTP capabilities as Edge generates them? I want to report it to Edge. Thanks.

@ibc ibc closed this Jan 22, 2018
@artushin
Copy link
Author

artushin commented Jan 22, 2018

Unfortunately, I don't have a Windows machine either, I was testing this weekend on one I loaned off a buddy.

Sorry for the terrible formatting, but this is what I got off a VM (Microsoft Edge 41.16299.15.0):


[object Object]: {codecs: Array, fecMechanisms: Array, headerExtensions: Array}

codecs: Array

0: Object
clockRate: 16000
kind: "audio"
maxptime: 100
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "SILK"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 104
ptime: 20

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:dsh recv:dsh"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: false

__proto__: Object

1: Object
clockRate: 48000
kind: "audio"
maxptime: 60
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "opus"
numChannels: 2

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 102
ptime: 20

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:dsh recv:dsh"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: false

__proto__: Object

2: Object
clockRate: 8000
kind: "audio"
maxptime: 60
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "G722"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 9
ptime: 20

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:dsh recv:dsh"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: false

__proto__: Object

3: Object
clockRate: 8000
kind: "audio"
maxptime: 60
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "PCMU"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 0
ptime: 20

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:dsh recv:dsh"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: false

__proto__: Object

4: Object
clockRate: 8000
kind: "audio"
maxptime: 60
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "PCMA"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 8
ptime: 20

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:dsh recv:dsh"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: false

__proto__: Object

5: Object
clockRate: 8000
kind: "audio"
maxptime: 60
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "SILK"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 103
ptime: 20

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:dsh recv:dsh"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: false

__proto__: Object

6: Object
clockRate: 8000
kind: "audio"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "RED"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 97
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object

7: Object
clockRate: 8000
kind: "audio"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "CN"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 13
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object

8: Object
clockRate: 16000
kind: "audio"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "CN"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 118
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object

9: Object
clockRate: 8000
kind: "audio"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "telephone-event"
numChannels: 1

options: Object

__proto__: Object

parameters: Object
events: "0-16"

__proto__: Object
preferredPayloadType: 101
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object

10: Object
clockRate: 90000
kind: "video"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 3
name: "X-H264UC"
numChannels: 1

options: Object

__proto__: Object

parameters: Object
mst-mode: "NI-TC"
packetization-mode: "1"

__proto__: Object
preferredPayloadType: 122
ptime: 0

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: "app send:src,x-pli recv:src,x-pli"
type: "x-message"

__proto__: Object
length: "3"
svcMultiStreamSupport: true

__proto__: Object

11: Object
clockRate: 90000
kind: "video"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 3
name: "H264"
numChannels: 1

options: Object

__proto__: Object

parameters: Object
packetization-mode: "1"
profile-level-id: "42C02A"

__proto__: Object
preferredPayloadType: 107
ptime: 0

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: ""
type: "nack"

__proto__: Object

3: Object
parameter: "pli"
type: "nack"

__proto__: Object

4: Object
parameter: ""
type: "goog-remb"

__proto__: Object
length: "5"
svcMultiStreamSupport: false

__proto__: Object

12: Object
clockRate: 90000
kind: "video"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "VP8"
numChannels: 1

options: Object

__proto__: Object

parameters: Object
max-fr: "30"
max-fs: "3600"

__proto__: Object
preferredPayloadType: 100
ptime: 0

rtcpFeedback: Array

0: Object
parameter: ""
type: "x-cinfo"

__proto__: Object

1: Object
parameter: ""
type: "x-bwe"

__proto__: Object

2: Object
parameter: ""
type: "nack"

__proto__: Object

3: Object
parameter: "pli"
type: "nack"

__proto__: Object

4: Object
parameter: ""
type: "goog-remb"

__proto__: Object
length: "5"
svcMultiStreamSupport: false

__proto__: Object

13: Object
clockRate: 90000
kind: "video"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "rtx"
numChannels: 1

options: Object

__proto__: Object

parameters: Object
apt: "107"

__proto__: Object
preferredPayloadType: 99
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object

14: Object
clockRate: 90000
kind: "video"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "rtx"
numChannels: 1

options: Object

__proto__: Object

parameters: Object
apt: "100"

__proto__: Object
preferredPayloadType: 96
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object

15: Object
clockRate: 90000
kind: "video"
maxptime: 0
maxSpatialLayers: 0
maxTemporalLayers: 0
name: "x-ulpfecuc"
numChannels: 1

options: Object

__proto__: Object

parameters: Object

__proto__: Object
preferredPayloadType: 123
ptime: 0

rtcpFeedback: Array
length: "0"
svcMultiStreamSupport: false

__proto__: Object
length: "16"

fecMechanisms: Array
0: "RED"
length: "1"

headerExtensions: Array

0: Object
kind: "audio"
preferredEncrypt: false
preferredId: 1
uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"

__proto__: Object

1: Object
kind: "audio"
preferredEncrypt: false
preferredId: 3
uri: "http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2"

__proto__: Object

2: Object
kind: "video"
preferredEncrypt: false
preferredId: 1
uri: "http://www.webrtc.org/experiments/rtp-hdrext/abs-send-time"

__proto__: Object

3: Object
kind: "video"
preferredEncrypt: false
preferredId: 3
uri: "http://skype.com/experiments/rtp-hdrext/fast_bandwidth_feedback#version_2"

__proto__: Object
length: "4"

__proto__: Object

@ibc
Copy link
Member

ibc commented Jan 23, 2018

Thanks a lot. Reported:
aboba/edgertc#36

artushin added a commit to artushin/mediasoup-client that referenced this pull request Feb 12, 2018
* upstream/master: (27 commits)
  2.0.12
  Return track when adding consumer
  Call _setupTransport when adding consumer
  2.0.11
  Don't generate a=mid values greater than 16 bytes (fixes versatica#18)
  2.0.10: Improve simulcast options to make React-Native happy
  foo
  2.0.9
  Use RTCSessionDescription as react-native-webrtc expects (https://github.com/oney/react-native-webrtc/blob/master/RTCPeerConnection.js#L158)
  Add missing events doc.
  2.0.8: Use version:undefined rather than version:"unknown"
  foo
  2.0.7: Initial support for react-native + react-native-webrtc
  Update TODO
  Be ready for numeric codec parameters exposed as strings in Edge (related to versatica#15)
  Don't close Producer on internal track closure (related to versatica#14)
  React-Native: ready to handle track.streamReactTag in Producer
  Don't do track.clone() (for react-native)
  Make React-Native happy again by avoiding Klass.name static properties
  Make react-native happy
  ...
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

2 participants