Wim Taymans
e5ba372808
client: fix factory leak
...
Keep the factory in the state object only for authorization checks and make
sure we unref it on failure. Also don't keep invalid objects in the state
object.
2012-11-28 11:05:08 +01:00
Wim Taymans
b4c168c71d
mounts: add g_return_if guards
2012-11-28 10:40:14 +01:00
Wim Taymans
b3fe3357ab
client: improve debug
2012-11-27 12:33:02 +01:00
Wim Taymans
d5389c940d
client: improve debug and fix leaks
...
Cleanup the uri and session when there is a bad request.
2012-11-27 12:24:21 +01:00
Wim Taymans
a26e9b621e
client: use 454 when session can't be found
...
We should use 454 when a session can't be found because there was no session
pool configured in the server. This is not a server configuration problem
because the server on which the request is done might not be the same one that
will keep the sessions for us and so it does not need to support sessions.
2012-11-27 12:11:41 +01:00
Wim Taymans
4782d08bdc
client: only free connection when there is one
...
It's possible that the client doesn't have a connection when we try to free it.
2012-11-27 11:17:45 +01:00
Wim Taymans
18bb9ffa6b
client: small cleanup
2012-11-26 17:35:51 +01:00
Wim Taymans
fc0f176a17
client: remove unused include
2012-11-26 17:34:35 +01:00
Wim Taymans
9f8e8bc02d
client: fix compilation
2012-11-26 17:34:24 +01:00
Wim Taymans
eb88fa9e76
client: call destroy without the lock
2012-11-26 17:28:29 +01:00
Wim Taymans
33da3af265
client: make the client usable without a socket
...
Make a method to let the client handle a message and a callback when the client
wants us to send a response message back. This makes it possible to also use the
client object without the sockets, which should make it easier to test.
2012-11-26 17:20:39 +01:00
Wim Taymans
26a4b98ab0
client: small cleanup
2012-11-26 16:45:04 +01:00
Wim Taymans
8da4171055
client: remove reference to server
...
We don't need to keep a ref to the server
2012-11-26 16:39:26 +01:00
Wim Taymans
4fa7502fd9
client: add locking
...
Also add some g_return_if()
2012-11-26 16:31:43 +01:00
Wim Taymans
b21b46ec4d
client: log more errors
2012-11-26 13:37:20 +01:00
Wim Taymans
f460e7360e
client: fix compilation
2012-11-26 13:36:19 +01:00
Wim Taymans
84e72262d0
client: add generic close-after-send support
...
Add a property to send_response() to close the connection after the response has
been sent to the client.
2012-11-26 13:19:06 +01:00
Wim Taymans
1d53c46d23
MediaMapping -> MountPoints
...
Describes better what the object manages.
2012-11-26 12:37:55 +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
37a7ec8033
factory: keep ref to factory while media active
...
While the media from a factory is alive, keep a ref to the factory.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=663555
2012-11-20 12:29:55 +01:00
Wim Taymans
8fcdca987d
factory-uri: add some debug
2012-11-20 12:29:26 +01:00
Wim Taymans
1826844ee4
stream: set udp sources to PLAYING
...
Set the UDP sources to PLAYING and locked state before we add it to the pipeline
so that it doesn't cause our pipeline to produce ASYNC-DONE.
2012-11-20 12:24:13 +01:00
Wim Taymans
8211cdfdc2
factory-uri: take ref to factory
...
Take a ref to the factory that we place in our list.
2012-11-20 12:10:16 +01:00
David Svensson Fors
0eeb4a5c73
server: start and stop multiple times
...
Stop listening on the RTSP port when the GSource is removed, so clients
can't connect and the server can be started again.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688395
2012-11-20 11:30:37 +01:00
Wim Taymans
8a7197f078
server: fix small leak
2012-11-20 11:24:35 +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
Alessandro Decina
65042a9551
client: wait until the TEARDOWN response is sent to close the connection
...
Responses can be sent async so we need to wait until the TEARDOWN response has
been written before we close the connection to the client. This avoids the risk
of writing/polling closed sockets.
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688535
2012-11-20 09:32:19 +01:00
David Svensson Fors
0996266342
rtsp-stream: plug socket leak
...
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=688703
2012-11-20 09:26:28 +01:00
Tim-Philipp Müller
0006ca6d60
rtsp-server: don't use deprecated API
2012-11-17 00:11:27 +00:00
Tim-Philipp Müller
290968eb8c
rtsp-client: fix unused-but-set-variable compiler warning
...
rtsp-client.c:1260:21: error: variable 'protocols' set but not used
2012-11-17 00:03:42 +00:00
Wim Taymans
26ff5fc073
rtsp: cleanups
2012-11-15 17:11:16 +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
44a2855eb3
stream: add methods to deal with address pool
...
Add methods to get and set the address pool for the stream
Add method to allocate and get the multicast addresses for this stream.
2012-11-15 15:36:21 +01:00
Wim Taymans
1b4ac6e5b0
media: remove MTU property
...
It is a stream property
2012-11-15 15:32:43 +01:00
Wim Taymans
2160d6dbd3
client: set blocksize only on stream
...
Set the blocksize only on the current stream.
2012-11-15 15:29:35 +01:00
Wim Taymans
6c2947e68b
stream: share src and sink sockets
...
the allocated socket is in the used-socket property, not socket.
2012-11-15 13:52:07 +01:00
Wim Taymans
45b6693b39
rtsp: make address-pool return an address object
...
Return a boxed GstRTSPAddress from the GstRTSPAddressPool. This allows us to
store more info in the structure and allows us to more easily return the address
to the right pool when no longer needed.
Pass the address to the StreamTransport so that we can return it to the pool
when the stream transport is freed or changed.
2012-11-15 13:25:14 +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
d0ffc8e679
address-pool: add clear method
2012-11-14 16:20:36 +01:00
Wim Taymans
6085b1fcc1
address-pool: small cleanups
2012-11-14 16:10:45 +01:00
Wim Taymans
b30202b174
address-pool: add object to manage multicast addresses
...
Make an object that can manage a rage of multicast addresses and ports.
2012-11-14 15:49:06 +01:00
Wim Taymans
7d6e4606fa
server: set default max-threads property
2012-11-13 12:05:42 +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
Wim Taymans
4753588b09
stream: add locking
2012-11-13 11:14:49 +01:00
Wim Taymans
c7d20e5603
stream-transport: add keep-alive method
2012-11-12 17:11:18 +01:00
Wim Taymans
75473fc88d
stream-transport: add method to handle RTP/RTCP
...
Call new methods instead of poking into the structures directly.
2012-11-12 17:06:42 +01:00
Wim Taymans
883cf794e4
session-media: add locking
2012-11-12 16:51:03 +01:00
Wim Taymans
11cf3f3ccb
session: add locking
2012-11-12 16:42:37 +01:00
Wim Taymans
65fa516677
server: free old socket
2012-11-12 16:30:16 +01:00
Wim Taymans
04881bd632
mapping: add locking
2012-11-12 16:18:57 +01:00
Wim Taymans
b8cba7719c
media-factory: add locking
2012-11-12 16:14:19 +01:00
Wim Taymans
e61c84c9bb
auth: add locking
2012-11-12 16:03:21 +01:00
Wim Taymans
06cadebe71
server: add max-thread property
2012-11-12 15:53:28 +01:00
Wim Taymans
8523c9ca92
server: use a threadpool for the mainloops
2012-11-12 15:29:39 +01:00
Wim Taymans
c431592976
client: rename method
...
gst_rtsp_client_create_from_socket -> gst_rtsp_client_use_socket: we
don't really create the client from the socket, we use the socket for the
client.
2012-11-12 15:01:13 +01:00
Wim Taymans
a58d404e1f
server: rework maincontext handling in clients
...
Make a separate method to attach a client to a MainContext.
Let the server decide in what GMainContext the client will operate and give this
context to the client in attach. Then the server can later decide to use a
separate thread for each client or just use the mainthread.
2012-11-12 15:01:09 +01:00
Wim Taymans
5b4340067a
session: move session header code in session object
2012-11-12 12:40:34 +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
543aa383e7
rtsp: only create transport when needed
...
Only create the StreamTransport when configured.
2012-10-28 00:23:57 +02:00
Wim Taymans
66a29c7ed9
client: small cleanup
2012-10-27 23:53:35 +02:00
Wim Taymans
fb117a4f75
rtsp: refactor configuration of transport
...
Move the configuration of the transport to a place where it makes
more sense.
2012-10-27 23:49:24 +02:00
Wim Taymans
8c30d050fa
client: refactor transport parsing
2012-10-27 21:26:55 +02:00
Wim Taymans
fee8216513
client: refuse to change the MTU on shared media
...
If we change the MTU of chared media, it changes for all clients.
We don't want to set the MTU to something large for clients that
stream over UDP.
2012-10-27 21:05:03 +02:00
Wim Taymans
0bb0e3733c
small fixes to docs and debug
2012-10-27 11:53:51 +02:00
Wim Taymans
6a838fd5c8
stream: transports must already have been removed
2012-10-26 17:29:30 +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
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
Sebastian Pölsterl
3d7610b033
client: dump rtsp message only if debug threshold is higher than GST_LEVEL_LOG
2009-11-21 19:20:39 +01:00
Sebastian Pölsterl
6d227be7a9
Use GStreamer's debugging subsystem
2009-11-21 19:20:23 +01:00
Sebastian Pölsterl
87fbfa54a0
server: Set ghost pad active in gst_rtsp_media_factory_collect_streams
2009-11-21 19:20:23 +01:00
Luca Ognibene
745900dd48
client: call weak-unref on client->sessions from finalize
...
Fixes bug #596305
2009-10-13 10:57:35 +02: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
Peter Kjellerstedt
309f53a12b
rtsp: Use gst_rtsp_watch_send_message().
...
Use gst_rtsp_watch_send_message() since the old API which used
gst_rtsp_watch_queue_message() has been deprecated.
2009-08-24 13:27:00 +02:00
Wim Taymans
7338ab81e1
rtsp: allocate channels in TCP mode
...
When the client does not provide us with channels in TCP mode, allocate channels
ourselves.
2009-07-27 19:42:44 +02:00
Wim Taymans
daccf6bc99
client: don't crash when tunnelid is missing
...
When a clients tries to open an HTTP tunnel but fails to provide a tunnelid,
don't crash but return an error response to the client.
Fixes #589489
2009-07-24 12:49:41 +02:00
Wim Taymans
a4c90c28c7
sessionpool: add function to filter sessions
...
Add generic function to retrieve/remove sessions.
2009-06-30 21:27:53 +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
045875ecbe
Made collect_streams function public
2009-06-18 15:53:42 +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
a697d16c75
client: use g_source_destroy()
...
We need to use g_source_destroy() because we might have added the source to a
different main context than the default one.
2009-06-11 11:27:47 +02:00
Wim Taymans
5e4757eff6
rtsp: prepare for handling GET/SET_PARAMETER
...
Add helper functions to handle GET/SET_PARAMETER. Reply with an error when there
is a body now.
Fix return codes of handlers.
2009-06-10 00:01:07 +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
e1765dec13
sdp: warn and skip streams without media
2009-06-03 12:13:21 +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
Wim Taymans
9bed89c3b7
rtsp: use RTCP to keep the session alive
...
Use the RTCP rtcp-from stats field to find the associated session and use this
to keep the session alive.
2009-05-26 19:01:10 +02:00
Wim Taymans
7bbdf7bf97
session: add 5sec to the real session timeout
...
Allow the session to live 5sec longer before really timing out. This should give
clients some extra time to keep the session active.
2009-05-26 17:27:07 +02:00
Wim Taymans
461169537b
client: replay OK to GET/SET_PARAMETER
...
Some clients (vlc) use GET/SET_PARAMETER to keep the TCP session open. Make it
so that we return OK for those requests.
2009-05-26 17:25:59 +02:00
Wim Taymans
5955fc7d12
media: keep track of active transports
...
Keep track of which transport is active to avoid closing the connection too
soon.
Remove the destination transport also when going to NULL.
Print some stats about the SDES and other RTCP messages we receive from the
clients.
2009-05-26 11:42:41 +02:00
Wim Taymans
7a8b931a83
media: also count active TCP connections
2009-05-24 19:56:45 +02:00
Wim Taymans
fab65082da
rtsp: add support for dynamic elements
...
Add support for dynamic elements.
Don't set live pipelines back to paused.
2009-05-24 19:34:52 +02:00
Wim Taymans
415e5e674b
sdp: don't add encoding name when absent in caps
2009-05-24 19:33:22 +02:00
Wim Taymans
740d71bd50
client: warn when we can't do RTP-Info
2009-05-23 16:30:55 +02:00
Wim Taymans
e5dc7c3719
factory: factor out the stream construction
2009-05-23 16:18:04 +02:00
Wim Taymans
8fcbe501dc
client: only add RTP-Info when we have the info
...
Only add RTP-Info for a stream when we can get the seqnum and timestamp from the
depayloader.
2009-05-23 16:17:02 +02:00
Wim Taymans
b83f54f159
media: link the RTP udpsrc to the session manager
...
Link the RTP udpsrc and the appsrc to the session manager so that they don't
shut down when the client sends a packet to open firewalls.
2009-05-15 17:58:44 +02:00
Wim Taymans
5f19d4b09e
media: seek to key frames
2009-04-29 17:25:04 +02:00
Wim Taymans
6ffd7432a5
media: emit the unprepared signal by id
...
Emit the unprepared signal by id instead of name and set the media as
reused.
2009-04-21 22:44:05 +02:00
Sebastian Pölsterl
708c8daaec
Set pipeline's state to NULL no matter if the media is reusable and emit unprepared signal in gst_rtsp_media_unprepare
2009-04-21 22:40:01 +02:00
Sebastian Pölsterl
9b7cb2a4ef
Added finalize function to GstRTPSPServer to unref session pool and media mapping
2009-04-21 00:14:41 +02:00
Wim Taymans
3f1f38f479
server: use appsink and appsrc with the API
...
Use the appsink/appsrc API instead of the signals for higher
performance.
2009-04-14 23:38:58 +02:00
Wim Taymans
35a5a709d3
factory: connect to the unprepare signal
...
Connect to the unprepare signal for non-reusable media so that we can remove
them from the cache.
2009-04-03 22:46:22 +02:00
Wim Taymans
0c1df5e023
media: add signal to notify of unprepare
2009-04-03 22:45:57 +02:00
Wim Taymans
5dab222089
media: more work on making the media shared
...
Add a reusable flag to medias, indicating that they can be reused after a state
change to NULL.
Small cleanups.
2009-04-03 22:22:30 +02:00
Wim Taymans
c6e1aef881
client: support shared media
...
Always perform the state actions even if the target state of the pipeline is
already correct, we still want to add/remove the transports when we are dealing
with shared media.
Keep a counter of the number of active transports for a media so that we can use
this to perform a state change when needed.
Perform a state change of the pipeline only when the first transport was added
or when there are no active transports.
2009-04-03 19:44:37 +02:00
Wim Taymans
47c822bdf3
client: fix refcounting crasher
...
Don't need to remove the weak refs in the finalize methods, they are already
removed in the dispose.
Don't register the callback with a DestroyNofity.
2009-04-03 19:43:33 +02:00
Tim-Philipp Müller
0b8ffbbb5c
Fix rtsp client refcount management in TCP mode.
...
Don't unref a client ref we never had. Fixes an unref
of an already-free client object after a client
teardown request for me.
2009-04-01 01:23:32 +01:00
Tim-Philipp Müller
8f16b1504e
docs: fix typo in API docs
2009-04-01 00:45:17 +01:00
Wim Taymans
8f91451555
More seeking fixes.
...
Keep the udp sources in playing even if we go to paused. unlock the sources when
we shut down.
Add some more debug info.
Only seek when we need to.
Keep track of the position when we go to paused.
2009-03-13 15:57:42 +01:00
Wim Taymans
525d639cde
Add beginnings of seeking.
...
Parse the Range header and perform a seek on the pipeline for the requested
position. It's disabled currently until I figure out what's going wrong.
2009-03-12 20:32:14 +01:00
Wim Taymans
0ae095e825
allow pause requests for now.
...
--
2009-03-12 20:31:22 +01:00
Wim Taymans
d3c404f32f
Remove weak ref on the session in teardown
...
We need to remove our weakref from the session when we do a teardown because
else we close the TCP connection prematurely.
2009-03-11 20:03:06 +01:00
Wim Taymans
1be35624da
Do some more session cleanup
...
Make session timeout kill the TCP connection that currently watches the
session.
Remove the client timeout property.
2009-03-11 19:38:06 +01:00
Wim Taymans
ebc28a47da
Add TCP transports
...
Use appsrc and appsink to send and receive RTP/RTCP packets in the TCP
connection.
2009-03-11 16:45:12 +01:00
Wim Taymans
de1ebbc21b
Add support for live streams
...
Add support for live streams and ranges
Start on handling TCP data transfer.
2009-03-06 19:34:14 +01:00
Wim Taymans
cd3ed91553
Free the pipeline before other things
...
---
2009-03-04 16:33:59 +01:00
Wim Taymans
d85b34f1b1
Only free the pending tunnel if there is one
...
--
2009-03-04 16:33:21 +01:00
Wim Taymans
2f8025dbdd
rtsp-server: Add support for tunneling
...
Add support for tunneling over HTTP.
Use new connection methods to retrieve the url.
Dispatch messages based on the message type instead of blindly
assuming it's always a request.
Keep track of the watch id so that we can remove it later.
Set the media pipeline to NULL before unreffing the pipeline.
2009-03-04 12:53:07 +01:00
Wim Taymans
daf27d2704
Fix for channel -> watch rename in gstreamer
...
Rename the RTSPChannel to RTSPWatch and remove an unused variable.
2009-02-19 15:53:50 +01:00
Wim Taymans
39c2e31e65
Use ASYNC RTSP io
...
Use the async RTSP channels instead of spawning a new thread for each client.
If a sessionid is specified in a request, fail if we don't have the session.
2009-02-18 18:57:31 +01:00
Wim Taymans
b70a6c9d83
Add better debug info
...
Add some better debug info.
2009-02-18 17:49:03 +01:00
Wim Taymans
b86451dc76
Pass GTimeVal around for performance reasons
...
Get the current time only once and pass it around so that sessions don't have to
get the current time anymore.
Add experimental support for a GSource that dispatches when the session needs to
be cleaned up.
2009-02-13 19:58:17 +01:00
Wim Taymans
bc785b0a47
Add better support for session timeouts
...
Add a method to request the number of milliseconds when a session will timeout.
2009-02-13 19:56:01 +01:00
Wim Taymans
f0c047ef94
Add suport for RTP manager monitoring
...
Add the first stage in monitoring the rtp manager.
Make sure we don't update the state to something we don't want.
2009-02-13 19:54:18 +01:00
Wim Taymans
308ad6f6d0
Add support for session keepalive
...
Get and update the session timeout for all requests. get the session as early as
possible.
2009-02-13 19:52:05 +01:00
Wim Taymans
cd29e2a454
Handle media bus messages
...
Handle media bus messages in a custom mainloop and dispatch them to the
RTSPMedia objects. Let the default implementation handle some common messages.
2009-02-13 16:39:36 +01:00
Wim Taymans
e1154c92d6
Some more session timeout handling
...
Move the session header setting code to a central place so that we always add
the timeout parameter too.
Handle timeouts by running the session cleanup code.
Stop media before cleaning up.
2009-02-13 12:57:45 +01:00
Wim Taymans
34152ec840
Add timeout property
...
Add a timeout property ot the client and make the other properties into GObject
properties.
2009-02-10 16:24:13 +01:00
Wim Taymans
c5b06ab5f8
Use getters and setters in property code
...
Use the getters and setters for the timeout property instead of locking
ourselves.
2009-02-10 16:21:17 +01:00
Wim Taymans
734dedaeac
Merge branch 'master' of git+ssh://git.collabora.co.uk/git/gst-rtsp-server
2009-02-04 20:13:32 +01:00
Wim Taymans
ae9da4c5b0
Add more timeout stuff
...
Add method to check if a session is expired.
Add method to perform cleanup on a session pool.
2009-02-04 20:10:39 +01:00
Wim Taymans
aedd4652f3
Add beginnings of session timeouts and limits
...
Add the timeout value to the Session header for unusual timeout values.
Allow us to configure a limit to the amount of active sessions in a pool. Set a
limit on the amount of retry we do after a sessionid collision.
Add properties to the sessionid and the timeout of a session. Keep track of
creation time and last access time for sessions.
2009-02-04 19:52:50 +01:00
Wim Taymans
e789a8fdf3
Cleanup of sessions and more
...
Fix the refcounting of media and sessions in the client. Properly clean up the
session data when the client performs a teardown.
Add Server header to responses.
Allow for multiple uri setups in one session.
Add Range header to the PLAY response and add the range attribute to the SDP
message.
Fix the session pool remove method, it used the wrong key in the hashtable. Also
give the ownership of the sessionid to the session object.
2009-02-04 17:00:42 +01:00
Wim Taymans
077a31b8df
Rename a variable
...
Rename the 'server_port' variable to simply 'port'.
2009-02-04 09:57:55 +01:00
Wim Taymans
d5a00f1f23
Rework the way we handle transports for streams
...
Make the media accept an array of transports for the streams that we have
configured for the play/pause requests.
Implement server states for a client and its media.
Require 0.10.22.1 (git HEAD) of gstreamer.
2009-02-03 19:32:38 +01:00
Wim Taymans
f303eef9bb
Drop const from functions dealing with urls
...
Drop const from GstRTSPUrl stuff because the .h files in gst-plugins-base don't
have the right const in them.
2009-01-31 19:50:33 +01:00
Wim Taymans
ae2521096a
Fix various leaks
...
Fix some leaks.
2009-01-30 17:06:26 +01:00
Wim Taymans
27f069b43c
More cleanups
...
Don't keep a reference to the GstRTSPMedia in the stream.
Free more things when freeing the GstRTSPMedia.
2009-01-30 16:24:10 +01:00
Wim Taymans
1b9225078b
More docs and small cleanups
...
Add some more docs and update the README
Cleanup some method names.
Remove an unneeded idx field in the GstRTSPMediaStream
2009-01-30 14:53:28 +01:00
Wim Taymans
edd2175695
Fix some leaks and change default port
...
Fix some memory leaks by setting the udpsrc elements to the unlocked state after
we finished the initial preroll. If we keep them locked, setting the pipeline to
NULL will not stop and clean up the sources correctly.
Change the default RTSP port to 8554 aka the official alternative RTSP port.
2009-01-30 12:18:01 +01:00
Wim Taymans
704720f306
Cleanups to the session object
...
Remove some unneeded variables in the session state of a stream such as the
owner media and the server transport.
Get the configuration of a media stream in a session based on the media_stream
in the original object instead of our cached index.
Free more data in the finalize method.
2009-01-30 12:17:57 +01:00
Wim Taymans
b19b1fbe6b
Cleanups and reuse media from DESCRIBE
...
Handle thread create errors.
Rename some internal methods to better match what they actually do.
Handle misconfiguration of session_pool and media_mapping gracefully.
Cache the DESCRIBE media and uri in the client connection and reuse them when
we receive a SETUP request in the same connection for the same uri.
Cleanup the client connection object.
2009-01-30 12:17:51 +01:00
Wim Taymans
998cf7d5c7
Add shared properties to media and factory
...
Add the shared property to media.
Implement some simple caching in the factory depending on if the media is shared
or not.
2009-01-30 12:17:46 +01:00
Wim Taymans
082099005d
Add a little comment
...
Add some comment about the content-base header.
2009-01-30 12:17:38 +01:00
Wim Taymans
41dd6399a6
Reorganize things, prepare for media sharing
...
Added various other test server examples
Move the SDP message generation to a separate helper.
Refactor common code for finding the session.
Add content-base for realplayer compatibility
Clean up request uris before processing for better vlc compatibility.
Move prerolling and pipeline construction to the RTSPMedia object.
Use multiudpsink for future pipeline reuse.
2009-01-30 12:17:28 +01:00
Wim Taymans
b0fcbfd290
Cleanups and doc updates
...
Add some more documentation and do some minor cleanups here and there.
2009-01-22 18:35:17 +01:00
Wim Taymans
cf18709634
More improvements
...
Rename GstRTSPMediaBin to GstRTSPMedia
Parse the request url into a GstRTSPUri object and pass this object to the
various handlers and methods that require the uri.
2009-01-22 17:58:19 +01:00
Wim Taymans
6f9b659b1d
Handle state change failures better
...
Handle state change failures better when changing the state of the pipeline to
determine the SDP.
2009-01-22 16:53:16 +01:00
Wim Taymans
28b65778f6
Make element creation more extendible
...
Add get_element vmethod to the default MediaFactory so that subclasses can just
override that method and still use the default logic for making a MediaBin from
that.
2009-01-22 16:51:08 +01:00
Wim Taymans
4b1c190a5f
Make the server handle arbitrary pipelines
...
Make GstMediaFactory an object that can instantiate GstMediaBin objects.
The GstMediaBin object has a handle to a bin with elements and to a list of
GstMediaStream objects that this bin produces.
Add GstMediaMapper that can map url mountpoints to GstMediaFactory objects along
with methods to register and remove those mappings.
Add methods and a property to GstRTSPServer to manage the GstMediaMapper object
used by the server instance.
Modify the example application so that it shows how to create custom pipelines
attached to a specific mount point.
Various misc cleanps.
2009-01-22 15:33:29 +01:00
Wim Taymans
ddf17f338b
Allow setting a custom media factory for a server
2009-01-20 19:47:07 +01:00
Wim Taymans
94d60a8611
Allow setting a custom media factory for a client.
2009-01-20 19:46:21 +01:00
Wim Taymans
f38c390736
Add Makefile entry for the media factory
2009-01-20 19:45:28 +01:00
Wim Taymans
63ee9e050f
Add media factory to map urls to media pipeline objects.
2009-01-20 19:44:45 +01:00
Wim Taymans
852cc3973c
Add comments.
...
Remove unused field
2009-01-20 19:43:47 +01:00
Wim Taymans
a3522af4f8
Allow custom session pools to override the session id allocation algorithms
...
Add some comments.
2009-01-20 19:41:53 +01:00
Wim Taymans
f00188b50e
Add some comments.
2009-01-20 19:40:42 +01:00
Wim Taymans
b312f98627
Move the connection code in one place
...
Add some comments
2009-01-20 13:57:47 +01:00
Wim Taymans
74210e67be
Make vmethod to create and accept new clients.
...
Add some docs.
2009-01-20 13:19:36 +01:00
Wim Taymans
491b20bedd
Make more properties configurable in the server.
...
Expose the GIOChannel and GSource better to allow for more customisations.
2009-01-19 19:36:23 +01:00
Wim Taymans
8d2ace0026
Name the parameters more appropriately.
2009-01-19 19:34:29 +01:00
Wim Taymans
243b524f51
Do some more cleanup of the session pool.
2009-01-19 19:32:28 +01:00
Wim Taymans
a76656ad8d
Check if return value of gst_rtsp_session_get_media is not NULL
2009-01-08 16:28:24 +01:00
Wim Taymans
b6e7986f45
Install rtsp-session and rtsp-session-pool headers
2009-01-08 15:02:42 +01:00
Alessandro Decina
51775b87d1
Change an obviously wrong return FALSE to return NULL;
...
(cherry picked from commit 56d4fb48030db3ae45f3f0e60b29b36f3134322b)
2009-01-08 13:55:07 +01:00
Sebastian Pölsterl
a8400faeab
Put GStreamer version in library name
2009-01-08 13:52:10 +01:00
Wim Taymans
36fb0de01c
Fix some issues to pass distcheck
2009-01-08 13:51:26 +01:00
Wim Taymans
55bdc67e49
Added port property to GstRTSPServer class.
2009-01-08 13:41:33 +01:00
Wim Taymans
7889395787
Split in library and example program
2009-01-08 13:18:55 +01:00