Make a 'prepared' signal and emit it when we successfully prepared the element.
This signal can be used to configure the media object after it has been prepared
for streaming.
When we changed the number of active clients, update the current range
information because we want the second client connecting to a shared resource
continue from where the stream currently.
Rework the way we pass data to the autoplugger.
When we have raw caps, plug a converter element to make pluggin to raw
payloaders more successful.
Make sure all dynamically plugged payloaders have a unique payload types.
When we are dynamically adding pads, the addition of the udpsrc elements will
trigger an ASYNC_DONE. We have to ignore this because we only want to react to
the real ASYNC_DONE when everything is prerolled.
When we generate the key to share made between connections, don't include the
host used to connect so that we can share media even if between clients that
connected with localhost and ones with the ip address.
Add an eos-shutdown property that will send an EOS to the pipeline before
shutting it down. This allows for nice cleanup in case of a muxer.
Fixes#625597
If we have a new enough multiudpsink with the send-duplicates property, use this
instead of doing our own filtering. Our custom filtering code should eventually
be removed when we can depend on a released -good.
Wait 5 seconds before clearing the send buffers and reseting the connection with
the client when we do a close. This should be enough time to get the message to
the client.
See #622757
SO_LINGER on the socket will make sure that any pending data on the socket is
flushed ASAP and that the socket connection is reset. This makes sure that the
socket can be reused immediately.
Fixes 622757
Make sure the session does not timeout when using TCP. We need to do this
because quicktime player does not send RTCP for some reason in tunneled
mode.
Refactor some cleanup code.
Fixes#612915