Commit graph

349 commits

Author SHA1 Message Date
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