ext/ffmpeg/gstffmpegdec.c: When we receive a newsegment event, we must drain any pending frames because they belong t...

Original commit message from CVS:
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_sink_event):
When we receive a newsegment event, we must drain any pending frames
because they belong to the previous segment. This fixes some cases of
very large timestamps when doing segment seeks.
This commit is contained in:
Wim Taymans 2008-03-11 16:07:11 +00:00
parent be4b2533a9
commit 52b26ee96e
3 changed files with 12 additions and 1 deletions

View file

@ -1,3 +1,10 @@
2008-03-11 Wim Taymans <wim.taymans@collabora.co.uk>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_sink_event):
When we receive a newsegment event, we must drain any pending frames
because they belong to the previous segment. This fixes some cases of
very large timestamps when doing segment seeks.
2008-03-06 Wim Taymans <wim.taymans@collabora.co.uk>
* ext/ffmpeg/gstffmpegdec.c: (gst_ffmpegdec_open),

2
common

@ -1 +1 @@
Subproject commit e02bd43fe6b9e45536eccbf5b7a5f9eae62030fd
Subproject commit 170f8e91adc7157f6e708ffa58ca22d10e4e45da

View file

@ -2046,6 +2046,10 @@ gst_ffmpegdec_sink_event (GstPad * pad, GstEvent * event)
goto invalid_format;
}
/* drain pending frames before trying to use the new segment, queued
* buffers belonged to the previous segment. */
gst_ffmpegdec_drain (ffmpegdec);
GST_DEBUG_OBJECT (ffmpegdec,
"NEWSEGMENT in time start %" GST_TIME_FORMAT " -- stop %"
GST_TIME_FORMAT, GST_TIME_ARGS (start), GST_TIME_ARGS (stop));