gmerlin
Data Fields
bg_encoder_plugin_s Struct Reference

Encoder plugin. More...

#include <plugin.h>

Data Fields

bg_plugin_common_t common
 Infos and functions common to all plugin types. More...
 
int max_audio_streams
 Maximum number of audio streams. -1 means infinite. More...
 
int max_video_streams
 Maximum number of video streams. -1 means infinite. More...
 
int max_text_streams
 Maximum number of text subtitle streams. -1 means infinite. More...
 
int max_overlay_streams
 Maximum number of overlay subtitle streams. -1 means infinite. More...
 
void(* set_callbacks )(void *priv, bg_encoder_callbacks_t *cb)
 Set callbacks. More...
 
int(* writes_compressed_audio )(void *priv, const gavl_audio_format_t *format, const gavl_compression_info_t *info)
 Query for writing compressed audio packets. More...
 
int(* writes_compressed_video )(void *priv, const gavl_video_format_t *format, const gavl_compression_info_t *info)
 Query for writing compressed video packets. More...
 
int(* writes_compressed_overlay )(void *priv, const gavl_video_format_t *format, const gavl_compression_info_t *info)
 Query for writing compressed overlay packets. More...
 
int(* open )(void *data, const char *filename, const gavl_metadata_t *metadata, const gavl_chapter_list_t *chapter_list)
 Open a file. More...
 
int(* open_io )(void *data, gavf_io_t *io, const gavl_metadata_t *metadata, const gavl_chapter_list_t *chapter_list)
 Open an encoder with a gavf IO handle. More...
 
const bg_parameter_info_t *(* get_audio_parameters )(void *priv)
 Get audio related parameters. More...
 
const bg_parameter_info_t *(* get_video_parameters )(void *priv)
 Get video related parameters. More...
 
const bg_parameter_info_t *(* get_text_parameters )(void *priv)
 Get text subtitle related parameters. More...
 
const bg_parameter_info_t *(* get_overlay_parameters )(void *priv)
 Get overlay subtitle related parameters. More...
 
int(* add_audio_stream )(void *priv, const gavl_metadata_t *m, const gavl_audio_format_t *format)
 Add an audio stream. More...
 
int(* add_audio_stream_compressed )(void *priv, const gavl_metadata_t *m, const gavl_audio_format_t *format, const gavl_compression_info_t *info)
 Add an audio stream fpr compressed writing. More...
 
int(* add_video_stream )(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format)
 Add a video stream. More...
 
int(* add_video_stream_compressed )(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format, const gavl_compression_info_t *info)
 Add a video stream for compressed writing. More...
 
int(* add_text_stream )(void *priv, const gavl_metadata_t *m, uint32_t *timescale)
 Add a text subtitle stream. More...
 
int(* add_overlay_stream_compressed )(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format, const gavl_compression_info_t *ci)
 Add an overlay subtitle stream. More...
 
int(* add_overlay_stream )(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format)
 Add a text subtitle stream. More...
 
void(* set_audio_parameter )(void *priv, int stream, const char *name, const bg_parameter_value_t *v)
 Set audio encoding parameter. More...
 
void(* set_video_parameter )(void *priv, int stream, const char *name, const bg_parameter_value_t *v)
 Set video encoding parameter. More...
 
void(* set_text_parameter )(void *priv, int stream, const char *name, const bg_parameter_value_t *v)
 Set text subtitle encoding parameter. More...
 
void(* set_overlay_parameter )(void *priv, int stream, const char *name, const bg_parameter_value_t *v)
 Set text subtitle encoding parameter. More...
 
int(* set_video_pass )(void *priv, int stream, int pass, int total_passes, const char *stats_file)
 Setup multipass video encoding. More...
 
int(* start )(void *priv)
 Set up all codecs and prepare for encoding. More...
 
gavl_audio_sink_t *(* get_audio_sink )(void *priv, int stream)
 Get audio sink. More...
 
