[Bug 787621] GstPlayer seeks to a specific point hangs(100%)

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Thu Sep 14 09:55:50 UTC 2017


https://bugzilla.gnome.org/show_bug.cgi?id=787621

--- Comment #2 from luckychou <luckychsj at gmail.com> ---
I looked into it further and found that it seems that the queue behind the
demux module has a relationship,the demux component pauses once the audio/video
pipeline is filled up with data. This means that now the transport stream is no
longer processed and required amount of a/v data is not passed on. The audio
chain does not get a complete buffer so is stuck in prerolling. 

default queue size:5s,which filled up with < 1min25sec 'data,but we want >
1min30sec data(SEGMENT time segment start=0:01:30.000000000 )  

default gstsegment.c:835:gst_segment_to_running_time: position(84600000000) <
start(90000000000)
default gstsegment.c:835:gst_segment_to_running_time: position(84600000000) <
start(90000000000)
...

So the situation is ,undecoded queue data filled with garbage data, and blocked
the demux component, but vqueue / aqueue  no valid data to complete preroll.

I verified, if the queue is set to <(default_size=5s) +
(1min30sec-1min25sec=5s)= 10s>, preroll ok.

My question is, since we already have a new segment, why not drop most of data
< newsegment.start to avoid the above situation?

Such as queue max_size = 5s, we make sure that the new data enqueue  meets
following requirements: 
* newdata.position + 1s < segment.start ,drop (1s is just an example, perhaps a
value between 1 and 5 s?) 

Above is only my personal understanding, please do not hesitate to correct me.
-)

-- 
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