vah264enc: Set codec frame sync point if IDR
authorVíctor Manuel Jáquez Leal <vjaquez@igalia.com>
Tue, 9 Aug 2022 10:29:34 +0000 (12:29 +0200)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Wed, 10 Aug 2022 08:00:18 +0000 (08:00 +0000)
This flag is used by GstVideoEncoder base class for certain configurations.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/2852>

subprojects/gst-plugins-bad/sys/va/gstvah264enc.c

index 33dfc24..c06990a 100644 (file)
@@ -1623,6 +1623,7 @@ _push_one_frame (GstVaBaseEnc * base, GstVideoCodecFrame * gst_frame,
     frame->poc =
         ((self->gop.cur_frame_index * 2) % self->gop.max_pic_order_cnt);
 
+    /* TODO: move most this logic onto vabaseenc class  */
     if (self->gop.cur_frame_index == 0) {
       g_assert (frame->poc == 0);
       GST_LOG_OBJECT (self, "system_frame_number: %d, an IDR frame, starts"
@@ -1630,6 +1631,8 @@ _push_one_frame (GstVaBaseEnc * base, GstVideoCodecFrame * gst_frame,
 
       g_queue_clear_full (&base->ref_list,
           (GDestroyNotify) gst_video_codec_frame_unref);
+
+      GST_VIDEO_CODEC_FRAME_SET_SYNC_POINT (gst_frame);
     }
 
     frame->type = self->gop.frame_types[self->gop.cur_frame_index].slice_type;