av1parse: Set the output buffer flags correctly.
authorHe Junyan <junyan.he@intel.com>
Fri, 14 Oct 2022 07:27:52 +0000 (15:27 +0800)
committerGStreamer Marge Bot <gitlab-merge-bot@gstreamer-foundation.org>
Fri, 21 Oct 2022 11:16:13 +0000 (11:16 +0000)
The current code forgets to clear some flags and has some typo.

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

subprojects/gst-plugins-bad/gst/videoparsers/gstav1parse.c

index 2ad5e7d..73c45f5 100644 (file)
@@ -961,20 +961,29 @@ gst_av1_parse_push_data (GstAV1Parse * self, GstBaseParseFrame * frame,
     if (self->discont) {
       GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
       self->discont = FALSE;
+    } else {
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
     }
+
     if (self->header) {
       GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
       self->header = FALSE;
+    } else {
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_HEADER);
     }
+
     if (self->keyframe) {
-      GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
       self->keyframe = FALSE;
     } else {
-      GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
+      GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
     }
 
-    if (frame_finished)
-      GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_MARKER);
+    if (frame_finished) {
+      GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_MARKER);
+    } else {
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_MARKER);
+    }
 
     if (self->align == GST_AV1_PARSE_ALIGN_FRAME) {
       if (!self->show_frame) {
@@ -982,6 +991,8 @@ gst_av1_parse_push_data (GstAV1Parse * self, GstBaseParseFrame * frame,
       } else {
         GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DECODE_ONLY);
       }
+    } else {
+      GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DECODE_ONLY);
     }
 
     gst_buffer_replace (&frame->out_buffer, buf);