Chromium Code Reviews| Index: media/base/android/media_codec_audio_decoder.cc |
| diff --git a/media/base/android/media_codec_audio_decoder.cc b/media/base/android/media_codec_audio_decoder.cc |
| index 5d6803e7cae5cafffee6299739bba266d60a5ad2..88bdeb5de2ea122a8aeedb6e12634a2b4f18a0a3 100644 |
| --- a/media/base/android/media_codec_audio_decoder.cc |
| +++ b/media/base/android/media_codec_audio_decoder.cc |
| @@ -25,6 +25,7 @@ MediaCodecAudioDecoder::MediaCodecAudioDecoder( |
| const base::Closure& starvation_cb, |
| const base::Closure& decoder_drained_cb, |
| const base::Closure& stop_done_cb, |
| + const base::Closure& key_required_cb, |
| const base::Closure& error_cb, |
| const SetTimeCallback& update_current_time_cb) |
| : MediaCodecDecoder(media_task_runner, |
| @@ -32,6 +33,7 @@ MediaCodecAudioDecoder::MediaCodecAudioDecoder( |
| starvation_cb, |
| decoder_drained_cb, |
| stop_done_cb, |
| + key_required_cb, |
| error_cb, |
| "AudioDecoder"), |
| volume_(-1.0), |
| @@ -65,6 +67,10 @@ void MediaCodecAudioDecoder::SetDemuxerConfigs(const DemuxerConfigs& configs) { |
| output_sampling_rate_ = configs.audio_sampling_rate; |
| } |
| +bool MediaCodecAudioDecoder::IsContentEncrypted() const { |
|
xhwang
2015/09/30 18:07:53
Can this be called before |configs_| is set? If no
Tima Vaisburd
2015/09/30 23:00:50
No, the state machine should take care of this. Ad
|
| + return configs_.is_audio_encrypted; |
| +} |
| + |
| void MediaCodecAudioDecoder::ReleaseDecoderResources() { |
| DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| DVLOG(1) << class_name() << "::" << __FUNCTION__; |
| @@ -109,14 +115,15 @@ bool MediaCodecAudioDecoder::IsCodecReconfigureNeeded( |
| return configs_.audio_codec != next.audio_codec || |
| configs_.audio_channels != next.audio_channels || |
| configs_.audio_sampling_rate != next.audio_sampling_rate || |
| - next.is_audio_encrypted != next.is_audio_encrypted || |
| + configs_.is_audio_encrypted != next.is_audio_encrypted || |
| configs_.audio_extra_data.size() != next.audio_extra_data.size() || |
| !std::equal(configs_.audio_extra_data.begin(), |
| configs_.audio_extra_data.end(), |
| next.audio_extra_data.begin()); |
| } |
| -MediaCodecDecoder::ConfigStatus MediaCodecAudioDecoder::ConfigureInternal() { |
| +MediaCodecDecoder::ConfigStatus MediaCodecAudioDecoder::ConfigureInternal( |
| + jobject media_crypto) { |
| DCHECK(media_task_runner_->BelongsToCurrentThread()); |
| DVLOG(1) << class_name() << "::" << __FUNCTION__; |
| @@ -141,7 +148,7 @@ MediaCodecDecoder::ConfigStatus MediaCodecAudioDecoder::ConfigureInternal() { |
| configs_.audio_codec_delay_ns, |
| configs_.audio_seek_preroll_ns, |
| true, |
| - GetMediaCrypto().obj())) { |
| + media_crypto)) { |
| DVLOG(0) << class_name() << "::" << __FUNCTION__ |
| << " failed: cannot start audio codec"; |