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

Side by Side Diff: media/filters/decrypting_demuxer_stream.cc

Issue 1442933002: media: Pass SetCdmReadyCB in {Audio|Video}Decoder::Initialize(). (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: fix compile errors Created 5 years, 1 month 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 unified diff | Download patch
OLDNEW
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
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,
32 const base::Closure& waiting_for_decryption_key_cb) 31 const base::Closure& waiting_for_decryption_key_cb)
33 : task_runner_(task_runner), 32 : task_runner_(task_runner),
34 media_log_(media_log), 33 media_log_(media_log),
35 state_(kUninitialized), 34 state_(kUninitialized),
36 waiting_for_decryption_key_cb_(waiting_for_decryption_key_cb), 35 waiting_for_decryption_key_cb_(waiting_for_decryption_key_cb),
37 demuxer_stream_(NULL), 36 demuxer_stream_(NULL),
38 set_cdm_ready_cb_(set_cdm_ready_cb),
39 decryptor_(NULL), 37 decryptor_(NULL),
40 key_added_while_decrypt_pending_(false), 38 key_added_while_decrypt_pending_(false),
41 weak_factory_(this) {} 39 weak_factory_(this) {}
42 40
43 std::string DecryptingDemuxerStream::GetDisplayName() const { 41 std::string DecryptingDemuxerStream::GetDisplayName() const {
44 return "DecryptingDemuxerStream"; 42 return "DecryptingDemuxerStream";
45 } 43 }
46 44
47 void DecryptingDemuxerStream::Initialize(DemuxerStream* stream, 45 void DecryptingDemuxerStream::Initialize(DemuxerStream* stream,
46 const SetCdmReadyCB& set_cdm_ready_cb,
48 const PipelineStatusCB& status_cb) { 47 const PipelineStatusCB& status_cb) {
49 DVLOG(2) << __FUNCTION__; 48 DVLOG(2) << __FUNCTION__;
50 DCHECK(task_runner_->BelongsToCurrentThread()); 49 DCHECK(task_runner_->BelongsToCurrentThread());
51 DCHECK_EQ(state_, kUninitialized) << state_; 50 DCHECK_EQ(state_, kUninitialized) << state_;
52 51
53 DCHECK(!demuxer_stream_); 52 DCHECK(!demuxer_stream_);
54 weak_this_ = weak_factory_.GetWeakPtr(); 53 weak_this_ = weak_factory_.GetWeakPtr();
55 demuxer_stream_ = stream; 54 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
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
OLDNEW
« no previous file with comments | « media/filters/decrypting_demuxer_stream.h ('k') | media/filters/decrypting_demuxer_stream_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698