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

Detailed Description

Encoder plugin.


Field Documentation

Infos and functions common to all plugin types.

Maximum number of audio streams. -1 means infinite.

Maximum number of video streams. -1 means infinite.

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

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

Set callbacks.

Parameters:
privThe handle returned by the create() method
cbCallback structure

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.

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.

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)

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.

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.

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.

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: