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>2014-02-28 12:44:01 +0400
committerSergey Sharybin <sergey.vfx@gmail.com>2014-02-28 12:51:03 +0400
commite82b5f61fee64a02fd71be605fea75dad4f7ce22 (patch)
tree3549bf75fc33f4d81eea4085e5eda494f457d440
parent8fa15d105078251dc55909a85dfd9823c3907bce (diff)
Attempt to fix mixdown when building without sndfile
This case was handled specially in writeffmpeg.c and seems it makes audio export happy in all cases now. TODO: libav-10 doesn't work with AC3 codec yet because this bloody library ONLY supports FLTP format and FFmpeg ONLY supports FLT. This is not fun guy, it really isn't! Where's your conscience?? CC: nexyon
-rw-r--r--intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp8
1 files changed, 5 insertions, 3 deletions
diff --git a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
index 859227a5006..dcacf71a2d3 100644
--- a/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
+++ b/intern/audaspace/ffmpeg/AUD_FFMPEGWriter.cpp
@@ -175,8 +175,10 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs,
m_output_buffer.resize(FF_MIN_BUFFER_SIZE);
int samplesize = AUD_MAX(AUD_SAMPLE_SIZE(m_specs), AUD_DEVICE_SAMPLE_SIZE(m_specs));
- if(m_codecCtx->frame_size <= 1)
- m_input_size = 0;
+ if(m_codecCtx->frame_size <= 1) {
+ m_input_size = FF_MIN_BUFFER_SIZE * 8 / m_codecCtx->bits_per_coded_sample / m_codecCtx->channels;
+ m_input_buffer.resize(m_input_size * samplesize);
+ }
else
{
m_input_buffer.resize(m_codecCtx->frame_size * samplesize);
@@ -190,7 +192,7 @@ AUD_FFMPEGWriter::AUD_FFMPEGWriter(std::string filename, AUD_DeviceSpecs specs,
avcodec_get_frame_defaults(m_frame);
m_frame->linesize[0] = m_input_size * samplesize;
m_frame->format = m_codecCtx->sample_fmt;
- m_frame->nb_samples = m_codecCtx->frame_size;
+ m_frame->nb_samples = m_input_size;
# ifdef FFMPEG_HAVE_AVFRAME_SAMPLE_RATE
m_frame->sample_rate = m_codecCtx->sample_rate;
# endif