Commit graph

460 commits

Author SHA1 Message Date
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
348b7f9c21 docs: update docs 2012-10-26 12:35:20 +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 Rasmussen
0de6262dc4 rtsp-client: Unref server address clients connected to
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=686725
2012-10-23 23:05:45 +01:00
Ognyan Tonchev
78bde6fa3e rtsp-server: don't ref server socket if it is NULL
Fixes test_bind_already_in_use unit test again after commit 6a497440.

https://bugzilla.gnome.org/show_bug.cgi?id=686644
2012-10-22 18:11:28 +01:00
Sebastian Pölsterl
5cec59737b rtsp-media-mapping: rename find_media vfunc to find_factory
The virtual method and class method should have the same name
so it is correctly represented in GIR file

https://bugzilla.gnome.org/show_bug.cgi?id=680777
2012-10-18 19:31:23 +01: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
Alessandro Decina
bc474a5b26 media-mapping: fix transfer mode for gst_rtsp_media_mapping_add_factory 2012-10-15 10:50:27 +02:00
Alessandro Decina
1e954a1a5e rtsp-server: allow binding on port 0 (binds on a random port) 2012-10-15 10:50:27 +02:00
Alessandro Decina
6a49744088 rtsp-server: add bound-port property
bound-port can be used to retrieve the port number when the server is bound on
port 0, which binds on a random port.
2012-10-15 10:50:27 +02:00
Alessandro Decina
8f507e4512 rtsp-media-factory: make ::get_element overridable by GI bindings
The way to annotate vfuncs with GI seems to be to create an invoker (GI term)
for them and to annotate the invoker. Add gst_rtsp_media_factory_get_element()
as the invoker for ::get_element(), making it overridable by GI generated
bindings.
2012-10-15 10:50:26 +02:00
Alessandro Decina
3a49b8e783 rtsp-media-factory-uri: don't autoplug parsers in a loop
Stop autoplugging parsers if caps have parsed=true set. Fixes autoplugging
h264parse forever.
2012-10-15 10:50:26 +02:00
Alessandro Decina
8da18a85ef Explicitly link against gio. Fix link error on mac. 2012-10-15 10:50:26 +02:00
Ognyan Tonchev
4f0ef292f0 session: add ttl to the transport header in SETUP
See https://bugzilla.gnome.org/show_bug.cgi?id=685561
2012-10-10 11:13:58 +02: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
Patricia Muscalu
870b8db279 rtsp-client: do not destroy the rtsp watch
Don't destroy the client watch while dispatching.  The rtsp watch is
automatically destroyed after the rtsp watch function closed() has
been called.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=685220
2012-10-05 11:44:32 +02:00
Ognyan Tonchev
f4a0a371b7 media: fix check for seekability 2012-09-10 16:29:35 +02:00
Wim Taymans
3e55e0e467 client: use more GIO
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681593
2012-09-07 17:14:30 +02:00
Wim Taymans
87c73c06fb server: remove obsolete includes 2012-09-07 17:14:10 +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
Aleix Conchillo Flaque
bef57648b8 rtsp-client: add signals for rtsp requests (fixes #683287) 2012-09-07 16:41:29 +02:00
Aleix Conchillo Flaque
ebc4ce4de1 add new-session signal to rtsp-client (fixes #683058) 2012-08-30 22:00:30 +02:00
Patricia Muscalu
50e4c7e8c4 rtsp-server: fixed segfault in gst_rtsp_server_create_socket
Do not assume that *error is set in g_socket_address_enumerator_next.
Added test_bind_already_in_use unit-test.

Fixes https://bugzilla.gnome.org/show_bug.cgi?id=681914
2012-08-20 11:49:27 +02:00
Patricia Muscalu
228e2ccc2d rtsp-client: make create_sdp virtual method
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=680173
2012-07-24 12:52:53 +02:00
Wim Taymans
f305020636 client: fix docs 2012-07-10 11:39:58 +02:00
Ognyan Tonchev
ed66f974dd rtsp-server: use an existing socket to establish HTTP tunnel
Make it possible to transfer a socket from an HTTP server to be used as
an RTSP over HTTP tunnel.
2012-07-10 11:38:05 +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
853128e1c7 client: don't leak transports 2012-06-14 10:14:06 +02:00
David Svensson Fors
3f49c2d8f4 rtsp-client: free transport on no_stream in SETUP handler 2012-06-14 10:14:06 +02:00
David Svensson Fors
8f5d82be6d rtsp-client: changed session media iteration
In client_unlink_session: now don't iterate in session->medias
list where items are removed by gst_rtsp_session_release_media.
Instead, repeatedly remove the first item.
2012-06-14 10:14:06 +02:00
David Svensson Fors
dc796bf075 rtsp-client: don't use g_object_unref on GstRTSPSessionMedia
GstRTSPSessionMedia is not a GObject type. When the
GstRTSPSession is freed, it will free the media.
2012-06-14 10:14:06 +02:00
David Svensson Fors
aa158fa738 factory: plug pad leak in collect_streams
In gst_rtsp_media_factory_collect_streams: unref the srcpad that
was retrieved using gst_element_get_static_pad. gst_ghost_pad_new
will take one reference, and the other reference will otherwise
give a memory leak.
2012-06-14 10:14:06 +02:00
David Svensson Fors
7b145aeeab client: fix GSocketAddress leak in gst_rtsp_client_accept
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=677463
2012-06-06 14:49:40 +02:00
David Svensson Fors
ffa3166fbd rtsp: fix compiler warnings
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=676500
2012-05-22 15:37:25 +02:00
Wim Taymans
6cc2fb9bfc rtsp-server: port to new thread API 2012-05-11 09:42:47 +02:00
Sebastian Dröge
e2f10f5ba5 rtsp-server: Fix compilation and compiler warnings 2012-04-13 15:27:22 +02:00
Sebastian Dröge
7df1696713 configure: Modernize autotools setup a bit
Also we now only create tar.bz2 and tar.xz tarballs.
2012-04-13 14:02:15 +02:00
Sebastian Dröge
fb0718a036 rtsp-server: Update versioning 2012-04-04 14:48:44 +02:00
Sebastian Dröge
e9ef6f6254 Merge remote-tracking branch 'origin/0.10'
Conflicts:
	gst/rtsp-server/rtsp-session-pool.c
2012-03-29 15:12:21 +02:00
Sebastian Dröge
1f442d45b6 rtsp-server: Don't use deprecated GLib API 2012-03-27 10:13:20 +02:00
Wim Taymans
e0be150e91 media: fix state of the appqueue 2012-03-13 18:10:53 +01:00
Wim Taymans
6403227471 factory: use videoconvert 2012-03-13 16:07:16 +01:00
Wim Taymans
377f6d9156 factory: change to new style caps 2012-03-13 16:02:47 +01:00
Wim Taymans
4c59e211e2 rtsp-server: port to GIO
Port to GIO
2012-03-07 15:04:29 +01:00
Tim-Philipp Müller
e67a1c664c rtsp-client: update for new map API 2012-02-13 11:06:33 +00: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
05c3928b11 Merge branch 'master' into 0.11 2011-11-03 11:58:42 +01:00
mat
20b6be3852 #ifdef statements for windows socket creation were missing 2011-11-03 11:56:51 +01:00
Wim Taymans
6759a4b9b0 client: use method to access property 2011-08-16 16:39:11 +02:00
Wim Taymans
4c8f3696d0 media-factory: add protocols property
Add a property to configure the allowed protocols in the media created from the
factory.
2011-08-16 16:39:07 +02:00
Wim Taymans
85e2013ca4 media-factory: add media-configure signal
Add signal to allow the application to configure the media after it was created
from the factory.
2011-08-16 16:39:04 +02:00
Wim Taymans
6fa73b2552 client: use method to access property 2011-08-16 16:07:04 +02:00
Wim Taymans
0e9ce1caf3 media-factory: add protocols property
Add a property to configure the allowed protocols in the media created from the
factory.
2011-08-16 15:15:19 +02:00
Wim Taymans
8684fc5c69 media-factory: add media-configure signal
Add signal to allow the application to configure the media after it was created
from the factory.
2011-08-16 15:03:06 +02:00
Wim Taymans
56a16f9f5a client: use media multicast group 2011-08-16 14:50:21 +02:00
Wim Taymans
2c9701bd73 retab some .h 2011-08-16 14:50:18 +02:00
Robert Krakora
a5e028ba72 sdp: copy and free the server ip address
Copy and free the server ip address to make memory management easier later.
2011-08-16 14:50:15 +02:00
Wim Taymans
647e8c7af8 media-factory: configure multicast in media 2011-08-16 14:50:12 +02: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
514728864a media-factory: add property for multicast group
Add a property to configure the multicast group in the media factory.

Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 14:49:59 +02:00
Wim Taymans
b881dc6669 client: do configuration of transport in one place
Move the configuration of the transport destination address to where we also
configure the other bits.
2011-08-16 14:49:55 +02:00
Wim Taymans
9573058f54 client: use media multicast group 2011-08-16 13:43:44 +02:00
Wim Taymans
26c8898e79 retab some .h 2011-08-16 13:37:50 +02:00
Robert Krakora
ae67971cde sdp: copy and free the server ip address
Copy and free the server ip address to make memory management easier later.
2011-08-16 13:31:52 +02:00
Wim Taymans
ccfb99f852 media-factory: configure multicast in media 2011-08-16 13:27:39 +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
1f8b97d940 media-factory: add property for multicast group
Add a property to configure the multicast group in the media factory.

Based on patches from Marc Leeman and Robert Krakora.
2011-08-16 13:13:36 +02:00
Wim Taymans
b0e22d6861 client: do configuration of transport in one place
Move the configuration of the transport destination address to where we also
configure the other bits.
2011-08-16 12:51:44 +02:00
Wim Taymans
8749b1e08f Merge branch 'master' into 0.11 2011-08-16 12:11:59 +02:00
Robert Krakora
f7223cfdab client: destroy pipeline on client disconnect with no prior TEARDOWN.
The problem occurs when the client abruptly closes the connection without
issuing a TEARDOWN.  The TEARDOWN handler in the rtsp-client.c file of the RTSP
server is where the pipeline gets torn down.  Since this handler is not called,
the pipeline remains and is up and running.  Subsequent clients get their own
pipelines and if the do not issue TEARDOWNs then those pipelines will also
remain up and running.  This is a resource leak.
2011-08-16 12:09:48 +02:00
Wim Taymans
1aefff4959 Merge branch 'master' into 0.11 2011-08-16 11:53:37 +02:00
Emmanuel Pacaud
5dc9e76125 media-factory: add a "media-constructed" signal to GstRTSPMediaFactory
For example, it can be used to retrieve source elements like appsrc, in a more
convenient way than subclassing get_element.
2011-08-16 11:22:55 +02:00
Wim Taymans
b5aa7628bf Merge branch 'master' into 0.11 2011-08-16 11:12:33 +02:00
David Schleef
041b62db8b rtsp-server: hold on to reference while using object 2011-08-11 18:07:08 -07:00
Wim Taymans
bbab01747d media: use new api 2011-08-04 08:59:17 +02:00
David Schleef
aa128813fe client: fix reference counting 2011-07-27 15:02:08 -07:00
Thijs Vermeir
93fb73b46f fix compiler warnings about unused variables 2011-07-20 17:16:42 +02:00
Wim Taymans
bd8eb8f3d9 client: update for buffer API change 2011-06-13 19:05:57 +02:00
Edward Hervey
b93f046708 Makefile.am: 0.10 => @GST_MAJORMINOR@ 2011-06-07 11:04:10 +02:00
Edward Hervey
597a99e9b9 rtsp-media-factory-uri: GST_PLUGIN_FEATURE_NAME is no longer 2011-06-07 10:59:16 +02:00
Edward Hervey
14f8ed65b4 .gitignore: 0.10 => 0.11 2011-06-07 10:59:03 +02:00
Edward Hervey
c94416d486 Makefile.am: 0.10 => @GST_MAJORMINOR@ 2011-06-07 10:54:26 +02:00
Wim Taymans
80e0b0b19a media: port to new caps API 2011-05-17 09:48:13 +02:00
Wim Taymans
debbea1008 Merge branch 'master' into 0.11 2011-05-17 09:45:04 +02:00
Fabian Deutsch
6ef7c966ae Add a signal for newly connected clients.
Signed-off-by: Fabian Deutsch <fabian.deutsch@gmx.de>
2011-05-17 09:44:14 +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
Miguel Angel Cabrera Moya
17ce0df09a session: use full charset for RTSP session ID
As specified in RFC 2326 section 3.4 use full valid charset to make guessing
session ID more difficult.

https://bugzilla.gnome.org/show_bug.cgi?id=643812
2011-03-07 18:39:43 +00:00
Sebastian Dröge
63744dfece rtsp-server: Don't install the funnel header 2011-03-07 10:23:06 +01: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
e86b7c4b15 media-factory: add property to configure the buffer-size
Add a property to configure the kernel UDP buffer size.
2011-01-31 17:37:45 +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
325b2cf8a2 rtsp-server: clarify docs a little 2011-01-19 15:29:55 +01:00
Wim Taymans
44b418b346 media: init debug category before starting thread 2011-01-13 18:57:15 +01:00
Wim Taymans
cd8382674d auth: add realm to make it more spec compliant 2011-01-13 18:40:48 +01:00
Wim Taymans
b076933f5e server: add locking 2011-01-12 18:57:41 +01:00
Wim Taymans
94c9999715 server: ensure the watch has a ref to the server 2011-01-12 18:26:57 +01:00
Wim Taymans
3315031bf6 server: simpify channel function 2011-01-12 18:24:44 +01:00
Wim Taymans
ba4d65a673 server: simplify management of channel and source
We don't need to keep around the channel and source objects. Let the mainloop
and the source manage the source and channel respectively.
2011-01-12 18:18:13 +01:00
Wim Taymans
9e97faf2db server: improve debugging in various objects 2011-01-12 18:14:48 +01:00
Wim Taymans
0ef53a2d4f server: chain up to the parent finalize 2011-01-12 16:38:34 +01:00
Wim Taymans
df0e2c2859 client: use the response from the clientstate
Create the response object only once and store in the client state.
Make all methods use the state response,
2011-01-12 15:37:39 +01:00
Wim Taymans
318b3a1df4 server: use signal to keep track of clients
Keep track of all the clients that the server creates and remove them when they
fire the 'closed' signal.
2011-01-12 15:36:22 +01:00
Wim Taymans
4a4a15077b client: emit signal when closing 2011-01-12 15:35:51 +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
5773df1d52 rtsp-server: Pass ClientState structure arround
Pass the collected information for the ongoing request in a GstRTSPClientState
structure that we can then pass around to simplify the method arguments. This
will also be handy when we implement logging functionality.
2011-01-12 13:16:08 +01:00
Wim Taymans
9ea0346d97 media-factory: add methods to configure authorisation 2011-01-12 12:07:40 +01:00
Wim Taymans
748d044b62 client: unref auth in finalize 2011-01-12 12:07:20 +01:00
Wim Taymans
6915572695 server: unref auth in finalize 2011-01-12 12:07:04 +01:00
Wim Taymans
6d6ba1ee61 server: separate create and accept
Create separate create and accept methods so that subclasses can create custom
client object.
Configure the server in the client object and prepare for keeping track of
connected clients.
2011-01-12 10:57:08 +01:00
Wim Taymans
8ccebd90b4 client: add support for setting the server.
Add support for keeping a ref to the server that started this client
connection.
2011-01-12 10:42:52 +01:00
Wim Taymans
9f52f281ba auth: fix memleak and add some docs
Fix a memleak of the basic auth token.
Add docs for the helper function
2011-01-12 10:41:42 +01:00
Wim Taymans
c59d9e2970 client: delegate setup of auth to the manager
Delegate the configuration of the authentication tokens to the manager object
when configured.
2011-01-12 00:35:28 +01:00
Wim Taymans
5fb5f75020 auth: add authentication object
Add an object that can check the authorization of requests.
Implement basic authentication.
Add example authentication to test-video
2011-01-12 00:22:27 +01:00
Wim Taymans
61bee9985a server: move includes back
the includes are needed for sockaddr_in.
2011-01-12 00:20:36 +01:00
Wim Taymans
da35feb1aa rtsp: move network includes where they are needed 2011-01-11 22:42:25 +01:00
Sreerenj Balachandran
28597c913d rtsp-media.h: Minor corrections in comments.
Fixes #638944
2011-01-11 21:32:45 +01:00
Edward Hervey
2cc9eee3e6 gitignore: updates 2011-01-11 13:04:31 +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
Tim-Philipp Müller
c19eb8fb4e gobject-introspection: use PKG_CONFIG_PATH specified at configure time
Use PKG_CONFIG_PATH specified at configure time (if any) as well
for the g-ir-compiler, rather than just assuming the env var has
been set.
2011-01-08 02:00:12 +00:00
Tim-Philipp Müller
8b1ec41d08 gobject-introspection: fix g-i build for uninstalled setup
Requires gst-plugins-base git (> 0.10.31.2).
2011-01-08 01:15:35 +00:00
Wim Taymans
186089ff1e factory-uri: use right property type 2011-01-07 11:24:39 +01:00
Wim Taymans
257bac1bab factory-uri: attempt to configure buffer-lists
Attempt to configure buffer lists in the payloader for improved performance.
2011-01-05 12:07:42 +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
Jonas Larsson
b5a1719e89 client: use the socket length from getsockname
Use the length returned by getsockname to perform the getnameinfo call because
the size can depend on the socket type and platform.

Fixes #638723
2011-01-05 11:26:30 +01:00
Wim Taymans
160fc25867 docs: improve docs 2010-12-30 12:41:31 +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
43f4696f78 client: cleanup headers 2010-12-28 18:31:26 +01:00
Wim Taymans
899f624845 client: fix typo 2010-12-28 12:18:41 +01:00
Wim Taymans
50a71b9d86 factory-uri: add support for gstpay
Add an option to prefer gstpay over decoder + raw payloader.
2010-12-23 18:53:01 +01:00
Wim Taymans
9ce4ea165b factory-uri: rework the autoplugger.
Rewrite the autoplugger a little so that it prefers to plug demuxers and parsers
before payloaders.
2010-12-23 15:58:14 +01:00
Wim Taymans
1053860112 factory-uri: use better factory filter
Make better payloader filter based on autoplug rank and RTP use case.
2010-12-21 17:39:09 +01:00
Wim Taymans
ad2e0edee5 server: set SO_REUSEADDR before bind
Set the SO_REUSEADDR _before_ bind() to make it actually work.
2010-12-18 11:24:48 +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
d99a448f79 factory-uri: add colorspace and fix pt
Rework the way we pass data to the autoplugger.
When we have raw caps, plug a converter element to make pluggin to raw
payloaders more successful.
Make sure all dynamically plugged payloaders have a unique payload types.
2010-12-12 04:06:41 +01:00
Wim Taymans
7ef0bf98da factory-uri: add a factory to stream any URI
Make a factory that uses uridecodebin to decode any uri and autoplug a payloader
when we have one.
2010-12-11 18:04:34 +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
Wim Taymans
75a7cda97d media-factory: make lock macro 2010-12-11 18:04:29 +01:00
Edward Hervey
a6556551e3 rtsp-server: Remove unused variable and dead assignment 2010-12-11 10:53:28 +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
Edward Hervey
bdd477f2bf Makefile.am: Use standard GIR make behaviour 2010-12-07 18:14:39 +01:00
Wim Taymans
422fea478c media: warn and fail when gstrtpbin is not found 2010-12-06 19:29:53 +01:00
Sebastian Pölsterl
347e10e1f9 Added initial gobject-introspection support 2010-09-23 13:39:42 +02:00
Wim Taymans
c310f0032c media-factory: don't use host for shared hash key
When we generate the key to share made between connections, don't include the
host used to connect so that we can share media even if between clients that
connected with localhost and ones with the ip address.
2010-09-23 11:35:40 +02: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
Wim Taymans
af732fa749 server: disable use of SO_LINGER
SO_LINGER cause the client to fail to receive a TEARDOWN message because the
server close()s the connection.
2010-08-20 10:18:34 +02:00
Wim Taymans
2607ff079d server: use 5 second linger period in SO_LINGER
Wait 5 seconds before clearing the send buffers and reseting the connection with
the client when we do a close. This should be enough time to get the message to
the client.

See #622757
2010-08-19 18:52:47 +02:00
Robert Krakora
8f6fd32065 server: use SO_LINGER
SO_LINGER on the socket will make sure that any pending data on the socket is
flushed ASAP and that the socket connection is reset. This makes sure that the
socket can be reused immediately.

Fixes 622757
2010-08-16 12:45:24 +02:00
David Schleef
6a880e53df Add stdlib.h for atoi() 2010-08-09 12:56:23 -07:00
Wim Taymans
336ffc0941 client: improve client cleanups
Make sure the session does not timeout when using TCP. We need to do this
because quicktime player does not send RTCP for some reason in tunneled
mode.
Refactor some cleanup code.

Fixes #612915
2010-04-06 17:08:40 +02:00
Wim Taymans
4fdd2bf4d1 session: add support for prevent session timeouts
Add an atomix counter to prevent session timeouts when we are, for example,
streaming over TCP.
2010-04-06 17:07:27 +02:00
Wim Taymans
48a54054e7 client: fix unlink on session timeouts
When our session times out, make sure we unlink all streams in this
session.
Remove the tunnelid when closing the connection.
2010-04-06 15:45:56 +02:00
Wim Taymans
558c7fddd2 session: small cleanups 2010-04-06 15:44:45 +02:00
Wim Taymans
30c31a65eb client: handle lost_tunnel callbacks
Handle lost_tunnel callbacks and use it to store the tunnelid back into the
hashtable so that we can reuse it for when the client reopens the POST
socket.
Close the connection after a TEARDOWN.
Make sure or watchid is cleared when the watch is removed.

Fixes #612915
2010-04-06 11:13:51 +02: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
4eccdd9dd7 session: indent 2010-03-16 18:34:43 +01:00
Wim Taymans
d749f1e7d5 client: use right size for malloc 2010-03-16 18:33:23 +01:00
Wim Taymans
0509aa1cbf server: comment ipv6 server listening address 2010-03-10 11:45:30 +01:00
Wim Taymans
6afa5be799 media: allow for ipv6 sockets 2010-03-10 11:45:06 +01:00
Wim Taymans
17bb89f1fc server: rework server part
Allow setting a bind address, make sure we can deal with ipv6.
Remove the port property and change with the service property.
2010-03-09 13:49:00 +01:00
Wim Taymans
1b0dc41534 media: update comments a little 2010-03-09 13:44:20 +01:00
Wim Taymans
b3814d4646 client: make content-base better
Use the URI formatting functions to make a content-base. Also make sure that
there is a trailing / at the end.
2010-03-09 13:43:29 +01:00
Wim Taymans
171e89c63a client: guard against invalid paths 2010-03-09 13:42:50 +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
Luca Ognibene
e19c382bbb client: call unlink_streams in client finalize
Fixes #599027
2010-03-05 18:37:17 +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
f90c422e62 sdp: reindent and check for prepared status 2010-03-05 17:57:08 +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
851e8aa744 media-factory: better error handling
Improve the error handling a bit.
2010-03-05 13:34:15 +01:00
Wim Taymans
73e8d6c69a client: rework transport parsing
Rework the transport parsing code so that we can ignore transports we don't
support instead of just picking the first one we can parse.
Configure a (for now hardcoded) destination for multicast transports.
2010-03-05 13:31:37 +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
Wim Taymans
63addbc278 session: handle transport setup correctly
Handle UDP, MCAST and TCP transport negotiation more correctly.
Store the server session SSRC in the transport.
2010-03-05 13:27:18 +01:00
Wim Taymans
ce6724f788 rtsp-client: implement error_full
Implement error_full to avoid some segfaults when the rtspconnection calls it.

See #608245
2010-01-27 18:38:27 +01:00
Wim Taymans
996112db95 docs: update docs and comments 2009-12-25 18:24:10 +01:00
Nikolay Ivanov
92eb244215 sdp: make server work better when behind a proxy 2009-12-25 15:22:23 +01:00