From: Vivia Nikolaidou Date: Mon, 28 Nov 2016 13:14:18 +0000 (+0200) Subject: x264enc: Auto-detect interlace mode from caps X-Git-Tag: 1.12.2~53 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f7d82312bba13806f32d8de56a3d66575bfb08c7;p=platform%2Fupstream%2Fgst-plugins-ugly.git x264enc: Auto-detect interlace mode from caps If the caps are interlaced, interlacing is always enabled on the encoder. If the interlace-mode field is missing or if it's progressive, the encoder uses the "interlaced" property. https://bugzilla.gnome.org/show_bug.cgi?id=775228 --- diff --git a/ext/x264/gstx264enc.c b/ext/x264/gstx264enc.c index 5208ba20..5f91b242 100644 --- a/ext/x264/gstx264enc.c +++ b/ext/x264/gstx264enc.c @@ -2264,6 +2264,12 @@ gst_x264_enc_set_format (GstVideoEncoder * video_enc, gst_caps_unref (template_caps); + if (GST_VIDEO_INFO_IS_INTERLACED (&state->info)) + g_string_append_printf (encoder->option_string, ":interlaced=%d", TRUE); + else + g_string_append_printf (encoder->option_string, ":interlaced=%d", + encoder->interlaced); + if (!gst_x264_enc_init_encoder (encoder)) return FALSE; @@ -2709,8 +2715,6 @@ gst_x264_enc_set_property (GObject * object, guint prop_id, break; case ARG_INTERLACED: encoder->interlaced = g_value_get_boolean (value); - g_string_append_printf (encoder->option_string, ":interlaced=%d", - encoder->interlaced); break; case ARG_FRAME_PACKING: encoder->frame_packing = g_value_get_enum (value);