[gst-devel] information on gst_segment_clip() and the GstBaseSink Class
sameer at nextbitcpu.com
Thu Feb 23 00:54:01 CET 2006
I was working on how avsync happens in gstreamer.
Now, avsync is provided by the GstBaseSink Class...
through my study of the basesink class i found out that avsync can only
happen if a new segment is sent, otherwise ill get the message saying
"Buffer Received without new segment: Cannot Sync to Clock"
so heres by question:
say my demultiplexer sends a new segment with the start time as the
base_scr (in case of transport stream demux) and the end time as
-1(infinity) ...and then starts sending video frames with a valid
timestamp, after being decoded these frames will be sent to xvimagesink
(which inherits the basesink)...
in the sync'ing functionality of the basesink i found out that the start
time and the end time of the received frame are extracted via the
get_times function call and then gst_segment_clip is done to find out
whether the frame shud be displayed or dropped...
so i what i would like to know is when the segment clip is done are
boundaries of the segment clipped too...
if the segment sent has starttime of 0 and end time of -1,
next say a frame is sent with timestamp of 3...and say the frame has to
be displayed and not dropped, so will the segment boundary be changed
[ 0 to -1 ] to
[ 3 to -1 ]
what im confused on is that :say a frame with timestamp 3 is received
and displayed and say the next frame with timestamp 2 arrives (not sure
whether this could happen :), or case where the display time of the
nextframe frame has passed )... how will it be dropped... (if the
segment itself is clipped then,.. it makes sense to me, if not then i
wonder how it happens..)
next thing is that in the basesink theres this case in the switch
which prints "Buffer to late, rendering anyway"
...what is meant by buffer to late....
is it that the display time has passed, but its rendering the frame
or is it that the display time has not yet come but it is rendering...
hope u guys understood my questions :)
thanks in advance
More information about the gstreamer-devel