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: <https://gitlab.freedesktop.org/gstreamer/gst-plugins-bad/-/merge_requests/2448>
This commit is contained in:
He Junyan 2021-07-29 21:30:32 +08:00 committed by GStreamer Marge Bot
parent 2505ab17e9
commit 70ce2327d0

View file

@ -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;