[MSE] Begin relaxing aSB() and cT() codec-specificity
Begins relaxation with a narrow case: addSourceBuffer("video/mp4") and changeType("video/mp4") may now succeed, though any actual media appended to them later must be encrypted HEVC content, and even then, only on ChromeOS. Later changes will expand the relaxation of codec-specificity further beyond this. Specifically, this change: 1) Updates MediaSource and SourceBuffer to continue to require codec-specificity for MediaSource.isTypeSupported(), but includes a short-term special casing for addSourceBuffer and changeType to support just "video/mp4" on ChromeOS with HEVC EME support. 2) Updates Chromium StreamParserFactory to let parser creation occur with assumed eventual HEVC codec track when just "video/mp4" is used as addSourceBuffer() or changeType() parameter, but only on ChromeOS with HEVC EME support. 3) Updates Chromium SourceBufferState to require an HEVC track reported by the StreamParser to be disallowed with DCHECK failure if BUILDFLAG(ENABLE_PLATFORM_HEVC) is not true, as a protection against possible regression later in StreamParser function. 4) Updates Chromium SourceBufferState to require an HEVC track reported by the StreamParser to be encrypted (otherwise parse failure) if BUILDFLAG(USE_CHROMEOS_PROTECTED_MEDIA) is true. 5) Until wider relaxation is done, this change inserts a hardcoded hevc codec string in SourceBufferState's |expected_codecs| when just "video/mp4" is used for addSourceBuffer or changeType on ChromeOS+HEVC, enabling re-use of existing codec-specificity checks in SourceBufferState. BUG=chromium:535738,b:153111783 Change-Id: I353cdbdb3c1fdafbeacacc6b7c8c39430be7d798 Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/2587494Reviewed-by:Chrome Cunningham <chcunningham@chromium.org> Commit-Queue: Matthew Wolenetz <wolenetz@chromium.org> Cr-Commit-Position: refs/heads/master@{#837916}
Showing
Please register or sign in to comment