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

Side by Side Diff: media/base/audio_buffer.h

Issue 2572573007: Use passthrough decoder for (E)AC3 formats (Closed)
Patch Set: Use passthrough decoder for (E)AC3 formats Created 3 years, 7 months 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 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 #ifndef MEDIA_BASE_AUDIO_BUFFER_H_ 5 #ifndef MEDIA_BASE_AUDIO_BUFFER_H_
6 #define MEDIA_BASE_AUDIO_BUFFER_H_ 6 #define MEDIA_BASE_AUDIO_BUFFER_H_
7 7
8 #include <stddef.h> 8 #include <stddef.h>
9 #include <stdint.h> 9 #include <stdint.h>
10 10
(...skipping 46 matching lines...) Expand 10 before | Expand all | Expand 10 after
57 static scoped_refptr<AudioBuffer> CopyFrom( 57 static scoped_refptr<AudioBuffer> CopyFrom(
58 SampleFormat sample_format, 58 SampleFormat sample_format,
59 ChannelLayout channel_layout, 59 ChannelLayout channel_layout,
60 int channel_count, 60 int channel_count,
61 int sample_rate, 61 int sample_rate,
62 int frame_count, 62 int frame_count,
63 const uint8_t* const* data, 63 const uint8_t* const* data,
64 const base::TimeDelta timestamp, 64 const base::TimeDelta timestamp,
65 scoped_refptr<AudioBufferMemoryPool> pool = nullptr); 65 scoped_refptr<AudioBufferMemoryPool> pool = nullptr);
66 66
67 // Create an AudioBuffer for compressed bitstream. Its channel data is copied
68 // from |data|, and the size is |data_size|. |data| must not be null and
69 // |frame_count| must be >= 0.
70 static scoped_refptr<AudioBuffer> CopyBitstreamFrom(
71 SampleFormat sample_format,
72 ChannelLayout channel_layout,
73 int channel_count,
74 int sample_rate,
75 int frame_count,
76 const uint8_t* const* data,
77 const size_t data_size,
78 const base::TimeDelta timestamp,
79 scoped_refptr<AudioBufferMemoryPool> pool = nullptr);
80
67 // Create an AudioBuffer with |frame_count| frames. Buffer is allocated, but 81 // Create an AudioBuffer with |frame_count| frames. Buffer is allocated, but
68 // not initialized. Timestamp and duration are set to kNoTimestamp. For 82 // not initialized. Timestamp and duration are set to kNoTimestamp. For
69 // optimal efficiency when many buffers are being created, a 83 // optimal efficiency when many buffers are being created, a
70 // AudioBufferMemoryPool can be provided to avoid thrashing memory. 84 // AudioBufferMemoryPool can be provided to avoid thrashing memory.
71 static scoped_refptr<AudioBuffer> CreateBuffer( 85 static scoped_refptr<AudioBuffer> CreateBuffer(
72 SampleFormat sample_format, 86 SampleFormat sample_format,
73 ChannelLayout channel_layout, 87 ChannelLayout channel_layout,
74 int channel_count, 88 int channel_count,
75 int sample_rate, 89 int sample_rate,
76 int frame_count, 90 int frame_count,
77 scoped_refptr<AudioBufferMemoryPool> pool = nullptr); 91 scoped_refptr<AudioBufferMemoryPool> pool = nullptr);
78 92
93 // Create an AudioBuffer for compressed bitstream. Buffer is allocated, but
94 // not initialized. Timestamp and duration are set to kNoTimestamp.
95 static scoped_refptr<AudioBuffer> CreateBitstreamBuffer(
96 SampleFormat sample_format,
97 ChannelLayout channel_layout,
98 int channel_count,
99 int sample_rate,
100 int frame_count,
101 size_t data_size,
102 scoped_refptr<AudioBufferMemoryPool> pool = nullptr);
103
79 // Create an empty AudioBuffer with |frame_count| frames. 104 // Create an empty AudioBuffer with |frame_count| frames.
80 static scoped_refptr<AudioBuffer> CreateEmptyBuffer( 105 static scoped_refptr<AudioBuffer> CreateEmptyBuffer(
81 ChannelLayout channel_layout, 106 ChannelLayout channel_layout,
82 int channel_count, 107 int channel_count,
83 int sample_rate, 108 int sample_rate,
84 int frame_count, 109 int frame_count,
85 const base::TimeDelta timestamp); 110 const base::TimeDelta timestamp);
86 111
87 // Create a AudioBuffer indicating we've reached end of stream. 112 // Create a AudioBuffer indicating we've reached end of stream.
88 // Calling any method other than end_of_stream() on the resulting buffer 113 // Calling any method other than end_of_stream() on the resulting buffer
(...skipping 32 matching lines...) Expand 10 before | Expand all | Expand 10 after
121 146
122 // Return the number of channels. 147 // Return the number of channels.
123 int channel_count() const { return channel_count_; } 148 int channel_count() const { return channel_count_; }
124 149
125 // Return the number of frames held. 150 // Return the number of frames held.
126 int frame_count() const { return adjusted_frame_count_; } 151 int frame_count() const { return adjusted_frame_count_; }
127 152
128 // Return the sample rate. 153 // Return the sample rate.
129 int sample_rate() const { return sample_rate_; } 154 int sample_rate() const { return sample_rate_; }
130 155
156 // Return the sample format.
DaleCurtis 2017/05/04 19:05:44 Can we drop this? And instead return IsBitstreamFo
AndyWu 2017/05/06 01:46:48 Done, you are right, IsBitstreamFormat() is enough
157 SampleFormat sample_format() const { return sample_format_; }
158
131 // Return the channel layout. 159 // Return the channel layout.
132 ChannelLayout channel_layout() const { return channel_layout_; } 160 ChannelLayout channel_layout() const { return channel_layout_; }
133 161
134 base::TimeDelta timestamp() const { return timestamp_; } 162 base::TimeDelta timestamp() const { return timestamp_; }
135 base::TimeDelta duration() const { return duration_; } 163 base::TimeDelta duration() const { return duration_; }
136 void set_timestamp(base::TimeDelta timestamp) { timestamp_ = timestamp; } 164 void set_timestamp(base::TimeDelta timestamp) { timestamp_ = timestamp; }
137 165
138 // If there's no data in this buffer, it represents end of stream. 166 // If there's no data in this buffer, it represents end of stream.
139 bool end_of_stream() const { return end_of_stream_; } 167 bool end_of_stream() const { return end_of_stream_; }
140 168
(...skipping 20 matching lines...) Expand all
161 // [data,data+data_size) to the allocated buffer(s). If |data| is null, no 189 // [data,data+data_size) to the allocated buffer(s). If |data| is null, no
162 // data is copied. If |create_buffer| is false, no data buffer is created (or 190 // data is copied. If |create_buffer| is false, no data buffer is created (or
163 // copied to). 191 // copied to).
164 AudioBuffer(SampleFormat sample_format, 192 AudioBuffer(SampleFormat sample_format,
165 ChannelLayout channel_layout, 193 ChannelLayout channel_layout,
166 int channel_count, 194 int channel_count,
167 int sample_rate, 195 int sample_rate,
168 int frame_count, 196 int frame_count,
169 bool create_buffer, 197 bool create_buffer,
170 const uint8_t* const* data, 198 const uint8_t* const* data,
199 const size_t data_size,
171 const base::TimeDelta timestamp, 200 const base::TimeDelta timestamp,
172 scoped_refptr<AudioBufferMemoryPool> pool); 201 scoped_refptr<AudioBufferMemoryPool> pool);
173 202
174 virtual ~AudioBuffer(); 203 virtual ~AudioBuffer();
175 204
176 const SampleFormat sample_format_; 205 const SampleFormat sample_format_;
177 const ChannelLayout channel_layout_; 206 const ChannelLayout channel_layout_;
178 const int channel_count_; 207 const int channel_count_;
179 int sample_rate_; 208 int sample_rate_;
180 int adjusted_frame_count_; 209 int adjusted_frame_count_;
(...skipping 45 matching lines...) Expand 10 before | Expand all | Expand 10 after
226 base::Lock entry_lock_; 255 base::Lock entry_lock_;
227 using MemoryEntry = std::pair<AudioMemory, size_t>; 256 using MemoryEntry = std::pair<AudioMemory, size_t>;
228 std::list<MemoryEntry> entries_; 257 std::list<MemoryEntry> entries_;
229 258
230 DISALLOW_COPY_AND_ASSIGN(AudioBufferMemoryPool); 259 DISALLOW_COPY_AND_ASSIGN(AudioBufferMemoryPool);
231 }; 260 };
232 261
233 } // namespace media 262 } // namespace media
234 263
235 #endif // MEDIA_BASE_AUDIO_BUFFER_H_ 264 #endif // MEDIA_BASE_AUDIO_BUFFER_H_
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698