gmerlin
|
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... | |
Encoder plugin.
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.
priv | The handle returned by the create() method |
cb | Callback 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.
priv | The handle returned by the create() method |
format | Format of the source |
info | Compression info |
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.
priv | The handle returned by the create() method |
format | Format of the source |
info | Compression info |
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.
priv | The handle returned by the create() method |
format | Format of the source |
info | Compression info |
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.
priv | The handle returned by the create() method |
filename | Name of the file to be opened (without extension!) |
metadata | Metadata to be written to the file |
chapter_list | Chapter 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.
priv | The handle returned by the create() method |
io | IO handle |
metadata | Metadata to be written to the file |
chapter_list | Chapter list (optional, can be NULL) |
const bg_parameter_info_t*(* bg_encoder_plugin_s::get_audio_parameters) (void *priv) |
Get audio related parameters.
priv | The handle returned by the create() method |
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.
priv | The handle returned by the create() method |
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.
priv | The handle returned by the create() method |
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.
priv | The handle returned by the create() method |
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.
priv | The handle returned by the create() method |
language | as ISO 639-2 code (3 characters+'\0') or NULL |
format | Format of the source |
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.
priv | The handle returned by the create() method |
language | as ISO 639-2 code (3 characters+'\0') or NULL |
format | Format of the source |
info | Compression info of the source |
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.
priv | The handle returned by the create() method |
format | Format of the source |
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.
priv | The handle returned by the create() method |
format | Format of the source |
info | Compression info of the source |
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.
priv | The handle returned by the create() method |
language | as ISO 639-2 code (3 characters+'\0') or NULL |
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.
priv | The handle returned by the create() method |
m | Metadata |
format | Format of the source |
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.
priv | The handle returned by the create() method |
language | as ISO 639-2 code (3 characters+'\0') or NULL |
format | Format of the source |
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.
priv | The handle returned by the create() method |
stream | Stream index (starting with 0) |
name | Name of the parameter |
v | Value |
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.
priv | The handle returned by the create() method |
stream | Stream index (starting with 0) |
name | Name of the parameter |
v | Value |
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.
priv | The handle returned by the create() method |
stream | Stream index (starting with 0) |
name | Name of the parameter |
v | Value |
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.
priv | The handle returned by the create() method |
stream | Stream index (starting with 0) |
name | Name of the parameter |
v | Value |
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.
priv | The handle returned by the create() method |
stream | Stream index (starting with 0) |
pass | Number of this pass (starting with 1) |
total_passes | Number of total passes |
stats_file | Name of a file, which can be used for multipass statistics |
int(* bg_encoder_plugin_s::start) (void *priv) |
Set up all codecs and prepare for encoding.
priv | The handle returned by the create() method |
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.
priv | The handle returned by the create() method |
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_audio_packet_sink) (void *priv, int stream) |
Get audio packet sink.
priv | The handle returned by the create() method |
gavl_video_sink_t*(* bg_encoder_plugin_s::get_video_sink) (void *priv, int stream) |
Get video sink.
priv | The handle returned by the create() method |
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_video_packet_sink) (void *priv, int stream) |
Get video sink.
priv | The handle returned by the create() method |
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_text_sink) (void *priv, int stream) |
Get text subtitle sink.
priv | The handle returned by the create() method |
gavl_video_sink_t*(* bg_encoder_plugin_s::get_overlay_sink) (void *priv, int stream) |
Get overlay subtitle sink.
priv | The handle returned by the create() method |
gavl_packet_sink_t*(* bg_encoder_plugin_s::get_overlay_packet_sink) (void *priv, int stream) |
Get overlay subtitle sink.
priv | The handle returned by the create() method |
void(* bg_encoder_plugin_s::update_metadata) (void *priv, const gavl_metadata_t *m) |
Update metadata.
priv | The handle returned by the create() method |
m | Metadata |
Update metadata for broadcasting plugins.
int(* bg_encoder_plugin_s::close) (void *data, int do_delete) |
Close encoder.
priv | The handle returned by the create() method |
do_delete | Set this to 1 to delete all created files |
After calling this function, the plugin should be destroyed.