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

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

Issue 2466463005: Support (E)AC3 passthrough
Patch Set: Improve CastMediaClient::IsSupportedPassthroughAudio() Created 4 years, 1 month 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 <stdint.h> 7 #include <stdint.h>
8 #include <cstdlib> 8 #include <cstdlib>
9 #include <deque> 9 #include <deque>
10 #include <utility> 10 #include <utility>
(...skipping 165 matching lines...) Expand 10 before | Expand all | Expand 10 after
176 << "us, more than threshold of +/-" 176 << "us, more than threshold of +/-"
177 << AudioSplicer::kMaxTimeDeltaInMilliseconds 177 << AudioSplicer::kMaxTimeDeltaInMilliseconds
178 << "ms. Expected timestamp is based on decoded frames and frame rate."; 178 << "ms. Expected timestamp is based on decoded frames and frame rate.";
179 return false; 179 return false;
180 } 180 }
181 181
182 int frames_to_fill = 0; 182 int frames_to_fill = 0;
183 if (!delta.is_zero()) 183 if (!delta.is_zero())
184 frames_to_fill = output_timestamp_helper_.GetFramesToTarget(timestamp); 184 frames_to_fill = output_timestamp_helper_.GetFramesToTarget(timestamp);
185 185
186 if (frames_to_fill == 0 || std::abs(frames_to_fill) < kMinGapSize) { 186 if (frames_to_fill == 0 || std::abs(frames_to_fill) < kMinGapSize ||
DaleCurtis 2016/11/01 23:05:13 Raw formats should just skip the sanitizer entirel
AndyWu 2016/11/04 18:04:24 Sorry, I am not sure what to do. Should I move the
chcunningham 2016/11/11 19:14:28 This whole file is now deleted. But Dale is right
AndyWu 2016/11/11 23:49:12 Thanks a lot for the well written article from Dal
187 input->sample_format() == kSampleFormatRaw) {
187 AddOutputBuffer(input); 188 AddOutputBuffer(input);
188 return true; 189 return true;
189 } 190 }
190 191
191 if (frames_to_fill > 0) { 192 if (frames_to_fill > 0) {
192 LIMITED_MEDIA_LOG(DEBUG, media_log_, num_warning_logs_, 193 LIMITED_MEDIA_LOG(DEBUG, media_log_, num_warning_logs_,
193 kMaxSanitizerWarningLogs) 194 kMaxSanitizerWarningLogs)
194 << "Audio splicer inserting silence for small gap of " 195 << "Audio splicer inserting silence for small gap of "
195 << delta.InMicroseconds() << "us at time " 196 << delta.InMicroseconds() << "us at time "
196 << expected_timestamp.InMicroseconds() << "us."; 197 << expected_timestamp.InMicroseconds() << "us.";
(...skipping 354 matching lines...) Expand 10 before | Expand all | Expand 10 after
551 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper); 552 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper);
552 CHECK(output_sanitizer_->AddInput(remainder)); 553 CHECK(output_sanitizer_->AddInput(remainder));
553 } 554 }
554 555
555 // Transfer all remaining buffers out and reset once empty. 556 // Transfer all remaining buffers out and reset once empty.
556 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get())); 557 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get()));
557 post_splice_sanitizer_->Reset(); 558 post_splice_sanitizer_->Reset();
558 } 559 }
559 560
560 } // namespace media 561 } // namespace media
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698