Commit graph

490 commits

Author SHA1 Message Date
Wim Taymans
8c5ce0dbdc rtspsrc: also go into the loop function after connect
When we have opened the stream, go into the loop function so that we can
receive messages from the server.
2013-09-27 15:08:31 +02:00
Wim Taymans
6095e2e859 rtspsrc: disable checks when linking pads
We know the pad links will work (and we don't check the return value
anyway).
2013-09-25 17:42:02 +02:00
Wim Taymans
9f9bcbc405 rtspsrc: only wait if we flushed
Only wait for the STREAM_LOCK when we flushed something when sending
a command for PAUSED or PLAYING.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=707611
2013-09-09 15:13:46 +02:00
Wim Taymans
7b2e002879 rtspsrc: return when a flush was issued
Make gst_rtspsrc_loop_send_cmd() return TRUE when the current
action has been flushed
2013-09-09 15:13:46 +02:00
Tim-Philipp Müller
1dfc1f2686 Don't use setlocale in plugins()
Only apps should call setlocale(), not libraries.
2013-09-01 21:18:38 +01:00
Youness Alaoui
e22f7e91c4 rtspsrc: Fix response argument in handle-request signal 2013-08-21 09:06:02 +02:00
Youness Alaoui
6636efd31a rtspsrc: Add sdes property and proxy it to rtpbin 2013-08-21 09:06:02 +02:00
Sebastian Dröge
282afae244 rtspsrc: Only free GCheckSum after its last usage
https://bugzilla.gnome.org/show_bug.cgi?id=705760
2013-08-13 12:44:11 +02:00
Tim-Philipp Müller
7272dec5fe rtpdec: use generic marshaller 2013-08-04 11:20:41 +01:00
Sebastian Dröge
169b490664 rtspsrc: Add support for group-id in the stream-start event 2013-07-22 15:30:13 +02:00
Wim Taymans
ab24598443 rtspsrc: avoid some strdup 2013-07-02 11:13:25 +02:00
Wim Taymans
7c950ef3f2 rtspsrc: add select-stream signal
Add a signal to let the app select what streams will be selected.

See https://bugzilla.gnome.org/show_bug.cgi?id=634419
2013-07-02 10:40:35 +02:00
Wim Taymans
2d276e1bcb rtspsrc: avoid strdup 2013-07-02 10:40:35 +02:00
Wim Taymans
1db7e62060 rtspsrc: add signal to notify of the SDP
This way, the app can look and modify the SDP.
2013-07-01 17:31:30 +02:00
Wim Taymans
3289a2963b rtspsrc: reset-sync before play
Call reset-sync on the rtpbin before we go to playing. This makes us require SR
packets for all streams again before we attempt to sync them. If we don't reset,
it might be that we combine SR packets from before and after the PAUSE/PLAYING
state change and end up with huge bogus offsets.
2013-06-27 17:02:14 +02:00
Wim Taymans
bb9d42b976 rtspsrc: avoid some flushes 2013-06-26 14:58:53 +02:00
Wim Taymans
f39ef2ab68 rtspsrc: handle data message when waiting for reply
When we are waiting for a server reply, handle data messages instead of
ignoring them.
2013-06-26 14:41:36 +02:00
Wim Taymans
61219dc6ed rtspsrc: handle data messages in separate method
Refactor and make a method to handle a data message.
2013-06-26 14:41:36 +02:00
Wim Taymans
a4be0c6de3 rtspsrc: add some more docs to handle-request signal
See https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-25 20:36:18 +02:00
Youness Alaoui
52e440c91b Send a clock_provide message on the bus when we get a netclock 2013-06-25 14:50:47 +02:00
Youness Alaoui
547df8e14f rtspsrc: Expose use-pipeline-clock property 2013-06-25 14:50:33 +02:00
Youness Alaoui
95906b8f1c rtsp: go back into the loop after doing pause
After we do a pause request, go back to loop mode so that we can listen
for server messages again.

See https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-21 10:42:20 +02:00
Wim Taymans
b96d931bf4 rtspsrc: fix race in state change to paused
When we go to paused, we first flush the connection and then send the pause
command. As a result of the flushing, the scheduled paused command can get
lost. Wait until the connection is completely flushed and the rtsp task is
waiting before issuing the paused or playing request.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702705
2013-06-20 14:43:47 +02:00
Wim Taymans
d9bc48edc9 rtspsrc: manage element state ourselves
Lock the state of the all our elements and manage their states
outselves. Because we are working async, we can't rely on the state
change function to set the state at the right time or to return the
right return value from the state change function.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=702046
2013-06-16 05:40:13 +02:00
Wim Taymans
25082a50b9 rtspsrc: add extra TLS url protocols
We also support TLS protocols now.
2013-05-31 12:34:22 +02:00
Wim Taymans
80850df711 rtspsrc: create and push stream-start in TCP mode 2013-05-28 15:45:49 +02:00
Wim Taymans
4fc1f3088b rtspsrc: remove some obsolete code
It is not needed to do a state change from the _play() function on
ourselves. The state change function already did that and we don't want to
interfere with that (or use hacks to avoid interference).
2013-05-28 15:10:07 +02:00
Wim Taymans
e6f850996b rtspsrc: set RTCP caps on the RTCP pads 2013-05-28 12:26:25 +02:00
Wim Taymans
779bcc093c rtspsrc: add signal to handle server requests
Add a signal to be notified of a server request. The signal handler can then
construct the response message for the server.

