| 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_audio_decoder.h" | 5 #include "media/filters/decrypting_audio_decoder.h" |
| 6 | 6 |
| 7 #include <cstdlib> | 7 #include <cstdlib> |
| 8 | 8 |
| 9 #include "base/bind.h" | 9 #include "base/bind.h" |
| 10 #include "base/callback_helpers.h" | 10 #include "base/callback_helpers.h" |
| (...skipping 293 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 304 DVLOG(2) << "DecryptAndDecodeBuffer() - kAborted"; | 304 DVLOG(2) << "DecryptAndDecodeBuffer() - kAborted"; |
| 305 state_ = kIdle; | 305 state_ = kIdle; |
| 306 base::ResetAndReturn(&read_cb_).Run(kAborted, NULL); | 306 base::ResetAndReturn(&read_cb_).Run(kAborted, NULL); |
| 307 return; | 307 return; |
| 308 } | 308 } |
| 309 | 309 |
| 310 DCHECK_EQ(status, DemuxerStream::kOk); | 310 DCHECK_EQ(status, DemuxerStream::kOk); |
| 311 | 311 |
| 312 // Initialize the |next_output_timestamp_| to be the timestamp of the first | 312 // Initialize the |next_output_timestamp_| to be the timestamp of the first |
| 313 // non-EOS buffer. | 313 // non-EOS buffer. |
| 314 if (output_timestamp_base_ == kNoTimestamp() && !buffer->IsEndOfStream()) { | 314 if (output_timestamp_base_ == kNoTimestamp() && !buffer->is_end_of_stream()) { |
| 315 DCHECK_EQ(total_samples_decoded_, 0); | 315 DCHECK_EQ(total_samples_decoded_, 0); |
| 316 output_timestamp_base_ = buffer->GetTimestamp(); | 316 output_timestamp_base_ = buffer->get_timestamp(); |
| 317 } | 317 } |
| 318 | 318 |
| 319 pending_buffer_to_decode_ = buffer; | 319 pending_buffer_to_decode_ = buffer; |
| 320 state_ = kPendingDecode; | 320 state_ = kPendingDecode; |
| 321 DecodePendingBuffer(); | 321 DecodePendingBuffer(); |
| 322 } | 322 } |
| 323 | 323 |
| 324 void DecryptingAudioDecoder::DecodePendingBuffer() { | 324 void DecryptingAudioDecoder::DecodePendingBuffer() { |
| 325 DCHECK(message_loop_->BelongsToCurrentThread()); | 325 DCHECK(message_loop_->BelongsToCurrentThread()); |
| 326 DCHECK_EQ(state_, kPendingDecode) << state_; | 326 DCHECK_EQ(state_, kPendingDecode) << state_; |
| 327 | 327 |
| 328 int buffer_size = 0; | 328 int buffer_size = 0; |
| 329 if (!pending_buffer_to_decode_->IsEndOfStream()) { | 329 if (!pending_buffer_to_decode_->is_end_of_stream()) { |
| 330 buffer_size = pending_buffer_to_decode_->GetDataSize(); | 330 buffer_size = pending_buffer_to_decode_->get_data_size(); |
| 331 } | 331 } |
| 332 | 332 |
| 333 decryptor_->DecryptAndDecodeAudio( | 333 decryptor_->DecryptAndDecodeAudio( |
| 334 pending_buffer_to_decode_, | 334 pending_buffer_to_decode_, |
| 335 BindToCurrentLoop(base::Bind( | 335 BindToCurrentLoop(base::Bind( |
| 336 &DecryptingAudioDecoder::DeliverFrame, weak_this_, buffer_size))); | 336 &DecryptingAudioDecoder::DeliverFrame, weak_this_, buffer_size))); |
| 337 } | 337 } |
| 338 | 338 |
| 339 void DecryptingAudioDecoder::DeliverFrame( | 339 void DecryptingAudioDecoder::DeliverFrame( |
| 340 int buffer_size, | 340 int buffer_size, |
| (...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 387 | 387 |
| 388 // The buffer has been accepted by the decoder, let's report statistics. | 388 // The buffer has been accepted by the decoder, let's report statistics. |
| 389 if (buffer_size) { | 389 if (buffer_size) { |
| 390 PipelineStatistics statistics; | 390 PipelineStatistics statistics; |
| 391 statistics.audio_bytes_decoded = buffer_size; | 391 statistics.audio_bytes_decoded = buffer_size; |
| 392 statistics_cb_.Run(statistics); | 392 statistics_cb_.Run(statistics); |
| 393 } | 393 } |
| 394 | 394 |
| 395 if (status == Decryptor::kNeedMoreData) { | 395 if (status == Decryptor::kNeedMoreData) { |
| 396 DVLOG(2) << "DeliverFrame() - kNeedMoreData"; | 396 DVLOG(2) << "DeliverFrame() - kNeedMoreData"; |
| 397 if (scoped_pending_buffer_to_decode->IsEndOfStream()) { | 397 if (scoped_pending_buffer_to_decode->is_end_of_stream()) { |
| 398 state_ = kDecodeFinished; | 398 state_ = kDecodeFinished; |
| 399 base::ResetAndReturn(&read_cb_).Run(kOk, DataBuffer::create_eos_buffer()); | 399 base::ResetAndReturn(&read_cb_).Run(kOk, DataBuffer::create_eos_buffer()); |
| 400 return; | 400 return; |
| 401 } | 401 } |
| 402 | 402 |
| 403 state_ = kPendingDemuxerRead; | 403 state_ = kPendingDemuxerRead; |
| 404 ReadFromDemuxerStream(); | 404 ReadFromDemuxerStream(); |
| 405 return; | 405 return; |
| 406 } | 406 } |
| 407 | 407 |
| (...skipping 78 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 486 | 486 |
| 487 base::TimeDelta DecryptingAudioDecoder::NumberOfSamplesToDuration( | 487 base::TimeDelta DecryptingAudioDecoder::NumberOfSamplesToDuration( |
| 488 int number_of_samples) const { | 488 int number_of_samples) const { |
| 489 DCHECK(samples_per_second_); | 489 DCHECK(samples_per_second_); |
| 490 return base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond * | 490 return base::TimeDelta::FromMicroseconds(base::Time::kMicrosecondsPerSecond * |
| 491 number_of_samples / | 491 number_of_samples / |
| 492 samples_per_second_); | 492 samples_per_second_); |
| 493 } | 493 } |
| 494 | 494 |
| 495 } // namespace media | 495 } // namespace media |
| OLD | NEW |