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

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

Issue 1834303005: Refactor audio and video decoder status into common file. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Comments. Created 4 years, 8 months 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
« no previous file with comments | « media/filters/gpu_video_decoder.cc ('k') | media/filters/vpx_video_decoder.cc » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 // Copyright 2012 The Chromium Authors. All rights reserved. 1 // Copyright 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/opus_audio_decoder.h" 5 #include "media/filters/opus_audio_decoder.h"
6 6
7 #include <stddef.h> 7 #include <stddef.h>
8 #include <stdint.h> 8 #include <stdint.h>
9 9
10 #include <cmath> 10 #include <cmath>
(...skipping 178 matching lines...) Expand 10 before | Expand all | Expand 10 after
189 void OpusAudioDecoder::DecodeBuffer( 189 void OpusAudioDecoder::DecodeBuffer(
190 const scoped_refptr<DecoderBuffer>& input, 190 const scoped_refptr<DecoderBuffer>& input,
191 const DecodeCB& decode_cb) { 191 const DecodeCB& decode_cb) {
192 DCHECK(task_runner_->BelongsToCurrentThread()); 192 DCHECK(task_runner_->BelongsToCurrentThread());
193 DCHECK(!decode_cb.is_null()); 193 DCHECK(!decode_cb.is_null());
194 DCHECK(input.get()); 194 DCHECK(input.get());
195 195
196 // Libopus does not buffer output. Decoding is complete when an end of stream 196 // Libopus does not buffer output. Decoding is complete when an end of stream
197 // input buffer is received. 197 // input buffer is received.
198 if (input->end_of_stream()) { 198 if (input->end_of_stream()) {
199 decode_cb.Run(kOk); 199 decode_cb.Run(DecodeStatus::OK);
200 return; 200 return;
201 } 201 }
202 202
203 // Make sure we are notified if http://crbug.com/49709 returns. Issue also 203 // Make sure we are notified if http://crbug.com/49709 returns. Issue also
204 // occurs with some damaged files. 204 // occurs with some damaged files.
205 if (input->timestamp() == kNoTimestamp()) { 205 if (input->timestamp() == kNoTimestamp()) {
206 DLOG(ERROR) << "Received a buffer without timestamps!"; 206 DLOG(ERROR) << "Received a buffer without timestamps!";
207 decode_cb.Run(kDecodeError); 207 decode_cb.Run(DecodeStatus::DECODE_ERROR);
208 return; 208 return;
209 } 209 }
210 210
211 scoped_refptr<AudioBuffer> output_buffer; 211 scoped_refptr<AudioBuffer> output_buffer;
212 212
213 if (!Decode(input, &output_buffer)) { 213 if (!Decode(input, &output_buffer)) {
214 decode_cb.Run(kDecodeError); 214 decode_cb.Run(DecodeStatus::DECODE_ERROR);
215 return; 215 return;
216 } 216 }
217 217
218 if (output_buffer.get()) { 218 if (output_buffer.get()) {
219 output_cb_.Run(output_buffer); 219 output_cb_.Run(output_buffer);
220 } 220 }
221 221
222 decode_cb.Run(kOk); 222 decode_cb.Run(DecodeStatus::OK);
223 } 223 }
224 224
225 bool OpusAudioDecoder::ConfigureDecoder() { 225 bool OpusAudioDecoder::ConfigureDecoder() {
226 if (config_.codec() != kCodecOpus) { 226 if (config_.codec() != kCodecOpus) {
227 DVLOG(1) << "Codec must be kCodecOpus."; 227 DVLOG(1) << "Codec must be kCodecOpus.";
228 return false; 228 return false;
229 } 229 }
230 230
231 const int channel_count = 231 const int channel_count =
232 ChannelLayoutToChannelCount(config_.channel_layout()); 232 ChannelLayoutToChannelCount(config_.channel_layout());
(...skipping 126 matching lines...) Expand 10 before | Expand all | Expand 10 after
359 output_buffer->get()->TrimEnd(trim_frames); 359 output_buffer->get()->TrimEnd(trim_frames);
360 360
361 // Handles discards and timestamping. Discard the buffer if more data needed. 361 // Handles discards and timestamping. Discard the buffer if more data needed.
362 if (!discard_helper_->ProcessBuffers(input, *output_buffer)) 362 if (!discard_helper_->ProcessBuffers(input, *output_buffer))
363 *output_buffer = nullptr; 363 *output_buffer = nullptr;
364 364
365 return true; 365 return true;
366 } 366 }
367 367
368 } // namespace media 368 } // namespace media
OLDNEW
« no previous file with comments | « media/filters/gpu_video_decoder.cc ('k') | media/filters/vpx_video_decoder.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698