summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSebastian Dröge <sebastian@centricular.com>2019-06-19 15:43:42 +0300
committerTim-Philipp Müller <tim@centricular.com>2019-08-07 01:06:10 +0100
commitdf67c32c065d4bb7fb657f8aea43a926c64eb453 (patch)
tree653b004b836197bb75a42144b4acee4e443b5084
parentfa4c6c880bad0a3f481b5325a5491b64f1be3973 (diff)
downloadgst-libav-df67c32c065d4bb7fb657f8aea43a926c64eb453.tar.gz
avvidenc: Correctly signal interlaced input to ffmpeg when the input caps are interlaced
Regression from 1e4529ced2dadbfed4ac10d639a45dbcb0660129
-rw-r--r--ext/libav/gstavvidenc.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/ext/libav/gstavvidenc.c b/ext/libav/gstavvidenc.c
index 8dc514b..621d00b 100644
--- a/ext/libav/gstavvidenc.c
+++ b/ext/libav/gstavvidenc.c
@@ -254,6 +254,10 @@ gst_ffmpegvidenc_set_format (GstVideoEncoder * encoder,
/* additional avcodec settings */
gst_ffmpeg_cfg_fill_context (G_OBJECT (ffmpegenc), ffmpegenc->context);
+ if (GST_VIDEO_INFO_IS_INTERLACED (&state->info))
+ ffmpegenc->context->flags |=
+ AV_CODEC_FLAG_INTERLACED_DCT | AV_CODEC_FLAG_INTERLACED_ME;
+
/* and last but not least the pass; CBR, 2-pass, etc */
ffmpegenc->context->flags |= ffmpegenc->pass;
switch (ffmpegenc->pass) {
@@ -554,8 +558,7 @@ gst_ffmpegvidenc_send_frame (GstFFMpegVidEnc * ffmpegenc,
gst_ffmpegvidenc_add_cc (frame->input_buffer, picture);
- if (ffmpegenc->context->flags & (AV_CODEC_FLAG_INTERLACED_DCT |
- AV_CODEC_FLAG_INTERLACED_ME)) {
+ if (GST_VIDEO_INFO_IS_INTERLACED (&ffmpegenc->input_state->info)) {
picture->interlaced_frame = TRUE;
picture->top_field_first =
GST_BUFFER_FLAG_IS_SET (frame->input_buffer, GST_VIDEO_BUFFER_FLAG_TFF)