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

Unified Diff: media/base/audio_decoder_config.h

Issue 11280301: Roll FFMpeg for M26. Fix ffmpeg float audio decoding. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Fix DCHECK. Roll DEPS for fix. Created 8 years 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 side-by-side diff with in-line comments
Download patch
Index: media/base/audio_decoder_config.h
diff --git a/media/base/audio_decoder_config.h b/media/base/audio_decoder_config.h
index ce62eb85a1f6389d3fdac77866eeba19200e1279..cef81fe6660d8836435aba0ccb14f53601368146 100644
--- a/media/base/audio_decoder_config.h
+++ b/media/base/audio_decoder_config.h
@@ -15,7 +15,7 @@ namespace media {
enum AudioCodec {
// These values are histogrammed over time; do not change their ordinal
// values. When deleting a codec replace it with a dummy value; when adding a
- // codec, do so at the bottom (and update kAudioCodecMax).
+ // codec, do so at the bottom before kAudioCodecMax.
kUnknownAudioCodec = 0,
kCodecAAC,
kCodecMP3,
@@ -35,7 +35,23 @@ enum AudioCodec {
// The only acceptable time to add a new codec is if there is production code
// that uses said codec in the same CL.
- kAudioCodecMax = kCodecPCM_S24BE // Must equal the last "real" codec above.
+ // Must always be last!
+ kAudioCodecMax
+};
+
+enum SampleFormat {
+ // These values are histogrammed over time; do not change their ordinal
+ // values. When deleting a sample format replace it with a dummy value; when
+ // adding a sample format, do so at the bottom before kSampleFormatMax.
+ kUnknownSampleFormat = 0,
+ kSampleFormatU8, // Unsigned 8-bit w/ bias of 128.
+ kSampleFormatS16, // Signed 16-bit.
+ kSampleFormatS32, // Signed 32-bit.
+ kSampleFormatF32, // Float 32-bit.
+ kSampleFormatPlanarF32, // Float planar.
+
+ // Must always be last!
+ kSampleFormatMax
};
// TODO(dalecurtis): FFmpeg API uses |bytes_per_channel| instead of
@@ -49,7 +65,7 @@ class MEDIA_EXPORT AudioDecoderConfig {
// Constructs an initialized object. It is acceptable to pass in NULL for
// |extra_data|, otherwise the memory is copied.
- AudioDecoderConfig(AudioCodec codec, int bits_per_channel,
+ AudioDecoderConfig(AudioCodec codec, SampleFormat sample_format,
ChannelLayout channel_layout, int samples_per_second,
const uint8* extra_data, size_t extra_data_size,
bool is_encrypted);
@@ -57,11 +73,10 @@ class MEDIA_EXPORT AudioDecoderConfig {
~AudioDecoderConfig();
// Resets the internal state of this object.
- void Initialize(AudioCodec codec, int bits_per_channel,
+ void Initialize(AudioCodec codec, SampleFormat sample_format,
ChannelLayout channel_layout, int samples_per_second,
const uint8* extra_data, size_t extra_data_size,
- bool is_encrypted,
- bool record_stats);
+ bool is_encrypted, bool record_stats);
// Deep copies |audio_config|.
void CopyFrom(const AudioDecoderConfig& audio_config);
@@ -74,24 +89,26 @@ class MEDIA_EXPORT AudioDecoderConfig {
// Note: The contents of |extra_data_| are compared not the raw pointers.
bool Matches(const AudioDecoderConfig& config) const;
- AudioCodec codec() const;
- int bits_per_channel() const;
- ChannelLayout channel_layout() const;
- int samples_per_second() const;
- int bytes_per_frame() const;
+ AudioCodec codec() const { return codec_; }
+ int bits_per_channel() const { return bits_per_channel_; }
+ ChannelLayout channel_layout() const { return channel_layout_; }
+ int samples_per_second() const { return samples_per_second_; }
+ SampleFormat sample_format() const { return sample_format_; }
+ int bytes_per_frame() const { return bytes_per_frame_; }
// Optional byte data required to initialize audio decoders such as Vorbis
// codebooks.
- uint8* extra_data() const;
- size_t extra_data_size() const;
+ uint8* extra_data() const { return extra_data_.get(); }
+ size_t extra_data_size() const { return extra_data_size_; }
// Whether the audio stream is potentially encrypted.
// Note that in a potentially encrypted audio stream, individual buffers
// can be encrypted or not encrypted.
- bool is_encrypted() const;
+ bool is_encrypted() const { return is_encrypted_; }
private:
AudioCodec codec_;
+ SampleFormat sample_format_;
int bits_per_channel_;
ChannelLayout channel_layout_;
int samples_per_second_;
« no previous file with comments | « DEPS ('k') | media/base/audio_decoder_config.cc » ('j') | media/filters/ffmpeg_audio_decoder.cc » ('J')

Powered by Google App Engine
This is Rietveld 408576698