gmerlin
A/V Converters

Typedefs

typedef struct bg_audio_converter_s bg_audio_converter_t
 Audio converter.
 
typedef struct bg_video_converter_s bg_video_converter_t
 Video converter.
 

Functions

bg_audio_converter_tbg_audio_converter_create (const gavl_audio_options_t *opt)
 Create an audio converter.
 
int bg_audio_converter_init (bg_audio_converter_t *cnv, const gavl_audio_format_t *in_format, const gavl_audio_format_t *out_format)
 Initialize an audio converter.
 
void bg_audio_converter_connect_input (bg_audio_converter_t *cnv, bg_read_audio_func_t func, void *priv, int stream)
 Set input callback of an audio converter.
 
int bg_audio_converter_read (void *priv, gavl_audio_frame_t *frame, int stream, int num_samples)
 Read samples from an audio converter.
 
void bg_audio_converter_destroy (bg_audio_converter_t *cnv)
 Destroy an audio converter and free all associated memory.
 
void bg_audio_converter_reset (bg_audio_converter_t *cnv)
 Reset an audio converter as if no samples have been processed since initialization.
 
bg_video_converter_tbg_video_converter_create (const gavl_video_options_t *opt)
 Create a video converter.
 
int bg_video_converter_init (bg_video_converter_t *cnv, const gavl_video_format_t *in_format, const gavl_video_format_t *out_format)
 Initialize a video converter.
 
void bg_video_converter_connect_input (bg_video_converter_t *cnv, bg_read_video_func_t func, void *priv, int stream)
 Set input callback of a video converter.
 
int bg_video_converter_read (void *priv, gavl_video_frame_t *frame, int stream)
 Read a video frame from a video converter.
 
void bg_video_converter_destroy (bg_video_converter_t *cnv)
 Destroy a video converter and free all associated memory.
 
void bg_video_converter_reset (bg_video_converter_t *cnv)
 Reset a video converter as if no samples have been processed since initialization.
 

Detailed Description

A/V converters, which can be plugged together with filters and input plugins. These are basically wrappers around the gavl_audio_converter_t and the gavl_video_converter_t with the difference, that they work asynchronous with the advantage, that the video converter can do framerate conversion as well.

The functions for reading A/V frames are compatible with the read functions of input plugins and filters for easy generation of processing pipelines.

Typedef Documentation

◆ bg_audio_converter_t

typedef struct bg_audio_converter_s bg_audio_converter_t

Audio converter.

Opaque audio converter structure. You don't want to know, what's inside.

◆ bg_video_converter_t

typedef struct bg_video_converter_s bg_video_converter_t

Video converter.

Opaque video converter structure. You don't want to know, what's inside.

Function Documentation

◆ bg_audio_converter_create()

bg_audio_converter_t * bg_audio_converter_create ( const gavl_audio_options_t * opt)

Create an audio converter.

Parameters
optAudio options

The options should be valid for the whole lifetime of the converter.

◆ bg_audio_converter_init()

int bg_audio_converter_init ( bg_audio_converter_t * cnv,
const gavl_audio_format_t * in_format,
const gavl_audio_format_t * out_format )

Initialize an audio converter.

Parameters
cnvAn audio converter
in_formatInput format
out_formatOutput format
Returns
The number of conversion steps

When this function returns 0 it means, that the converter can be bypassed. It should not be used then until the next initialization, which returns nonzero.

◆ bg_audio_converter_connect_input()

void bg_audio_converter_connect_input ( bg_audio_converter_t * cnv,
bg_read_audio_func_t func,
void * priv,
int stream )

Set input callback of an audio converter.

Parameters
cnvAn audio converter
funcThe function to call
privThe private handle to pass to func
streamThe stream argument to pass to func

◆ bg_audio_converter_read()

int bg_audio_converter_read ( void * priv,
gavl_audio_frame_t * frame,
int stream,
int num_samples )

Read samples from an audio converter.

Parameters
privAn audio converter
frameAn audio frame
streamStream number (must be 0)
num_samplesNumber of samples to read
Returns
The number of samples read. 0 means EOF.

This function can be used as an input callback for audio filters.

◆ bg_audio_converter_destroy()

void bg_audio_converter_destroy ( bg_audio_converter_t * cnv)

Destroy an audio converter and free all associated memory.

Parameters
cnvAn audio converter

◆ bg_audio_converter_reset()

void bg_audio_converter_reset ( bg_audio_converter_t * cnv)

Reset an audio converter as if no samples have been processed since initialization.

Parameters
cnvAn audio converter

Reset an audio converter as if no samples have been processed since initialization.

◆ bg_video_converter_create()

bg_video_converter_t * bg_video_converter_create ( const gavl_video_options_t * opt)

Create a video converter.

Parameters
optVideo options

The options should be valid for the whole lifetime of the converter.

◆ bg_video_converter_init()

int bg_video_converter_init ( bg_video_converter_t * cnv,
const gavl_video_format_t * in_format,
const gavl_video_format_t * out_format )

Initialize a video converter.

Parameters
cnvA video converter
in_formatInput format
out_formatOutput format
Returns
The number of conversion steps

When this function returns 0 it means, that the converter can be bypassed. It should not be used then until the next initialization, which returns nonzero.

◆ bg_video_converter_connect_input()

void bg_video_converter_connect_input ( bg_video_converter_t * cnv,
bg_read_video_func_t func,
void * priv,
int stream )

Set input callback of a video converter.

Parameters
cnvA video converter
funcThe function to call
privThe private handle to pass to func
streamThe stream argument to pass to func

◆ bg_video_converter_read()

int bg_video_converter_read ( void * priv,
gavl_video_frame_t * frame,
int stream )

Read a video frame from a video converter.

Parameters
privA video converter
frameA video frame
streamStream number (must be 0)
Returns
1 if a frame was read, 0 means EOF.

This function can be used as an input callback for video filters.

◆ bg_video_converter_destroy()

void bg_video_converter_destroy ( bg_video_converter_t * cnv)

Destroy a video converter and free all associated memory.

Parameters
cnvA video converter

◆ bg_video_converter_reset()

void bg_video_converter_reset ( bg_video_converter_t * cnv)

Reset a video converter as if no samples have been processed since initialization.

Parameters
cnvA video converter

Reset a video converter as if no frame has been processed since initialization.