After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 758180 - Add rtspclientsink plugin
Add rtspclientsink plugin
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-rtsp-server
git master
Other Linux
: Normal enhancement
: 1.7.2
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2015-11-16 14:24 UTC by Jan Schmidt
Modified: 2016-01-28 14:54 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
rtsp-sdp: Add gst_rtsp_sdp_from_stream() (3.54 KB, patch)
2015-11-16 14:25 UTC, Jan Schmidt
none Details | Review
rtsp-stream: Add functions for using rtsp-stream from the client (4.48 KB, patch)
2015-11-16 14:25 UTC, Jan Schmidt
none Details | Review
rtspsink: Add rtspclientsink element (169.52 KB, patch)
2015-11-16 14:25 UTC, Jan Schmidt
none Details | Review
rtsp-sdp: Add gst_rtsp_sdp_from_stream() (3.10 KB, patch)
2016-01-27 18:01 UTC, Jan Schmidt
committed Details | Review
rtsp-stream: Add functions for using rtsp-stream from the client (4.48 KB, patch)
2016-01-27 18:01 UTC, Jan Schmidt
committed Details | Review
rtspsink: Add rtspclientsink element (169.52 KB, patch)
2016-01-27 18:01 UTC, Jan Schmidt
committed Details | Review
rtspclientsink: Simplify slightly using new -base API (6.33 KB, patch)
2016-01-27 18:01 UTC, Jan Schmidt
committed Details | Review

Description Jan Schmidt 2015-11-16 14:24:48 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.
Comment 1 Jan Schmidt 2015-11-16 14:25:17 UTC
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.
Comment 2 Jan Schmidt 2015-11-16 14:25:25 UTC
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.
Comment 3 Jan Schmidt 2015-11-16 14:25:33 UTC
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 \
Comment 4 Sebastian Dröge (slomo) 2015-11-16 14:34:33 UTC
Next step: rtspsrc2 based on the gst-rtsp-server infrastructure ;)
Comment 5 Tim-Philipp Müller 2016-01-26 23:24:41 UTC
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
?
Comment 6 Jan Schmidt 2016-01-27 18:01:09 UTC
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.
Comment 7 Jan Schmidt 2016-01-27 18:01:17 UTC
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.
Comment 8 Jan Schmidt 2016-01-27 18:01:26 UTC
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 \
Comment 9 Jan Schmidt 2016-01-27 18:01:34 UTC
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.
Comment 10 Jan Schmidt 2016-01-27 18:04:09 UTC
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.
Comment 11 Jan Schmidt 2016-01-28 14:54:05 UTC
Committed.