Skip to content

Add dependency-descriptor support#1481

Closed
Lynnworld wants to merge 4 commits intoversatica:v3from
Lynnworld:dependency-descriptor
Closed

Add dependency-descriptor support#1481
Lynnworld wants to merge 4 commits intoversatica:v3from
Lynnworld:dependency-descriptor

Conversation

@Lynnworld
Copy link
Contributor

Add dependency-descriptor extension support. Tested on mediasoup-demo.
Note: Now mediasoup-client can't get dd extension showup by default , so I have hardcode for testing. See :https://github.com/Lynnworld/mediasoup-client/blob/5e8ff720bfae116e62989eae984ad3ccf2b11cd9/src/handlers/ortc/utils.ts#L25

image

@ibc
Copy link
Member

ibc commented Jan 27, 2025

I really appreciate this effort but definitely we don't want to depend on libwebrtc for things purely related to RTP parsing. In mediasoup we do RTP parsing from scratch, and that includes everything related to RTP header extensions and codec payloads.

Another reason is that we want to get rid of libwebrtc (once we have our own BWE code).

Said that, I will create a ticket to do this and reference this PR as documentation:

#1483

@ibc ibc closed this Jan 27, 2025
@jmillan
Copy link
Member

jmillan commented Mar 5, 2025

Hi @Lynnworld,

I've started playing with a self made dependency descriptor implementation and I'm testing it with H264. I see that NOT every package contains the header, but the ones that have it look good.

Did you experience the same?. Do not every H264 RTP packet contain the header extension?

@Lynnworld
Copy link
Contributor Author

try latest chrome version.old version like <m
120 has a bug for this extension.mmexport1741195661640.png

@jmillan
Copy link
Member

jmillan commented Mar 6, 2025

try latest chrome version.old version like <m120 has a bug for this extension.

Indeed I'm using the latest chrome version, but not all RTP packets come with the dependency descriptor extension.

@ibc
Copy link
Member

ibc commented Mar 6, 2025

There are some header extensions that are not sent in all packets by design, for example the "video rotation". I don't know if it makes sense for payload descriptor extension to not be present in every packet but maybe it does. What would it mean? No idea. Doesn't the spec say anything about it? Otherwise I recommend asking in an appropriate forum/mailing-list or directly to people who has already implemented it.

@jmillan
Copy link
Member

jmillan commented Mar 6, 2025

There are some header extensions that are not sent in all packets by design, for example the "video rotation". I don't know if it makes sense for payload descriptor extension to not be present in every packet but maybe it does. What would it mean? No idea. Doesn't the spec say anything about it? Otherwise I recommend asking in an appropriate forum/mailing-list or directly to people who has already implemented it.

Yes, I'm learning about it on the go.

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.

3 participants