| OLD | NEW |
| 1 // Copyright 2013 The Chromium Authors. All rights reserved. | 1 // Copyright 2013 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_buffer.h" | 5 #include "media/base/audio_buffer.h" |
| 6 | 6 |
| 7 #include <cmath> | 7 #include <cmath> |
| 8 | 8 |
| 9 #include "base/logging.h" | 9 #include "base/logging.h" |
| 10 #include "media/base/audio_bus.h" | 10 #include "media/base/audio_bus.h" |
| (...skipping 103 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 114 } | 114 } |
| 115 | 115 |
| 116 // static | 116 // static |
| 117 scoped_refptr<AudioBuffer> AudioBuffer::CreateBuffer( | 117 scoped_refptr<AudioBuffer> AudioBuffer::CreateBuffer( |
| 118 SampleFormat sample_format, | 118 SampleFormat sample_format, |
| 119 ChannelLayout channel_layout, | 119 ChannelLayout channel_layout, |
| 120 int channel_count, | 120 int channel_count, |
| 121 int sample_rate, | 121 int sample_rate, |
| 122 int frame_count) { | 122 int frame_count) { |
| 123 CHECK_GT(frame_count, 0); // Otherwise looks like an EOF buffer. | 123 CHECK_GT(frame_count, 0); // Otherwise looks like an EOF buffer. |
| 124 return make_scoped_refptr(new AudioBuffer(sample_format, | 124 return make_scoped_refptr( |
| 125 channel_layout, | 125 new AudioBuffer(sample_format, channel_layout, channel_count, sample_rate, |
| 126 channel_count, | 126 frame_count, true, NULL, kNoTimestamp)); |
| 127 sample_rate, | |
| 128 frame_count, | |
| 129 true, | |
| 130 NULL, | |
| 131 kNoTimestamp())); | |
| 132 } | 127 } |
| 133 | 128 |
| 134 // static | 129 // static |
| 135 scoped_refptr<AudioBuffer> AudioBuffer::CreateEmptyBuffer( | 130 scoped_refptr<AudioBuffer> AudioBuffer::CreateEmptyBuffer( |
| 136 ChannelLayout channel_layout, | 131 ChannelLayout channel_layout, |
| 137 int channel_count, | 132 int channel_count, |
| 138 int sample_rate, | 133 int sample_rate, |
| 139 int frame_count, | 134 int frame_count, |
| 140 const base::TimeDelta timestamp) { | 135 const base::TimeDelta timestamp) { |
| 141 CHECK_GT(frame_count, 0); // Otherwise looks like an EOF buffer. | 136 CHECK_GT(frame_count, 0); // Otherwise looks like an EOF buffer. |
| 142 // Since data == NULL, format doesn't matter. | 137 // Since data == NULL, format doesn't matter. |
| 143 return make_scoped_refptr(new AudioBuffer(kSampleFormatF32, | 138 return make_scoped_refptr(new AudioBuffer(kSampleFormatF32, |
| 144 channel_layout, | 139 channel_layout, |
| 145 channel_count, | 140 channel_count, |
| 146 sample_rate, | 141 sample_rate, |
| 147 frame_count, | 142 frame_count, |
| 148 false, | 143 false, |
| 149 NULL, | 144 NULL, |
| 150 timestamp)); | 145 timestamp)); |
| 151 } | 146 } |
| 152 | 147 |
| 153 // static | 148 // static |
| 154 scoped_refptr<AudioBuffer> AudioBuffer::CreateEOSBuffer() { | 149 scoped_refptr<AudioBuffer> AudioBuffer::CreateEOSBuffer() { |
| 155 return make_scoped_refptr(new AudioBuffer(kUnknownSampleFormat, | 150 return make_scoped_refptr(new AudioBuffer(kUnknownSampleFormat, |
| 156 CHANNEL_LAYOUT_NONE, | 151 CHANNEL_LAYOUT_NONE, 0, 0, 0, false, |
| 157 0, | 152 NULL, kNoTimestamp)); |
| 158 0, | |
| 159 0, | |
| 160 false, | |
| 161 NULL, | |
| 162 kNoTimestamp())); | |
| 163 } | 153 } |
| 164 | 154 |
| 165 template <typename Target, typename Dest> | 155 template <typename Target, typename Dest> |
| 166 static inline Dest ConvertSample(Target value); | 156 static inline Dest ConvertSample(Target value); |
| 167 | 157 |
| 168 // Convert int16_t values in the range [INT16_MIN, INT16_MAX] to [-1.0, 1.0]. | 158 // Convert int16_t values in the range [INT16_MIN, INT16_MAX] to [-1.0, 1.0]. |
| 169 template <> | 159 template <> |
| 170 inline float ConvertSample<int16_t, float>(int16_t value) { | 160 inline float ConvertSample<int16_t, float>(int16_t value) { |
| 171 return value * (value < 0 ? -1.0f / std::numeric_limits<int16_t>::min() | 161 return value * (value < 0 ? -1.0f / std::numeric_limits<int16_t>::min() |
| 172 : 1.0f / std::numeric_limits<int16_t>::max()); | 162 : 1.0f / std::numeric_limits<int16_t>::max()); |
| (...skipping 251 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 424 } | 414 } |
| 425 } else { | 415 } else { |
| 426 CHECK_EQ(frames_to_copy, 0); | 416 CHECK_EQ(frames_to_copy, 0); |
| 427 } | 417 } |
| 428 | 418 |
| 429 // Trim the leftover data off the end of the buffer and update duration. | 419 // Trim the leftover data off the end of the buffer and update duration. |
| 430 TrimEnd(frames_to_trim); | 420 TrimEnd(frames_to_trim); |
| 431 } | 421 } |
| 432 | 422 |
| 433 } // namespace media | 423 } // namespace media |
| OLD | NEW |