gavl_packet_sink_t *(* get_audio_packet_sink )(void *priv, int stream)
 Get audio packet sink. More...
 
gavl_video_sink_t *(* get_video_sink )(void *priv, int stream)
 Get video sink. More...
 
gavl_packet_sink_t *(* get_video_packet_sink )(void *priv, int stream)
 Get video sink. More...
 
gavl_packet_sink_t *(* get_text_sink )(void *priv, int stream)
 Get text subtitle sink. More...
 
gavl_video_sink_t *(* get_overlay_sink )(void *priv, int stream)
 Get overlay subtitle sink. More...
 
gavl_packet_sink_t *(* get_overlay_packet_sink )(void *priv, int stream)
 Get overlay subtitle sink. More...
 
void(* update_metadata )(void *priv, const gavl_metadata_t *m)
 Update metadata. More...
 
int(* close )(void *data, int do_delete)
 Close encoder. More...
 

Detailed Description

Encoder plugin.

Field Documentation

bg_plugin_common_t bg_encoder_plugin_s::common

Infos and functions common to all plugin types.

int bg_encoder_plugin_s::max_audio_streams

Maximum number of audio streams. -1 means infinite.

int bg_encoder_plugin_s::max_video_streams

Maximum number of video streams. -1 means infinite.

int bg_encoder_plugin_s::max_text_streams

Maximum number of text subtitle streams. -1 means infinite.

int bg_encoder_plugin_s::max_overlay_streams

Maximum number of overlay subtitle streams. -1 means infinite.

void(* bg_encoder_plugin_s::set_callbacks)(void *priv, bg_encoder_callbacks_t *cb)

Set callbacks.

Parameters
privThe handle returned by the create() method
cbCallback structure
int(* bg_encoder_plugin_s::writes_compressed_audio)(void *priv, const gavl_audio_format_t *format, const gavl_compression_info_t *info)

Query for writing compressed audio packets.

Parameters
privThe handle returned by the create() method
formatFormat of the source
infoCompression info
Returns
1 if stream compressed format can be written, 0 else

Call this function after all global parameters are set.

int(* bg_encoder_plugin_s::writes_compressed_video)(void *priv, const gavl_video_format_t *format, const gavl_compression_info_t *info)

Query for writing compressed video packets.

Parameters
privThe handle returned by the create() method
formatFormat of the source
infoCompression info
Returns
1 if stream compressed format can be written, 0 else

Call this function after all global parameters are set.

int(* bg_encoder_plugin_s::writes_compressed_overlay)(void *priv, const gavl_video_format_t *format, const gavl_compression_info_t *info)

Query for writing compressed overlay packets.

Parameters
privThe handle returned by the create() method
formatFormat of the source
infoCompression info
Returns
1 if stream compressed format can be written, 0 else

Call this function after all global parameters are set.

int(* bg_encoder_plugin_s::open)(void *data, const char *filename, const gavl_metadata_t *metadata, const gavl_chapter_list_t *chapter_list)

Open a file.

Parameters
privThe handle returned by the create() method
filenameName of the file to be opened (without extension!)
metadataMetadata to be written to the file
chapter_listChapter list (optional, can be NULL)

The extension is added automatically by the plugin. To keep track of the written files, use the bg_encoder_callbacks_t.

int(* bg_encoder_plugin_s::open_io)(void *data, gavf_io_t *io, const gavl_metadata_t *metadata, const gavl_chapter_list_t *chapter_list)

Open an encoder with a gavf IO handle.

Parameters
privThe handle returned by the create() method
ioIO handle
metadataMetadata to be written to the file
chapter_listChapter list (optional, can be NULL)
const bg_parameter_info_t*(* bg_encoder_plugin_s::get_audio_parameters)(void *priv)

Get audio related parameters.

Parameters
privThe handle returned by the create() method
Returns
NULL terminated array of parameter descriptions

The returned parameters are owned by the plugin and must not be freed.

const bg_parameter_info_t*(* bg_encoder_plugin_s::get_video_parameters)(void *priv)

Get video related parameters.

Parameters
privThe handle returned by the create() method
Returns
NULL terminated array of parameter descriptions

The returned parameters are owned by the plugin and must not be freed.

const bg_parameter_info_t*(* bg_encoder_plugin_s::get_text_parameters)(void *priv)

Get text subtitle related parameters.

Parameters
privThe handle returned by the create() method
Returns
NULL terminated array of parameter descriptions

The returned parameters are owned by the plugin and must not be freed.

const bg_parameter_info_t*(* bg_encoder_plugin_s::get_overlay_parameters)(void *priv)

Get overlay subtitle related parameters.

Parameters
privThe handle returned by the create() method
Returns
NULL terminated array of parameter descriptions

The returned parameters are owned by the plugin and must not be freed.

int(* bg_encoder_plugin_s::add_audio_stream)(void *priv, const gavl_metadata_t *m, const gavl_audio_format_t *format)

Add an audio stream.

Parameters
privThe handle returned by the create() method
languageas ISO 639-2 code (3 characters+'\0') or NULL
formatFormat of the source
Returns
Index of this stream (starting with 0)

The format might be changed to the nearest format supported by the plugin. Use get_audio_format to get the actual format needed by the plugin, after start() was called.

int(* bg_encoder_plugin_s::add_audio_stream_compressed)(void *priv, const gavl_metadata_t *m, const gavl_audio_format_t *format, const gavl_compression_info_t *info)

Add an audio stream fpr compressed writing.

Parameters
privThe handle returned by the create() method
languageas ISO 639-2 code (3 characters+'\0') or NULL
formatFormat of the source
infoCompression info of the source
Returns
Index of this stream (starting with 0)

The format might be changed to the nearest format supported by the plugin. Use get_audio_format to get the actual format needed by the plugin, after start() was called.

int(* bg_encoder_plugin_s::add_video_stream)(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format)

Add a video stream.

Parameters
privThe handle returned by the create() method
formatFormat of the source
Returns
Index of this stream (starting with 0)

The format might be changed to the nearest format supported by the plugin. Use get_video_format to get the actual format needed by the plugin, after start() was called.

int(* bg_encoder_plugin_s::add_video_stream_compressed)(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format, const gavl_compression_info_t *info)

Add a video stream for compressed writing.

Parameters
privThe handle returned by the create() method
formatFormat of the source
infoCompression info of the source
Returns
Index of this stream (starting with 0)

The format might be changed to the nearest format supported by the plugin. Use get_video_format to get the actual format needed by the plugin, after start() was called.

int(* bg_encoder_plugin_s::add_text_stream)(void *priv, const gavl_metadata_t *m, uint32_t *timescale)

Add a text subtitle stream.

Parameters
privThe handle returned by the create() method
languageas ISO 639-2 code (3 characters+'\0') or NULL
Returns
Index of this stream (starting with 0)
int(* bg_encoder_plugin_s::add_overlay_stream_compressed)(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format, const gavl_compression_info_t *ci)

Add an overlay subtitle stream.

Parameters
privThe handle returned by the create() method
mMetadata
formatFormat of the source
Returns
Index of this stream (starting with 0)

The format might be changed to the nearest format supported by the plugin. Use get_subtitle_overlay_format to get the actual format needed by the plugin, after start was called.

int(* bg_encoder_plugin_s::add_overlay_stream)(void *priv, const gavl_metadata_t *m, const gavl_video_format_t *format)

Add a text subtitle stream.

Parameters
privThe handle returned by the create() method
languageas ISO 639-2 code (3 characters+'\0') or NULL
formatFormat of the source
Returns
Index of this stream (starting with 0)

The format might be changed to the nearest format supported by the plugin. Use get_subtitle_overlay_format to get the actual format needed by the plugin, after start was called.

