Closed haudiobe closed 2 years ago
(DPCTF 19/11/06)
From DCPTF Spec perspective you need:
2020/07/08:
New API is available: https://developer.mozilla.org/en-US/docs/Web/API/SourceBuffer/changeType
if Sequence:
This should be added to the tests.
Observation Expectation:
What @haudiobe describes reflects what we are doing in dash.js today:
changeType
is supported or if the media codecs are compatible. For the latter we check
changeType
available.Teardown will result in a small glitch especially because upcoming segments are not prebuffered and are downloaded once the MSE has been reset.
It's not completely clear to me whether this is one test or two or indeed three? I think there clearly is a test for changeType. Care might be needed about the combinations of codecs to be tested here. Obviously this test would only be run on implementations supporting changeType. Is a test of teardown needed for implementations not supporting changeType? Is a test needed of sending an initialization segment even when the codecs are the same just to check that the implementation doesn't re-initialize when it doesn't need to?
Maybe it would be good to do two tests separate tests here:
MediaCapabilities will indicate whether or not changeType is supported for the chosen media pipeline. For example, changeType might be implemented by the UA, but the platform's hardware decoding pipeline might not be able to change codecs once initialized.
The changeType() test raises an interesting question. The HATF Web Media API Snapshot 2020 https://w3c.github.io/webmediaapi/ references Media Source Extensions W3C Recommendation 17 November 2016 https://www.w3.org/TR/media-source/ which I don't think specifies SourceBuffer.changeType(). Are we OK to use JavaScript methods in tests that are outside the CTA WAVE HATF spec?
part of the new tests
8.15 Source Buffer Re-Initialization This test provides a stimulus in case that a source buffer needs to be re-established, for example because of a codec change or a codec parameter change. The first version of this specification does not define a test for this.