Pause and resume live video with latest frames without affecting the sink

vk_gst venkateshkuppan26 at gmail.com
Thu Aug 23 10:41:51 UTC 2018


Hello Antonio and Nicolas,


@antonio
1. Yes, I am following the same blog written by 'slomo' for dynamic
pipelines. It#s constructed very precise and with details that help in using
dynamic pipelines.

2. Since I also used the sink 'fpsdisplaysink', shouldn't the behaviour be
same? Or is it with the version? I am using 1.14.1

@nicolas
>I don't think you have to care about draining imagefreeze. Though, this
>is a bit more involving, since you have to use pad probes in order to
>block the flow during the dynamic pipeline modification. As the time
>will continue going forward with imagefreeze, you will also have to
>tracked the elapsed time and find a way to offset the remaining. This
>is a bit difficult, but doable.

  I removed the draining of imagefreeze, so now the code is just unlinking
imagefreeze, and linking back avdec_h264 and glupload. With this in place,
the error regarding 'streaming  stopped, reason not-linked (-1). ERROR:
ifreeze : Internal data stream error', is no longer seen. 
The video pauses, I am able to see the gltransformation effects on the
paused video. However, resuming the video is not working. There are no
errors seen as well. But I checked the 'info log', and I observe that when I
remove the element 'imagefreeze' from the pipeline, the element 'v4l2src', 
goes into a paused state and is never back into playing state. Here is the
complete info  debug.txt
<http://gstreamer-devel.966125.n4.nabble.com/file/t378365/debug.txt>  , and
the below lines where v4l2src goes into paused state:  


0:00:03.546583861 [336m19349[00m       0xf0b370 [36mINFO   [00m [00m            
v4l2src gstv4l2src.c:949:gst_v4l2src_create:<source>[00m sync to
0:00:03.033333303 out ts 0:00:03.325138383
0:00:03.546657988 [336m19349[00m       0xf0b370 [36mINFO   [00m [00m            
basesrc gstbasesrc.c:2965:gst_base_src_loop:<source>[00m pausing after
gst_pad_push() = eos
0:00:03.546708208 [336m19349[00m       0xf0b370 [36mINFO   [00m [00m               
task gsttask.c:316:gst_task_func:<source:src>[00m Task going to paused
0:00:03.555887948 [336m19349[00m       0xdd1750 [36mINFO   [00m [00;43m            
GST_BUS gstbus.c:590:gst_bus_timed_pop_filtered:<bus2>[00m we got woken up,
recheck for message
0:00:03.556444990 [336m19349[00m       0xf0b400 [36mINFO   [00m [00m               
task gsttask.c:316:gst_task_func:<queue:src>[00m Task going to paused


2. Is this what you meant by tracking  the time and adjusting the offset ? 
I have never done such a thing before. Can you provide some pointers for the
same ? 

 
Regards



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/


More information about the gstreamer-devel mailing list