rtsp address pool

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

An address

Members

pool (GstRTSPAddressPool *) –

the GstRTSPAddressPool owner of this address

address (gchar *) –

the address

port (guint16) –

the port number

n_ports (gint) –

number of ports

ttl (guint8) –

TTL or 0 for unicast addresses


GstRtspServer.RTSPAddress

An address

Members

the GstRtspServer.RTSPAddressPool owner of this address

address (String) –

the address

port (Number) –

the port number

n_ports (Number) –

number of ports

ttl (Number) –

TTL or 0 for unicast addresses


GstRtspServer.RTSPAddress

An address

Members

the GstRtspServer.RTSPAddressPool owner of this address

address (str) –

the address

port (int) –

the port number

n_ports (int) –

number of ports

ttl (int) –

TTL or 0 for unicast addresses


Methods

gst_rtsp_address_copy

GstRTSPAddress *
gst_rtsp_address_copy (GstRTSPAddress * addr)

Make a copy of addr.

Parameters:

addr

a GstRTSPAddress

Returns

a copy of addr.


GstRtspServer.RTSPAddress.prototype.copy

function GstRtspServer.RTSPAddress.prototype.copy(): {
    // javascript wrapper for 'gst_rtsp_address_copy'
}

Make a copy of addr.

a copy of addr.


GstRtspServer.RTSPAddress.copy

def GstRtspServer.RTSPAddress.copy (self):
    #python wrapper for 'gst_rtsp_address_copy'

Make a copy of addr.

a copy of addr.


gst_rtsp_address_free

gst_rtsp_address_free (GstRTSPAddress * addr)

Free addr and releasing it back into the pool when owned by a pool.

Parameters:

addr

a GstRTSPAddress


GstRtspServer.RTSPAddress.prototype.free

function GstRtspServer.RTSPAddress.prototype.free(): {
    // javascript wrapper for 'gst_rtsp_address_free'
}

Free addr and releasing it back into the pool when owned by a pool.


GstRtspServer.RTSPAddress.free

def GstRtspServer.RTSPAddress.free (self):
    #python wrapper for 'gst_rtsp_address_free'

Free addr and releasing it back into the pool when owned by a pool.


GstRTSPAddressPool

GObject
    ╰──GstRTSPAddressPool

An address pool, all member are private

Members

parent (GObject) –

the parent GObject


Class structure

GstRTSPAddressPoolClass

Opaque Address pool class.

Fields
parent_class (GObjectClass) –
No description available

GstRtspServer.RTSPAddressPoolClass

Opaque Address pool class.

Attributes
parent_class (GObject.ObjectClass) –
No description available

GstRtspServer.RTSPAddressPoolClass

Opaque Address pool class.

Attributes
parent_class (GObject.ObjectClass) –
No description available

GstRtspServer.RTSPAddressPool

GObject.Object
    ╰──GstRtspServer.RTSPAddressPool

An address pool, all member are private

Members

parent (GObject.Object) –

the parent GObject


GstRtspServer.RTSPAddressPool

GObject.Object
    ╰──GstRtspServer.RTSPAddressPool

An address pool, all member are private

Members

parent (GObject.Object) –

the parent GObject


Constructors

gst_rtsp_address_pool_new

GstRTSPAddressPool *
gst_rtsp_address_pool_new ()

Make a new GstRTSPAddressPool.

Returns ( [transfer: full])

a new GstRTSPAddressPool


GstRtspServer.RTSPAddressPool.prototype.new

function GstRtspServer.RTSPAddressPool.prototype.new(): {
    // javascript wrapper for 'gst_rtsp_address_pool_new'
}

Make a new GstRtspServer.RTSPAddressPool.


GstRtspServer.RTSPAddressPool.new

def GstRtspServer.RTSPAddressPool.new ():
    #python wrapper for 'gst_rtsp_address_pool_new'

Make a new GstRtspServer.RTSPAddressPool.


Methods

gst_rtsp_address_pool_acquire_address

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.

Parameters:

pool

a GstRTSPAddressPool

flags

flags

n_ports

the amount of ports

Returns ( [nullable])

a GstRTSPAddress that should be freed with gst_rtsp_address_free after use or NULL when no address could be acquired.


GstRtspServer.RTSPAddressPool.prototype.acquire_address

function GstRtspServer.RTSPAddressPool.prototype.acquire_address(flags: GstRtspServer.RTSPAddressFlags, n_ports: Number): {
    // javascript wrapper for 'gst_rtsp_address_pool_acquire_address'
}

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.

Parameters:

flags

n_ports (Number)

the amount of ports

a GstRtspServer.RTSPAddress that should be freed with gst_rtsp_address_free after use or null when no address could be acquired.


GstRtspServer.RTSPAddressPool.acquire_address

def GstRtspServer.RTSPAddressPool.acquire_address (self, flags, n_ports):
    #python wrapper for 'gst_rtsp_address_pool_acquire_address'

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.

Parameters:

flags

n_ports (int)

the amount of ports

a GstRtspServer.RTSPAddress that should be freed with gst_rtsp_address_free after use or None when no address could be acquired.


gst_rtsp_address_pool_add_range

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.

Parameters:

pool

a GstRTSPAddressPool

min_address

a minimum address to add

max_address

a maximum address to add

min_port

the minimum port

max_port

the maximum port

ttl

a TTL or 0 for unicast addresses

Returns

TRUE if the addresses could be added.


GstRtspServer.RTSPAddressPool.prototype.add_range

function GstRtspServer.RTSPAddressPool.prototype.add_range(min_address: String, max_address: String, min_port: Number, max_port: Number, ttl: Number): {
    // javascript wrapper for 'gst_rtsp_address_pool_add_range'
}

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 GstRtspServer.RTSP_ADDRESS_POOL_ANY_IPV4 or GstRtspServer.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.

Parameters:

min_address (String)

a minimum address to add

max_address (String)

a maximum address to add

min_port (Number)

the minimum port

max_port (Number)

the maximum port

ttl (Number)

a TTL or 0 for unicast addresses

Returns (Number)

true if the addresses could be added.


GstRtspServer.RTSPAddressPool.add_range

def GstRtspServer.RTSPAddressPool.add_range (self, min_address, max_address, min_port, max_port, ttl):
    #python wrapper for 'gst_rtsp_address_pool_add_range'

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 GstRtspServer.RTSP_ADDRESS_POOL_ANY_IPV4 or GstRtspServer.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.

Parameters:

min_address (str)

a minimum address to add

max_address (str)

a maximum address to add

min_port (int)

the minimum port

max_port (int)

the maximum port

ttl (int)

a TTL or 0 for unicast addresses

Returns (bool)

True if the addresses could be added.


gst_rtsp_address_pool_clear

gst_rtsp_address_pool_clear (GstRTSPAddressPool * pool)

Clear all addresses in pool. There should be no outstanding allocations.

Parameters:

pool

a GstRTSPAddressPool


GstRtspServer.RTSPAddressPool.prototype.clear

function GstRtspServer.RTSPAddressPool.prototype.clear(): {
    // javascript wrapper for 'gst_rtsp_address_pool_clear'
}

Clear all addresses in pool. There should be no outstanding allocations.


GstRtspServer.RTSPAddressPool.clear

def GstRtspServer.RTSPAddressPool.clear (self):
    #python wrapper for 'gst_rtsp_address_pool_clear'

Clear all addresses in pool. There should be no outstanding allocations.


gst_rtsp_address_pool_dump

gst_rtsp_address_pool_dump (GstRTSPAddressPool * pool)

Dump the free and allocated addresses to stdout.

Parameters:

pool

a GstRTSPAddressPool


GstRtspServer.RTSPAddressPool.prototype.dump

function GstRtspServer.RTSPAddressPool.prototype.dump(): {
    // javascript wrapper for 'gst_rtsp_address_pool_dump'
}

Dump the free and allocated addresses to stdout.


GstRtspServer.RTSPAddressPool.dump

def GstRtspServer.RTSPAddressPool.dump (self):
    #python wrapper for 'gst_rtsp_address_pool_dump'

Dump the free and allocated addresses to stdout.


gst_rtsp_address_pool_has_unicast_addresses

gboolean
gst_rtsp_address_pool_has_unicast_addresses (GstRTSPAddressPool * pool)

Used to know if the pool includes any unicast addresses.

Parameters:

pool

a GstRTSPAddressPool

Returns

TRUE if the pool includes any unicast addresses, FALSE otherwise


GstRtspServer.RTSPAddressPool.prototype.has_unicast_addresses

function GstRtspServer.RTSPAddressPool.prototype.has_unicast_addresses(): {
    // javascript wrapper for 'gst_rtsp_address_pool_has_unicast_addresses'
}

Used to know if the pool includes any unicast addresses.

Returns (Number)

true if the pool includes any unicast addresses, false otherwise


GstRtspServer.RTSPAddressPool.has_unicast_addresses

def GstRtspServer.RTSPAddressPool.has_unicast_addresses (self):
    #python wrapper for 'gst_rtsp_address_pool_has_unicast_addresses'

Used to know if the pool includes any unicast addresses.

Returns (bool)

True if the pool includes any unicast addresses, False otherwise


gst_rtsp_address_pool_reserve_address

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.

Parameters:

pool

a GstRTSPAddressPool

ip_address

The IP address to reserve

port

The first port to reserve

n_ports

The number of ports

ttl

The requested ttl

address ( [out])

storage for a GstRTSPAddress

Returns

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.


GstRtspServer.RTSPAddressPool.prototype.reserve_address

function GstRtspServer.RTSPAddressPool.prototype.reserve_address(ip_address: String, port: Number, n_ports: Number, ttl: Number): {
    // javascript wrapper for 'gst_rtsp_address_pool_reserve_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.

Parameters:

ip_address (String)

The IP address to reserve

port (Number)

The first port to reserve

n_ports (Number)

The number of ports

ttl (Number)

The requested ttl

Returns a tuple made of:

GstRtspServer.RTSPAddressPoolResult.OK if an address was reserved. The address is returned in address and should be freed with gst_rtsp_address_free after use.

address (GstRtspServer.RTSPAddress )

GstRtspServer.RTSPAddressPoolResult.OK if an address was reserved. The address is returned in address and should be freed with gst_rtsp_address_free after use.


GstRtspServer.RTSPAddressPool.reserve_address

def GstRtspServer.RTSPAddressPool.reserve_address (self, ip_address, port, n_ports, ttl):
    #python wrapper for 'gst_rtsp_address_pool_reserve_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.

Parameters:

ip_address (str)

The IP address to reserve

port (int)

The first port to reserve

n_ports (int)

The number of ports

ttl (int)

The requested ttl

Returns a tuple made of:

GstRtspServer.RTSPAddressPoolResult.OK if an address was reserved. The address is returned in address and should be freed with gst_rtsp_address_free after use.

address (GstRtspServer.RTSPAddress )

GstRtspServer.RTSPAddressPoolResult.OK if an address was reserved. The address is returned in address and should be freed with gst_rtsp_address_free after use.


Function Macros

GST_RTSP_ADDRESS_POOL_CAST

#define GST_RTSP_ADDRESS_POOL_CAST(obj)         ((GstRTSPAddressPool*)(obj))

GST_RTSP_ADDRESS_POOL_CLASS_CAST

#define GST_RTSP_ADDRESS_POOL_CLASS_CAST(klass) ((GstRTSPAddressPoolClass*)(klass))

Enumerations

GstRTSPAddressFlags

Flags used to control allocation of addresses

Members
GST_RTSP_ADDRESS_FLAG_NONE (0) –

no flags

GST_RTSP_ADDRESS_FLAG_IPV4 (1) –

an IPv4 address

GST_RTSP_ADDRESS_FLAG_IPV6 (2) –

and IPv6 address

GST_RTSP_ADDRESS_FLAG_EVEN_PORT (4) –

address with an even port

GST_RTSP_ADDRESS_FLAG_MULTICAST (8) –

a multicast address

GST_RTSP_ADDRESS_FLAG_UNICAST (16) –

a unicast address


GstRtspServer.RTSPAddressFlags

Flags used to control allocation of addresses

Members
GstRtspServer.RTSPAddressFlags.NONE (0) –

no flags

GstRtspServer.RTSPAddressFlags.IPV4 (1) –

an IPv4 address

GstRtspServer.RTSPAddressFlags.IPV6 (2) –

and IPv6 address

GstRtspServer.RTSPAddressFlags.EVEN_PORT (4) –

address with an even port

GstRtspServer.RTSPAddressFlags.MULTICAST (8) –

a multicast address

GstRtspServer.RTSPAddressFlags.UNICAST (16) –

a unicast address


GstRtspServer.RTSPAddressFlags

Flags used to control allocation of addresses

Members
GstRtspServer.RTSPAddressFlags.NONE (0) –

no flags

GstRtspServer.RTSPAddressFlags.IPV4 (1) –

an IPv4 address

GstRtspServer.RTSPAddressFlags.IPV6 (2) –

and IPv6 address

GstRtspServer.RTSPAddressFlags.EVEN_PORT (4) –

address with an even port

GstRtspServer.RTSPAddressFlags.MULTICAST (8) –

a multicast address

GstRtspServer.RTSPAddressFlags.UNICAST (16) –

a unicast address


GstRTSPAddressPoolResult

Result codes from RTSP address pool functions.

Members
GST_RTSP_ADDRESS_POOL_OK (0) –

no error

GST_RTSP_ADDRESS_POOL_EINVAL (-1) –

invalid arguments were provided to a function

GST_RTSP_ADDRESS_POOL_ERESERVED (-2) –

the addres has already been reserved

GST_RTSP_ADDRESS_POOL_ERANGE (-3) –

the address is not in the pool

GST_RTSP_ADDRESS_POOL_ELAST (-4) –

last error


GstRtspServer.RTSPAddressPoolResult

Result codes from RTSP address pool functions.

Members
GstRtspServer.RTSPAddressPoolResult.OK (0) –

no error

GstRtspServer.RTSPAddressPoolResult.EINVAL (-1) –

invalid arguments were provided to a function

GstRtspServer.RTSPAddressPoolResult.ERESERVED (-2) –

the addres has already been reserved

GstRtspServer.RTSPAddressPoolResult.ERANGE (-3) –

the address is not in the pool

GstRtspServer.RTSPAddressPoolResult.ELAST (-4) –

last error


GstRtspServer.RTSPAddressPoolResult

Result codes from RTSP address pool functions.

Members
GstRtspServer.RTSPAddressPoolResult.OK (0) –

no error

GstRtspServer.RTSPAddressPoolResult.EINVAL (-1) –

invalid arguments were provided to a function

GstRtspServer.RTSPAddressPoolResult.ERESERVED (-2) –

the addres has already been reserved

GstRtspServer.RTSPAddressPoolResult.ERANGE (-3) –

the address is not in the pool

GstRtspServer.RTSPAddressPoolResult.ELAST (-4) –

last error


Constants

GST_RTSP_ADDRESS_POOL_ANY_IPV4

#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


GstRtspServer.RTSP_ADDRESS_POOL_ANY_IPV4

Used with GstRtspServer.RTSPAddressPool.prototype.add_range to bind to all IPv4 addresses


GstRtspServer.RTSP_ADDRESS_POOL_ANY_IPV4

Used with GstRtspServer.RTSPAddressPool.add_range to bind to all IPv4 addresses


GST_RTSP_ADDRESS_POOL_ANY_IPV6

#define GST_RTSP_ADDRESS_POOL_ANY_IPV6  "::"

Used with gst_rtsp_address_pool_add_range to bind to all IPv6 addresses


GstRtspServer.RTSP_ADDRESS_POOL_ANY_IPV6

Used with GstRtspServer.RTSPAddressPool.prototype.add_range to bind to all IPv6 addresses


GstRtspServer.RTSP_ADDRESS_POOL_ANY_IPV6

Used with GstRtspServer.RTSPAddressPool.add_range to bind to all IPv6 addresses


The results of the search are