From 70ce2327d0dc10941eafe01a39cb3dc6d776a800 Mon Sep 17 00:00:00 2001 From: He Junyan Date: Thu, 29 Jul 2021 21:30:32 +0800 Subject: [PATCH] codecs: h264dec: Output the picture directly if already a frame. We forget one case that is the frame and field pictures may be mixed together. For this case, the dpb is interlaced while the last picture may be a complete frame. We do not need to cache that complete picture and should output it directly. Part-of: --- gst-libs/gst/codecs/gsth264decoder.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gst-libs/gst/codecs/gsth264decoder.c b/gst-libs/gst/codecs/gsth264decoder.c index f179be41ad..2632896886 100644 --- a/gst-libs/gst/codecs/gsth264decoder.c +++ b/gst-libs/gst/codecs/gsth264decoder.c @@ -724,7 +724,7 @@ output_picture_directly (GstH264Decoder * self, GstH264Picture * picture) GstH264Picture *out_pic = NULL; gboolean ret = TRUE; - if (!gst_h264_dpb_get_interlaced (priv->dpb)) { + if (GST_H264_PICTURE_IS_FRAME (picture)) { g_assert (priv->last_field == NULL); out_pic = g_steal_pointer (&picture); ret = TRUE;