gstnetbuffer

gstnetbuffer — Buffer for use in network sources and sinks

Synopsis


#include <gst/netbuffer/gstnetbuffer.h>

                    GstNetBuffer;
enum                GstNetType;
#define             GST_NETADDRESS_MAX_LEN
                    GstNetAddress;
GstNetBuffer*       gst_netbuffer_new                   (void);
GstNetType          gst_netaddress_get_net_type         (const GstNetAddress *naddr);
void                gst_netaddress_set_ip4_address      (GstNetAddress *naddr,
                                                         guint32 address,
                                                         guint16 port);
gboolean            gst_netaddress_get_ip4_address      (const GstNetAddress *naddr,
                                                         guint32 *address,
                                                         guint16 *port);
void                gst_netaddress_set_ip6_address      (GstNetAddress *naddr,
                                                         guint8 address[16],
                                                         guint16 port);
gboolean            gst_netaddress_get_ip6_address      (const GstNetAddress *naddr,
                                                         guint8 address[16],
                                                         guint16 *port);
gint                gst_netaddress_get_address_bytes    (const GstNetAddress *naddr,
                                                         guint8 address[16],
                                                         guint16 *port);
gint                gst_netaddress_set_address_bytes    (GstNetAddress *naddr,
                                                         GstNetType type,
                                                         guint8 address[16],
                                                         guint16 port);
gboolean            gst_netaddress_equal                (const GstNetAddress *naddr1,
                                                         const GstNetAddress *naddr2);
gint                gst_netaddress_to_string            (const GstNetAddress *naddr,
                                                         gchar *dest,
                                                         gulong len);

Description

GstNetBuffer is a subclass of a normal GstBuffer that contains two additional metadata fields of type GstNetAddress named 'to' and 'from'. The buffer can be used to store additional information about the origin of the buffer data and is used in various network elements to track the to and from addresses.

Last reviewed on 2006-08-21 (0.10.10)

Details

GstNetBuffer

typedef struct {
  GstBuffer buffer;

  GstNetAddress from;
  GstNetAddress to;
} GstNetBuffer;

buffer for use in network sources and sinks. It contains the source or destination address of the buffer.

GstBuffer buffer; the parent GstBuffer
GstNetAddress from; the address where this buffer came from.
GstNetAddress to; the address where this buffer should go to.

enum GstNetType

typedef enum {
  GST_NET_TYPE_UNKNOWN,
  GST_NET_TYPE_IP4,
  GST_NET_TYPE_IP6,
} GstNetType;

The Address type used in GstNetAddress.

GST_NET_TYPE_UNKNOWN unknown address type
GST_NET_TYPE_IP4 an IPv4 address type
GST_NET_TYPE_IP6 and IPv6 address type

GST_NETADDRESS_MAX_LEN

#define GST_NETADDRESS_MAX_LEN	64

The maximum length of a string representation of a GstNetAddress as produced by gst_netaddress_to_string().

Since 0.10.24


GstNetAddress

typedef struct {
} GstNetAddress;

An opaque network address as used in GstNetBuffer.


gst_netbuffer_new ()

GstNetBuffer*       gst_netbuffer_new                   (void);

Create a new network buffer.

Returns : a new GstNetBuffer.

gst_netaddress_get_net_type ()

GstNetType          gst_netaddress_get_net_type         (const GstNetAddress *naddr);

Get the type of address stored in naddr.

naddr : a network address
Returns : the network type stored in naddr.

gst_netaddress_set_ip4_address ()

void                gst_netaddress_set_ip4_address      (GstNetAddress *naddr,
                                                         guint32 address,
                                                         guint16 port);

Set naddr with the IPv4 address and port pair.

Note that port and address must be expressed in network byte order, use g_htons() and g_htonl() to convert them to network byte order.

naddr : a network address
address : an IPv4 network address.
port : a port number to set.

gst_netaddress_get_ip4_address ()

gboolean            gst_netaddress_get_ip4_address      (const GstNetAddress *naddr,
                                                         guint32 *address,
                                                         guint16 *port);

Get the IPv4 address stored in naddr into address. This function requires that the address type of naddr is of type GST_NET_TYPE_IP4.

Note that port and address are expressed in network byte order, use g_ntohs() and g_ntohl() to convert them to host order.

naddr : a network address
address : a location to store the address.
port : a location to store the port.
Returns : TRUE if the address could be retrieved.

gst_netaddress_set_ip6_address ()

void                gst_netaddress_set_ip6_address      (GstNetAddress *naddr,
                                                         guint8 address[16],
                                                         guint16 port);

Set naddr with the IPv6 address and port pair.

Note that port must be expressed in network byte order, use g_htons() to convert it to network byte order.

naddr : a network address
address : an IPv6 network address.
port : a port number to set.

gst_netaddress_get_ip6_address ()

gboolean            gst_netaddress_get_ip6_address      (const GstNetAddress *naddr,
                                                         guint8 address[16],
                                                         guint16 *port);

Get the IPv6 address stored in naddr into address.

If naddr is of type GST_NET_TYPE_IP4, the transitional IP6 address is returned.

Note that port is expressed in network byte order, use g_ntohs() to convert it to host order.

naddr : a network address
address : a location to store the result.
port : a location to store the port.
Returns : TRUE if the address could be retrieved.

gst_netaddress_get_address_bytes ()

gint                gst_netaddress_get_address_bytes    (const GstNetAddress *naddr,
                                                         guint8 address[16],
                                                         guint16 *port);

Get just the address bytes stored in naddr into address.

Note that port is expressed in network byte order, use g_ntohs() to convert it to host order. IP4 addresses are also stored in network byte order.

naddr : a network address
address : a location to store the result.
port : a location to store the port.
Returns : number of bytes actually copied

Since 0.10.22


gst_netaddress_set_address_bytes ()

gint                gst_netaddress_set_address_bytes    (GstNetAddress *naddr,
                                                         GstNetType type,
                                                         guint8 address[16],
                                                         guint16 port);

Set just the address bytes stored in naddr into address.

Note that port must be expressed in network byte order, use g_htons() to convert it to network byte order order. IP4 address bytes must also be stored in network byte order.

naddr : a network address
type :
address : a location to store the result.
port : a location to store the port.
Returns : number of bytes actually copied

Since 0.10.22


gst_netaddress_equal ()

gboolean            gst_netaddress_equal                (const GstNetAddress *naddr1,
                                                         const GstNetAddress *naddr2);

Compare two GstNetAddress structures

naddr1 : The first GstNetAddress
naddr2 : The second GstNetAddress
Returns : TRUE if they are identical, FALSE otherwise

Since 0.10.18


gst_netaddress_to_string ()

gint                gst_netaddress_to_string            (const GstNetAddress *naddr,
                                                         gchar *dest,
                                                         gulong len);

Copies a string representation of naddr into dest. Up to len bytes are copied.

naddr : a GstNetAddress
dest : destination
len : len of dest
Returns : the number of bytes which would be produced if the buffer was large enough

Since 0.10.24