-
Notifications
You must be signed in to change notification settings - Fork 27
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
Is RTCEncodedVideoFrameMetadata.frame_id actually an unsigned long long or does it wrap at 16 bits? #220
Comments
@tonyherre I had the same question. Is it likely you'd have a dependency that would require the full 64 bits of an Now that Eugene is looking at implementing |
We had a somewhat similar discussion for the inbound rtpTimestamp in #154 If the field is present both outbound and inbound we should aim for consistency even if that means expanding to the long form. One problem of the short form is that it may be codec dependent, e.g. VP8 has a 15 bit field (and a 7 bit one but lets pretend it does not exist...) so how would we expose the limit? |
If it might only be using 15 or 16 bits, then a web app doing anything with managing frame dependencies (broadcast with fanout, dropping layers etc) would have to handle wraps after 18/36 minutes of 30fps which is a pain. 32 bits would be enough I'd think, if someone's worried about size. I'd suggest we leave the type as-is, and just add definitions along the lines of:
WDYT? |
WFM, but need to have language that it matches the frame ID in the encoded frame in its lower bits when that exists. |
On the receive side we might make this depend on the presence of DD to avoid codec-specific wrapping (the 7bit VP8 variant is broken anyway but the normal one would be 15 bits not 16)? |
Do we understand how |
@tonyherre |
frame_id is defined as a
unsigned long long
, but currently doesn't have any textual definition in the members section beneath. Same for dependencies.My rough understanding is that it corresponds to the Dependency Descriptor Header Extension's frame_number field as a codec-agnostic frame numbering method, but that field is only 16 bits, so is the UA assumed to be handling the 16 bit wrapping and converting up to a 64 bit
unsigned long long
? That's the current Chromium implementation at least. I'm unsure of other browsers.The text was updated successfully, but these errors were encountered: