From 4e6a1b9634954f2382c29d93ec0ce1cddc7da620 Mon Sep 17 00:00:00 2001 From: Julien Isorce Date: Thu, 26 Dec 2019 11:24:37 -0800 Subject: [PATCH] msdkdec: trigger renegotiation if video info changes Useful when framerate changes. Previously it was only checking for resolution change but renego should happen if any video info changes. --- sys/msdk/gstmsdkdec.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/sys/msdk/gstmsdkdec.c b/sys/msdk/gstmsdkdec.c index cb4e15e..4517032 100644 --- a/sys/msdk/gstmsdkdec.c +++ b/sys/msdk/gstmsdkdec.c @@ -768,12 +768,12 @@ gst_msdkdec_set_format (GstVideoDecoder * decoder, GstVideoCodecState * state) GstMsdkDec *thiz = GST_MSDKDEC (decoder); if (thiz->input_state) { - /* mark for re-negotiation if display resolution changes */ - if ((GST_VIDEO_INFO_WIDTH (&thiz->input_state->info) != - GST_VIDEO_INFO_WIDTH (&state->info)) || - GST_VIDEO_INFO_HEIGHT (&thiz->input_state->info) != - GST_VIDEO_INFO_HEIGHT (&state->info)) + /* mark for re-negotiation if display resolution or any other video info + * changes like framerate. */ + if (!gst_video_info_is_equal (&thiz->input_state->info, &state->info)) { + GST_INFO_OBJECT (thiz, "Schedule renegotiation as video info changed"); thiz->do_renego = TRUE; + } gst_video_codec_state_unref (thiz->input_state); } thiz->input_state = gst_video_codec_state_ref (state); -- 2.7.4