Open-AVB AVTP Pipeline SDK  1.4
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Data Structures | Typedefs
openavb_intf_pub.h File Reference

Common interface module public header. More...

#include "openavb_types_pub.h"
#include "openavb_mediaq_pub.h"

Go to the source code of this file.

Data Structures

struct  openavb_intf_cb_t
 Interface callbacks structure. More...
 

Typedefs

typedef void(* openavb_intf_cfg_cb_t )(media_q_t *pMediaQ, const char *name, const char *value)
 Configuration callback into the interface module. More...
 
typedef void(* openavb_intf_gen_init_cb_t )(media_q_t *pMediaQ)
 General initialize callback regardless if a talker or listener. More...
 
typedef void(* openavb_intf_avdecc_init_cb_t )(media_q_t *pMediaQ, U16 configIdx, U16 descriptorType, U16 descriptorIdx)
 AVDECC initialize callback for both a talker or listener. More...
 
typedef void(* openavb_intf_tx_init_cb_t )(media_q_t *pMediaQ)
 Initialize transmit callback into the interface module. More...
 
typedef bool(* openavb_intf_tx_cb_t )(media_q_t *pMediaQ)
 Transmit callback into the interface module. More...
 
typedef void(* openavb_intf_rx_init_cb_t )(media_q_t *pMediaQ)
 Initialize the receive callback into the interface module. More...
 
typedef void(* openavb_intf_rx_translate_cb_t )(media_q_t *pMediaQ, U8 *pPubData, U32 length)
 Translate RX data callback. More...
 
typedef bool(* openavb_intf_rx_cb_t )(media_q_t *pMediaQ)
 Receive callback into the interface module. More...
 
typedef void(* openavb_intf_end_cb_t )(media_q_t *pMediaQ)
 Callback when the stream is ending. More...
 
typedef void(* openavb_intf_gen_end_cb_t )(media_q_t *pMediaQ)
 General shutdown callback into the interface module. More...
 
typedef unsigned int(* openavb_intf_get_src_bitrate_t )(media_q_t *pMediaQ)
 Query the interface for source bitrate. More...
 
typedef bool(* openavb_intf_initialize_fn_t )(media_q_t *pMediaQ, openavb_intf_cb_t *pIntfCB)
 Main initialization entry point into the interface module. More...
 

Detailed Description

Common interface module public header.

Typedef Documentation

typedef void(* openavb_intf_cfg_cb_t)(media_q_t *pMediaQ, const char *name, const char *value)

Configuration callback into the interface module.

This callback function is called during the reading of the configuration file by the talker and listener for any named configuration item starting with "intf_nv". This is a convenient way to store new configuration name/value pairs that are needed in an interface module.

Parameters
pMediaQA pointer to the media queue for this stream
nameThe item name from the configuration file
valueThe item value from the configuration file
typedef void(* openavb_intf_gen_init_cb_t)(media_q_t *pMediaQ)

General initialize callback regardless if a talker or listener.

This callback function is called when the openavbTLOpen() function is called for the EAVB SDK API.

Parameters
pMediaQA pointer to the media queue for this stream
typedef void(* openavb_intf_avdecc_init_cb_t)(media_q_t *pMediaQ, U16 configIdx, U16 descriptorType, U16 descriptorIdx)

AVDECC initialize callback for both a talker or listener.

Entity model based configuration can be processed at this time. This callback is optional and only executed when AVDECC is used to connect streams.

Parameters
pMediaQA pointer to the media queue for this stream
configIdxcurrent configuration descriptor index for the Entity Model
descriptorTypeThe descriptorType is expected to be of STREAM_INPUT for listeners and STREAM_OUTPUT for talkers.
descriptorIdxdescriptor index in the Entity Model
typedef void(* openavb_intf_tx_init_cb_t)(media_q_t *pMediaQ)

Initialize transmit callback into the interface module.

This callback function is called anytime a stream reservation has completed successfully within a talker process. It does not get called when running within a listener process.

Parameters
pMediaQA pointer to the media queue for this stream
typedef bool(* openavb_intf_tx_cb_t)(media_q_t *pMediaQ)

Transmit callback into the interface module.

This is the transmit callback function for the interface module. This function will typically be called thousands of times per second depending the SR class type (A or B). This frequency may also be changed by the mapping module and at times configurable by mapping modules for example with the map_nv_tx_rate configuration value. If pacing is done in the interface module by:

cfg->tx_blocking_in_intf = FALSE;

Then this callback will suspend task execution until there is media data available for the mapping module.

Parameters
pMediaQA pointer to the media queue for this stream
typedef void(* openavb_intf_rx_init_cb_t)(media_q_t *pMediaQ)

Initialize the receive callback into the interface module.

This callback function is called anytime a stream reservation has completed successfully within a listener process. It does not get called when running within a talker process.

Parameters
pMediaQA pointer to the media queue for this stream
typedef void(* openavb_intf_rx_translate_cb_t)(media_q_t *pMediaQ, U8 *pPubData, U32 length)

Translate RX data callback.

This callback that may be used by mapping modules to allow interfaces to translate packet data as it arrives and before it gets packed into the media queue Item. Mapping modules MUST expose a function pointer var in their public data and the interface module must set it for the CB to be used.

Parameters
pMediaQA pointer to the media queue for this stream
pPubDataQA pointer to the data
lengthLength of the data
typedef bool(* openavb_intf_rx_cb_t)(media_q_t *pMediaQ)

Receive callback into the interface module.

This callback function is called when AVB packet data is received or when tail data item within the media queue has reached the presentation time

Parameters
pMediaQA pointer to the media queue for this stream
typedef void(* openavb_intf_end_cb_t)(media_q_t *pMediaQ)

Callback when the stream is ending.

This callback function is called when a stream is closing.

Parameters
pMediaQA pointer to the media queue for this stream
typedef void(* openavb_intf_gen_end_cb_t)(media_q_t *pMediaQ)

General shutdown callback into the interface module.

This callback function is called when the openavbTLClose() function is called for the EAVB SDK API

Parameters
pMediaQA pointer to the media queue for this stream
typedef unsigned int(* openavb_intf_get_src_bitrate_t)(media_q_t *pMediaQ)

Query the interface for source bitrate.

This callback is called to get the maximum bitrate of the source (in bits per second). For example for a mpeg2ts file interface this callback returns the maximum bitrate of the mpeg2ts file.

Parameters
pMediaQA pointer to the media queue for this stream
Returns
Maximum bitrate of the source.
Note
This callback is optional, does not need to be implemented in the interface module.
typedef bool(* openavb_intf_initialize_fn_t)(media_q_t *pMediaQ, openavb_intf_cb_t *pIntfCB)

Main initialization entry point into the interface module.

This is the main entry point into the interface module. Every interface module must define this function. The talker process and listener process call this function directly while the configuration file it being read. The function address is discovered via the settings in the talker and listener configuration structure. For example:

osalCfg.pIntfInitFn = openavbIntfJ6Video;

Within this function the callbacks must all be set into the structure pointer parameter. Any interface module initialization can take place during this call such as setting default values into configuration settings. Private interface module should be allocated during this call. This can be used to hold configuration data as well as functional variable data.

Parameters
pMediaQA pointer to the media queue for this stream
pIntfCBPointer to the callback structure. All the members of this structure must be set during this function call
Returns
TRUE on success or FALSE on failure