diff options
author | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-18 21:05:03 +0000 |
---|---|---|
committer | phajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-04-18 21:05:03 +0000 |
commit | 58a0644d395cdc0c1f921a527f3b6d6ba69d1977 (patch) | |
tree | 8f5611a944fcf461dbb2d6093c8d90513ba895d2 /media | |
parent | 85c363c9cff44603c54b6d14517e9a1c34fea398 (diff) | |
download | chromium_src-58a0644d395cdc0c1f921a527f3b6d6ba69d1977.zip chromium_src-58a0644d395cdc0c1f921a527f3b6d6ba69d1977.tar.gz chromium_src-58a0644d395cdc0c1f921a527f3b6d6ba69d1977.tar.bz2 |
Linux: make it possible to compile against libav when use_system_ffmpeg==1
libav's AVFrame doesn't have channels field.
BUG=none
Review URL: https://codereview.chromium.org/13991013
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@195001 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'media')
-rw-r--r-- | media/filters/audio_file_reader.cc | 10 | ||||
-rw-r--r-- | media/filters/ffmpeg_audio_decoder.cc | 10 | ||||
-rw-r--r-- | media/media.gyp | 20 |
3 files changed, 31 insertions, 9 deletions
diff --git a/media/filters/audio_file_reader.cc b/media/filters/audio_file_reader.cc index 32627b0..60771cd 100644 --- a/media/filters/audio_file_reader.cc +++ b/media/filters/audio_file_reader.cc @@ -179,13 +179,19 @@ int AudioFileReader::Read(AudioBus* audio_bus) { break; } +#ifdef CHROMIUM_NO_AVFRAME_CHANNELS + int channels = av_get_channel_layout_nb_channels( + av_frame->channel_layout); +#else + int channels = av_frame->channels; +#endif if (av_frame->sample_rate != sample_rate_ || - av_frame->channels != channels_ || + channels != channels_ || av_frame->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!" << " Sample Rate: " << av_frame->sample_rate << " vs " << sample_rate_ - << ", Channels: " << av_frame->channels << " vs " + << ", Channels: " << channels << " vs " << channels_ << ", Sample Format: " << av_frame->format << " vs " << av_sample_format_; diff --git a/media/filters/ffmpeg_audio_decoder.cc b/media/filters/ffmpeg_audio_decoder.cc index 6df6112..92c851f 100644 --- a/media/filters/ffmpeg_audio_decoder.cc +++ b/media/filters/ffmpeg_audio_decoder.cc @@ -396,14 +396,20 @@ void FFmpegAudioDecoder::RunDecodeLoop( } int decoded_audio_size = 0; +#ifdef CHROMIUM_NO_AVFRAME_CHANNELS + int channels = av_get_channel_layout_nb_channels( + av_frame_->channel_layout); +#else + int channels = av_frame_->channels; +#endif if (frame_decoded) { if (av_frame_->sample_rate != samples_per_second_ || - av_frame_->channels != channels_ || + channels != channels_ || av_frame_->format != av_sample_format_) { DLOG(ERROR) << "Unsupported midstream configuration change!" << " Sample Rate: " << av_frame_->sample_rate << " vs " << samples_per_second_ - << ", Channels: " << av_frame_->channels << " vs " + << ", Channels: " << channels << " vs " << channels_ << ", Sample Format: " << av_frame_->format << " vs " << av_sample_format_; diff --git a/media/media.gyp b/media/media.gyp index 057a76a..8c37472 100644 --- a/media/media.gyp +++ b/media/media.gyp @@ -510,15 +510,25 @@ ], }], ['use_system_ffmpeg == 1', { - 'defines': [ + 'cflags': [ '<!(python <(DEPTH)/tools/compile_test/compile_test.py ' - '--code "#include <libavcodec/avcodec.h>\n' + '--code "#define __STDC_CONSTANT_MACROS\n' + '#include <libavcodec/avcodec.h>\n' 'int test() { return AV_CODEC_ID_OPUS; }" ' - '--on-failure CHROMIUM_OMIT_AV_CODEC_ID_OPUS)', + '--on-failure -DCHROMIUM_OMIT_AV_CODEC_ID_OPUS=1)', + '<!(python <(DEPTH)/tools/compile_test/compile_test.py ' - '--code "#include <libavcodec/avcodec.h>\n' + '--code "#define __STDC_CONSTANT_MACROS\n' + '#include <libavcodec/avcodec.h>\n' 'int test() { return AV_CODEC_ID_VP9; }" ' - '--on-failure CHROMIUM_OMIT_AV_CODEC_ID_VP9)', + '--on-failure -DCHROMIUM_OMIT_AV_CODEC_ID_VP9=1)', + + '<!(python <(DEPTH)/tools/compile_test/compile_test.py ' + '--code "#define __STDC_CONSTANT_MACROS\n' + '#include <libavcodec/avcodec.h>\n' + 'int test() { struct AVFrame frame;\n' + 'return av_frame_get_channels(&frame); }" ' + '--on-failure -DCHROMIUM_NO_AVFRAME_CHANNELS=1)', ], }], ['OS == "ios"', { |