DescriptionRtcVideoDecoder: fall back to SW decode for unsupported profiles/resolutions
RtcVideoDecoder, like GpuVideoDecoder, can verify whether a profile is
supported by querying GpuVideoAcceleratorFactories for supported profiles
and not create a VDA if it can't support it, saving a roundtrip to the GPU
process.
Separately, if a resolution is not supported by the HW decoder, we should
fall back to software decoder, but this can only be handled on Decode(),
since resolution is known from a keyframe, and may change mid-stream.
However, there used to be no way to request a fallback to SW, as WebRTC
treated any error returned from Decode() as stream error and non-fatal, and
kept attempting to Decode() further, after requesting and providing another
keyframe.
With crrev.com/7252a2ba8035c4128917a9558a3e34fc9dbe7c44 in however, we can
now return WEBRTC_VIDEO_CODEC_FALLBACK_SOFTWARE from Decode(), and webrtc
will continue decoding in software decoder, until the next keyframe, when
it will retry Decode(), in case the resolution changed to a supported one.
BUG=487934
TEST=fallback on apprtc
Committed: https://crrev.com/2e9e9a59bdfb3604b7e55975dd927cff90161669
Cr-Commit-Position: refs/heads/master@{#331305}
Patch Set 1 #Patch Set 2 : Fix rtcvd unittest #
Messages
Total messages: 16 (5 generated)
|