[Bug 777780] New: GstBaseParse incorrectly handles non-flush seek
GStreamer (GNOME Bugzilla)
bugzilla at gnome.org
Thu Jan 26 09:49:18 UTC 2017
https://bugzilla.gnome.org/show_bug.cgi?id=777780
Bug ID: 777780
Summary: GstBaseParse incorrectly handles non-flush seek
Classification: Platform
Product: GStreamer
Version: git master
OS: Mac OS
Status: NEW
Severity: normal
Priority: Normal
Component: gstreamer (core)
Assignee: gstreamer-bugs at lists.freedesktop.org
Reporter: julien.isorce at gmail.com
QA Contact: gstreamer-bugs at lists.freedesktop.org
GNOME version: ---
With a simple hello world app that basically just creates a playbin and sets
its uri, it is possible to highlight a problem that prevents to properly loop
over playbacks.
When doing a gst_element_seek(flag=~flush, position=0) upon
GST_MESSAGE_SEGMENT_DONE it waits the duration of the stream before looping.
This is because segment.base is incremented by twice the duration of the
stream.
I encountered the problem when playing audio files like file.{aac, flac, mp3,
ac3} where there is no proper demuxer involved. More generally the problem
happens when this is GstBaseParse that handles the seek.
The segment.base is first incremented here
https://cgit.freedesktop.org/gstreamer/gstreamer/tree/libs/gst/base/gstbaseparse.c#n4551
and then here
https://cgit.freedesktop.org/gstreamer/gstreamer/tree/libs/gst/base/gstbaseparse.c#n4649
(the memcpy just below actually writes it)
In short it is like gst_segment_to_running_time is called recursively twice
(output transfered to input).
So I am wondering if the line 4649 pointed above should just be removed. Any
comment ? Thx!
--
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.
More information about the gstreamer-bugs
mailing list