baseparse: Fix splitting and reversing of GOPs in reverse playback mode

We iterate the current discont group backwards and push each GOP forwards,
starting from the last one. However if the first buffer in the current
discont group is a keyframe, we will keep it around until next time,
which is far from ideal. Just push it.
This commit is contained in:
Sebastian Dröge 2014-03-29 10:16:12 +01:00
parent f85ce91e9d
commit a76db74496

View file

@ -2669,8 +2669,10 @@ gst_base_parse_finish_fragment (GstBaseParse * parse, gboolean prev_head)
parse->priv->buffers_queued);
}
/* audio may have all marked as keyframe, so arrange to send here */
if (!seen_delta)
/* audio may have all marked as keyframe, so arrange to send here. Also
* we might have ended the loop above on a keyframe, in which case we
* should */
if (!seen_delta || seen_key)
ret = gst_base_parse_send_buffers (parse);
/* any trailing unused no longer usable (ideally none) */