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_subtitle_text_streams |
Maximum number of text subtitle streams. -1 means infinite. | |
int | max_subtitle_overlay_streams |
Maximum number of overlay subtitle streams. -1 means infinite. | |
const char *(* | get_extension )(void *priv) |
Return the file extension. | |
int(* | open )(void *data, const char *filename, const bg_metadata_t *metadata, const bg_chapter_list_t *chapter_list) |
Open a file. | |
const char *(* | get_filename )(void *) |
Return the filename, which can be passed to the player. | |
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_subtitle_text_parameters )(void *priv) |
Get text subtitle related parameters. | |
const bg_parameter_info_t *(* | get_subtitle_overlay_parameters )(void *priv) |
Get overlay subtitle related parameters. | |
int(* | add_audio_stream )(void *priv, const char *language, gavl_audio_format_t *format) |
Add an audio stream. | |
int(* | add_video_stream )(void *priv, gavl_video_format_t *format) |
Add a video stream. | |
int(* | add_subtitle_text_stream )(void *priv, const char *language, int *timescale) |
Add a text subtitle stream. | |
int(* | add_subtitle_overlay_stream )(void *priv, const char *language, 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_subtitle_text_parameter )(void *priv, int stream, const char *name, const bg_parameter_value_t *v) |
Set text subtitle encoding parameter. | |
void(* | set_subtitle_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. | |
void(* | get_audio_format )(void *priv, int stream, gavl_audio_format_t *ret) |
Get audio format. | |
void(* | get_video_format )(void *priv, int stream, gavl_video_format_t *ret) |
Get video format. | |
void(* | get_subtitle_overlay_format )(void *priv, int stream, gavl_video_format_t *ret) |
Get video format of an overlay subtitle stream. | |
int(* | write_audio_frame )(void *data, gavl_audio_frame_t *frame, int stream) |
Write audio samples. | |
int(* | write_video_frame )(void *data, gavl_video_frame_t *frame, int stream) |
Write video frame. | |
int(* | write_subtitle_text )(void *data, const char *text, int64_t start, int64_t duration, int stream) |
Write a text subtitle. | |
int(* | write_subtitle_overlay )(void *data, gavl_overlay_t *ovl, int stream) |
Write an overlay subtitle. | |
int(* | close )(void *data, int do_delete) |
Close encoder. |
Encoder plugin.
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.
const char*(* bg_encoder_plugin_s::get_extension)(void *priv) |
Return the file extension.
priv | The handle returned by the create() method |
If a plugin supports more than one output format, the actual format is configured as a parameter. This function returns the extension according to the format.
int(* bg_encoder_plugin_s::open)(void *data, const char *filename, const bg_metadata_t *metadata, const bg_chapter_list_t *chapter_list) |
Open a file.
priv | The handle returned by the create() method | |
filename | Name of the file to be opened | |
metadata | Metadata to be written to the file | |
chapter_list | Chapter list (optional, can be NULL) |
const char*(* bg_encoder_plugin_s::get_filename)(void *) |
Return the filename, which can be passed to the player.
priv | The handle returned by the create() method |
This must be implemented only if the plugin creates files with names different from the the filename passed to the open() function
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_subtitle_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_subtitle_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 char *language, 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_video_stream)(void *priv, 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_subtitle_text_stream)(void *priv, const char *language, int *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_subtitle_overlay_stream)(void *priv, const char *language, 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_subtitle_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_subtitle_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.
void(* bg_encoder_plugin_s::get_audio_format)(void *priv, int stream, gavl_audio_format_t *ret) |
Get audio format.
priv | The handle returned by the create() method | |
stream | Stream index (starting with 0) | |
ret | Returns format |
Call this after calling start() if it's defined.
void(* bg_encoder_plugin_s::get_video_format)(void *priv, int stream, gavl_video_format_t *ret) |
Get video format.
priv | The handle returned by the create() method | |
stream | Stream index (starting with 0) | |
ret | Returns format |
Call this after calling start() if it's defined.
void(* bg_encoder_plugin_s::get_subtitle_overlay_format)(void *priv, int stream, gavl_video_format_t *ret) |
Get video format of an overlay subtitle stream.
priv | The handle returned by the create() method | |
stream | Stream index (starting with 0) | |
ret | Returns format |
Call this after calling start() if it's defined.
int(* bg_encoder_plugin_s::write_audio_frame)(void *data, gavl_audio_frame_t *frame, int stream) |
Write audio samples.
priv | The handle returned by the create() method | |
frame | Frame with samples | |
stream | Stream index (starting with 0) |
The actual number of samples must be stored in the valid_samples member of the frame.
int(* bg_encoder_plugin_s::write_video_frame)(void *data, gavl_video_frame_t *frame, int stream) |
Write video frame.
priv | The handle returned by the create() method | |
frame | Frame | |
stream | Stream index (starting with 0) |
int(* bg_encoder_plugin_s::write_subtitle_text)(void *data, const char *text, int64_t start, int64_t duration, int stream) |
Write a text subtitle.
priv | The handle returned by the create() method | |
frame | The text | |
start | Start of the subtitle | |
duration | Duration of the subtitle | |
stream | Stream index (starting with 0) |
int(* bg_encoder_plugin_s::write_subtitle_overlay)(void *data, gavl_overlay_t *ovl, int stream) |
Write an overlay subtitle.
priv | The handle returned by the create() method | |
ovl | An overlay | |
stream | Stream index (starting with 0) |
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.