Wim Taymans
a64cb68164
media: add method to get the base_time of the pipeline
...
Together with a shared clock, this base-time could eventually be sent to
the client so that it can reconstruct the exact running-time of the clock
on the server.
2013-04-12 11:34:38 +01:00
Wim Taymans
36ff679558
media: add GstNetTimeProvider support
...
Add a property to let the media provide a GstNetTimeProvider for its clock.
Make methods to get the clock and nettimeprovider
Add a x-gst-clock property to the SDP with the IP and port number of the nettime
provider and also the current time of the clock. This should make it possible
for (GStreamer) clients to slave their clock to the server clock.
2013-04-09 22:38:44 +02:00
Wim Taymans
95bf53513f
media: wait for buffering to complete
...
Wait for buffering to complete before changing the state to the target state.
2013-04-09 20:39:58 +02:00
Wim Taymans
ec0718d7c9
media: small cleanup
2013-04-09 20:11:35 +02:00
Olivier Crête
91210f40f2
rtsp-media-factory: g_signal_connect_object is not thread safe, can't use it here
...
Instead use a GWeakRef which is safe to use
This is a known GLib bug, see:
https://bugzilla.gnome.org/show_bug.cgi?id=667145
2013-03-22 18:59:50 -04:00
Olivier Crête
c18eafbb24
rtsp-media/client: Reply to PLAY request with same type of Range
...
Remember the type of Range from the PLAY request and use the same type for
the reply.
2013-03-22 15:53:06 +01:00
Patricia Muscalu
8a08fddb41
rtsp-client: expose uri
2013-03-18 23:44:38 +00:00
Olivier Crête
5a39e25949
stream: Select unicast address from pool if appropriate
2013-03-11 11:07:20 +01:00
Olivier Crête
a797cbde06
stream: Properties are always there in Gst 1.0
2013-03-11 11:07:20 +01:00
Olivier Crête
27a057962c
address-pool: Verify that multicast addresses are used for multicast and vice-versa
2013-03-11 11:07:20 +01:00
Olivier Crête
d06e68abd1
address-pool: Add unicast addresses
2013-03-11 11:07:20 +01:00
Olivier Crête
4c61c6d308
rtsp-server: Limit the number of threads per server instance
...
If we exceed the maximum, just round robin the clients over the existing
threads.
2013-03-11 11:07:20 +01:00
Olivier Crête
4071e1b999
rtsp-server: No need to store the GMainContext in the client context
2013-03-11 11:07:20 +01:00
Olivier Crête
b9d111372e
Document locking and its order
2013-03-11 11:07:19 +01:00
Olivier Crête
f0ab7ce1bf
docs: Generate docs for GstRTSPAddressPool
2013-03-11 11:07:19 +01:00
Olivier Crête
773c48e22f
client: Check client provided addresses against the address pool
2013-03-11 11:07:19 +01:00
Olivier Crête
cda75709bb
address-pool: Add API to request a specific address from the pool
...
Also add relevant unit tests.
2013-03-11 11:07:19 +01:00
Olivier Crête
456f4367e3
address-pool: Fix off by one error
...
When splitting a port range, the port after a skip is not part of range.
2013-03-11 11:07:19 +01:00
Wim Taymans
6db0dbc76c
client: make sure the watch exists while sending data
...
Protect the send_func with a lock. This allows us to wait for sending
to complete before changing the send_func and user_data. We add an
extra ref to the watch to make sure that it remains valid during
sending.
When closing the connection, set the send_func to NULL
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=692433
2013-01-28 11:11:46 +01:00
Wim Taymans
4100b20b0a
rtsp-client: set the client backlog
...
Set the client backlog to a reasonable default
2012-12-14 11:58:29 +01:00
Ognyan Tonchev
0844e8afbc
rtsp-media: Make the element a constructor parameter
...
https://bugzilla.gnome.org/show_bug.cgi?id=689594
2012-12-10 10:25:57 +01:00
Wim Taymans
6beabf1ed4
media: match prepare with unprepare
...
Really unprepare when there were an equal amount of prepare calls.
2012-11-30 15:03:15 +01:00
Wim Taymans
ca26588c7e
media: media has to be unprepared in finalize
...
Because unprepare takes away the last ref on the media.
2012-11-30 14:58:46 +01:00
Wim Taymans
38addd7822
Revert "client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it"
...
This reverts commit ba5b78ff2f
.
We can't use the refcount to trigger unprepare because it is the unprepare call
that removes the last refcount after all messages are consumed. What we should
probably do is make a prepared refcount and only unprepare when the refcount
reaches 0.
2012-11-30 14:36:30 +01:00
Wim Taymans
119674a828
media: let the source unref the last media ref
...
the last ref to the media is held by the source so we don't need to add more ref
and unrefs, we simply destroy the media when the source is gone.
2012-11-30 13:35:05 +01:00
Wim Taymans
339ea9b085
media: improve debug
2012-11-30 12:54:10 +01:00
Wim Taymans
241baba20a
media: check state
...
Make sure we are in the right state when collecting the position and duration.
Only make ourselves PREPARED when we were previously PREPARING.
2012-11-30 12:53:02 +01:00
Wim Taymans
edf2ef4f0b
media: use g_object_ref/unref for GObjects
2012-11-30 10:05:48 +01:00
Alessandro Decina
ba5b78ff2f
client: never call gst_rtsp_media_unprepare, let gst_rtsp_media_finalize do it
...
Calling gst_rtsp_media_unprepare breaks shared medias. Just unref
GstRTSPMedia instances and let gst_rtsp_media_finalize unprepare when a media
isn't being used anymore.
2012-11-30 07:06:17 +01:00
Alessandro Decina
00d9a94e1a
Fix compiler warning
2012-11-30 06:17:46 +01:00
Alessandro Decina
e2a7690cb3
Add missing g_type_class_add_private in GstRTSPMediaFactoryURI
2012-11-30 06:14:49 +01:00
Wim Taymans
1abc9be682
small cleanup
2012-11-29 17:21:12 +01:00
Wim Taymans
28fd887547
media: avoid element leak
2012-11-29 17:20:56 +01:00
Wim Taymans
4eb010824e
media: require an element in media constructor
2012-11-29 17:20:26 +01:00
Wim Taymans
865c9a6b30
Revert "client: TEARDOWN brings that state to Init again"
...
This reverts commit 4b61fdad85
.
The object is already disposed, there is no point in setting the state.
2012-11-29 17:07:30 +01:00
Wim Taymans
4b61fdad85
client: TEARDOWN brings that state to Init again
2012-11-29 12:30:20 +01:00
Wim Taymans
ad00c5e792
rtsp: make object details private
...
Make all object details private
Add methods to access private bits
2012-11-29 11:11:05 +01:00
Wim Taymans
e11287eb7c
media: check if prepared for some methods
...
Check that the media object is prepared before doing seek and getting the
current position etc.
Add some g_return checks.
2012-11-28 14:45:30 +01:00
Wim Taymans
d3d74ab77b
stream: improve debug
2012-11-28 12:40:18 +01:00
Wim Taymans
fe71114a7d
media: unref pipeline in finalize to avoid leaking it
2012-11-28 12:39:37 +01:00
Wim Taymans
d43a31055e
rtsp: use gst_object_unref on GstObjects
2012-11-28 12:10:47 +01:00
Wim Taymans
6b36241816
media-factory: require an url
2012-11-28 12:10:14 +01:00
Wim Taymans
20f09bf3e7
server: remove unused include
2012-11-28 11:17:27 +01:00
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