Index: media/mojo/clients/mojo_video_decoder.cc |
diff --git a/media/mojo/clients/mojo_video_decoder.cc b/media/mojo/clients/mojo_video_decoder.cc |
index ff2279737425bf04b58df68237e51c37d51180d6..37135b8ad135da4a01b20674e5103e94de40d24d 100644 |
--- a/media/mojo/clients/mojo_video_decoder.cc |
+++ b/media/mojo/clients/mojo_video_decoder.cc |
@@ -110,10 +110,16 @@ void MojoVideoDecoder::Decode(const scoped_refptr<DecoderBuffer>& buffer, |
void MojoVideoDecoder::OnVideoFrameDecoded( |
const scoped_refptr<VideoFrame>& frame, |
+ bool can_read_without_stalling, |
const base::Optional<base::UnguessableToken>& release_token) { |
DVLOG(2) << __func__; |
DCHECK(task_runner_->BelongsToCurrentThread()); |
+ // TODO(sandersd): Prove that all paths read this value again after running |
+ // |output_cb_|. In practice this isn't very important, since all decoders |
+ // running via MojoVideoDecoder currently use a static value. |
+ can_read_without_stalling_ = can_read_without_stalling; |
+ |
if (release_token) { |
frame->SetReleaseMailboxCB( |
BindToCurrentLoop(base::Bind(&MojoVideoDecoder::OnReleaseMailbox, |
@@ -172,7 +178,7 @@ bool MojoVideoDecoder::NeedsBitstreamConversion() const { |
bool MojoVideoDecoder::CanReadWithoutStalling() const { |
DVLOG(3) << __func__; |
- return true; |
+ return can_read_without_stalling_; |
} |
int MojoVideoDecoder::GetMaxDecodeRequests() const { |