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 #ifndef MEDIA_BASE_AUDIO_BUS_H_ | 5 #ifndef MEDIA_BASE_AUDIO_BUS_H_ | 
| 6 #define MEDIA_BASE_AUDIO_BUS_H_ | 6 #define MEDIA_BASE_AUDIO_BUS_H_ | 
| 7 | 7 | 
| 8 #include <stdint.h> | 8 #include <stdint.h> | 
| 9 | 9 | 
| 10 #include <memory> | 10 #include <memory> | 
| (...skipping 51 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 62 // Uses channels() and frames_per_buffer() from AudioParameters if given. | 62 // Uses channels() and frames_per_buffer() from AudioParameters if given. | 
| 63 static int CalculateMemorySize(int channels, int frames); | 63 static int CalculateMemorySize(int channels, int frames); | 
| 64 static int CalculateMemorySize(const AudioParameters& params); | 64 static int CalculateMemorySize(const AudioParameters& params); | 
| 65 | 65 | 
| 66 // Methods that are expected to be called after AudioBus::CreateWrapper() in | 66 // Methods that are expected to be called after AudioBus::CreateWrapper() in | 
| 67 // order to wrap externally allocated memory. Note: It is illegal to call | 67 // order to wrap externally allocated memory. Note: It is illegal to call | 
| 68 // these methods when using a factory method other than CreateWrapper(). | 68 // these methods when using a factory method other than CreateWrapper(). | 
| 69 void SetChannelData(int channel, float* data); | 69 void SetChannelData(int channel, float* data); | 
| 70 void set_frames(int frames); | 70 void set_frames(int frames); | 
| 71 | 71 | 
| 72 int data_size() const { return data_size_; } | |
| 
 
DaleCurtis
2017/06/15 21:46:32
this should be GetBitstreamDataSize() and DCHECK(i
 
AndyWu
2017/08/02 01:43:40
Done.
 
 | |
| 73 void set_data_size(int data_size) { data_size_ = data_size; } | |
| 74 | |
| 75 int is_bitstream_format() const { return is_bitstream_format_; } | |
| 76 void set_is_bitstream_format(bool is_bitstream_format) { | |
| 77 is_bitstream_format_ = is_bitstream_format; | |
| 78 } | |
| 79 | |
| 72 // Overwrites the sample values stored in this AudioBus instance with values | 80 // Overwrites the sample values stored in this AudioBus instance with values | 
| 73 // from a given interleaved |source_buffer| with expected layout | 81 // from a given interleaved |source_buffer| with expected layout | 
| 74 // [ch0, ch1, ..., chN, ch0, ch1, ...] and sample values in the format | 82 // [ch0, ch1, ..., chN, ch0, ch1, ...] and sample values in the format | 
| 75 // corresponding to the given SourceSampleTypeTraits. | 83 // corresponding to the given SourceSampleTypeTraits. | 
| 76 // The sample values are converted to float values by means of the method | 84 // The sample values are converted to float values by means of the method | 
| 77 // convert_to_float32() provided by the SourceSampleTypeTraits. For a list of | 85 // convert_to_float32() provided by the SourceSampleTypeTraits. For a list of | 
| 78 // ready-to-use SampleTypeTraits, see file audio_sample_types.h. | 86 // ready-to-use SampleTypeTraits, see file audio_sample_types.h. | 
| 79 // If |num_frames_to_write| is less than frames(), the remaining frames are | 87 // If |num_frames_to_write| is less than frames(), the remaining frames are | 
| 80 // zeroed out. If |num_frames_to_write| is more than frames(), this results in | 88 // zeroed out. If |num_frames_to_write| is more than frames(), this results in | 
| 81 // undefined behavior. | 89 // undefined behavior. | 
| (...skipping 117 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 199 | 207 | 
| 200 template <class TargetSampleTypeTraits> | 208 template <class TargetSampleTypeTraits> | 
| 201 static void CopyConvertFromAudioBusToInterleavedTarget( | 209 static void CopyConvertFromAudioBusToInterleavedTarget( | 
| 202 const AudioBus* source, | 210 const AudioBus* source, | 
| 203 int read_offset_in_frames, | 211 int read_offset_in_frames, | 
| 204 int num_frames_to_read, | 212 int num_frames_to_read, | 
| 205 typename TargetSampleTypeTraits::ValueType* dest_buffer); | 213 typename TargetSampleTypeTraits::ValueType* dest_buffer); | 
| 206 | 214 | 
| 207 // Contiguous block of channel memory. | 215 // Contiguous block of channel memory. | 
| 208 std::unique_ptr<float, base::AlignedFreeDeleter> data_; | 216 std::unique_ptr<float, base::AlignedFreeDeleter> data_; | 
| 217 int data_size_; | |
| 218 bool is_bitstream_format_; | |
| 209 | 219 | 
| 210 // One float pointer per channel pointing to a contiguous block of memory for | 220 // One float pointer per channel pointing to a contiguous block of memory for | 
| 211 // that channel. If the memory is owned by this instance, this will | 221 // that channel. If the memory is owned by this instance, this will | 
| 212 // point to the memory in |data_|. Otherwise, it may point to memory provided | 222 // point to the memory in |data_|. Otherwise, it may point to memory provided | 
| 213 // by the client. | 223 // by the client. | 
| 214 std::vector<float*> channel_data_; | 224 std::vector<float*> channel_data_; | 
| 215 int frames_; | 225 int frames_; | 
| 216 | 226 | 
| 217 // Protect SetChannelData() and set_frames() for use by CreateWrapper(). | 227 // Protect SetChannelData() and set_frames() for use by CreateWrapper(). | 
| 218 bool can_set_channel_data_; | 228 bool can_set_channel_data_; | 
| (...skipping 80 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... | |
| 299 float sourceSampleValue = channel_data[source_frame_index]; | 309 float sourceSampleValue = channel_data[source_frame_index]; | 
| 300 dest_buffer[write_pos_in_dest] = | 310 dest_buffer[write_pos_in_dest] = | 
| 301 TargetSampleTypeTraits::FromFloat(sourceSampleValue); | 311 TargetSampleTypeTraits::FromFloat(sourceSampleValue); | 
| 302 } | 312 } | 
| 303 } | 313 } | 
| 304 } | 314 } | 
| 305 | 315 | 
| 306 } // namespace media | 316 } // namespace media | 
| 307 | 317 | 
| 308 #endif // MEDIA_BASE_AUDIO_BUS_H_ | 318 #endif // MEDIA_BASE_AUDIO_BUS_H_ | 
| OLD | NEW |