Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergey Sharybin <sergey.vfx@gmail.com>2013-02-28 22:28:08 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2013-02-28 22:28:08 +0400
commitd7e427beffb6589ada91c4336e6ee86459cb24d8 (patch)
tree2c082fd5928429760a4e8d3f823cb8dcb27c62b9
parent402f2159fa4cb76c602c0b9a9e3191b90c702c54 (diff)
Fix/workaround for newer FFmpeg 1.1.3 and MP3 decoder
FFmpeg is now using S16P sampler for MP3 which is not actually supported by audaspace, so request for S16 sampler instead.
-rw-r--r--intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp5
-rw-r--r--intern/ffmpeg/ffmpeg_compat.h1
2 files changed, 6 insertions, 0 deletions
diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
index 831e1998182..47bfe4e69b9 100644
--- a/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGReader.cpp
@@ -133,6 +133,11 @@ void AUD_FFMPEGReader::init()
if(!aCodec)
AUD_THROW(AUD_ERROR_FFMPEG, nodecoder_error);
+#ifdef FFMPEG_SAMPLE_FMT_S16P_SUPPORTED
+ if(m_codecCtx->sample_fmt == AV_SAMPLE_FMT_S16P)
+ m_codecCtx->request_sample_fmt = AV_SAMPLE_FMT_S16;
+#endif
+
if(avcodec_open2(m_codecCtx, aCodec, NULL) < 0)
AUD_THROW(AUD_ERROR_FFMPEG, codecopen_error);
diff --git a/intern/ffmpeg/ffmpeg_compat.h b/intern/ffmpeg/ffmpeg_compat.h
index c07dc869291..8663c96a22e 100644
--- a/intern/ffmpeg/ffmpeg_compat.h
+++ b/intern/ffmpeg/ffmpeg_compat.h
@@ -74,6 +74,7 @@
#if ((LIBAVUTIL_VERSION_MAJOR > 51) || (LIBAVUTIL_VERSION_MAJOR == 51) && (LIBAVUTIL_VERSION_MINOR >= 32))
#define FFMPEG_FFV1_ALPHA_SUPPORTED
+#define FFMPEG_SAMPLE_FMT_S16P_SUPPORTED
#endif
#if ((LIBAVUTIL_VERSION_MAJOR < 51) || (LIBAVUTIL_VERSION_MAJOR == 51) && (LIBAVUTIL_VERSION_MINOR < 22))