[API] Need a way to set per pipeline/bin/element policies
@drakkan
Submitted by Nicola Link to original bug (#726381)
Description
avdec_h264 has more latency than ffdec_h264, please test with these pipelines:
server (use 0.10 since gdppay is a bit broken in 1.0):
gst-launch-0.10 v4l2src ! x264enc tune=zerolatency ! gdppay ! tcpserversink host=127.0.0.1 port=3000 sync-method=2
client 1.0:
gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay ! fakesink sync=false silent=false
client 0.10:
gst-launch-0.10 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay ! fakesink sync=false
stop the server or kill both clients at the same time (kill -9 <pid1>
<pid2>
), they will print exactly the same timestamp, for example:
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (8576 bytes, dts: 0:00:00.000000000, pts: 0:00:34.139030609, duration: 0:00:00.033333333, offset: -1, offset_end: -1, flags: 00002000 delta-unit ) 0x7f43240069a0
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (8576 bytes, timestamp: 0:00:34.139030609, duration: 0:00:00.033333333, offset: -1, offset_end: -1, flags: 8192 ) 0x7fa300002bf0"
now change the client pipelines
client 1.0:
gst-launch-1.0 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay ! avdec_h264 ! fakesink sync=false silent=false
client 0.10:
gst-launch-0.10 -v tcpclientsrc host=127.0.0.1 port=3000 ! gdpdepay ! ffdec_h264 ! fakesink sync=false
stop the server or kill the clients, you see the delay:
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = chain ******* (fakesink0:sink) (1382400 bytes, dts: 0:00:39.664793944, pts: 0:00:39.664793944, duration: 0:00:00.033333333, offset: -1, offset_end: -1, flags: 00004000 in-caps ) 0x7f8b50cf2740
/GstPipeline:pipeline0/GstFakeSink:fakesink0: last-message = "chain ******* (fakesink0:sink) (1382400 bytes, timestamp: 0:00:39.896504848, duration: 0:00:00.033333333, offset: -1, offset_end: -1, flags: 256 delta_unit ) 0x7fcd94002dc0"
so 1.0 has about 250 milliseconds delay more than 0.10 (I observed 0.5 second too)
version used:
gstreamer 1.2.3
gstreamer 0.10.36