Chromium Code Reviews| 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/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 284 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 295 // Ensure |output_sanitizer_| has a valid base timestamp so we can use it for | 295 // Ensure |output_sanitizer_| has a valid base timestamp so we can use it for |
| 296 // timestamp calculations. | 296 // timestamp calculations. |
| 297 if (output_ts_helper.base_timestamp() == kNoTimestamp()) { | 297 if (output_ts_helper.base_timestamp() == kNoTimestamp()) { |
| 298 output_sanitizer_->ResetTimestampState( | 298 output_sanitizer_->ResetTimestampState( |
| 299 0, pre_splice_sanitizer_->timestamp_helper().base_timestamp()); | 299 0, pre_splice_sanitizer_->timestamp_helper().base_timestamp()); |
| 300 } | 300 } |
| 301 | 301 |
| 302 // If a splice frame was incorrectly marked due to poor demuxed timestamps, we | 302 // If a splice frame was incorrectly marked due to poor demuxed timestamps, we |
| 303 // may not actually have a splice. Here we check if any frames exist before | 303 // may not actually have a splice. Here we check if any frames exist before |
| 304 // the splice. In this case, just transfer all data to the output sanitizer. | 304 // the splice. In this case, just transfer all data to the output sanitizer. |
| 305 if (pre_splice_sanitizer_->GetFrameCount() <= | 305 const int frames_before_splice = |
|
wolenetz
2014/08/05 01:00:28
I'm trying to grok which part of this condition pr
DaleCurtis
2014/08/05 01:03:10
If frames_before_splice is negative this condition
wolenetz
2014/08/07 23:12:12
Acknowledged.
| |
| 306 output_ts_helper.GetFramesToTarget(splice_timestamp_)) { | 306 output_ts_helper.GetFramesToTarget(splice_timestamp_); |
| 307 if (frames_before_splice < 0 || | |
| 308 pre_splice_sanitizer_->GetFrameCount() <= frames_before_splice) { | |
| 307 CHECK(pre_splice_sanitizer_->DrainInto(output_sanitizer_.get())); | 309 CHECK(pre_splice_sanitizer_->DrainInto(output_sanitizer_.get())); |
| 308 | 310 |
| 309 // If the file contains incorrectly muxed timestamps, there may be huge gaps | 311 // If the file contains incorrectly muxed timestamps, there may be huge gaps |
| 310 // between the demuxed and decoded timestamps. | 312 // between the demuxed and decoded timestamps. |
| 311 if (!post_splice_sanitizer_->DrainInto(output_sanitizer_.get())) | 313 if (!post_splice_sanitizer_->DrainInto(output_sanitizer_.get())) |
| 312 return false; | 314 return false; |
| 313 | 315 |
| 314 reset_splice_timestamps(); | 316 reset_splice_timestamps(); |
| 315 return true; | 317 return true; |
| 316 } | 318 } |
| (...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 498 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper); | 500 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper); |
| 499 CHECK(output_sanitizer_->AddInput(remainder)); | 501 CHECK(output_sanitizer_->AddInput(remainder)); |
| 500 } | 502 } |
| 501 | 503 |
| 502 // Transfer all remaining buffers out and reset once empty. | 504 // Transfer all remaining buffers out and reset once empty. |
| 503 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get())); | 505 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get())); |
| 504 post_splice_sanitizer_->Reset(); | 506 post_splice_sanitizer_->Reset(); |
| 505 } | 507 } |
| 506 | 508 |
| 507 } // namespace media | 509 } // namespace media |
| OLD | NEW |