With AVDA errors when decoding single frame videos are not reported to WMPI |
||
Issue descriptionWhat happens: GVD AVDA->Decode() followed by AVDA->Flush(). AVDA calls NotifyEndOfBitstreamBuffer() which causes GVD to call the decode cb with OK. AVDA calls GVD::NotifyError(). GVD sets state_ = error, but doesn't complete the decode cb for the EOS buffer. As a result the error is never propagated to DecoderStream. GVD should propagate the error by running the EOS decode cb with an error if NotifyError() is called while a flush is ongoing. And AVDA shouldn't call NotifyFlushDone() if it's in an error state, because that will clear the flush decode cb which we will need to propagate the error.
,
Sep 15 2016
The following revision refers to this bug: https://chromium.googlesource.com/chromium/src.git/+/99d991f6f7c0f480c0a5d8b2165daebe01cd25d5 commit 99d991f6f7c0f480c0a5d8b2165daebe01cd25d5 Author: watk <watk@chromium.org> Date: Thu Sep 15 22:04:35 2016 GpuVideoDecoder now propagates errors during Flush() Previously it was possible for GVD to be processing a Flush() but not have no outstanding bitstream buffers in the VDA when it received a NotifyError(). For example, when decoding single frame videos. In that case it went into the error state but never propagated the error. Now, if an error is received while in the flushing state, the error is propagated by calling the decode cb corresponding to the EOS buffer. BUG= 647081 TEST=manually verified that AVDA decode errors now propagate to WMPI Review-Url: https://codereview.chromium.org/2344703003 Cr-Commit-Position: refs/heads/master@{#419001} [modify] https://crrev.com/99d991f6f7c0f480c0a5d8b2165daebe01cd25d5/media/filters/gpu_video_decoder.cc
,
Oct 7 2016
|
||
►
Sign in to add a comment |
||
Comment 1 by w...@chromium.org
, Sep 14 2016