av1parse: Set the output buffer flags correctly.

The current code forgets to clear some flags and has some typo.

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/3182>
This commit is contained in:
He Junyan 2022-10-14 15:27:52 +08:00 committed by GStreamer Marge Bot
parent dbed9978ac
commit b7d3a219ab

View 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;
}
if (self->keyframe) {
GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
self->keyframe = FALSE;
} else {
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_HEADER);
}
if (frame_finished)
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_MARKER);
if (self->keyframe) {
GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
self->keyframe = FALSE;
} else {
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DELTA_UNIT);
}
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);