-
Notifications
You must be signed in to change notification settings - Fork 2.5k
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
Add support of abs-capture-time extension to streaming plugin and forwarding of it's value from rtp source #3291
Conversation
IbrayevRamil
commented
Nov 16, 2023
- Added support of abs-capture-time extension in streaming plugin
- Added parsing of abs-capture-time extension from RTP source for forwarding it further to webrtc
- Removed memset(index+9, 0, 8); as it doesn't make sense to fill rest of bytes with zeroes if we parse only 8 bytes of extension.
I'm not sure this works, at least not without guidance. The code to parse the extension from incoming packets is the following:
This means that the plugin is expecting the extension to have a very specific ID, the one returned by I guess one way to address it might be to change the configuration of the property: instead of a boolean, an integer that specifies the ID to look for. This would allow people in control of the media source to tell the mountpoint exactly which ID to look for, to extract that specific information, making it more flexible and configurable. |
But you apply the same logic for JANUS_RTP_EXTMAP_ABS_SEND_TIME and rest of extensions, so why exactly this one should have another logic? |
Because those are extensions where we generate a value ourselves. Your extension is the first one where the data actually comes from somewhere else, and so we need to find/parse it first. |
Ok, I agree with you. I will try to make it numeric with 0 by default which means no extension. |
It could also be a separate property: meaning, there still is a boolean as now (that offers the extension in the SDP as you do now, with the hardcoded value), and a different property to tell the code which extension ID is used in the source, so for parsing. I think this would actually be a good idea, since the Streaming plugin now has the option to receive offers from viewers too, which means the extension ID to use may be set by the client; besides, we'd want the extension ID not to conflict with other ones we use. In both cases, to avoid conflicts it's a good idea to let the plugin decide what ID to use on the WebRTC side, which doesn't need to be the same as the one the RTP source uses. |
Yes, did exactly the same. You can review now |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Added a few notes inline. Thanks!
@lminiero kind reminder |
It looks fine to me, now, even though I have no way to test it, since I don't have sources that generate such an extension. That said, I don't like the name of the config property much: too long and too verbose. Maybe That said, this is a very minor note and probably not even that important (cutting 4 characters from the name doesn't really make it less verbose anyway). |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Apologies for these delays in responses. I've just identified a couple of very minor things to change, and after that it's good to merge for me 👍
…warding of it's value from rtp source
26aa43d
to
aa1b8be
Compare
@lminiero rebased onto current master and also squashed commits |
Thanks, merging! |