summaryrefslogtreecommitdiffstats
path: root/media
diff options
context:
space:
mode:
authorphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-18 21:05:03 +0000
committerphajdan.jr@chromium.org <phajdan.jr@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-04-18 21:05:03 +0000
commit58a0644d395cdc0c1f921a527f3b6d6ba69d1977 (patch)
tree8f5611a944fcf461dbb2d6093c8d90513ba895d2 /media
parent85c363c9cff44603c54b6d14517e9a1c34fea398 (diff)
downloadchromium_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.cc10
-rw-r--r--media/filters/ffmpeg_audio_decoder.cc10
-rw-r--r--media/media.gyp20
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"', {