summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2018-02-09stream: Add functions for checking if stream is receiver or senderonvif-backchannelOgnyan Tonchev3-5/+78
...and replace all checks for RECORD in GstRTSPMedia which are really for "sender-only". This way the code becomes more generic and introducing support for onvif-backchannel later on will require no changes in GstRTSPMedia.
2018-02-09onvif: Make requires_backchannel() publicOgnyan Tonchev2-6/+22
...in order to let subclasses building the onvif part of the pipeline check whether backchannel shall be included or not.
2018-02-09rtsp-server: Switch around sendonly/recvonly attributesSebastian Dröge1-2/+2
They are wrong in the ONVIF streaming spec. The backchannel should be recvonly and the normal media should be sendonly: direction is always from the point of view of the SDP offerer (the server) according to RFC 3264.
2018-02-09rtsp: Add support for ONVIF backchannelSebastian Dröge17-7/+1497
This adds a new RTSP server, client, media-factory and media subclass for handling the specifics of the backchannel. Ideally this later can be extended with other ONVIF specific features.
2018-01-22rtsp-media: Add support for sending+receiving mediasSebastian Dröge1-6/+162
We need to add an appsrc/appsink in that case because otherwise the media bin will be a sink and a source for rtpbin, causing a pipeline loop.
2017-12-19rtsp-stream: Set multicast TTL on the multicast socketsSebastian Dröge1-16/+27
And not if we do unicast UDP. https://bugzilla.gnome.org/show_bug.cgi?id=791743
2017-12-19rtsp-stream: Decide based on the sockets, not the addresses if we already ↵Sebastian Dröge1-4/+5
allocated a socket In the multicast case (as in test-multicast, not test-multicast2), the address could be allocated/reserved (and thus set) already without allocating the actual socket. We need to allocate the socket here still instead of just claiming that it was already allocated. See https://bugzilla.gnome.org/show_bug.cgi?id=791743#c2
2017-12-18rtspclientsink: Use the new rtsp-stream APIPatricia Muscalu2-13/+75
https://bugzilla.gnome.org/show_bug.cgi?id=790412
2017-12-18rtspclientsink: Wait until OPEN has been scheduledPatricia Muscalu2-0/+23
Make sure that the sink thread has started opening connection to the server before continuing. https://bugzilla.gnome.org/show_bug.cgi?id=790412
2017-12-14Automatic update of common submoduleMatthew Waters1-0/+0
From e8c7a71 to 3fa2c9e
2017-12-07rtsp-server: Minor doc fixesEdward Hervey3-4/+4
Mostly for g-i
2017-12-06tests: disable all tests when --disable-tests is usedTim-Philipp Müller2-12/+10
Move conditional subdir include into top level. Based on patch by: Joel Holdsworth https://bugzilla.gnome.org/show_bug.cgi?id=757703
2017-12-06meson: build more tests and add options to disable tests and examplesTim-Philipp Müller3-2/+19
2017-11-30Fix build when -Werror=deprecated-declarations is onThibault Saunier1-1/+2
As gst_rtsp_session_next_timeout is deprecated. ``` ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.c:760:3: error: ‘gst_rtsp_session_next_timeout’ is deprecated: Use 'gst_rtsp_session_next_timeout_usec' instead [-Werror=deprecated-declarations] res = (gst_rtsp_session_next_timeout (session, now) == 0); ^~~ ../subprojects/gst-rtsp-server/gst/rtsp-server/rtsp-session.c:685:1: note: declared here gst_rtsp_session_next_timeout (GstRTSPSession * session, GTimeVal * now) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ```
2017-11-27Automatic update of common submoduleMatthew Waters1-0/+0
From 3f4aa96 to e8c7a71
2017-11-27check/media: Add seekability test case: not all streams are activePatricia Muscalu1-0/+75
Media contains two streams but only one is complete and prepared for playing. https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-27rtsp-stream: Do not reset 'blocking' if stream is already blockedPatricia Muscalu1-1/+1
https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-27rtsp-media: Fix missing lock in gst_rtsp_media_seekable()Patricia Muscalu1-4/+13
https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-26meson: remove vs_module_defs_dir variable which is no longer neededTim-Philipp Müller1-2/+0
2017-11-26rtsp: fix distcheckTim-Philipp Müller1-1/+1
2017-11-26win32: remove .def file with exportsTim-Philipp Müller4-348/+1
They're no longer needed, symbol exporting is now explicit via GST_EXPORT in all cases (autotools, meson, incl. MSVC).
2017-11-26autotools: stop controlling symbol visibility with -export-symbols-regexTim-Philipp Müller1-3/+7
Instead, use -fvisibility=hidden and explicit exports via GST_EXPORT. This should result in consistent behaviour for the autotools and Meson builds.
2017-11-26rtsp-server: add missing GST_EXPORT and export deprecated funcsTim-Philipp Müller4-11/+15
2017-11-25check: Add seekability testing on mediasEdward Hervey1-5/+17
Make sure that once GstRTSPMedia are prepared they returned the expected seekability results https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-25rtsp-media: Enable seeking query before pipeline is completeEdward Hervey5-0/+70
SDP are now provided *before* the pipeline is fully complete. In order to know whether a media is seekable or not therefore requires asking the invididual streams. API: gst_rtsp_stream_seekable https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-24rtsp-media: Fix handling in default_unsuspend()Patricia Muscalu1-5/+10
Handle the case when streams are not blocked and media is suspended from PAUSED. Change-Id: I2f3d222ea7b9b20a0732ea5dc81a32d17ab75040 https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-24check/media: Fix thread pool leak.Patricia Muscalu1-0/+2
Change-Id: I0f92b1caca0ee518ae64a7dacfbd28a214c3eea1 https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-24rtsp-media: Removed fakesink elementsPatricia Muscalu1-33/+0
There is not need of adding fakesink elements to the media pipeline in the dynamic-payloader case. The media pipeline itself is dynamically updated with the receiver and sender parts that are based on the client transport information known after SETUP has been received. Change-Id: I4e88c9b500c04030669822f0d03b1842913f6cb9 https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-24rtsp-media: Corrected ASYNC_DONE handlingPatricia Muscalu1-14/+8
Media is complete when all the transport based parts are added to the media pipeline. At this point ASYNC_DONE is posted by the media pipeline and media is ready to enter the PREPARED state. Change-Id: I50fb8dfed88ebaf057d9a35fca2d7f0a70e9d1fa https://bugzilla.gnome.org/show_bug.cgi?id=790674
2017-11-22check/media: Check that prepared media can provide a SDPEdward Hervey1-0/+40
Whenever a RTSPMedia is prepared, it should be able to provide a SDP
2017-11-21rtsp-client: Don't leak addrEdward Hervey1-2/+2
CID #1422260
2017-11-21Run gst-indentEdward Hervey3-42/+44
2017-11-21rtsp-media: Don't unblock with remaining dynamic payloadersEdward Hervey1-2/+3
If we still have some dynamic paylaoders which haven't posted no-more-pads yet, don't go to PREPARED if one of the streams blocked. The risk was that we would end up not exposing/using all specified streams. The downside is that if you have _multiple_ _live_ _dynamic_ payloaders then it will take a bit more time to start. But only if those 3 conditions are present. https://bugzilla.gnome.org/show_bug.cgi?id=769521
2017-11-21rtsp-media: Fix docEdward Hervey1-2/+2
2017-11-21rtsp-media: Don't set float on a gint64 variableEdward Hervey1-1/+1
Just use 0. Fixes 'undefined' behaviour from clang
2017-11-21rtsp-media: Fix previous commitEdward Hervey1-2/+2
We only want to count dynamic payloaders
2017-11-20rtsp-media: Handle multiple dynamic elementsEdward Hervey2-7/+20
If we have more than one dynamic payloader in the pipeline, we need to wait until the *last* one emits 'no-more-pads' before switching to PREPARED. Failure to do so would result in a race where some of the streams wouldn't properly be prepared https://bugzilla.gnome.org/show_bug.cgi?id=769521
2017-11-16win32: Fix exported symbols listSebastian Dröge1-19/+0
2017-11-15rtsp-stream: Only update the RTP udpsink if it actually existsSebastian Dröge1-3/+6
For send-only streams it does not exist, but the RTCP udpsink might.
2017-11-15win32: Update exportsSebastian Dröge1-0/+26
2017-11-15rtsp-media: seek on media pipelines that are completePatricia Muscalu3-17/+73
Make sure that a seek is performed on pipelines that contain at least one sink element. Change-Id: Icf398e10add3191d104b1289de612412da326819 https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15Dynamically reconfigure pipeline in PLAY based on transportsPatricia Muscalu9-343/+1340
The initial pipeline does not contain specific transport elements. The receiver and the sender parts are added after PLAY. If the media is shared, the streams are dynamically reconfigured after each PLAY. https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15rtsp-stream: obtain stream position from padPatricia Muscalu1-35/+114
If no sinks have been added yet, obtain the current and the stop position of the stream from the send_src pad. Change-Id: Iacd4ab4bdc69f6b49370d06012880ce48a7d595a https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15rtsp-session-media: add function to get a list of transportsPatricia Muscalu2-0/+27
Change-Id: I817e10624da0f3200f24d1b232cff481099278e3 https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15rtsp-stream: add functions to get rtp and rtcp multicast socketsPatricia Muscalu2-0/+72
Change-Id: Iddfe6e0bd250cb0159096d5eba9e4202d22b56db https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15stream: set async=sync=false only for RTCP appsinkPatricia Muscalu1-1/+2
Change-Id: I929a218a9adf4759f61322b6f2063aacc5595f90 https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15rtsp-media: return minimum value in query position casePatricia Muscalu1-3/+9
The minimum position should be returned as we are interested in the whole interval. Change-Id: I30e297fc040c995ae40c25dee8ff56321612fe2b https://bugzilla.gnome.org/show_bug.cgi?id=788340
2017-11-15rtsp-session: Handle the case when timeout=0Jonathan Karlsson2-0/+31
According to the documentation, a timeout of value 0 means that the session never timeouts. This adds handling of that. If timeout=0 we just return with a -1 from gst_rtsp_session_next_timeout_usec (). https://bugzilla.gnome.org/show_bug.cgi?id=785058
2017-11-01rtspclientsink: Add "accept-certificate" signal for manually checking a TLS ↵Sebastian Dröge1-0/+38
certificate for validity https://bugzilla.gnome.org/show_bug.cgi?id=785024
2017-10-26docs: add media factory transport mode accessorsMathieu Duponchelle2-1/+4
and fix the documentation for the return value of the getter