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) { if (self->discont) {
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT); GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
self->discont = FALSE; self->discont = FALSE;
} else {
GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DISCONT);
} }
if (self->header) { if (self->header) {
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER); GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_HEADER);
self->header = FALSE; self->header = FALSE;
}
if (self->keyframe) {
GST_BUFFER_FLAG_UNSET (buffer, GST_BUFFER_FLAG_DELTA_UNIT);
self->keyframe = FALSE;
} else { } else {
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_DELTA_UNIT); GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_HEADER);
} }
if (frame_finished) if (self->keyframe) {
GST_BUFFER_FLAG_SET (buffer, GST_BUFFER_FLAG_MARKER); 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->align == GST_AV1_PARSE_ALIGN_FRAME) {
if (!self->show_frame) { if (!self->show_frame) {
@ -982,6 +991,8 @@ gst_av1_parse_push_data (GstAV1Parse * self, GstBaseParseFrame * frame,
} else { } else {
GST_BUFFER_FLAG_UNSET (buf, GST_BUFFER_FLAG_DECODE_ONLY); 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); gst_buffer_replace (&frame->out_buffer, buf);