Commit graph

514 commits

Author SHA1 Message Date
Marc Leeman
7cbca3dcd1 rtsp: the RTCP port number is inclusive
The configured port number pair has its upper bound set to the maximum
allowed RTCP port, inclusive.

See https://bugzilla.gnome.org/show_bug.cgi?id=639420
2012-11-06 13:22:58 +01:00
Tim-Philipp Müller
230cf41cc9 Fix FSF address
https://bugzilla.gnome.org/show_bug.cgi?id=687520
2012-11-04 00:07:18 +00:00
Wim Taymans
adb70e89f9 rtspsrc: remove unused include 2012-10-10 12:05:34 +02:00
Tim-Philipp Müller
8b20603f8b rtspsrc: answer URI query
Without this, something also answered the query
with TRUE but without setting a uri, not sure
what that was..
2012-09-21 23:33:47 +01:00
Daniela
03fbd7ec6e rtspsrc: avoid leak
When setup fails, make sure to cleanup afterwards.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=673509
2012-09-07 16:33:18 +02:00
Aleix Conchillo Flaque
4a200b670f rtp: make rtp packet probation configurable (bug #682512) 2012-08-30 21:49:57 +02:00
Tim-Philipp Müller
4bb52bbadf docs: gst-launch -> gst-launch-1.0 and ffmpegcolorspace -> videoconvert 2012-08-27 21:20:30 +01:00
Aleix Conchillo Flaque
8d864dbbfc rtspsrc: make jitterbuffer drop-on-latency available (fix #682055)
Conflicts:

	gst/rtsp/gstrtspsrc.h
2012-08-22 10:39:19 +02:00
Mark Nauwelaerts
a549b0bf2c rtspsrc: manage race between connection closing and flushing
... where the former can happen in task thread and the latter in mainloop
upon downward state change.
2012-08-03 14:10:32 +02:00
Wim Taymans
ef38efc2d7 rtsp: go and stay in the loop function on PLAY
When we have a PLAY request, go into the LOOP function next. When we are
looping, keep on looping until we are told otherwise.
This fixed rtsp and TCP connections.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680551
2012-07-25 12:50:01 +02:00
Wim Taymans
943b56ff8e rtsp: set caps after activating the pad 2012-07-25 12:49:35 +02:00
Maria Giovanna Chiossa
561b131e1a rtspsrc: also set UDP buffer size in multicast
Also set the UDP buffer size in multicast mode.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=675448
2012-07-19 15:26:36 +02:00
Sebastian Dröge
aeafc3a093 gst: Implement segment-done event 2012-07-05 13:13:09 +02:00
Tim-Philipp Müller
456847c66b rtspsrc: update for gst_element_make_from_uri() changes 2012-06-23 14:57:28 +01:00
Wim Taymans
30d3dfee36 update for task api change 2012-06-20 10:33:42 +02:00
Wim Taymans
694be55c05 rtspsrc: Don't reset time in flush-stop
Don't reset the time in flush-stop. Live sources can do this flush in the
playing state and so the pipeline will never have a chance to update the
base_time of the elements, which only happens when going from paused to
playing.
2012-06-14 08:58:58 +02:00
Wim Taymans
935472aba7 rtspsrc: Rework the async state handling
Always send the flushing events to the udp elements now that basesrc supports
this. This makes sure a segment event is sent correctly after a flush.
Keep track of the currently executing command and make it possible to specify
what command you want to cancel when starting a new async command.

See https://bugzilla.gnome.org/show_bug.cgi?id=677905
2012-06-12 16:05:40 +02:00
Wim Taymans
eb982e4bbe rtspsrc: only reset the manager object when we did a seek
Only reset the manager object when we used a Range header, ie. when we did a
seek. Otherwise we just paused and we can resume just fine.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677475
2012-06-07 12:11:14 +02:00
Maria Giovanna Chiossa
ff019d05f6 rtsp: add the Scale header when needed
Setting GST_SEEK_FLAG_SKIP when sending a seek event in rtspsrc should
set the "Scale" field in the rtsp PLAY header.
Because the boolean "src->skip" is set after the call, "Speed" instead
of "Scale" is always set. Move the assignment before issuing the _play
request.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676618
2012-05-24 09:57:31 +02:00
Tim-Philipp Müller
e09ae5736d Use new gst_element_class_set_static_metadata() 2012-04-10 00:51:41 +01:00
Wim Taymans
3d61d12e03 update for buffer api change 2012-03-30 18:15:34 +02:00
Wim Taymans
c44cd8f55b Merge branch 'master' into 0.11
unport gdkpixbuf
not merged: https://bugzilla.gnome.org/show_bug.cgi?id=654850

Conflicts:
	docs/plugins/Makefile.am
	docs/plugins/gst-plugins-good-plugins-docs.sgml
	docs/plugins/gst-plugins-good-plugins-sections.txt
	docs/plugins/gst-plugins-good-plugins.hierarchy
	docs/plugins/inspect/plugin-avi.xml
	docs/plugins/inspect/plugin-png.xml
	ext/flac/gstflacdec.c
	ext/flac/gstflacdec.h
	ext/libpng/gstpngdec.c
	ext/libpng/gstpngenc.c
	ext/speex/gstspeexdec.c
	gst/audioparsers/gstflacparse.c
	gst/flv/gstflvmux.c
	gst/rtp/gstrtpdvdepay.c
	gst/rtp/gstrtph264depay.c
2012-03-22 11:53:24 +01:00
Marc Leeman
b4756db358 gstrtspsrc: disable RTSP keep-alive on request 2012-03-12 15:14:21 +01:00
Sebastian Dröge
f2e569cde8 rtspsrc: Use correct enum for return values 2012-03-06 14:18:33 +01:00
Wim Taymans
ca9532ccc5 update for new memory api 2012-02-22 02:10:33 +01:00
Wim Taymans
9365f12d6e GST_FLOW_WRONG_STATE -> GST_FLOW_FLUSHING 2012-02-08 16:43:30 +01:00
Sebastian Dröge
0b517ce9fb Merge branch '0.11' of ssh://git.freedesktop.org/git/gstreamer/gst-plugins-good into 0.11 2012-01-25 12:49:34 +01:00
Sebastian Dröge
10554b271f Merge branch 'master' into 0.11
Conflicts:
	ext/flac/gstflacdec.c
	ext/jpeg/gstjpegenc.c
	ext/pulse/pulsesink.c
	sys/v4l2/gstv4l2src.c
2012-01-25 12:49:11 +01:00
Wim Taymans
b4630dd3e0 more memory API porting 2012-01-25 12:30:29 +01:00
Mark Nauwelaerts
a224ffb971 rtspsrc: simplify internal src event debug logging
... which avoids almost superfluous obtaining of rtsp element.
2012-01-20 17:10:57 +01:00
Mark Nauwelaerts
018852ddc2 rtspsrc: avoid NULL string comparison 2012-01-20 17:10:54 +01:00
Wim Taymans
1584806634 port to new gthread API 2012-01-19 11:33:53 +01:00
Sebastian Dröge
305901c7cc rtspsrc: Update for the new GIO versions of the udp elements 2012-01-17 16:49:10 +01:00
Sebastian Dröge
93e3ed5a86 Merge branch 'master' into 0.11
Conflicts:
	ext/cairo/gsttextoverlay.c
	ext/pulse/pulseaudiosink.c
	gst/audioparsers/gstaacparse.c
	gst/avi/gstavimux.c
	gst/flv/gstflvmux.c
	gst/interleave/interleave.c
	gst/isomp4/gstqtmux.c
	gst/matroska/matroska-demux.c
	gst/matroska/matroska-mux.c
	gst/matroska/matroska-mux.h
	gst/matroska/matroska-read-common.c
	gst/multifile/gstmultifilesink.c
	gst/multipart/multipartmux.c
	gst/shapewipe/gstshapewipe.c
	gst/smpte/gstsmpte.c
	gst/udp/gstmultiudpsink.c
	gst/videobox/gstvideobox.c
	gst/videocrop/gstaspectratiocrop.c
	gst/videomixer/videomixer.c
	gst/videomixer/videomixer2.c
	gst/wavparse/gstwavparse.c
	po/ja.po
	po/lv.po
	po/sr.po
	tests/check/Makefile.am
	tests/check/elements/qtmux.c
	tests/check/elements/rgvolume.c
2012-01-10 14:32:32 +01:00
Wim Taymans
5fd2b7abe3 GST_FLOW_UNEXPECTED -> GST_FLOW_EOS 2012-01-03 15:26:21 +01:00
Tim-Philipp Müller
b8b8454bcb Suppress deprecation warnings in selected files, for g_static_rec_mutex_* mostly
GStaticRecMutex is part of our API/ABI, not much we can do here
in 0.10 for most of these.
2011-12-12 09:46:27 +00:00
Wim Taymans
d0b936acc7 rtspsrc: remove unused flush param 2011-12-06 13:59:52 +01:00
Wim Taymans
ac849ec2b3 fix for element flag updates 2011-11-28 16:57:24 +01:00
Vincent Penquerc'h
c0e101e93f various: fix pad template leaks
https://bugzilla.gnome.org/show_bug.cgi?id=662664
2011-11-28 13:30:27 +00:00
Tim-Philipp Müller
87aa29d2cf rtspsrc: make connection-speed property a guint64 2011-11-24 01:19:32 +00:00
Wim Taymans
105650127e add parent to pad functions 2011-11-17 15:02:55 +01:00
Wim Taymans
6190312214 add parent to query function 2011-11-16 17:27:13 +01:00
Tim-Philipp Müller
c27bbe4be2 Update for GstURIHandler get_protocols() changes 2011-11-13 23:44:44 +00:00
Tim-Philipp Müller
a150d1e734 soup, pushfile, rtsp, udp, v4l2: update for GstURIHandler API changes 2011-11-13 18:50:51 +00:00
Wim Taymans
c48df77320 update for probe api changes 2011-11-08 11:18:06 +01:00
Wim Taymans
de020130e6 fix for probe updates 2011-11-07 17:14:17 +01:00
Wim Taymans
768e3826ab more template fixes 2011-11-04 17:39:15 +01:00
Wim Taymans
a95acb7122 make %u in all request pad templates 2011-11-04 11:58:22 +01:00
Wim Taymans
0560ab53c0 update for new task api 2011-11-02 09:06:37 +01:00
Wim Taymans
9a8a8e72c8 structure: fix for api update 2011-11-02 09:06:37 +01:00
Tim-Philipp Müller
9f77b02b15 Update for pad API changes
GstProbeType, GstProbeReturn and GstActivateMode -> GstPad*
2011-11-01 00:52:28 +00:00
Wim Taymans
87fbd1e784 Merge branch 'master' into 0.11
Conflicts:
	common
	ext/pulse/pulsesink.c
	ext/soup/gstsouphttpclientsink.c
	gst/audioparsers/gstaacparse.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtpmanager/gstrtpjitterbuffer.c
	gst/rtpmanager/rtpjitterbuffer.c
	gst/rtsp/gstrtspsrc.c
	sys/ximage/gstximagesrc.c
2011-09-28 12:44:59 +02:00
Mark Nauwelaerts
81fc784163 rtspsrc: do not set elements to PLAYING when doing seek in PAUSED 2011-09-19 11:56:44 +02:00
Mark Nauwelaerts
8599801cae rtspsrc: switch to rtp time based syncing when guessed appropriate 2011-09-19 11:52:08 +02:00
Mark Nauwelaerts
3e33a7a09f rtspsrc: configure rtcp interval if provided
... in PLAY response.
2011-09-19 11:51:47 +02:00
Mark Nauwelaerts
95b5ece2c9 rtspsrc: ensure some initial state variable setup
... which might otherwise be skipped if the PLAY command is issued before
the OPEN command had a chance to actually be acted upon.

Fixes #657376.
2011-09-09 10:53:08 +02:00
Wim Taymans
33f18b8ea4 Merge branch 'master' into 0.11
Conflicts:
	gst/audioparsers/gstamrparse.c
	gst/isomp4/qtdemux.c
2011-09-06 16:06:25 +02:00
Mark Nauwelaerts
2603c2079d rtspsrc: add gtk-doc for new short-header property 2011-09-05 13:32:17 +02:00
Marc Leeman
ce276d903c rtspsrc: allow sending short RTSP requests to a server
Some encoders (Arecont) do not like the long OPTIONS sent at startup as sent by
GStreamer, but do accept the short header as sent by Live555.

This patch makes the extending the request optional by adding a property
(short-header).

Fixes #655805.

API: GstRTSPSrc:short-header
2011-09-05 13:26:06 +02:00
Wim Taymans
4bb2b140e9 Merge branch 'master' into 0.11
Conflicts:
	sys/v4l2/v4l2src_calls.c
2011-08-16 18:35:53 +02:00
Edward Hervey
d08e0ccc48 rtspsrc: Properly error out if SDP contains no streams
Also fixes unitialized variable error on macosx.
2011-08-09 11:28:17 +02:00
Wim Taymans
4121021bb2 Merge branch 'master' into 0.11
Conflicts:
	ext/pulse/pulsesink.c
	ext/pulse/pulsesrc.c
	gst/audioparsers/gstac3parse.c
	gst/rtp/gstrtph264depay.c
	gst/rtp/gstrtph264pay.c
	gst/rtpmanager/gstrtpssrcdemux.c
2011-08-03 18:25:30 +02:00
Mark Nauwelaerts
9764b57b0a rtspsrc: set SOURCE flag at init time
Fixes #654816.
2011-07-25 12:44:38 +02:00
Wim Taymans
9c087d7d85 Merge branch 'master' into 0.11 2011-07-15 17:06:39 +02:00
Mark Nauwelaerts
b98585df82 rtspsrc: fix seeking regression
... introduced when shuffling around code for the async implementation
by setting state of source (and udp sources) in _play before downstream
flushing is undone.
2011-07-12 15:13:25 +02:00
Wim Taymans
f0749ed617 rtsp: fix for uri changes 2011-06-22 16:41:13 +02:00
Wim Taymans
e221908169 rtsp: fix for flush_stop API change 2011-06-13 17:14:51 +02:00
Wim Taymans
eed80e2dd3 -good: update for buffer API change 2011-06-13 16:33:57 +02:00
Wim Taymans
c731cd3d95 rtsp: port to 0.11 2011-06-09 17:52:34 +02:00
Wim Taymans
710fa239d5 Merge branch 'master' into 0.11 2011-06-08 18:06:56 +02:00
Mark Nauwelaerts
785247cfb3 rtspsrc: reset state tracking variable when appropriate
... so we don't end up interrupting an operation that should not be interrupted
based on the indication of a previous interruptable operation.
2011-06-06 12:59:23 +02:00
Wim Taymans
0b1bdcf7cb Merge branch 'master' into 0.11
Conflicts:
	sys/ximage/ximageutil.c
2011-06-02 18:51:29 +02:00
Miguel Angel Cabrera Moya
c39b7a5359 rtspsrc: uniform unknown message handling
Do the same processing in all the cases when an unknown message is received.
That is, give a warning.

https://bugzilla.gnome.org/show_bug.cgi?id=651059
2011-05-25 20:06:16 +02:00
Wim Taymans
d89790d545 Merge branch 'master' into 0.11
Conflicts:
	gst/avi/gstavidemux.c
	gst/rtp/gstrtpac3depay.c
	gst/rtp/gstrtpg726depay.c
	gst/rtp/gstrtpmpvdepay.c
	gst/videofilter/gstgamma.c
2011-05-24 17:34:19 +02:00
Stefan Kost
be413185d0 rtspsrc: use EINVAL for missing url parameter
Fixes gcc warning about using uninitialized variable 'res'.
2011-05-18 10:22:27 +03:00
Wim Taymans
e15651816e Merge branch 'master' into 0.11 2011-05-17 16:13:59 +02:00
Mark Nauwelaerts
dc2ddea91b rtspsrc: also allow PAUSE to be interrupted
... as it is on the way out to NULL.

See #632504.
2011-05-17 11:56:47 +02:00
Mark Nauwelaerts
283e4e4afd rtspsrc: ensure proper closing and cleanup
... since the TEARDOWN sequence might not have had a chance to even start,
but at least connections should be closed (synchronously) and state cleaned up.

See #632504.
2011-05-17 11:56:38 +02:00
Mark Nauwelaerts
f7ddf811d7 rtspsrc: fix and improve async handling
Simplify the command handling; passing a command to thread means we really
want it to get the message, which means to always flush provided the command
can handle being interrupted.  Command thread indicates whether command
allows interruption and ensure non-flushing connection as it subsequently
needs it.

In particular, this also makes the TEARDOWN sequence interruptable
and also prevents races where _loop_ could miss a command and would
continue receiving (or at least trying to).

See #632504.
2011-05-17 11:56:22 +02:00
Mark Nauwelaerts
e6798ad54c rtspsrc: tweak post-seek loop handling 2011-05-17 11:55:40 +02:00
Wim Taymans
ddfcd8bbfd rtspsrc: open on play and pause when not done yet
With the async state changes, it is possible that we need to open the stream
before play and pause.
Also make sure we remember a previous open failure so that we don't keep trying
again.
2011-05-17 11:55:34 +02:00
Wim Taymans
6fe680934a rtspsrc: improve async handling
Simplify the command handling, only continue looping when we have not received
another command or when the previous loop was successfull.
Avoid looping on a disconnected socket.
2011-05-17 11:55:32 +02:00
Wim Taymans
2513207433 rtspsrc: rework reconnect code
Use the same async code path to implement reconnects.
Make sure we only post progress messages when doing async things.
2011-05-17 11:55:29 +02:00
Wim Taymans
c27c10f8f4 rtspsrc: small cleanups
Make sure we cancel the previous task when queuing a new one.
Move the messages to a central place so we can more easily post them.
2011-05-17 11:55:27 +02:00
Wim Taymans
852c6e11cd rtspsrc: don't post errors when interrupting 2011-05-17 11:55:24 +02:00
Wim Taymans
220e47adcf rtspsrc: implement more async handling
Remove some old locks.
Make sure we never go into the loop function when flushing.
2011-05-17 11:55:20 +02:00
Wim Taymans
2873585238 rtspsrc: first attempt at async implementation 2011-05-17 11:55:18 +02:00
Wim Taymans
77acc618e1 use G_DEFINE_TYPE some more 2011-04-19 17:35:47 +02:00
Wim Taymans
c124ba1489 Merge branch 'master' into 0.11
Conflicts:
	gst/rtsp/gstrtspsrc.c
2011-04-05 17:20:08 +02:00
Wim Taymans
547c97f590 rtspsrc: handle * control correctly
Parse session control attributes when no media control attribute is
present. Threat * control attributes as an empty string, just like the
spec says.

Fixes #646800
2011-04-05 17:12:28 +02:00
Wim Taymans
f67c95d826 rtsp/udp: port to 0.11 2011-04-05 17:06:41 +02:00
Mark Nauwelaerts
234609844e rtspsrc: perform post-flush state tricks downstream to upstream
... so downstream is set when upstream resumes data flow.
2011-04-04 11:49:00 +02:00
Mark Nauwelaerts
226a7cb32e rtspsrc: distribute new base_time to manager children following flush seek
... by forcing a state changed to PLAYING, which should otherwise be a
no-op as elements should already be in that state.

In particular, jitterbuffer needs new base_time as soon as possible to perform
proper timing (e.g. eos timeout handling) and can't wait for the new base_time
that will be distributed when the whole pipeline returns to PLAYING.

See bug #646397.
2011-04-04 11:49:00 +02:00
Wim Taymans
8f22a09dc4 Merge branch 'master' into 0.11-fdo 2011-03-28 20:50:59 +02:00
Mark Nauwelaerts
2738917852 rtspsrc: improve recovery from failed seek
In case server-side fails to perform seek, i.e. PLAY at non-zero requested
position, recovery so far would arrange for streaming to continue, albeit
having lost position tracking in the process.  So, query position prior
to seek and use upon failed seek.
2011-03-09 17:18:09 +01:00
Wim Taymans
759a3507d7 Merge branch 'master' into 0.11
Conflicts:
	configure.ac
2011-02-28 11:58:05 +01:00
Miguel Angel Cabrera Moya
3cca27ced1 rtspsrc: fix minor leaks when handling server requests.
https://bugzilla.gnome.org/show_bug.cgi?id=640163
2011-02-14 11:33:18 +01:00
Stefan Kost
6f6b2a7efc rtspsrc: strip trailing spaces 2011-02-07 17:08:47 +02:00
Stefan Kost
5e071d51f2 rtpsrc: set multiple properties in one go
There is no need for separate g_object_set() calls here.
2011-02-07 17:07:42 +02:00
Tim-Philipp Müller
08855b45b6 rtspsrc: don't leak url string
https://bugzilla.gnome.org/show_bug.cgi?id=640064
2011-01-20 13:46:44 +00:00
Wim Taymans
bc0824181b rtspsrc: don't confuse return values
Return a return value of the right type.
2011-01-05 18:33:41 +01:00
Stefan Kost
c9e0db6469 rtspsrc: remove unused variables when debug-logging disabled 2011-01-03 20:17:47 +02:00
Wim Taymans
dc221c0219 rtspsrc: increase udp buffer size
Set a bigger UDP buffer size by default to reduce packet loss with
high bitrate streams.
2011-01-03 15:40:11 +01:00
Tim-Philipp Müller
96830324a5 rtspsrc: serialise/deserialise floats without changing locale
Use g_ascii_dtostr() and g_ascii_strtod() to serialise/deserialise
floating point numbers, instead of ugly hacks that switch locale
before and after calling libc functions (which is not a good idea
in a multi-threaded application).
2010-12-29 15:54:46 +00:00
Wim Taymans
2a49d34c3e rtspsrc: on-npt-stop is a manager signal 2010-12-23 16:25:15 +01:00
Wim Taymans
12bc7258b9 rtspsrc: improve RTP session handling
Store the RTP session in the stream so that we can more efficiently
perform actions on the stream based on RTP signals.
2010-12-23 15:24:29 +01:00
Tim-Philipp Müller
7759ad0db2 docs: update rtspsrc docs, rtpbin is not in -bad any more 2010-12-22 13:04:42 +00:00
Mark Nauwelaerts
287894a89a rtspsrc: mark DISCONT when resuming PLAY
In particular, when streaming interleaved, this arranges for setting a new
timestamp on outgoing buffer so downstream can appropriate reset
to a change in (rtp)time.
2010-12-10 12:11:15 +01:00
Mark Nauwelaerts
c25625c31c rtspsrc: degrade gracefully upon failing seek and tweak QUERY_SEEKING response 2010-12-10 12:09:49 +01:00
Mark Nauwelaerts
52b5929a2b rtspsrc: add and use auto buffering mode
... which selects BUFFER for a non-live stream, and otherwise SLAVE.

Fixes #633088.
2010-12-10 12:09:32 +01:00
Wim Taymans
1d57ec6a6e rtspsrc: use _object_ref_sink() when we can 2010-12-07 11:42:15 +01:00
Mark Nauwelaerts
0f2373cbd1 rtspsrc: reset session manager base time when flushing
... as rtpbin uses running time to handle rtpjitterbuffer's buffer mode pauses.
2010-12-03 15:50:17 +01:00
Mark Nauwelaerts
148af2235e rtspsrc: include range request for all streams with non-aggregate control 2010-12-03 15:50:17 +01:00
Mark Nauwelaerts
dedf145316 rtspsrc: fix debug statement 2010-12-03 15:50:17 +01:00
Wim Taymans
7ed250c793 rtspsrc: select multicast transports in a smarter way
When we see a multicast address in the SDP connection, only try to negotiate a
multicast transport with the server.

Fixes #634093
2010-12-02 19:16:47 +01:00
Mark Nauwelaerts
b6b0de0c49 rtspsrc: handle stale digest authentication session data
In particular, handle Unauthorized server response when trying to convey
keep-alive.

Fixes #635532.
2010-11-29 17:34:28 +00:00
Mark Nauwelaerts
ca7870de49 rtspsrc: fix duration reporting
Init segment prior to storing duration info in it.

Fixes #632548.
2010-10-19 16:47:20 +02:00
Wim Taymans
ee7207aa3e rtspsrc: mark as a source
Mark the rtspsrc element as a source.
Requires 0.10.31.1 now
2010-10-11 15:12:51 +02:00
René Stadler
0cfe24d132 rtspsrc: fix missing null-terminator in protocols array
Fixes random crash regression from commit ae84ae.
2010-09-28 16:21:48 +03:00
Wim Taymans
ef29a59903 rtspsrc: don't add /UDP in the transport, it's the default
don't add the default UDP lower-transport, some servers don't seem to like it.

Fixes #630500
2010-09-24 16:26:20 +02:00
Wim Taymans
8f2d254e24 rtspsrc: don't clear sdp when set as uri
when we set the SDP with an uri, don't clear it when we go to READY.
2010-09-10 18:06:48 +02:00
Wim Taymans
7698d8bc4a rtspsrc: use sdp uri parse method
Use the sdp parse method that does proper uri escaping.
2010-09-10 18:02:04 +02:00
Wim Taymans
ae84ae1b36 rtspsrc: add rtsp-sdp protocol support
Allow setting an SDP with the rtsp-sdp:// url.

Based on patch from Marco Ballesio.

See #628214
2010-09-10 12:14:21 +02:00
American Dynamics
5999e8e716 rtspsrc: Add property to configure udpsrc buffer size
Add a new udp-buffer-size property to configure the buffer-size on the udpsrc
elements.

Fixes #628058
2010-09-06 12:22:11 +02:00
Wim Taymans
e4f8144bbf rtspsrc: implement custom event handler
Extend the _push_event() function so that it can also send events to the udp
sources when asked.
Implement a custum send_event function that correctly dispatches the downstream
events in TCP mode. This fixes sending EOS to rtspsrc and have it push the EOS
downstream.
2010-09-06 10:45:23 +02:00
Sebastian Dröge
d224251df4 rtspsrc: Don't use GST_FLOW_IS_FATAL() and GST_FLOW_IS_SUCCESS() 2010-09-04 14:52:10 +02:00
Wim Taymans
9dcfed0a5b rtspsrc: don't reuse udp sockets
Don't reuse sockets but make the udpsrc element fail the state change when the
socket is already in use. If we don't prevent reuse, we might end up using the same
port for different streams in some cases.

Fixes #622017
2010-08-04 10:40:23 +02:00
Wim Taymans
e39d7f7359 rtspsrc: improve error and warning message
Improve error and warning message.

Fixes #622577
2010-08-04 10:39:44 +02:00
Arnaud Vrac
c6f47c34fb rtspsrc: add port-range property to rtspsrc
To support setups with firewall/ipsec, it is useful for an rtsp client to be
able to set the range of ports that can be used for rtp/rtcp reception.
Allows this by adding a "port-range" property to the rtspsrc element.

Fixes #625153
2010-07-26 17:47:35 +02:00
Wim Taymans
8696d10a5b rtspsrc: fix memory leak in server request reply
The RTSP server rtspsrc is communicating with, sends a GET_PARAMETER request
periodically as a ping.  The code in gst_rtspsrc_handle_request forms an OK
response and sends, but doesn't call gst_rtsp_message_unset to free the memory
after sending the response.  This results in a constant slow memory leak.

Fixes #624770
2010-07-26 15:33:44 +02:00
Wim Taymans
5534c7d91d rtspsrc: fix locking after moving things around 2010-06-18 20:04:08 +02:00
Wim Taymans
651c82a01f rtspsrc: make some errors as warnings
Avoid spamming the testsuite with these error debug lines.
2010-06-18 16:56:19 +02:00
Wim Taymans
966ced2208 rtspsrc: factor out the connections
Keep a global connection for aggregate control but also keep stream connections
for non-aggregate control.
Add some helper methods to connect/close/flush the connections.
2010-06-18 15:13:06 +02:00
Wim Taymans
ddc214d322 rtspsrc: add non-aggregate control
Add non-aggregate control.
Separate retrieving thr SDP from parsing and setting up the streaming from the
SDP.
2010-06-18 15:13:06 +02:00
Wim Taymans
e6ec5cce2e rtspsrc: respect aggregate control attributes
when the SDP specifies an aggregate control url, use that for playback
control.

Fixes #619531
2010-06-14 19:24:14 +02:00
Wim Taymans
cb8252275d rtsp: try all ranges from the sdp
Try all ranges in the SDP before giving up.
2010-06-04 13:58:38 +02:00
Wim Taymans
6fbca707bb rtspsrc: make parse_range return result
Make the parse_range function return if the parsing succeeded or failed.
2010-06-04 13:58:38 +02:00
Wim Taymans
a50cd7c27d rtspsrc: don't leak the session 2010-05-07 19:02:21 +02:00
Wim Taymans
bc72d8250c rtsp: configure bandwidth properties in the session 2010-05-07 18:59:42 +02:00
Wim Taymans
db3c4e7f46 rtspsrc: fall back to SDP ports instead of server_port
In multicast, fall back to the ports in the SDP instead of the server_port
attribute as this is more in line with the RFC.
2010-05-07 12:51:05 +02:00
Wim Taymans
4e1ced0a77 rtspsrc: refactor collecting the transport info
Make a method to collect the ports and destination address.
2010-05-07 12:24:51 +02:00
Wim Taymans
05352d7ea8 rtspsrc: handle servers that send broken Transports
Handle servers that send their port pairs with the wrong name.

Fixes #617537
2010-05-07 11:28:36 +02:00
Wim Taymans
ef4d2901aa rtspsrc: use the SDP connection info in multicast
Parse the connection info from the SDP.
When we need to configure the multicast destination, fall back to the SDP
connection info when the transport did not specify a destination and ttl.

Fixes #617537
2010-05-06 16:52:26 +02:00
Wim Taymans
d6579912cb rtspsrc: make setup url in a smarter way
Make sure we always separate the base and control url parts with a / when
creating the setup url.
2010-05-04 16:36:15 +02:00
Alessandro Decina
c8a02a91a6 rtspsrc: handle SEEKING queries. 2010-05-04 16:05:13 +02:00
Wim Taymans
b84bf10455 rtspsrc: add property to control the buffering method
Add a property to control how the jitterbuffer performs timestamping and
buffering.
2010-04-05 15:26:03 +02:00
Benjamin Otte
3f511ec361 Add -Wwrite-strings to the configure flags
... and fix all warnings
2010-03-21 14:17:47 +01:00
Wim Taymans
ef804589ca rtsp: use GType from -base and bump required version
Use the transport flags GType from -base and bump the required version of -base
because of this.
2010-03-19 15:03:43 +01:00
Benjamin Otte
cccfeaa59c gst_element_class_set_details => gst_element_class_set_details_simple 2010-03-18 14:32:00 +01:00
Benjamin Otte
1055aaa9cb Add -Wredundant-decls warning flag
Also fix compile issues
2010-03-17 19:35:10 +01:00
Benjamin Otte
3342b1679e Add -Wmissing-declarations -Wmissing-prototypes warning flags
And fix all the warnings.
2010-03-17 18:23:28 +01:00
Wim Taymans
ba6dbaecfc rtspsrc: don't forget to send keepalive messages
When we operate in TCP mode, still send keepalive messages when we
need to.

Fixes #612696
2010-03-15 11:38:23 +01:00
Wim Taymans
d29fa60f97 rtspsrc: check for NULL before doing strcmp
Check the connection and address type for NULL before doing strcmp and
crashing.

Fixes #612553
2010-03-11 12:56:11 +01:00
Wim Taymans
821096c4f1 rtspsrc: parse connection information
Parse the connection information from the SDP and use it to figure out if we are
dealing with ipv4 or ipv6 connections.
2010-03-10 11:28:22 +01:00
Wim Taymans
8eb5c2c794 rtspsrc: require a destination for multicast
When setting up the multicast sockets, we need a destination address to listen
on or else we error.
2010-03-10 11:21:20 +01:00
Wim Taymans
574447b092 rtspsrc: handle ipv6 listening ports when needed
Add some code to make udpsrc listen on an ipv6 address when needed. The
detection of IPV6 is not yet implemented.
2010-03-10 11:21:20 +01:00
Wim Taymans
38f2b4735d rtspsrc: send keep alive when paused
When we are paused, send keep alive messages to the server so that our session
doesn't time out when we go back to playing later.
2010-03-10 11:21:18 +01:00
Wim Taymans
66709a7a68 rtspsrc: configure multicast correctly
Take the transport destination for multicast.
Disable loop and autojoin for multicast on the udpsinks.
2010-03-08 17:48:46 +01:00
Wim Taymans
a0b651bf5b rtspsrc: avoid stopping NULL tasks
Check the task for NULL, it could be paused and set to NULL before.
2010-02-16 19:54:32 +01:00
Mark Nauwelaerts
87e80aab57 rtspsrc: fix typo in debug message 2010-02-16 16:07:21 +01:00
Wim Taymans
8d814f3782 rtpbin: pass running_time to jitterbuffer pause
Pass the current running time to the jitterbuffer when pausing or resuming so
that it calculate the right offsets.
Small cleanups and comments.
Set the default rtspsrc latency to 2 seconds.
2010-02-12 17:22:54 +01:00
Wim Taymans
c2dfc94b1d rtspsrc: cleanup properties
Use more default constants.
Use static strings param flag.
Init properties explicitly instead of letting gobject do this.
2010-02-12 15:20:07 +01:00
Wim Taymans
c35a984801 rtspsrc: free transports on errors
See #608564
2010-02-01 19:32:11 +01:00
Wim Taymans
8c5a822250 rtspsrc: fix on-npt-stop signal warnings for RDT
The RDT manager does not implement this signal so we need to check for it before
trying to connect to it.
2010-01-05 12:23:16 +01:00
Wim Taymans
a65240d1c1 rtspsrc: fix some comments, remove property check
Fix some comments, clarify some FIXMEs
Remove the on-ntp-stop signal check now that the jitterbuffer is in
-good and we know that it supports this signal.
2009-12-24 22:23:01 +01:00
Thiago Santos
ac03ad782a rtspsrc: Parse all rtpinfo entries
Do not forget to parse all rtp-info entries, instead of
parsing the first one only.

Fixes #605222
2009-12-24 17:08:22 -03:00
Wim Taymans
b8c2ccce4e rtspsrc: handle NULL and empty transport strings
When an RTSP extension returns NULL or an empty transport string, just ignore it
and try to get the next possible transport. Fixes playback of RealMedia streams.
2009-12-10 18:45:55 +01:00
Wim Taymans
6a44d8e198 rtspsrc: install event function on internal RTCP pad
Install a custom event function on the internal RTCP pad so that we can reply
TRUE to a latency event.
2009-12-10 18:45:55 +01:00
Tim-Philipp Müller
24b93d82ec rtspsrc: fix major memory leak when playing back rtsp video streams
Don't forget to unref QoS, navigation and latency events when
dropping them.
2009-12-04 11:14:03 +00:00
Bastien Nocera
efc611e420 Add user-id and user-pw properties
So that one doesn't need to modify the URL to have access
to authenticated RTSP streams.

fixes #601728
2009-11-18 17:27:19 +01:00
Wim Taymans
6725c91387 rtsp: handle events in TCP mode
We need to handle events in TCP mode so that we can reply to the LATENCY event
with TRUE.
2009-10-15 13:20:26 +02:00
Wim Taymans
88884cfddb rtspsrc: forward events into the rtpbin
Only catch the SEEK event on the srcpad and let other events enter the rtpbin.
2009-10-14 17:01:51 +02:00
Mark Nauwelaerts
50d5c8dce5 rtspsrc: if transport protocol unsupported, try another one
Also change error message to more accurately reflect cases in which
it can occur.
2009-09-25 16:47:39 +02:00
Arnout Vandecappelle
19455200b1 rtspsrc: fix memory leak
In gst_rtspsrc_parse_digest_challenge(), rtspsrc does a g_strndup of the auth
header items and then passes them to gst_rtsp_connection_set_auth_param()
without freeing.

Fixes #594133
2009-09-08 13:30:29 +02:00
Wim Taymans
784b95ddbf rtspsrc: don't add non-utf8 chars to structures 2009-08-03 18:13:46 +02:00
Luc Deschenaux
f96e900a64 rtspsrc: put all SDP attributes on caps
Put the SDP attributes on the caps too so that they can be used by
depayloaders.

See #564437
2009-08-03 17:21:44 +02:00
Mark Nauwelaerts
a905ef233e rtspsrc: do not leak timeout message 2009-07-09 11:34:40 +02:00
Wim Taymans
81d7a297f7 rtspsrc: use same protocols after redirect
After a redirect we want to use the same protocols that we were using for the
current url.
2009-06-23 16:39:36 +02:00
Patrick Radizi
a95c049f76 rtspsrc: Add RTP blocksize functionality
Add property to make the client suggest a blocksize to the server.
Fixes #585549
2009-06-12 16:06:28 +02:00
Wim Taymans
b9ddf22340 rtspsrc: set the right state on rtpbin
We need to set the state of gstrtpbin to the same state as our source elements.
This fixes fallback to TCP again.
2009-06-04 15:19:05 +02:00
Patrick Radizi
301fc8a712 rtspsrc: fix memory leak of messages
Free messages correctly.
Fixes #577318
2009-05-25 10:57:59 +02:00
Wim Taymans
047618849a rtspsrc: make fakesrc silent
Make the fakesrc that is responsible for sending dummy packets silent.
2009-05-24 19:32:17 +02:00
Wim Taymans
5d3168e558 rtspsrc: don't send teardown before setup
Don't send a TEARDOWN request when we did not manage to successfully setup a
stream.
2009-05-24 16:33:42 +02:00
Wim Taymans
732704c007 rtspsrc: Fix find_stream_by_* functions
Fix various version of find_stream_by_* by not trying to convert an int to a
pointer and vice versa, for portability reasons.

Fixes #581333
2009-05-04 18:55:12 +02:00
Chris Winter
752cfb16fe rtspsrc: fix dummy nat packet logic
Fix a typo in the dummy NAT packet sending code.

Fixes #581329
2009-05-04 18:32:05 +02:00
Mark Nauwelaerts
959a9b494b rtspsrc: avoid errors after server eof
Server eof (e.g. connection closed) is announced as connection closed,
so better record state and act accordingly to prevent (read/write)
errors during subsequent teardown/cleanup sequences.  #Fixes 580851.(c).
2009-05-04 17:01:35 +02:00
Mark Nauwelaerts
734548a34f rtspsrc: also set base_time on src after flush
timestamps following flush/seek should be consistent between
UDP and TCP interleaved case.  Fixes #580851.(b).
2009-05-04 17:01:28 +02:00
Mark Nauwelaerts
20c7be5741 rtspsrc: sanity checks on range info
A max range that overflows should not be trusted,
nor should a max range that equals the min range.
Fixes #580851.(a).
2009-05-04 17:01:20 +02:00
Wim Taymans
56656dd03d rtspsrc: use SKIP flag to use SCALE headers
We can use the SKIP seek flag to instruct the server to send data faster then
normal but with the same bandwidth.
Fixes #537609
2009-05-04 16:18:23 +02:00
Wim Taymans
de0a2575fc rtspsrc: release state lock before stopping task
We need to release the state lock before trying to wait for the task to end
because the task might also take the lock.

Fixes #577671
2009-04-29 18:09:07 +02:00
Patrick Radizi
5b86c66e8a rtspsrc: fix some more pad leaks
Fix some pad leaks.
See #577318.
2009-04-22 15:27:24 +02:00
Edward Hervey
4c60f9ef29 rtspsrc: Remove dead assignment.
t is being overwritten after, before it's used.
2009-04-18 18:51:29 +02:00
Edward Hervey
45c6690e26 rtspsrc: Remove dead assignment. 'res' isn't read after. 2009-04-18 18:51:29 +02:00
Edward Hervey
817d7a30c3 rtspsrc: Remove unused variable. 'res' is never read. 2009-04-18 18:51:29 +02:00
Edward Hervey
08a090c89c rtspsrc: Remove dead variable. 'stream' is never read after. 2009-04-18 18:51:29 +02:00
Edward Hervey
0cb5b42d54 Remove trivial unused variables detected by CLang static analyzer. 2009-04-18 18:51:28 +02:00
Josep Torra
dfb375daa1 rtspsrc: mark discont on the streams as was said the debug line
After a seek mark all streams with discont as it was said in the debug line.
Fixes that buffers after a seek are generated without a valid timestamp.
2009-04-18 14:32:40 +02:00
Josep Torra
ec2d6053a0 rtspsrc: map GST_RTSP_EEOF to EOS on server requests
Permit properly handle the EOS condition when server report it in a request.
2009-04-18 08:50:46 +02:00
Wim Taymans
b6bf3ba7d3 rtspsrc: allow http:// on the proxy setting
Allow and ignore http:// at the start of the proxy setting, like
souphttpsrc.
Fixes #573173
2009-04-02 22:41:01 +02:00
Wim Taymans
40f6ed8875 rtspsrc: don't leak the udpsrc pad
Fix memory leak in rtspsrc because we didn't unref the udpsrc pad.
See #577318
2009-04-02 21:08:48 +02:00