Chromium Code Reviews| Index: media/mojo/services/mojo_audio_decoder.cc |
| diff --git a/media/mojo/services/mojo_audio_decoder.cc b/media/mojo/services/mojo_audio_decoder.cc |
| index c80300aef1eb79a827ad47cfdabdf6f9e61e5938..1854735ba53877fceb75210255799970a242ac41 100644 |
| --- a/media/mojo/services/mojo_audio_decoder.cc |
| +++ b/media/mojo/services/mojo_audio_decoder.cc |
| @@ -79,7 +79,7 @@ void MojoAudioDecoder::Initialize(const AudioDecoderConfig& config, |
| base::Bind(&MojoAudioDecoder::OnInitialized, base::Unretained(this))); |
| } |
| -void MojoAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& buffer, |
| +void MojoAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& media_buffer, |
| const DecodeCB& decode_cb) { |
| DVLOG(3) << __FUNCTION__; |
| DCHECK(task_runner_->BelongsToCurrentThread()); |
| @@ -90,11 +90,18 @@ void MojoAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& buffer, |
| return; |
| } |
| + mojom::DecoderBufferPtr buffer = TransferDecoderBuffer(media_buffer); |
| + if (!buffer) { |
| + task_runner_->PostTask(FROM_HERE, |
| + base::Bind(decode_cb, DecodeStatus::DECODE_ERROR)); |
| + return; |
| + } |
| + |
| DCHECK(decode_cb_.is_null()); |
| decode_cb_ = decode_cb; |
| remote_decoder_->Decode( |
| - TransferDecoderBuffer(buffer), |
| + std::move(buffer), |
| base::Bind(&MojoAudioDecoder::OnDecodeStatus, base::Unretained(this))); |
| } |
| @@ -223,10 +230,12 @@ mojom::DecoderBufferPtr MojoAudioDecoder::TransferDecoderBuffer( |
| // Serialize the data section of the DecoderBuffer into our pipe. |
| uint32_t num_bytes = base::checked_cast<uint32_t>(media_buffer->data_size()); |
| DCHECK_GT(num_bytes, 0u); |
| - CHECK_EQ(WriteDataRaw(producer_handle_.get(), media_buffer->data(), |
| - &num_bytes, MOJO_READ_DATA_FLAG_ALL_OR_NONE), |
| - MOJO_RESULT_OK); |
| - CHECK_EQ(num_bytes, static_cast<uint32_t>(media_buffer->data_size())); |
| + MojoResult result = |
| + WriteDataRaw(producer_handle_.get(), media_buffer->data(), &num_bytes, |
| + MOJO_WRITE_DATA_FLAG_ALL_OR_NONE); |
| + if (result != MOJO_RESULT_OK || num_bytes != media_buffer->data_size()) |
| + return nullptr; |
|
xhwang
2016/05/19 18:59:59
Can you put a DVLOG(1) here?
Tima Vaisburd
2016/05/19 22:00:57
Done.
|
| + |
| return buffer; |
| } |