-
Notifications
You must be signed in to change notification settings - Fork 6k
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
EventMessageEncoder/Decoder doesn't work well with Long values #5490
Comments
We're currently misusing the |
Thank you for quick reply. I temporarily extended serialized field to 64 bit and it works fine. Here's the commit if interested (jankowskib@8d02b75) |
Extending the serialized field to 64 bit will break parsing of in-band (i.e. embedded in FMP4) emsg atoms. Which may or may not be a problem for your use case. There's no need for |
OK. It's no longer issue for me |
Reopening to track landing a fix. It's still a bug ;). |
Stop encoding/decoding presentation time as part of the message. What's actually in emsg boxes is a presentation time delta, which is why it's only 32 bits, and hence why it doesn't handle large absolute timestamps. We were using this field to hold absolute timestamps only for the purpose of passing presentation times from DashManifestParser.parseEvent back to the calling method. After this change, we return Pair<Long, EventMessage> instead. Issue: #5490 PiperOrigin-RevId: 233561731
Stop encoding/decoding presentation time as part of the message. What's actually in emsg boxes is a presentation time delta, which is why it's only 32 bits, and hence why it doesn't handle large absolute timestamps. We were using this field to hold absolute timestamps only for the purpose of passing presentation times from DashManifestParser.parseEvent back to the calling method. After this change, we return Pair<Long, EventMessage> instead. Issue: #5490 PiperOrigin-RevId: 233561731
Issue description
I have EventMessages with a large presentation time value e.g. '<Event presentationTime="16122561404240"'. Unfortunately EventMessageEncoder stores this big values using writeUnsignedInt instead of writeUnsignedLong and the part of its value is discarded. So when EventMessageDecoder tries to decode message from inputBuffer the value is totally incorrect.
Reproduction steps
Link to test content
Provide a link to media that reproduces the issue. If you don't wish to post it
publicly, please submit the issue, then email the link to
dev.exoplayer@gmail.com using a subject in the format "Issue #1234".
Version of ExoPlayer being used
2.9.1
The text was updated successfully, but these errors were encountered: