proxy: Setting the base_time for dynamically added pipelines does not work
Submitted by Carlos Rafael Giani
Link to original bug (#794893)
Description
I wanted to try out the new proxy plugin, and read in the proxysrc documentation that the base_time and the pipeline clock need to be the same in all involved pipelines. So I wrote a small test to try out a combinaton of statically and dynamically added receiver pipelines (the latter are GstRTSPMedia objects).
The statically added receiver pipelines work. The dynamically added don't. It turns out that this is because the base_time is reset by something else, even after I explicitely set the base_time to 0:
0:00:00.021872809 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<videotestsrc0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.021918601 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<tee0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.021992707 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<pipeline0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.022245994 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<queue0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.023129957 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<proxysrc0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.023177037 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<queue1>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.023202962 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<videoconvert0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.023230001 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<jpegenc0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.023252936 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<filesink0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.027786899 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<pipeline1>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.028198324 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<queue2>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.028237121 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<proxysink0>
set base_time=0:00:00.000000000, old 0:00:00.000000000
0:00:00.054788131 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<pipeline1>
set base_time=7:38:23.167300801, old 0:00:00.000000000
0:00:00.055122293 27152 0x5570b3631300 DEBUG GST_CLOCK gstelement.c:489:gst_element_set_base_time:<pipeline0>
set base_time=7:38:23.167661484, old 0:00:00.000000000
Note the base_time of pipeline0 and pipeline1.
I think the example given in the proxysrc documentation works because both pipelines' base_time is reset to the same value.
Version: 1.14.0