Closed jpiesing closed 2 years ago
@louaybassbouss Do you know if there's a viable real-world mechanism (excl. try it & see) to identify if a device supports AVC profile 4.0 but not higher & hence not 1920x1080p50/p60?
@louaybassbouss Do you know if there's a viable real-world mechanism (excl. try it & see) to identify if a device supports AVC profile 4.0 but not higher & hence not 1920x1080p50/p60?
@jpiesing you can use MediaSource.isTypeSupported(mimeType) to check if specific codec+profile is supported or not (Return value: 'A boolean value which is true if the browser feels that it can probably play media of the specified type...' ). You need to try all codec+profile combinations higher than AVC 4.0 to check if they are supported or not. isTypeSupported()
does not include resolution and framerate. You can also use Media Capabilities API -> VideoConfiguration which allows you to consider other capabilities like width
, height
, framerate
, ...
@jpiesing you can use MediaSource.isTypeSupported(mimeType) to check if specific codec+profile is supported or not (Return value: 'A boolean value which is true if the browser feels that it can probably play media of the specified type...' ). You need to try all codec+profile combinations higher than AVC 4.0 to check if they are supported or not.
isTypeSupported()
does not include resolution and framerate. You can also use Media Capabilities API -> VideoConfiguration which allows you to consider other capabilities likewidth
,height
,framerate
, ...
I thought isTypeSupported couldn't be relied on for accurate information, particularly not for profiles within a codec. Am I confusing it with canPlayType?
@jpiesing you can use MediaSource.isTypeSupported(mimeType) to check if specific codec+profile is supported or not (Return value: 'A boolean value which is true if the browser feels that it can probably play media of the specified type...' ). You need to try all codec+profile combinations higher than AVC 4.0 to check if they are supported or not.
isTypeSupported()
does not include resolution and framerate. You can also use Media Capabilities API -> VideoConfiguration which allows you to consider other capabilities likewidth
,height
,framerate
, ...I thought isTypeSupported couldn't be relied on for accurate information, particularly not for profiles within a codec. Am I confusing it with canPlayType?
Yes this is correct both isTypeSupported
and canPlayType
do not give a safe answer (this is the reason I copied the sentence from the spec 'A boolean value which is true if the browser feels that it can probably play media of the specified type...'). Since we use MSE API to append media content to the buffer, we prefer to use MSE.isTypeSupported and not HTMLMediaElement.canPlayType. Media Capabilities API should actually solve these issues but we saw some inconstancies with the API in some browsers. FYI dash.js uses MSE.isTypeSupported
. @dsilhavy feel free to comment if I missed something.
@louaybassbouss @dsilhavy Would it be reasonable to modify the test runner to not use the 1920x1080p50/p60 stream (aka stream 20) if MSE.isTypeSupported would return false for AVC 4.2?
Closing as 'chdf' was approved for inclusion in the 2022 WAVE CSTF specification, CTA5001-E.
The cmfhd / chfd media profile does not include 1920x1080p50/p60 but this is included as one of the CMAF tracks in the Switching Set for test 8.5 Switching Set Playback and 8.11.
Some options include;
Other options may exist.
We should continue testing 1920x1080p50/p60 so the first of these options should be discarded.