summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2016-04-28 18:43:37 +0300
committerSebastian Dröge <sebastian@centricular.com>2016-04-28 20:32:25 +0300
commit01be7907e7021d1d3f7e534355cdb639fbbac226 (patch)
treea342add8b6da264faf69065049c1e0a6ce6e7cf6
parent97cc1b9c160860d659764f8de7cc2ccf5b04927f (diff)
downloadgst-libav-01be7907e7021d1d3f7e534355cdb639fbbac226.tar.gz
avaudenc: Set all required fields in the AVFrame
Various functions in libavcodec need them, like the format, sample rate, etc. and just having them in the context is not enough. This fixes draining for codecs like MP2 that require a fixed frame size and require libav to pad the last frame if required.
-rw-r--r--ext/libav/gstavaudenc.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/ext/libav/gstavaudenc.c b/ext/libav/gstavaudenc.c
index 93eecf5..b895a9d 100644
--- a/ext/libav/gstavaudenc.c
+++ b/ext/libav/gstavaudenc.c
@@ -475,6 +475,10 @@ gst_ffmpegaudenc_encode_audio (GstFFMpegAudEnc * ffmpegaudenc,
info = gst_audio_encoder_get_audio_info (enc);
planar = av_sample_fmt_is_planar (ffmpegaudenc->context->sample_fmt);
+ frame->format = ffmpegaudenc->context->sample_fmt;
+ frame->sample_rate = ffmpegaudenc->context->sample_rate;
+ frame->channels = ffmpegaudenc->context->channels;
+ frame->channel_layout = ffmpegaudenc->context->channel_layout;
if (planar && info->channels > 1) {
gint channels;