Dash-Industry-Forum / Test-Vectors

DASH-IF Test Vectors
4 stars 1 forks source link

Some basic test vectors are not working #93

Open waqarz opened 6 years ago

waqarz commented 6 years ago

If this does not work on dash.js v2.8.0, most probably there are others: image

Link: http://reference.dashif.org/dash.js/v2.8.0/samples/dash-if-reference-player/index.html?mpd=http://dash.akamaized.net/dash264/TestCasesHD/1b/qualcomm/1/MultiRate.mpd

waqarz commented 6 years ago

Do we need to check more vectors? I think we surely do. Is DASH-IF doing anything on this?

niteeshbhat commented 6 years ago

The content which are failing to play are the ones having PTO in the SegmentTemplate. Specifically http://dash.akamaized.net/dash264/TestCasesHD/1b/qualcomm/1/MultiRate.mpd has PTO of 1024.

The above issue is observed in Chrome. The same content plays properly in firefox.

waqarz commented 6 years ago

Summary: On our recent (random) checks we found that the majortiy of our DASH-IF test vectors do not work on dash.js v2.8.0 on Chrome. Same vectors play on Firefox, hence the error is being reported by MSE.

The issue is that the majority of older vectors had no edit lists to compensate for B frames, hence we have added @presentationtimeoffset (PTO) to achieve the same effect by providing an initial small presentation time offset to compensate for this B frame offset.

Basically Chrome MSE is then complaining to the effect: you are implying that your start decode time is then < 0. Conformance software does not report this issue, since we assume PTO to be an instruction to update only the presentation time (after composition offsets and edits have been applied to decode times) with no side-effects on the decode time. So what should we do?

  1. Consider this problem with the DASH-IF IOP content;
  1. Consider it Chrome MSE problem and file some bug there?
davemevans commented 6 years ago

With respect to point 2 above, this is a very old Chrome issue: https://bugs.chromium.org/p/chromium/issues/detail?id=398141 and https://bugs.chromium.org/p/chromium/issues/detail?id=718641. It was reported in dash.js a long time ago but I guess a tracking ticket was never opened here - see https://github.com/Dash-Industry-Forum/dash.js/issues/1481.

See https://developers.google.com/web/updates/2018/08/chrome-69-media-updates#pts, and https://groups.google.com/a/chromium.org/forum/#!msg/blink-dev/I6oGJLym-Tk/Z46le9l4CQAJ.

If your Chrome 69 still reports the issue, try launching it with command line option --enable-features=MseBufferByPts.

waqarz commented 6 years ago

Thanks @davemevans for the details; I now recall its not a new issue and you reported in https://github.com/Dash-Industry-Forum/Test-Vectors/issues/88 and related to https://github.com/Dash-Industry-Forum/Test-Vectors/issues/89.

@niteeshbhat did the test and reports Chrome 69 still doesn't change behavior, even with the command line option. Since already some time this issue is around, we should discuss option#1 in IOP.

davemevans commented 6 years ago

Ah yes, those were the issues.

I found that using that command line option did change the behaviour, which is odd.