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_subtitle_text_streams |
Maximum number of text subtitle streams. -1 means infinite. More... | |
int | max_subtitle_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(* | open )(void *data, const char *filename, const gavl_metadata_t *metadata, const bg_chapter_list_t *chapter_list) |
Open a file. 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_subtitle_text_parameters )(void *priv) |
Get text subtitle related parameters. More... | |
const bg_parameter_info_t *(* | get_subtitle_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_subtitle_text_stream )(void *priv, const gavl_metadata_t *m, int *timescale) |
Add a text subtitle stream. More... | |
int(* | add_subtitle_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_subtitle_text_parameter )(void *priv, int stream, const char *name, const bg_parameter_value_t *v) |
Set text subtitle encoding parameter. More... | |
void(* | set_subtitle_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... | |
void(* | get_audio_format )(void *priv, int stream, gavl_audio_format_t *ret) |
Get audio format. More... | |
void(* | get_video_format )(void *priv, int stream, gavl_video_format_t *ret) |
Get video format. More... | |
void(* | get_subtitle_overlay_format )(void *priv, int stream, gavl_video_format_t *ret) |
Get video format of an overlay subtitle stream. More... | |
int(* | write_audio_frame )(void *data, gavl_audio_frame_t *frame, int stream) |
Write audio samples. More... | |
int(* | write_audio_packet )(void *data, gavl_packet_t *packet, int stream) |
Write audio packet. More... | |
int(* | write_video_frame )(void *data, gavl_video_frame_t *frame, int stream) |
Write video frame. More... | |
int(* | write_video_packet )(void *data, gavl_packet_t *packet, int stream) |
Write video packet. More... | |
int(* | write_subtitle_text )(void *data, const char *text, int64_t start, int64_t duration, int stream) |
Write a text subtitle. More... | |
int(* | write_subtitle_overlay )(void *data, gavl_overlay_t *ovl, int stream) |
Write an overlay subtitle. More... | |
void(* | update_metadata )(void *data, const char *name, 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_subtitle_text_streams |
Maximum number of text subtitle streams. -1 means infinite.
int bg_encoder_plugin_s::max_subtitle_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::open)(void *data, const char *filename, const gavl_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 (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.
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 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_subtitle_text_stream)(void *priv, const gavl_metadata_t *m, 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 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_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_audio_packet)(void *data, gavl_packet_t *packet, int stream) |
Write audio packet.
priv | The handle returned by the create() method |
packet | Packet with compressed data |
stream | Stream index (starting with 0) |
The actual number of samples must be stored in the duration member of the packet.
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_video_packet)(void *data, gavl_packet_t *packet, int stream) |
Write video packet.
priv | The handle returned by the create() method |
packet | Packet with compressed data |
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) |
void(* bg_encoder_plugin_s::update_metadata)(void *data, const char *name, const gavl_metadata_t *m) |
Update metadata.
data | The data member of this bg_input_callbacks_s struct |
name | Name |
m | Metadata |
Update metadata for broadcasting plugins. Either name or m can be NULL.
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.