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 18:43:37 +0300
commit151cd32a10ee3636fd65a6e1f361849c06ecb732 (patch)
tree8277809be40ced2773874c86fcb723ea52964835
parent2027188c34698842c38b38f87f5560b08d7861dd (diff)
downloadgst-libav-151cd32a10ee3636fd65a6e1f361849c06ecb732.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;