See https://bugzilla.gnome.org/show_bug.cgi?id=632207
2013-05-28 12:26:24 +02:00
Tim-Philipp Müller
643450c9b8 Revert "gstrtspsrc: set buffer-size for multicast buffers"
This reverts commit 2481e95d03.

This is already done five lines above, it was added a year
ago in commit 561b131e.
2013-05-09 09:09:59 +01:00
Aha Unsworth
2481e95d03 gstrtspsrc: set buffer-size for multicast buffers
For receiving video data via RTSP when the video is sent via
multicast there is no way to specify the udpsrc buffer-size.

On windows the native network buffer is not large and with video
i-frames being huge the buffer is to small and you get i-frame corruption,
it looks terrible, and there is no (easy) way to set the udpsrc buffer-size.

https://bugs.freedesktop.org/show_bug.cgi?id=52264
2013-05-08 16:57:53 -03:00
Sebastian Dröge
b0b0557c48 gst: Add better support for static plugins 2013-04-15 15:54:11 +02:00
Sebastian Dröge
b17750ed9e rtspsrc: Proxy the ntp-sync property of rtpbin 2013-04-12 12:58:50 +02:00
Sebastian Dröge
53dae1585e rtspsrc: Give the manager always the name "manager"
This allows to use the GstChildProxy interface to adjust
properties on it.
2013-04-12 12:51:05 +02:00
Wim Taymans
f8013487c9 rtspsrc: add support for NetClientClock
When the server suggests a GstNetTimeProvider in the SDP, set up a
GstNetClientClock that slaves to the remote clock and suggest this clock in
provide_clock.
2013-04-11 15:00:05 +01:00
Sebastian Dröge
d80ff8e7f3 rtspsrc: Proxy the multicast-iface property of udpsrc 2013-04-03 17:53:13 +02:00
Wim Taymans
640de61740 rtspsrc: only EOS when our source sends BYE
Only EOS when we receive a BYE event from the SSRC of our stream.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675453
2013-02-06 14:01:16 +01:00
Wim Taymans
0540492ab2 rtspsrc: save the stream SSRC
Conflicts:
	gst/rtsp/gstrtspsrc.c
2013-02-06 14:00:56 +01:00
Wim Taymans
c8fb1c720c rtspsrc: flush connection when stopping
When we stop, we can flush all pending commands so that we can stop and
join the task.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=684924
2013-02-06 13:18:18 +01:00
Tim-Philipp Müller
95a37196b3 rtspsrc: add "proxy-id" and "proxy-pw" properties
to match souphttpsrc. user/password passed via the URI
will still take precedence though.

https://bugzilla.gnome.org/show_bug.cgi?id=395427
2012-12-31 00:22:27 +00:00
Wim Taymans
8cfec6a88d rtspsrc: fix cmd comparison
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=690476
2012-12-20 17:12:30 +01:00
Wim Taymans
75616fac9a rtspsrc: add some more debug 2012-12-20 17:12:20 +01:00
Wim Taymans
a858bf46db rtspsrc: fix TCP reconnect
Ignore other commands when reconnecting, otherwise the loop function would pause
and the reconnection would not happen. Continue looping after doing a reconnect
so that we have a chance to actually read the new data.
2012-12-13 09:30:59 +01:00
Wim Taymans
b1dc816772 rtspsrc: timeout on udpsrc is in nanoseconds 2012-12-12 11:09:42 +01:00
Aleix Conchillo Flaque
3503aef946 rtspsrc: do not change state to PLAYING if currently chaning state
* gst/rtsp/gstrtspsrc.c (gst_rtspsrc_play): state change might be
  happening in the application thread, so we don't change the state to
  PLAYING in the gstrtspsrc thread unless it is safe.

  A specific case is when chaning the state to NULL from the application
  thread. This will synchronously try to stop the task (with the element
  state lock acquired), but we will try a gst_element_set_state from
  gstrtspsrc thread which will block on the element state lock causing a
  deadlock.

  https://bugzilla.gnome.org/show_bug.cgi?id=684312
2012-12-10 15:13:22 +01:00
Wim Taymans
64cdbb77a9 rtspsrc: use new option parser function 2012-11-27 11:13:37 +01:00
Wim Taymans
5d0507c09e rtspsrc: pause the task instead of spinning
Actually pause the loop task instead of spinning forever.
2012-11-22 11:34:31 +01:00
Wim Taymans
c28bfa8902 rtspsrc: handle segment event
Make a segment event when we send a new range header to a client (first PLAY
request or after a seek). Send the segment event in interleaved mode.
Clean the segment event on cleanup

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688382
2012-11-16 15:38:29 +01:00
Wim Taymans
bd91bd3193 rtspsrc: fix check for active streams
A stream can be active without a srcpad yet and we want to send
events on those streams as well.
2012-11-16 15:22:46 +01:00
Wim Taymans
11cf4d4fd3 rtspsrc: create and add pads outside of lock
Create and add the ghostpad for the new stream outside of the lock because it
is not needed and causes deadlocks.
2012-11-16 13:33:44 +01:00