void(* bg_encoder_plugin_s::set_audio_parameter)(void *priv, int stream, const char *name, const bg_parameter_value_t *v)

Set audio encoding parameter.

Parameters
privThe handle returned by the create() method
streamStream index (starting with 0)
nameName of the parameter
vValue

Use this function with parameters obtained by get_audio_parameters.

void(* bg_encoder_plugin_s::set_video_parameter)(void *priv, int stream, const char *name, const bg_parameter_value_t *v)

Set video encoding parameter.

Parameters
privThe handle returned by the create() method
streamStream index (starting with 0)
nameName of the parameter
vValue

Use this function with parameters obtained by get_video_parameters.

void(* bg_encoder_plugin_s::set_text_parameter)(void *priv, int stream, const char *name, const bg_parameter_value_t *v)

Set text subtitle encoding parameter.

Parameters
privThe handle returned by the create() method
streamStream index (starting with 0)
nameName of the parameter
vValue

Use this function with parameters obtained by get_subtitle_text_parameters.

void(* bg_encoder_plugin_s::set_overlay_parameter)(void *priv, int stream, const char *name, const bg_parameter_value_t *v)

Set text subtitle encoding parameter.

Parameters
privThe handle returned by the create() method
streamStream index (starting with 0)
nameName of the parameter
vValue

Use this function with parameters obtained by get_subtitle_overlay_parameters.

int(* bg_encoder_plugin_s::set_video_pass)(void *priv, int stream, int pass, int total_passes, const char *stats_file)

Setup multipass video encoding.

Parameters
privThe handle returned by the create() method
streamStream index (starting with 0)
passNumber of this pass (starting with 1)
total_passesNumber of total passes
stats_fileName of a file, which can be used for multipass statistics
Returns
0 if multipass transcoding is not supported and can be ommitted, 1 else
int(* bg_encoder_plugin_s::start)(void *priv)

Set up all codecs and prepare for encoding.

Parameters
privThe handle returned by the create() method
Returns
0 on error, 1 on success

Optional function for preparing the actual encoding. Applications must check for this function and call it when available.

gavl_audio_sink_t*(* bg_encoder_plugin_s::get_audio_sink)(void *priv, int stream)

Get audio sink.

Parameters
privThe handle returned by the create() method
Returns
The audio sink for this stream
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_audio_packet_sink)(void *priv, int stream)

Get audio packet sink.

Parameters
privThe handle returned by the create() method
Returns
The audio sink for this stream
gavl_video_sink_t*(* bg_encoder_plugin_s::get_video_sink)(void *priv, int stream)

Get video sink.

Parameters
privThe handle returned by the create() method
Returns
The packet sink for this stream
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_video_packet_sink)(void *priv, int stream)

Get video sink.

Parameters
privThe handle returned by the create() method
Returns
The packet sink for this stream
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_text_sink)(void *priv, int stream)

Get text subtitle sink.

Parameters
privThe handle returned by the create() method
Returns
The packet sink for this stream
gavl_video_sink_t*(* bg_encoder_plugin_s::get_overlay_sink)(void *priv, int stream)

Get overlay subtitle sink.

Parameters
privThe handle returned by the create() method
Returns
The video sink for this stream
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_overlay_packet_sink)(void *priv, int stream)

Get overlay subtitle sink.

Parameters
privThe handle returned by the create() method
Returns
The packet sink for this stream
void(* bg_encoder_plugin_s::update_metadata)(void *priv, const gavl_metadata_t *m)

Update metadata.

Parameters
privThe handle returned by the create() method
mMetadata

Update metadata for broadcasting plugins.

int(* bg_encoder_plugin_s::close)(void *data, int do_delete)

Close encoder.

Parameters
privThe handle returned by the create() method
do_deleteSet this to 1 to delete all created files
Returns
1 is the file was sucessfully closed, 0 else

After calling this function, the plugin should be destroyed.


The documentation for this struct was generated from the following file: