Index: media/mojo/services/mojo_video_decoder_service.cc |
diff --git a/media/mojo/services/mojo_video_decoder_service.cc b/media/mojo/services/mojo_video_decoder_service.cc |
index a6154ec5ff7961d5ac12535a9cf379832a20b905..2c4885c41ab91062702e91c42d1fd9bb7b95cb65 100644 |
--- a/media/mojo/services/mojo_video_decoder_service.cc |
+++ b/media/mojo/services/mojo_video_decoder_service.cc |
@@ -36,9 +36,10 @@ void MojoVideoDecoderService::Construct( |
mojom::CommandBufferIdPtr command_buffer_id) { |
DVLOG(1) << __func__; |
- // TODO(sandersd): Close the channel. |
- if (decoder_) |
+ if (decoder_) { |
+ // TODO(sandersd): Close the channel. |
return; |
+ } |
decoder_ = mojo_media_client_->CreateVideoDecoder( |
base::ThreadTaskRunnerHandle::Get(), std::move(command_buffer_id), |
@@ -106,8 +107,8 @@ void MojoVideoDecoderService::OnDecoderInitialized( |
void MojoVideoDecoderService::OnDecoderRead( |
const DecodeCallback& callback, |
scoped_refptr<DecoderBuffer> buffer) { |
- // TODO(sandersd): Close the channel. |
if (!buffer) { |
+ // TODO(sandersd): Close the channel. |
callback.Run(DecodeStatus::DECODE_ERROR); |
return; |
} |
@@ -120,8 +121,6 @@ void MojoVideoDecoderService::OnDecoderRead( |
void MojoVideoDecoderService::OnDecoderDecoded(const DecodeCallback& callback, |
DecodeStatus status) { |
DVLOG(2) << __func__; |
- DCHECK(decoder_); |
- DCHECK(decoder_->CanReadWithoutStalling()); |
callback.Run(status); |
} |
@@ -135,6 +134,7 @@ void MojoVideoDecoderService::OnDecoderOutput( |
const scoped_refptr<VideoFrame>& frame) { |
DVLOG(2) << __func__; |
DCHECK(client_); |
+ DCHECK(decoder_); |
base::Optional<base::UnguessableToken> release_token; |
if (release_cb) { |
@@ -142,7 +142,8 @@ void MojoVideoDecoderService::OnDecoderOutput( |
release_mailbox_cbs_[*release_token] = std::move(release_cb); |
} |
- client_->OnVideoFrameDecoded(frame, std::move(release_token)); |
+ client_->OnVideoFrameDecoded(frame, decoder_->CanReadWithoutStalling(), |
+ std::move(release_token)); |
} |
void MojoVideoDecoderService::OnReleaseMailbox( |