GNOME Bugzilla – Bug 758180
Add rtspclientsink plugin
Last modified: 2016-01-28 14:54:05 UTC
rtspclientsink is an element that uses RECORD to send streams to an RTSP server. It's in gst-rtsp-server because it reuses the streams/sdp infrastructure from there. Eventually we could perhaps move that API into -good along with this plugin. There are still some FIXMEs (top of the main .c file), but I think it's good to merge in its current state to get more testing and perhaps some more eyes to look into those.
Created attachment 315676 [details] [review] rtsp-sdp: Add gst_rtsp_sdp_from_stream() A new function that adds info from a GstRTSPStream into an SDP message.
Created attachment 315677 [details] [review] rtsp-stream: Add functions for using rtsp-stream from the client Add a boolean to indicate that the rtsp-stream is running on the 'client' side of an RTSP connection, for sending streams via RECORD. In that case, the roles of the client/server ports in transport setup are swapped.
Created attachment 315678 [details] [review] rtspsink: Add rtspclientsink element Add an rtspclientsink element that accepts streams for which there is a registered payloader and sends them to an RTSP server using RECORD. Sending is synchronised to the pipeline clock. Payload-types are automatically selected. The 'new-payloader' signal is fired for custom configuration of payloaders when they are created. Can now stream a movie like this: receiver: ./test-record "( decodebin name=depay0 ! videoconvert ! autovideosink \ decodebin name=depay1 ! audioconvert ! autoaudiosink )" sender: gst-launch-1.0 filesrc location=file-with-aac-and-h264.mp4 ! qtdemux name=d ! \ queue ! aacparse ! rtspclientsink location=rtsp://127.0.0.1:8554/test name=s \
Next step: rtspsrc2 based on the gst-rtsp-server infrastructure ;)
What's up with this? Ready to merge? Anything that can be simplified now that this got merged: http://cgit.freedesktop.org/gstreamer/gst-plugins-base/commit/gst-libs/gst/sdp?id=682b52365254d28215c2f071d083a4b6e0b21ae5 ?
Created attachment 319865 [details] [review] rtsp-sdp: Add gst_rtsp_sdp_from_stream() A new function that adds info from a GstRTSPStream into an SDP message.
Created attachment 319866 [details] [review] rtsp-stream: Add functions for using rtsp-stream from the client Add a boolean to indicate that the rtsp-stream is running on the 'client' side of an RTSP connection, for sending streams via RECORD. In that case, the roles of the client/server ports in transport setup are swapped.
Created attachment 319867 [details] [review] rtspsink: Add rtspclientsink element Add an rtspclientsink element that accepts streams for which there is a registered payloader and sends them to an RTSP server using RECORD. Sending is synchronised to the pipeline clock. Payload-types are automatically selected. The 'new-payloader' signal is fired for custom configuration of payloaders when they are created. Can now stream a movie like this: receiver: ./test-record "( decodebin name=depay0 ! videoconvert ! autovideosink \ decodebin name=depay1 ! audioconvert ! autoaudiosink )" sender: gst-launch-1.0 filesrc location=file-with-aac-and-h264.mp4 ! qtdemux name=d ! \ queue ! aacparse ! rtspclientsink location=rtsp://127.0.0.1:8554/test name=s \
Created attachment 319868 [details] [review] rtspclientsink: Simplify slightly using new -base API Use the new Mikey and SDP API in the base plugins libs to simplify some code.
I updated the rtsp-sdp patch for the changes that the patches you mentioned introduced, and made similar changes to rtspclientsink for Mikey/SDP keymgmt handling via the new APIs as were done in rtspsrc. I think it's ready to push now to get some more testing.
Committed.