Receiver pipeline fails to goto playing state in streaming audio scenario
danny.smith
danny.smith at axis.com
Sun Jun 11 10:36:06 UTC 2017
Hi,
We have built an application in where a sender streams audio to multiple
receivers over a network
where we use this approach:
*Sender
Setup netclock provider (server)
Use system clock for that and the pipeline
ntp-time-source”: clock-time
*Receiver
Setup netclient clock with sender's server
Use that for the pipeline and set 500ms fixed latency
ntp-time-source”: clock-time, “ntp-sync”: TRUE, “buffer-mode”: synced
based on this presentation:
https://gstreamer.freedesktop.org/data/events/gstreamer-conference/2015/Sebastian%20Dr%C3%B6ge%20-%20Synchronised%20multi-room%20media%20playback%20and%20distributed%20live%20media%20processing%20and%20mixing%20with%20GStreamer.pdf
We are experiencing an issue during setup where the receiver pipeline fails
to go to Playing state due to the rtpjitterbuffer either throwing away all
data or buffering it. This prevents the rtpbin from creating a src-pad and
we cannot link our pipeline. This happens maybe around 20% of the time.
Using buffer-mode: synced the rtpjitterbuffer should use the first recieved
buffers timestamp as base time, could it be that this mechanism fails for
some reason causing the jitterbuffer to believe that all packets are either
late or should be played some time in the future?
Could there be another explanation for this issue?
Can mention that our receiving pipeline uses a short jitterbuffer and and a
short total pipe latency in order to achieve low latency streaming.
If we wanted to manage base time ourselves by getting the timeproviders
current time stamp and distributing/applying this time stamp to the
receivers using these calls:
gst_pipeline_use_clock (clock);
gst_element_set_start_time(pipeline, GST_CLOCK_TIME_NONE);
gst_element_set_base_time(pipeline, base_time);
, should we also apply this time stamp on the sender pipeline?
Which buffer-mode should we use if we want to manage base time ourselves?
Do we need to alter any of the other above mentioned parameters if we want
to manage base time ourselves?
Regards,
Danny
--
View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Receiver-pipeline-fails-to-goto-playing-state-in-streaming-audio-scenario-tp4683285.html
Sent from the GStreamer-devel mailing list archive at Nabble.com.
More information about the gstreamer-devel
mailing list