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

Side by Side Diff: media/base/audio_splicer.cc

Issue 506683002: Remove implicit conversions from scoped_refptr to T* in media/ (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 6 years, 3 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
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/base/audio_splicer.h" 5 #include "media/base/audio_splicer.h"
6 6
7 #include <cstdlib> 7 #include <cstdlib>
8 #include <deque> 8 #include <deque>
9 9
10 #include "base/logging.h" 10 #include "base/logging.h"
(...skipping 422 matching lines...) Expand 10 before | Expand all | Expand 10 after
433 preroll->TrimEnd(preroll->frame_count() - frames_before_splice); 433 preroll->TrimEnd(preroll->frame_count() - frames_before_splice);
434 CHECK(output_sanitizer_->AddInput(preroll)); 434 CHECK(output_sanitizer_->AddInput(preroll));
435 frames_before_splice = 0; 435 frames_before_splice = 0;
436 } 436 }
437 } 437 }
438 438
439 // Ensure outputs were properly allocated. The method should not have been 439 // Ensure outputs were properly allocated. The method should not have been
440 // called if there is not enough data to crossfade. 440 // called if there is not enough data to crossfade.
441 // TODO(dalecurtis): Convert to DCHECK() once http://crbug.com/356073 fixed. 441 // TODO(dalecurtis): Convert to DCHECK() once http://crbug.com/356073 fixed.
442 CHECK(output_bus); 442 CHECK(output_bus);
443 CHECK(*crossfade_buffer); 443 CHECK(crossfade_buffer->get());
444 444
445 // All necessary buffers have been processed, it's safe to reset. 445 // All necessary buffers have been processed, it's safe to reset.
446 pre_splice_sanitizer_->Reset(); 446 pre_splice_sanitizer_->Reset();
447 DCHECK_EQ(output_bus->frames(), frames_read); 447 DCHECK_EQ(output_bus->frames(), frames_read);
448 DCHECK_EQ(output_ts_helper.GetFramesToTarget(splice_timestamp_), 0); 448 DCHECK_EQ(output_ts_helper.GetFramesToTarget(splice_timestamp_), 0);
449 return output_bus.Pass(); 449 return output_bus.Pass();
450 } 450 }
451 451
452 void AudioSplicer::CrossfadePostSplice( 452 void AudioSplicer::CrossfadePostSplice(
453 scoped_ptr<AudioBus> pre_splice_bus, 453 scoped_ptr<AudioBus> pre_splice_bus,
(...skipping 16 matching lines...) Expand all
470 scoped_refptr<AudioBuffer> postroll = 470 scoped_refptr<AudioBuffer> postroll =
471 post_splice_sanitizer_->GetNextBuffer(); 471 post_splice_sanitizer_->GetNextBuffer();
472 const int frames_to_read = 472 const int frames_to_read =
473 std::min(postroll->frame_count(), output_bus->frames() - frames_read); 473 std::min(postroll->frame_count(), output_bus->frames() - frames_read);
474 postroll->ReadFrames(frames_to_read, 0, frames_read, output_bus.get()); 474 postroll->ReadFrames(frames_to_read, 0, frames_read, output_bus.get());
475 frames_read += frames_to_read; 475 frames_read += frames_to_read;
476 476
477 // If only part of the buffer was consumed, save it for after we've added 477 // If only part of the buffer was consumed, save it for after we've added
478 // the crossfade buffer 478 // the crossfade buffer
479 if (frames_to_read < postroll->frame_count()) { 479 if (frames_to_read < postroll->frame_count()) {
480 DCHECK(!remainder); 480 DCHECK(!remainder.get());
481 remainder.swap(postroll); 481 remainder.swap(postroll);
482 frames_to_trim = frames_to_read; 482 frames_to_trim = frames_to_read;
483 } 483 }
484 } 484 }
485 485
486 DCHECK_EQ(output_bus->frames(), frames_read); 486 DCHECK_EQ(output_bus->frames(), frames_read);
487 487
488 // Crossfade the audio into |crossfade_buffer|. 488 // Crossfade the audio into |crossfade_buffer|.
489 for (int ch = 0; ch < output_bus->channels(); ++ch) { 489 for (int ch = 0; ch < output_bus->channels(); ++ch) {
490 vector_math::Crossfade(pre_splice_bus->channel(ch), 490 vector_math::Crossfade(pre_splice_bus->channel(ch),
491 pre_splice_bus->frames(), 491 pre_splice_bus->frames(),
492 output_bus->channel(ch)); 492 output_bus->channel(ch));
493 } 493 }
494 494
495 CHECK(output_sanitizer_->AddInput(crossfade_buffer)); 495 CHECK(output_sanitizer_->AddInput(crossfade_buffer));
496 DCHECK_EQ(crossfade_buffer->frame_count(), output_bus->frames()); 496 DCHECK_EQ(crossfade_buffer->frame_count(), output_bus->frames());
497 497
498 if (remainder) { 498 if (remainder.get()) {
499 // Trim off consumed frames. 499 // Trim off consumed frames.
500 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper); 500 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper);
501 CHECK(output_sanitizer_->AddInput(remainder)); 501 CHECK(output_sanitizer_->AddInput(remainder));
502 } 502 }
503 503
504 // Transfer all remaining buffers out and reset once empty. 504 // Transfer all remaining buffers out and reset once empty.
505 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get())); 505 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get()));
506 post_splice_sanitizer_->Reset(); 506 post_splice_sanitizer_->Reset();
507 } 507 }
508 508
509 } // namespace media 509 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698