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
Fix MPD Timing (remove publishTime & presentationTimeOffset) #564
Conversation
ok, new build with presentationTimeOffset removed as Bein Mena was still broken. @CaptainTK @Testato @fawkes15 @light-wizard @eracknaphobia @ckuyehar @d21spike |
Tested android aarch64 build with LA7: all functions working. |
On LA7 all work, the two Live MPD and also the On-Demand MPD programs |
Before bringing this in it would be good to confirm that presentationTimeOffset is definitely not needed in any segment calculations. We've got some tests now sure, but I'd like to review the DASH-IF guidelines one more time to see what the intended purpose is. I can't recall exactly but I remember getting the impression previously that PTO might only be used for calculating where segments are in regard to program time for purposes of a visual timeline like Kodi's OSD - example: 2 hours into a 4 hour live event with a 30 minute buffer and being able to tell the player to show 1:30:00 as the start of the timeline, 2:00:00 as the end. In this case I believe there's nothing in the inputstream interface for passing on this information anyway. Someone please correct if that's not the case. On the other hand it is possible that PTO is used in calculations, just that most often it is nullified by another value of similar or same size that is subtracted/added to bring back to a net or near zero. This is just me thinking out aloud, I'll look into properly over the weekend. |
Sounds good. The test mpd is one I know fails without ignoring pto. this PR should be our next top priority for merging as its fixing regressions from 2.4.6. And maybe the live / vod fix too. Once they are merged. I'll PR for Leia this and the other regression fixes. Still waiting to hear test results from Sling users / dev Oh... And I remember seeing other PTO code somewhere too. Here it is (segment list attribute) inputstream.adaptive/src/parser/DASHTree.cpp Line 441 in 7b0ade1
|
Apologies, I did not get to test this the last days. looks empty to me, so if there is a newer version to test, let me know, please. |
Thanks for that! Looks good to me, played around with a number of live channels, all worked well. |
@matthuisman - i'd like to test but im unsure how to test this fix - any quick guide/setup document to setup the test? |
Sling fix confirmed: Sling also requires the live fix: |
@matthuisman I appreciate the hard work! |
Fixes: #560
Fixes: #615
Fixes: d21spike/plugin.video.sling#22
dc7b427 seems to have broken quite a few streams.
This PR basically reverts that
Looks like the problem is that it is using publishTime as a basis to calculate segment numbers.
"MPD@publishTime is merely a version label. The value is not used in timing calculations."
This PR reverts back to using dash->stream_start_ which is based off kodis clock.
Confirmed fix for BBC: #560 (comment) (publishtime)
Confirmed fix for LA7: #615 (comment) (publishtime)
Confirmed fix for Bein Mena (needed publishtime and presentationTimeOffset removed)
Confirmed fix for Sling: d21spike/plugin.video.sling#22 (comment)