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 52 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
63 AudioStreamSanitizer(int samples_per_second, | 63 AudioStreamSanitizer(int samples_per_second, |
64 const scoped_refptr<MediaLog>& media_log); | 64 const scoped_refptr<MediaLog>& media_log); |
65 ~AudioStreamSanitizer(); | 65 ~AudioStreamSanitizer(); |
66 | 66 |
67 // Resets the sanitizer state by clearing the output buffers queue, and | 67 // Resets the sanitizer state by clearing the output buffers queue, and |
68 // resetting the timestamp helper. | 68 // resetting the timestamp helper. |
69 void Reset(); | 69 void Reset(); |
70 | 70 |
71 // Similar to Reset(), but initializes the timestamp helper with the given | 71 // Similar to Reset(), but initializes the timestamp helper with the given |
72 // parameters. | 72 // parameters. |
73 void ResetTimestampState(int64 frame_count, base::TimeDelta base_timestamp); | 73 void ResetTimestampState(int64_t frame_count, base::TimeDelta base_timestamp); |
74 | 74 |
75 // Adds a new buffer full of samples or end of stream buffer to the splicer. | 75 // Adds a new buffer full of samples or end of stream buffer to the splicer. |
76 // Returns true if the buffer was accepted. False is returned if an error | 76 // Returns true if the buffer was accepted. False is returned if an error |
77 // occurred. | 77 // occurred. |
78 bool AddInput(const scoped_refptr<AudioBuffer>& input); | 78 bool AddInput(const scoped_refptr<AudioBuffer>& input); |
79 | 79 |
80 // Returns true if the sanitizer has a buffer to return. | 80 // Returns true if the sanitizer has a buffer to return. |
81 bool HasNextBuffer() const; | 81 bool HasNextBuffer() const; |
82 | 82 |
83 // Removes the next buffer from the output buffer queue and returns it; should | 83 // Removes the next buffer from the output buffer queue and returns it; should |
(...skipping 33 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
117 int samples_per_second, | 117 int samples_per_second, |
118 const scoped_refptr<MediaLog>& media_log) | 118 const scoped_refptr<MediaLog>& media_log) |
119 : output_timestamp_helper_(samples_per_second), media_log_(media_log) {} | 119 : output_timestamp_helper_(samples_per_second), media_log_(media_log) {} |
120 | 120 |
121 AudioStreamSanitizer::~AudioStreamSanitizer() {} | 121 AudioStreamSanitizer::~AudioStreamSanitizer() {} |
122 | 122 |
123 void AudioStreamSanitizer::Reset() { | 123 void AudioStreamSanitizer::Reset() { |
124 ResetTimestampState(0, kNoTimestamp()); | 124 ResetTimestampState(0, kNoTimestamp()); |
125 } | 125 } |
126 | 126 |
127 void AudioStreamSanitizer::ResetTimestampState(int64 frame_count, | 127 void AudioStreamSanitizer::ResetTimestampState(int64_t frame_count, |
128 base::TimeDelta base_timestamp) { | 128 base::TimeDelta base_timestamp) { |
129 output_buffers_.clear(); | 129 output_buffers_.clear(); |
130 received_end_of_stream_ = false; | 130 received_end_of_stream_ = false; |
131 output_timestamp_helper_.SetBaseTimestamp(base_timestamp); | 131 output_timestamp_helper_.SetBaseTimestamp(base_timestamp); |
132 if (frame_count > 0) | 132 if (frame_count > 0) |
133 output_timestamp_helper_.AddFrames(frame_count); | 133 output_timestamp_helper_.AddFrames(frame_count); |
134 } | 134 } |
135 | 135 |
136 bool AudioStreamSanitizer::AddInput(const scoped_refptr<AudioBuffer>& input) { | 136 bool AudioStreamSanitizer::AddInput(const scoped_refptr<AudioBuffer>& input) { |
137 DCHECK(!received_end_of_stream_ || input->end_of_stream()); | 137 DCHECK(!received_end_of_stream_ || input->end_of_stream()); |
(...skipping 410 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
548 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper); | 548 AccurateTrimStart(frames_to_trim, remainder, output_ts_helper); |
549 CHECK(output_sanitizer_->AddInput(remainder)); | 549 CHECK(output_sanitizer_->AddInput(remainder)); |
550 } | 550 } |
551 | 551 |
552 // Transfer all remaining buffers out and reset once empty. | 552 // Transfer all remaining buffers out and reset once empty. |
553 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get())); | 553 CHECK(post_splice_sanitizer_->DrainInto(output_sanitizer_.get())); |
554 post_splice_sanitizer_->Reset(); | 554 post_splice_sanitizer_->Reset(); |
555 } | 555 } |
556 | 556 |
557 } // namespace media | 557 } // namespace media |
OLD | NEW |