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

Unified Diff: media/filters/opus_audio_decoder.cc

Issue 111153003: FFmpeg fixups for M33 roll. Now with more Opus! (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Add DEPS. Created 7 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/opus_audio_decoder.cc
diff --git a/media/filters/opus_audio_decoder.cc b/media/filters/opus_audio_decoder.cc
index 7aa931930aecc1bc249f06fe7e9e73a0f0a57f96..2278467c2b9878cb4b3066733af6f249ca820559 100644
--- a/media/filters/opus_audio_decoder.cc
+++ b/media/filters/opus_audio_decoder.cc
@@ -459,7 +459,7 @@ bool OpusAudioDecoder::ConfigureDecoder() {
// Allocate the output buffer if necessary.
if (!output_buffer_)
- output_buffer_.reset(new int16[kMaxOpusOutputPacketSizeSamples]);
+ output_buffer_.reset(new float[kMaxOpusOutputPacketSizeSamples]);
// Parse the Opus Extra Data.
OpusExtraData opus_extra_data;
@@ -535,12 +535,13 @@ void OpusAudioDecoder::ResetTimestampState() {
bool OpusAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& input,
scoped_refptr<AudioBuffer>* output_buffer) {
- int frames_decoded = opus_multistream_decode(opus_decoder_,
- input->data(),
- input->data_size(),
- &output_buffer_[0],
- kMaxOpusOutputPacketSizeSamples,
- 0);
+ int frames_decoded =
+ opus_multistream_decode_float(opus_decoder_,
+ input->data(),
+ input->data_size(),
+ &output_buffer_[0],
+ kMaxOpusOutputPacketSizeSamples,
+ 0);
if (frames_decoded < 0) {
DVLOG(0) << "opus_multistream_decode failed for"
<< " timestamp: " << input->timestamp().InMicroseconds()
@@ -572,7 +573,7 @@ bool OpusAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& input,
// Copy the audio samples into an output buffer.
uint8* data[] = { decoded_audio_data };
*output_buffer = AudioBuffer::CopyFrom(
- kSampleFormatS16,
+ kSampleFormatF32,
ChannelLayoutToChannelCount(channel_layout_),
frames_decoded,
data,
@@ -601,11 +602,13 @@ bool OpusAudioDecoder::Decode(const scoped_refptr<DecoderBuffer>& input,
// Decoding finished successfully, update statistics.
PipelineStatistics statistics;
- statistics.audio_bytes_decoded =
- frames_decoded *
- demuxer_stream_->audio_decoder_config().bytes_per_frame();
+ statistics.audio_bytes_decoded = bytes_decoded;
vignesh 2013/12/11 20:10:18 not sure if this change is required. even though w
acolwell GONE FROM CHROMIUM 2013/12/11 20:22:32 This is actually still wrong. This stat is suppose
DaleCurtis 2013/12/11 22:19:36 Done.
statistics_cb_.Run(statistics);
+ // Discard the buffer to indicate we need more data.
+ if (!frames_decoded)
+ *output_buffer = NULL;
+
return true;
}

Powered by Google App Engine
This is Rietveld 408576698