Wim Taymans
ad00c5e792
rtsp: make object details private
...
Make all object details private
Add methods to access private bits
2012-11-29 11:11:05 +01:00
Wim Taymans
e11287eb7c
media: check if prepared for some methods
...
Check that the media object is prepared before doing seek and getting the
current position etc.
Add some g_return checks.
2012-11-28 14:45:30 +01:00
Wim Taymans
fe71114a7d
media: unref pipeline in finalize to avoid leaking it
2012-11-28 12:39:37 +01:00
Wim Taymans
d43a31055e
rtsp: use gst_object_unref on GstObjects
2012-11-28 12:10:47 +01:00
Wim Taymans
0f93879b2c
media: fix seeking
2012-11-21 17:21:28 +01:00
Wim Taymans
5eb5fd45f3
media: support more Range formats
...
Use the new -base methods to convert the Range string into a seek start and stop
value.
2012-11-21 16:41:56 +01:00
Wim Taymans
989f004e24
media: unref source in finish_unprepare
...
The source is created in prepare, unref it in finish_unprepare.
See https://bugzilla.gnome.org/show_bug.cgi?id=688707
2012-11-20 09:46:40 +01:00
David Svensson Fors
01973c924d
rtsp-media: remove bus watch before finalizing
...
* A GDestroyNotify function is set for the bus watch in gst_rtsp_media_prepare.
* An extra media ref is added for the bus watch. This extra ref is unreffed by
the GDestroyNotify function.
* gst_rtsp_media_unprepare destroys the source so the bus watch is removed.
* GstRTSPClient, which calls gst_rtsp_media_prepare, also calls
gst_rtsp_media_unprepare before unreffing the media.
This way, the bus watch will be removed before the media is finalized.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688707
2012-11-20 09:46:00 +01:00
Wim Taymans
e4ea72ccdf
stream: use the address managed by the stream
...
Use the address managed by the stream for multicast. This allows us to have 1
multicast address for each stream.
Because the address is now managed by the stream we don't have to pass it around
anymore.
Set the address pool on the streams.
2012-11-15 16:18:29 +01:00
Wim Taymans
ba21661ce4
rtsp: improve debug
2012-11-15 16:15:20 +01:00
Wim Taymans
c34f5d1c1a
media: add signal for new streams
...
This allows applications to listen for new streams and configure properties on
them, like the address pool.
2012-11-15 15:41:42 +01:00
Wim Taymans
4168a67992
media: configure address pool in new streams
2012-11-15 15:41:19 +01:00
Wim Taymans
1b4ac6e5b0
media: remove MTU property
...
It is a stream property
2012-11-15 15:32:43 +01:00
Wim Taymans
f15ffb521c
rtsp: use AddressPool
...
Remove the multicast_group property.
Use the configured addresspool to allocate multicast addresses.
2012-11-14 17:23:59 +01:00
Wim Taymans
dfe3efef74
media: wait for concurrent _prepare
...
If a prepare is busy, wait for the result.
2012-11-13 11:54:17 +01:00
Wim Taymans
47127bd270
media: add lock around message handler
...
We don't want to dispatch messages while we are still processing the result of
the state change.
2012-11-13 11:49:08 +01:00
Wim Taymans
9a97de88ea
media: add lock to protect state changes
2012-11-13 11:15:35 +01:00
Tim-Philipp Müller
4dba434f16
Fix FSF address
2012-11-04 00:14:25 +00:00
Sebastian Pölsterl
75598337a9
rtsp-server: added annotations to indicate type of ownership transfer of return values
...
https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-28 15:39:04 +00:00
Wim Taymans
0bb0e3733c
small fixes to docs and debug
2012-10-27 11:53:51 +02:00
Wim Taymans
6f7d755894
stream: improve join and leave of the pipeline
...
simplify code
Do the cleanup properly
Add some docs
2012-10-26 17:28:10 +02:00
Wim Taymans
693dd3cfc4
media: move unprepare below default implementation
...
Makes it easier to find the default implementation
2012-10-26 15:23:16 +02:00
Wim Taymans
0d55e1f50c
media: signal unprepared when we actually finish
2012-10-26 15:21:50 +02:00
Wim Taymans
84b7cf1590
media: no need to unlock, unprepare does that when needed
2012-10-26 15:19:23 +02:00
Wim Taymans
6b7ff45ca6
rtsp: fix MTU setting
...
Fix setting of the MTU. There is no need for a vmethod.
2012-10-26 12:35:20 +02:00
Wim Taymans
de7c72dec2
rtsp: massive refactoring
...
Make GObjects from the remaining simple structures.
Remove GstRTSPSessionStream, it's not needed.
Rename GstRTSPMediaStream -> GstRTSPStream: It is shorter
Rename GstRTSPMediaTrans -> GstRTSPStreamTransport: It describes how
a GstRTSPStream should be transported to a client.
Rename GstRTSPMediaFactory::get_element -> create_element because that
more accurately describes what it does.
Make nice methods instead of poking in the structures.
Move some methods inside the relevant object source code.
Use GPtrArray to store objects instead of plain arrays, it is more
natural and allows us to more easily clean up.
Move the allocation of udp ports to the Stream object. The Stream object
contains the elements needed to stream the media to a client.
Improve the prepare and unprepare methods. Unprepare should now undo
everything prepare did. Improve also async unprepare when doing EOS on
shutdown. Make sure we always unprepare correctly.
2012-10-25 21:29:58 +02:00
Sebastian Pölsterl
e11e855ac8
rtsp-server: fixed comments and GIR annotations
...
https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-18 19:17:01 +01:00
Ognyan Tonchev
d581b7bd4e
client: Use client transport settings for multicast if allowed.
...
This patch makes it possible for the client to send transport settings for
multicast (destination && ttl). Client settings must be explicitly allowed or
the server will use its own settings.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685561
2012-10-10 11:07:59 +02:00
Ognyan Tonchev
f4a0a371b7
media: fix check for seekability
2012-09-10 16:29:35 +02:00
Aleix Conchillo Flaque
c6cce4a6b9
rtsp-media: also initialize transports in on_ssrc_active (bug #683304 )
...
* gst/rtsp-server/rtsp-media.c: GstRTSPMediaStream transports might not
be available in "on_new_ssrc". The transports are added in
gst_rtsp_media_set_state when going to PLAYING state. However,
"on_new_ssrc" might be called before this happens.
https://bugzilla.gnome.org/show_bug.cgi?id=683304
2012-09-07 16:45:17 +02:00
Ognyan Tonchev
86e53af34a
rtsp: Handle the blocksize parameter
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=679325
2012-07-10 11:26:01 +02:00
Tim-Philipp Müller
217a46e4c1
rtsp-media: update for gst_element_make_from_uri() changes
2012-06-23 15:06:11 +01:00
David Svensson Fors
36df0dd8be
rtsp-media: don't collect media stats when going to NULL
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=678015
2012-06-14 10:14:06 +02:00
Wim Taymans
6cc2fb9bfc
rtsp-server: port to new thread API
2012-05-11 09:42:47 +02:00
Wim Taymans
e0be150e91
media: fix state of the appqueue
2012-03-13 18:10:53 +01:00
Wim Taymans
4c59e211e2
rtsp-server: port to GIO
...
Port to GIO
2012-03-07 15:04:29 +01:00
Wim Taymans
fde25cd9c3
rtsp-server: port some more to 0.11
...
Fix caps.
Remove bufferlist stuff
Update for new API.
Add queue before appsink now that preroll-queue-len is gone.
Update for request pad changes.
2011-12-09 10:53:30 +01:00
Wim Taymans
bace3995d5
Merge branch 'master' into 0.11
2011-11-03 12:58:42 +01:00
Wim Taymans
a701e8595e
media: add a seekable boolean
...
Maintain the seekable state with a new variable instead of reusing the
is_live variable.
2011-11-03 12:55:24 +01:00
Victor Gottardi
526bbb5a8f
Disallow seek in live media
2011-11-03 12:45:18 +01:00
Wim Taymans
c079325169
media: add property for multicast group
...
Add a property to configure the multicast group in the media.
Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 14:50:05 +02:00
Wim Taymans
5b53335873
media: add property for multicast group
...
Add a property to configure the multicast group in the media.
Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 13:25:16 +02:00
Wim Taymans
b5aa7628bf
Merge branch 'master' into 0.11
2011-08-16 11:12:33 +02:00
Wim Taymans
bbab01747d
media: use new api
2011-08-04 08:59:17 +02:00
Thijs Vermeir
93fb73b46f
fix compiler warnings about unused variables
2011-07-20 17:16:42 +02:00
Wim Taymans
80e0b0b19a
media: port to new caps API
2011-05-17 09:48:13 +02:00
Wim Taymans
914b481e42
rtsp-server: port to 0.11
2011-04-26 19:22:50 +02:00
Wim Taymans
6959ebd8e8
Merge branch 'master' into 0.11
...
Conflicts:
common
configure.ac
2011-04-26 19:07:13 +02:00
Wim Taymans
a924e90c79
media: remove more unused code
2011-02-02 15:37:03 +01:00
Wim Taymans
ec2201a3a8
media: remove duplicate filtering
...
Remove the duplicate filtering code now that we have a released -good version.
Give a warning instead.
2011-02-02 15:30:45 +01:00
Wim Taymans
8477fdbf43
media: fix default buffer size
2011-01-31 17:38:47 +01:00
Wim Taymans
88b4c02dff
media: add property to configure kernel buffer sizes
...
Add a property to configure the kernel UDP buffer size.
2011-01-31 17:37:41 +01:00
Wim Taymans
44b418b346
media: init debug category before starting thread
2011-01-13 18:57:15 +01:00
Wim Taymans
9e97faf2db
server: improve debugging in various objects
2011-01-12 18:14:48 +01:00
Wim Taymans
7797023fda
media: enable per factory authorisations
...
Allow for adding a GstRTSPAuth on the factory and media level and check
permissions when accessing the factory.
Add hints to the auth methods for future more fine grained authorisation.
Add example application for per factory authentication.
2011-01-12 13:57:09 +01:00
Wim Taymans
e1787e0776
funnel: rename fsfunnel to rtspfunnel
...
Rename the funnel to avoid conflicts with the farsight one.
2011-01-10 15:10:53 +01:00
Wim Taymans
7b3cbfde1b
rtsp-media: add and use fsfunnel
...
Add a copy of fsfunnel to the build because input-selector removed the (broken)
select-all property that we need.
2011-01-10 13:43:10 +01:00
Wim Taymans
790c067919
media: attempt to configure bigger UDP buffers
...
Attempt to configure bigger udp kernel send buffers to avoid overflowing the
send buffers with high bitrate streams.
2011-01-05 12:06:23 +01:00
Wim Taymans
50b4c8de98
rtsp-server: add support for buffer lists
...
Add support for sending bufferlists received from appsink.
Fixes #635832
2010-12-29 16:26:41 +01:00
Wim Taymans
4234d96314
media: make method to retrieve the play range
...
Make a method to retrieve the playback range so that we can conditionally create
a different range for the SDP and the PLAY requests.
2010-12-28 18:35:01 +01:00
Wim Taymans
915cd708ea
media: add signal to notify of state changes
2010-12-28 18:34:10 +01:00
Wim Taymans
1ea450179e
media: emit prepared signal when prepared
...
Make a 'prepared' signal and emit it when we successfully prepared the element.
This signal can be used to configure the media object after it has been prepared
for streaming.
2010-12-17 18:45:10 +01:00
Wim Taymans
fc12ade012
Merge branch 'master' into 0.11
...
Conflicts:
common
configure.ac
2010-12-13 11:43:13 +01:00
Wim Taymans
ca76a73ca0
media: update range when active clients changed
...
When we changed the number of active clients, update the current range
information because we want the second client connecting to a shared resource
continue from where the stream currently.
2010-12-12 15:48:47 +01:00
Wim Taymans
34f0973831
media: ignore spurious ASYNC_DONE messages
...
When we are dynamically adding pads, the addition of the udpsrc elements will
trigger an ASYNC_DONE. We have to ignore this because we only want to react to
the real ASYNC_DONE when everything is prerolled.
2010-12-11 18:04:34 +01:00
Edward Hervey
eb83fc6318
rtsp-server: Run gst-indent
...
Since it wasn't using the upstream common previously, there was no
indentation check before commiting.
2010-12-11 10:48:42 +01:00
Edward Hervey
b95165fcff
rtsp-server: Some more doc fixups
2010-12-11 10:48:25 +01:00
Wim Taymans
422fea478c
media: warn and fail when gstrtpbin is not found
2010-12-06 19:29:53 +01:00
Wim Taymans
ed473f6f26
media: help the compiler a little
2010-09-22 16:15:56 +02:00
Wim Taymans
450b68252f
media: cleanup media transport before freeing
...
Cleanup the media transport data before freeing. In particular, remove the qdata
from the rtpsource object.
2010-08-24 16:47:30 +02:00
Wim Taymans
dc33070da3
media-factory: add eos-shutdown property
...
Add an eos-shutdown property that will send an EOS to the pipeline before
shutting it down. This allows for nice cleanup in case of a muxer.
Fixes #625597
2010-08-20 18:17:08 +02:00
Wim Taymans
a900866570
media: use multiudpsink send-duplicates when we can
...
If we have a new enough multiudpsink with the send-duplicates property, use this
instead of doing our own filtering. Our custom filtering code should eventually
be removed when we can depend on a released -good.
2010-08-20 15:58:39 +02:00
Wim Taymans
c89d17ca26
media: don't leak destinations
...
Refactor and cleanup the destinations array when the stream is destroyed.
2010-08-20 13:19:56 +02:00
Wim Taymans
7c0f8a77ec
media: don't add udp addresses multiple times
...
Keep track of the udp addresses we added to udpsink and never add the same udp
destination twice. This avoids duplicate packets when using multicast.
2010-08-20 13:09:12 +02:00
David Schleef
6a880e53df
Add stdlib.h for atoi()
2010-08-09 12:56:23 -07:00
Wim Taymans
09b97dd4ac
rtsp-server: add more support for multicast
2010-03-19 18:03:40 +01:00
Wim Taymans
ac8343ea62
media: allow configuration of allowed lower transport
2010-03-19 15:15:29 +01:00
Wim Taymans
e866345f15
rtsp: keep track of server ip and ipv6
...
Keep track of how the client connected to the server and setup the udp ports
with the same protocol.
Copy the server ip address in the SDP so that clients can send RTCP back to
us.
2010-03-16 18:37:18 +01:00
Wim Taymans
6afa5be799
media: allow for ipv6 sockets
2010-03-10 11:45:06 +01:00
Alessandro Decina
5f535ecf87
rtspmedia: emit "unprepared" if _prepare fails.
...
Emit the unprepared signal if gst_rtsp_media_prepare fails so that the
media object is removed from its factory's cache.
2010-03-09 10:27:38 +01:00
Wim Taymans
2997806d43
media: collect media position when seek completes
2010-03-05 19:08:08 +01:00
Wim Taymans
83ed258684
media: limit the time to wait to something huge
...
Avoid waiting forever but limit the timeout to 20 seconds.
2010-03-05 18:23:18 +01:00
Wim Taymans
c7ca9b74eb
media: avoid doing _get_state() for state changes
...
When preparing, use the ASYNC_DONE and ERROR messages in the bus handler to wait
until the media is prerolled or in error. This avoids doing a blocking call of
gst_element_get_state() that can cause lockups when there is an error.
Fixes #611899
2010-03-05 17:54:09 +01:00
Wim Taymans
d45eae2edd
media: reindent
2010-03-05 16:20:08 +01:00
Wim Taymans
53f8350b36
media: set multicast sink parameters
...
Disable loop and automatic multicast join on the udpsink elements.
Add some more debug info.
Reset some state variables in the right place.
Use the right port numbers for multicast.
2010-03-05 13:28:58 +01:00
Sebastian Pölsterl
6d227be7a9
Use GStreamer's debugging subsystem
2009-11-21 19:20:23 +01:00
Sebastian Pölsterl
f8630c6c81
media: Fixed crasher where caps got unref'ed too often
2009-10-13 10:57:31 +02:00
Wim Taymans
297b6a755a
media: add some docs
2009-09-11 13:52:27 +02:00
Wim Taymans
5d4c0e20c0
media: fix indentation
2009-06-18 16:05:18 +02:00
Sebastian Pölsterl
f384231ca3
Unref pipeline and set it to NULL. Set stream's caps to NULL, otherwise we unref it too often.
2009-06-18 15:54:15 +02:00
Sebastian Pölsterl
036550bf60
set state and remove elements of media in for loop
2009-06-18 15:54:11 +02:00
Sebastian
3bd2d36b1b
Added gst_rtsp_media_remove_elements function
2009-06-18 15:54:04 +02:00
Sebastian
1a3e5b369c
Don't use name for gstrtpbin so we can add multiple instances to the pipeline
2009-06-18 15:54:01 +02:00
Sebastian Pölsterl
749765b921
Added vmethod unprepare to GstRTSPMedia
...
The default implementation sets the state of the pipeline to GST_STATE_NULL
2009-06-18 15:53:49 +02:00
Sebastian Pölsterl
e417d83dce
Added vmethod create_pipeline to GstRTSPMediaFactory
...
The pipeline is created in this method and the GstRTSPMedia's element is added to it
2009-06-18 15:53:34 +02:00
Wim Taymans
94b6da045a
media: don't leak session pads
2009-06-04 19:20:26 +02:00
Wim Taymans
9a38f95417
media: clean up the messages a bit
2009-06-04 18:32:15 +02:00
Wim Taymans
03ae66062b
media: fix message
...
Fix a debug message
Make dumping RTCP stats configurable
2009-05-27 11:15:22 +02:00
Wim Taymans
3fc1439965
media: be less verbose and leak less
2009-05-26 19:20:07 +02:00
Wim Taymans
1340e21239
media: don't leak the destination address
2009-05-26 19:07:33 +02:00