| 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..2eae710d1fa7503a8785e7881ae920fd02253494 100644
|
| --- a/media/filters/decrypting_demuxer_stream.cc
|
| +++ b/media/filters/decrypting_demuxer_stream.cc
|
| @@ -244,6 +244,9 @@ void DecryptingDemuxerStream::DecryptBuffer(
|
| buffer->data(), buffer->data_size());
|
| decrypted->set_timestamp(buffer->timestamp());
|
| decrypted->set_duration(buffer->duration());
|
| + if (buffer->is_key_frame())
|
| + decrypted->set_is_key_frame(true);
|
| +
|
| state_ = kIdle;
|
| base::ResetAndReturn(&read_cb_).Run(kOk, decrypted);
|
| return;
|
| @@ -307,6 +310,12 @@ void DecryptingDemuxerStream::DeliverBuffer(
|
| }
|
|
|
| DCHECK_EQ(status, Decryptor::kSuccess);
|
| +
|
| + // Copy the key frame flag from the encrypted to decrypted buffer, assuming
|
| + // that the decryptor initialized the flag to false.
|
| + if (pending_buffer_to_decrypt_->is_key_frame())
|
| + decrypted_buffer->set_is_key_frame(true);
|
| +
|
| pending_buffer_to_decrypt_ = NULL;
|
| state_ = kIdle;
|
| base::ResetAndReturn(&read_cb_).Run(kOk, decrypted_buffer);
|
|
|