| Index: media/filters/decrypting_demuxer_stream.cc
|
| diff --git a/media/filters/decrypting_demuxer_stream.cc b/media/filters/decrypting_demuxer_stream.cc
|
| index c4e6b8478380de81a70ee42ac894d376a3cf770a..02d8d89ba82210c9d18aef79f6d4349b6261c530 100644
|
| --- a/media/filters/decrypting_demuxer_stream.cc
|
| +++ b/media/filters/decrypting_demuxer_stream.cc
|
| @@ -241,7 +241,7 @@ void DecryptingDemuxerStream::DecryptBuffer(
|
| if (buffer->decrypt_config()->iv().empty()) {
|
| DVLOG(2) << "DoDecryptBuffer() - clear buffer.";
|
| scoped_refptr<DecoderBuffer> decrypted = DecoderBuffer::CopyFrom(
|
| - buffer->data(), buffer->data_size());
|
| + buffer->data(), buffer->data_size(), buffer->is_keyframe());
|
| decrypted->set_timestamp(buffer->timestamp());
|
| decrypted->set_duration(buffer->duration());
|
| state_ = kIdle;
|
| @@ -307,8 +307,15 @@ void DecryptingDemuxerStream::DeliverBuffer(
|
| }
|
|
|
| DCHECK_EQ(status, Decryptor::kSuccess);
|
| +
|
| + // Copy the keyframe flag from the encrypted to decrypted buffer, assuming
|
| + // that the decryptor initialized the flag to false.
|
| + if (pending_buffer_to_decrypt_->is_keyframe())
|
| + decrypted_buffer->set_is_keyframe(true);
|
| +
|
| pending_buffer_to_decrypt_ = NULL;
|
| state_ = kIdle;
|
| +
|
| base::ResetAndReturn(&read_cb_).Run(kOk, decrypted_buffer);
|
| }
|
|
|
|
|