| Top |
| #define | GST_RTSP_ADDRESS_POOL_ANY_IPV4 |
| #define | GST_RTSP_ADDRESS_POOL_ANY_IPV6 |
| struct | GstRTSPAddress |
| enum | GstRTSPAddressFlags |
| struct | GstRTSPAddressPool |
| struct | GstRTSPAddressPoolClass |
| enum | GstRTSPAddressPoolResult |
The GstRTSPAddressPool is an object that maintains a collection of network addresses. It is used to allocate server ports and server multicast addresses but also to reserve client provided destination addresses.
A range of addresses can be added with gst_rtsp_address_pool_add_range().
Both multicast and unicast addresses can be added.
With gst_rtsp_address_pool_acquire_address() an unused address and port range
can be acquired from the pool. With gst_rtsp_address_pool_reserve_address() a
specific address can be retrieved. Both methods return a boxed
GstRTSPAddress that should be freed with gst_rtsp_address_free() after
usage, which brings the address back into the pool.
Last reviewed on 2013-07-16 (1.0.0)
GstRTSPAddress *
gst_rtsp_address_copy (GstRTSPAddress *addr);
Make a copy of addr
.
void
gst_rtsp_address_free (GstRTSPAddress *addr);
Free addr
and releasing it back into the pool when owned by a
pool.
GstRTSPAddressPool *
gst_rtsp_address_pool_new (void);
Make a new GstRTSPAddressPool.
void
gst_rtsp_address_pool_clear (GstRTSPAddressPool *pool);
Clear all addresses in pool
. There should be no outstanding
allocations.
void
gst_rtsp_address_pool_dump (GstRTSPAddressPool *pool);
Dump the free and allocated addresses to stdout.
gboolean gst_rtsp_address_pool_add_range (GstRTSPAddressPool *pool,const gchar *min_address,const gchar *max_address,guint16 min_port,guint16 max_port,guint8 ttl);
Adds the addresses from min_addess
to max_address
(inclusive)
to pool
. The valid port range for the addresses will be from min_port
to
max_port
inclusive.
When ttl
is 0, min_address
and max_address
should be unicast addresses.
min_address
and max_address
can be set to
GST_RTSP_ADDRESS_POOL_ANY_IPV4 or GST_RTSP_ADDRESS_POOL_ANY_IPV6 to bind
to all available IPv4 or IPv6 addresses.
When ttl
> 0, min_address
and max_address
should be multicast addresses.
gboolean
gst_rtsp_address_pool_has_unicast_addresses
(GstRTSPAddressPool *pool);
Used to know if the pool includes any unicast addresses.
GstRTSPAddress * gst_rtsp_address_pool_acquire_address (GstRTSPAddressPool *pool,GstRTSPAddressFlags flags,gint n_ports);
Take an address and ports from pool
. flags
can be used to control the
allocation. n_ports
consecutive ports will be allocated of which the first
one can be found in port
.
a GstRTSPAddress that should be freed with
gst_rtsp_address_free after use or NULL when no address could be
acquired.
[nullable]
GstRTSPAddressPoolResult gst_rtsp_address_pool_reserve_address (GstRTSPAddressPool *pool,const gchar *ip_address,guint port,guint n_ports,guint ttl,GstRTSPAddress **address);
Take a specific address and ports from pool
. n_ports
consecutive
ports will be allocated of which the first one can be found in
port
.
If ttl
is 0, address
should be a unicast address. If ttl
> 0, address
should be a valid multicast address.
pool |
||
ip_address |
The IP address to reserve |
|
port |
The first port to reserve |
|
n_ports |
The number of ports |
|
ttl |
The requested ttl |
|
address |
storage for a GstRTSPAddress. |
[out] |
GST_RTSP_ADDRESS_POOL_OK if an address was reserved. The address
is returned in address
and should be freed with gst_rtsp_address_free
after use.
#define GST_RTSP_ADDRESS_POOL_ANY_IPV4 "0.0.0.0"
Used with gst_rtsp_address_pool_add_range() to bind to all
IPv4 addresses
#define GST_RTSP_ADDRESS_POOL_ANY_IPV6 "::"
Used with gst_rtsp_address_pool_add_range() to bind to all
IPv6 addresses
struct GstRTSPAddress {
GstRTSPAddressPool *pool;
gchar *address;
guint16 port;
gint n_ports;
guint8 ttl;
};
An address
GstRTSPAddressPool * |
the GstRTSPAddressPool owner of this address |
|
gchar * |
the address |
|
guint16 |
the port number |
|
gint |
number of ports |
|
guint8 |
TTL or 0 for unicast addresses |
struct GstRTSPAddressPoolClass {
GObjectClass parent_class;
};
Opaque Address pool class.