| OLD | NEW |
| 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. | 1 // Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| 2 // Use of this source code is governed by a BSD-style license that can be | 2 // Use of this source code is governed by a BSD-style license that can be |
| 3 // found in the LICENSE file. | 3 // found in the LICENSE file. |
| 4 | 4 |
| 5 #include "media/filters/decrypting_demuxer_stream.h" | 5 #include "media/filters/decrypting_demuxer_stream.h" |
| 6 | 6 |
| 7 #include "base/bind.h" | 7 #include "base/bind.h" |
| 8 #include "base/callback_helpers.h" | 8 #include "base/callback_helpers.h" |
| 9 #include "base/location.h" | 9 #include "base/location.h" |
| 10 #include "base/logging.h" | 10 #include "base/logging.h" |
| (...skipping 10 matching lines...) Expand all Loading... |
| 21 stream->audio_decoder_config().IsValidConfig() && | 21 stream->audio_decoder_config().IsValidConfig() && |
| 22 stream->audio_decoder_config().is_encrypted()) || | 22 stream->audio_decoder_config().is_encrypted()) || |
| 23 (stream->type() == DemuxerStream::VIDEO && | 23 (stream->type() == DemuxerStream::VIDEO && |
| 24 stream->video_decoder_config().IsValidConfig() && | 24 stream->video_decoder_config().IsValidConfig() && |
| 25 stream->video_decoder_config().is_encrypted())); | 25 stream->video_decoder_config().is_encrypted())); |
| 26 } | 26 } |
| 27 | 27 |
| 28 DecryptingDemuxerStream::DecryptingDemuxerStream( | 28 DecryptingDemuxerStream::DecryptingDemuxerStream( |
| 29 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, | 29 const scoped_refptr<base::SingleThreadTaskRunner>& task_runner, |
| 30 const scoped_refptr<MediaLog>& media_log, | 30 const scoped_refptr<MediaLog>& media_log, |
| 31 const SetCdmReadyCB& set_cdm_ready_cb, |
| 31 const base::Closure& waiting_for_decryption_key_cb) | 32 const base::Closure& waiting_for_decryption_key_cb) |
| 32 : task_runner_(task_runner), | 33 : task_runner_(task_runner), |
| 33 media_log_(media_log), | 34 media_log_(media_log), |
| 34 state_(kUninitialized), | 35 state_(kUninitialized), |
| 35 waiting_for_decryption_key_cb_(waiting_for_decryption_key_cb), | 36 waiting_for_decryption_key_cb_(waiting_for_decryption_key_cb), |
| 36 demuxer_stream_(NULL), | 37 demuxer_stream_(NULL), |
| 38 set_cdm_ready_cb_(set_cdm_ready_cb), |
| 37 decryptor_(NULL), | 39 decryptor_(NULL), |
| 38 key_added_while_decrypt_pending_(false), | 40 key_added_while_decrypt_pending_(false), |
| 39 weak_factory_(this) {} | 41 weak_factory_(this) {} |
| 40 | 42 |
| 41 std::string DecryptingDemuxerStream::GetDisplayName() const { | 43 std::string DecryptingDemuxerStream::GetDisplayName() const { |
| 42 return "DecryptingDemuxerStream"; | 44 return "DecryptingDemuxerStream"; |
| 43 } | 45 } |
| 44 | 46 |
| 45 void DecryptingDemuxerStream::Initialize(DemuxerStream* stream, | 47 void DecryptingDemuxerStream::Initialize(DemuxerStream* stream, |
| 46 const SetCdmReadyCB& set_cdm_ready_cb, | |
| 47 const PipelineStatusCB& status_cb) { | 48 const PipelineStatusCB& status_cb) { |
| 48 DVLOG(2) << __FUNCTION__; | 49 DVLOG(2) << __FUNCTION__; |
| 49 DCHECK(task_runner_->BelongsToCurrentThread()); | 50 DCHECK(task_runner_->BelongsToCurrentThread()); |
| 50 DCHECK_EQ(state_, kUninitialized) << state_; | 51 DCHECK_EQ(state_, kUninitialized) << state_; |
| 51 | 52 |
| 52 DCHECK(!demuxer_stream_); | 53 DCHECK(!demuxer_stream_); |
| 53 weak_this_ = weak_factory_.GetWeakPtr(); | 54 weak_this_ = weak_factory_.GetWeakPtr(); |
| 54 demuxer_stream_ = stream; | 55 demuxer_stream_ = stream; |
| 55 set_cdm_ready_cb_ = set_cdm_ready_cb; | |
| 56 init_cb_ = BindToCurrentLoop(status_cb); | 56 init_cb_ = BindToCurrentLoop(status_cb); |
| 57 | 57 |
| 58 InitializeDecoderConfig(); | 58 InitializeDecoderConfig(); |
| 59 | 59 |
| 60 state_ = kDecryptorRequested; | 60 state_ = kDecryptorRequested; |
| 61 set_cdm_ready_cb_.Run(BindToCurrentLoop( | 61 set_cdm_ready_cb_.Run(BindToCurrentLoop( |
| 62 base::Bind(&DecryptingDemuxerStream::SetCdm, weak_this_))); | 62 base::Bind(&DecryptingDemuxerStream::SetCdm, weak_this_))); |
| 63 } | 63 } |
| 64 | 64 |
| 65 void DecryptingDemuxerStream::Read(const ReadCB& read_cb) { | 65 void DecryptingDemuxerStream::Read(const ReadCB& read_cb) { |
| (...skipping 335 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 401 break; | 401 break; |
| 402 } | 402 } |
| 403 | 403 |
| 404 default: | 404 default: |
| 405 NOTREACHED(); | 405 NOTREACHED(); |
| 406 return; | 406 return; |
| 407 } | 407 } |
| 408 } | 408 } |
| 409 | 409 |
| 410 } // namespace media | 410 } // namespace media |
| OLD | NEW |