From: Sebastian Dröge Date: Sat, 29 Mar 2014 09:16:12 +0000 (+0100) Subject: baseparse: Fix splitting and reversing of GOPs in reverse playback mode X-Git-Tag: 1.3.1~74 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a76db74496ec139da723e34cd384edf073f91a06;p=platform%2Fupstream%2Fgstreamer.git 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. --- diff --git a/libs/gst/base/gstbaseparse.c b/libs/gst/base/gstbaseparse.c index e99b7bc..bc5a513 100644 --- a/libs/gst/base/gstbaseparse.c +++ b/libs/gst/base/gstbaseparse.c @@ -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) */