Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(1781)

Unified Diff: media/filters/decrypting_demuxer_stream.cc

Issue 2543623003: media: Allow config change between clear and encrypted streams (Closed)
Patch Set: media: Allow config change between clear and encrypted streams Created 4 years ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: media/filters/decrypting_demuxer_stream.cc
diff --git a/media/filters/decrypting_demuxer_stream.cc b/media/filters/decrypting_demuxer_stream.cc
index 00e70e22a1692e3f29817ba9a337b2f4de017926..98d64934cbf2f3161b27687855e3031a749c4503 100644
--- a/media/filters/decrypting_demuxer_stream.cc
+++ b/media/filters/decrypting_demuxer_stream.cc
@@ -17,13 +17,11 @@
namespace media {
-static bool IsStreamValidAndEncrypted(DemuxerStream* stream) {
+static bool IsStreamValid(DemuxerStream* stream) {
return ((stream->type() == DemuxerStream::AUDIO &&
- stream->audio_decoder_config().IsValidConfig() &&
- stream->audio_decoder_config().is_encrypted()) ||
+ stream->audio_decoder_config().IsValidConfig()) ||
(stream->type() == DemuxerStream::VIDEO &&
- stream->video_decoder_config().IsValidConfig() &&
- stream->video_decoder_config().is_encrypted()));
+ stream->video_decoder_config().IsValidConfig()));
}
DecryptingDemuxerStream::DecryptingDemuxerStream(
@@ -234,9 +232,15 @@ void DecryptingDemuxerStream::DecryptBuffer(
return;
}
- DCHECK(buffer->decrypt_config());
+ if (!buffer->decrypt_config()) {
ddorwin 2016/12/05 23:53:04 Why is this different from the block at 242? I wou
xhwang 2016/12/16 20:12:28 I agree this is a bit odd. In the block at 242, we
+ DVLOG(2) << "DoDecryptBuffer() - clear buffer in clear stream.";
+ state_ = kIdle;
+ base::ResetAndReturn(&read_cb_).Run(kOk, buffer);
ddorwin 2016/12/05 23:53:04 Should we report |status| instead like 231?
xhwang 2016/12/16 20:12:28 |status| must be kOk here. Added a DCHECK and fixe
+ return;
+ }
+
if (!buffer->decrypt_config()->is_encrypted()) {
- DVLOG(2) << "DoDecryptBuffer() - clear buffer.";
+ DVLOG(2) << "DoDecryptBuffer() - clear buffer in encrypted stream.";
scoped_refptr<DecoderBuffer> decrypted = DecoderBuffer::CopyFrom(
buffer->data(), buffer->data_size());
decrypted->set_timestamp(buffer->timestamp());
@@ -362,9 +366,8 @@ Decryptor::StreamType DecryptingDemuxerStream::GetDecryptorStreamType() const {
}
void DecryptingDemuxerStream::InitializeDecoderConfig() {
- // The decoder selector or upstream demuxer make sure the stream is valid and
- // potentially encrypted.
- DCHECK(IsStreamValidAndEncrypted(demuxer_stream_));
+ // The decoder selector or upstream demuxer make sure the stream is valid.
+ DCHECK(IsStreamValid(demuxer_stream_));
switch (demuxer_stream_->type()) {
case AUDIO: {

Powered by Google App Engine
This is Rietveld 408576698