Commit graph

1414 commits

Author SHA1 Message Date
Sebastian Dröge
8e72e69eec rtsp-stream: Don't set the state of the appsrc from PLAYING to PAUSED again during setup
This would get us NO_PREROLL in the bin again and break seeking.
Thanks to Carlos Rafael Giani for helping to debug this!

https://bugzilla.gnome.org/show_bug.cgi?id=740509
2016-03-16 23:36:30 +02:00
Sebastian Dröge
ad7fcf7a2f Release 1.7.91 2016-03-15 12:26:13 +02:00
Sebastian Dröge
8b68edd138 rtsp-stream: Ensure that the pipeline is live and later-added udpsrcs are syncing the state with the parent bin
Without this, RECORD pipelines are broken because
a) we wait for ASYNC_DONE which never happens anymore because udpsrc would be
added later. Previously it was there earlier and due to NO_PREROLL caused the
pipeline to preroll immediately
b) the udpsrc for the pipeline is added later and never set to PLAYING state,
as the corresponding code previously was only for PLAY pipelines.

https://bugzilla.gnome.org/show_bug.cgi?id=763281
2016-03-10 19:47:13 +02:00
Jan Schmidt
4a6f63ad03 rtsp-stream: Fix typo in the docstring
gst_rtsp_stream_set_client_side -> gst_rtsp_stream_is_client_side
2016-03-11 01:23:15 +11:00
Sebastian Dröge
206d2ded09 rtsp-stream: Disable multicast loopback for all our sockets
On Windows this is a receiver-side setting, on Linux a sender-side setting. As
we provide a socket ourselves to udpsrc, udpsrc is never setting the multicast
loopback setting on the socket... while udpsink does which unfortunately has
no effect here on Windows but on Linux.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-03-05 10:53:15 +02:00
Patricia Muscalu
422d3a3002 stream tests: added new tests
Test a case when the address pool only contains multicast addresses
and the client is requesting unicast udp.
Added tests for multicast ports allocation.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-03-05 10:08:40 +02:00
Sebastian Dröge
9794822549 rtsp-stream: Only bind multicast sockets to ANY on Windows
On Linux it is still needed to bind to the multicast address
to filter out random other packets, while on Windows binding
to multicast addresses just fails.
2016-03-04 13:51:12 +02:00
Sebastian Dröge
a7ced98346 rtsp-stream: Only use the address pool for unicast UDP if it contains unicast addresses
Otherwise we fail to allocate UDP ports if the pool only contains multicast
addresses, which is something that used to work before. For unicast addresses
if the pool contains none, we just allocate them as if there is no pool at
all.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-03-03 10:43:13 +02:00
Sebastian Dröge
406ed190ac rtsp-server: Fix indentation 2016-03-02 11:48:49 +02:00
Sebastian Dröge
bcee3202d3 rtsp-stream: Don't bind the sockets to multicast addresses
This works on Linux but fails completely on Windows. You're supposed
to bind to ANY and then join the multicast group.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-03-02 11:47:47 +02:00
Sebastian Dröge
ca1d987a9d Release 1.7.90 2016-03-01 19:00:45 +02:00
Sebastian Dröge
0eb3ea03d3 Automatic update of common submodule
From b64f03f to 6f2d209
2016-02-26 12:42:51 +02:00
Jan Schmidt
b96e4e16a7 rtspsink: Fix some leaks in rtspclientsink and the unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=762525
2016-02-24 02:12:08 +11:00
Patricia Muscalu
a6367c5971 tests: unit test fixes
Removed port allocation test from the media suite.
The port allocation failure is now in the stream suite.
rtspserver:
Make sure that the media is suspended after the DESCRIBE request
before reconfiguring the UDP sinks.
rtspclientsink:
In the RECORD case we have to set async property to false
for the appsink element in the test in order to make sure
that the media pipeline doesn't hang in start_preroll().

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
f62a9a7eb9 rtsp-stream: postpone UDP socket allocation until SETUP
Postpone the allocation of the UDP sockets until we know
what transport has been chosen by the client.
Both unicast and multicast UDP sources are created in one
function.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
d10ba734cd rtsp-stream: postpone the creation of the UDP sources
Code refactoring: allocate the UDP ports after the sender and
the reciver parts have been created.
We postpone the creation of the UDP sources until the UDP
ports have been allocated.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
66389cb900 rtsp-stream: added function for setting UDP sources to PLAYING state
Code refactoring: Introduced a function for setting UDP sources
to PLAYING state.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
c0cadc6ec3 rtsp-stream: added function for creating and configuring UDP sources
Code refactoring: create and configure UDP sources in a separate function.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
b26c16c824 rtsp-stream: added function for RTP/RTCP socket configuration
Code refactoring: configure RTP and RTCP sockets for UDP sinks
in a separate function.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
6b6970ab23 rtsp-stream: added function for creating and configuring UDP sinks
Code refactoring: create and configure UDP sinks in a separate function.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Patricia Muscalu
89bc8009dd rtsp-stream: added helper function for creating the sender/receiver parts
Code refactoring: introduced helper function for creating
the receiver and the sender parts of the streaming pipeline.

https://bugzilla.gnome.org/show_bug.cgi?id=757488
2016-02-23 17:05:15 +02:00
Sebastian Dröge
457c00dc0a Back to development 2016-02-19 12:38:42 +02:00
Sebastian Dröge
60a2fa94b6 Release 1.7.2 2016-02-19 12:03:18 +02:00
Julien Isorce
8f1a9bff7f uninstalled.pc: add support for non libtool build systems
Currently the .la path is provided which requires to use libtool as
mentioned in the GStreamer manual section-helloworld-compilerun.html.
It is fine as long as the application is built using libtool.

So currently it is not possible to compile a GStreamer application
within gst-uninstalled with CMake or other build system different
than autotools.

This patch allows to do the following in gst-uninstalled env:
gcc test.c -o test $(pkg-config --cflags --libs gstreamer-1.0 \
  gstreamer-rtsp-server-1.0)
Previously it required to prepend libtool --mode=link

https://bugzilla.gnome.org/show_bug.cgi?id=720778
2016-02-18 15:20:05 +00:00
Luis de Bethencourt
fb9e957cc2 rtspclientsink: remove check for impossible condition
Goto error label checks stream to see if it needs to be unreferenced before
returning, but this goto jumps happens before the stream is ever set, so it
will always be NULL in this error label.

CID #1352034
2016-02-09 10:36:56 +00:00
Luis de Bethencourt
4922b7f6b2 rtspclientsink: clean switch statements
Coverity demands for fallthrough statements to be clearly commented,
to distinguish from accidental fall throughs. And it also needs all
cases to finish with a break, even if the break is never going to be
executed like in the case of a continue jump.

CID #1352039
CID #1352040
2016-02-08 23:33:22 +00:00
Thiago Santos
3328461738 tests: extend the AM_TESTS_ENVIRONMENT from check.mak
To get the CK_DEFAULT_TIMEOUT defined for all tests

Also removes a 120 seconds timeout that was set as default
explicitly in this module

https://bugzilla.gnome.org/show_bug.cgi?id=761472
2016-02-05 20:03:01 -03:00
Thiago Santos
f621e40efe Automatic update of common submodule
From 86e4663 to b64f03f
2016-02-05 18:11:41 -03:00
Steven Hoving
aea624b6f8 rtsp-media: fix state_lock not locked again when preroll fails
https://bugzilla.gnome.org/show_bug.cgi?id=761399
2016-02-02 10:36:05 +00:00
Sebastian Dröge
2af81aa56d configure: Move plugin specific flags below all the others
They use some of the other flags, like $GST_ALL_LDFLAGS which is adding
-no-undefined. And -no-undefined is required on Windows to build DLLs.
2016-01-28 22:05:56 +01:00
Jan Schmidt
b55fafdfbf rtspclientsink: Simplify slightly using new -base API
Use the new Mikey and SDP API in the base plugins libs
to simplify some code.

https://bugzilla.gnome.org/show_bug.cgi?id=758180
2016-01-29 01:44:26 +11:00
Jan Schmidt
f54dd50203 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 \

https://bugzilla.gnome.org/show_bug.cgi?id=758180
2016-01-29 01:44:26 +11:00
Jan Schmidt
b6ca057c72 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.

https://bugzilla.gnome.org/show_bug.cgi?id=758180
2016-01-29 01:44:26 +11:00
Jan Schmidt
192a1eea34 rtsp-sdp: Add gst_rtsp_sdp_from_stream()
A new function that adds info from a GstRTSPStream into an SDP message.

https://bugzilla.gnome.org/show_bug.cgi?id=758180
2016-01-29 01:44:26 +11:00
Steven Hoving
fefc011dfb rtsp-media: Fix mutex beeing unlocked while they should be locked
https://bugzilla.gnome.org/show_bug.cgi?id=761226
2016-01-28 09:34:32 +01:00
Tim-Philipp Müller
ac1d35b147 rtsp-media-factory: add missing break in "clock" property setter
CID 1348453
2016-01-15 07:01:37 +00:00
Srimanta Panda
fdbda049c6 rtsp-stream: fixed assert during update transport
When RTSP server trying update transport during multicast, it throws an
assert. The assert is thrown because it is trying to get the parent of
an non-existing funnel element.

https://bugzilla.gnome.org/show_bug.cgi?id=760150
2016-01-07 14:31:03 +02:00
Tim-Philipp Müller
bec94861b0 docs: remove dummy function declarations with G_INLINE_FUNC for gtk-doc
gtk-doc can handle static inline functions just fine these days,
there's no need for this stuff any more.
2016-01-03 17:26:31 +00:00
Hyunjun Ko
924f914172 sdp: replace duplicated codes to call new base sdp apis
https://bugzilla.gnome.org/show_bug.cgi?id=745880
2015-12-31 17:13:39 +02:00
Sebastian Dröge
662d6b188f test-netclock: Use the new API to configure a clock directly 2015-12-30 18:40:47 +02:00
Sebastian Dröge
7a41d396ae rtsp-media: Add API to directly configure a clock on the media pipelines 2015-12-30 18:40:43 +02:00
Sebastian Dröge
cbf3f3888f rtsp-media: Fix typo in docs gst_rtsp_media_set_latncy() -> latency() 2015-12-30 16:43:17 +02:00
Sebastian Dröge
6b76c02552 rtsp-media-factory: Add FIXME for 2.0 2015-12-30 16:30:38 +02:00
Sebastian Dröge
3d6b93bcd3 rtsp-stream: Fix indentation 2015-12-30 16:29:45 +02:00
Sebastian Rasmussen
b2abb97043 rtsp-media: Do not prepare media after media times out
Deferred calls to start_prepare() can be deferred past the point until
which wait_preroll() and by proxy gst_rtsp_media_get_status() is
prepared to wait. Previously there was no lock and no check for this
situation. This meant that a media could be prepared and unprepared
simultaneously by two different threads. Now a lock is in place and a
suitable check is done.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=759773
2015-12-28 14:08:09 +02:00
Sebastian Dröge
c8f179948e rtsp-media: Add property to decide if sending media should be stopped when a client disconnects without TEARDOWN
Without TEARDOWN it might be desireable to keep the media running and continue
sending data to the client, even if the RTSP connection itself is
disconnected.

Only do this for session medias that have only UDP transports. If there's at
least on TCP transport, it will stop working and cause problems when the
connection is disconnected.

https://bugzilla.gnome.org/show_bug.cgi?id=758999
2015-12-28 10:51:56 +02:00
Sebastian Dröge
5dd1166259 Back to development 2015-12-24 15:29:33 +01:00
Sebastian Dröge
7374976722 Release 1.7.1 2015-12-24 14:54:06 +01:00
Koop Mast
c934fdaf3b configure: Make -Bsymbolic check work with clang.
Update the -Bsymbolic check with the version glib has. This version
works with clang.

https://bugzilla.gnome.org/show_bug.cgi?id=759713
2015-12-21 12:25:23 +01:00
Olivier Crête
ee3a7b61ef rtsp-session-pool: Avoid dollar sign ($) in session ids
Live555 in VLC strips off dollar signs and then gets very confused,
we don't loose too much entropy by just skipping it.
2015-12-15 16:57:37 -05:00