baseparse: Make sure to set the DISCONT flag on the first buffer of each GOP in reverse playback mode

This commit is contained in:
Sebastian Dröge 2014-04-03 20:31:16 +02:00
parent 03a2388b60
commit 37670af79c

View file

@ -2501,6 +2501,7 @@ gst_base_parse_send_buffers (GstBaseParse * parse)
GSList *send = NULL;
GstBuffer *buf;
GstFlowReturn ret = GST_FLOW_OK;
gboolean first = TRUE;
send = parse->priv->buffers_send;
@ -2514,6 +2515,13 @@ gst_base_parse_send_buffers (GstBaseParse * parse)
GST_TIME_ARGS (GST_BUFFER_PTS (buf)),
GST_TIME_ARGS (GST_BUFFER_DURATION (buf)), GST_BUFFER_OFFSET (buf));
/* Make sure the first buffer is always DISCONT. If we split
* GOPs inside the parser this is otherwise not guaranteed */
if (first) {
GST_BUFFER_FLAG_SET (buf, GST_BUFFER_FLAG_DISCONT);
first = FALSE;
}
/* iterate output queue an push downstream */
ret = gst_pad_push (parse->srcpad, buf);
send = g_slist_delete_link (send, send);