bg_encoder_plugin_s Struct Reference
[Encoder]

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.
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(* open )(void *data, const char *filename, const bg_metadata_t *metadata, const bg_chapter_list_t *chapter_list)
 Open a file.
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, const gavl_audio_format_t *format)
 Add an audio stream.
int(* add_audio_stream_compressed )(void *priv, const char *language, 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_video_format_t *format)
 Add a video stream.
int(* add_video_stream_compressed )(void *priv, const gavl_video_format_t *format, const gavl_compression_info_t *info)
 Add a video stream for compressed writing.
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, 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_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_audio_packet )(void *data, gavl_packet_t *packet, int stream)
 Write audio packet.
int(* write_video_frame )(void *data, gavl_video_frame_t *frame, int stream)
 Write video frame.
int(* write_video_packet )(void *data, gavl_packet_t *packet, int stream)
 Write video packet.
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.

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:
priv The handle returned by the create() method
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
format Format of the source
Parameters:
info Compression 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:
priv The handle returned by the create() method
Parameters:
format Format of the source
Parameters:
info Compression 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 bg_metadata_t *metadata, const bg_chapter_list_t *chapter_list)

Open a file.

Parameters:
priv The handle returned by the create() method
Parameters:
filename Name of the file to be opened (without extension!)
Parameters:
metadata Metadata to be written to the file
Parameters:
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.

Get audio related parameters.

Parameters:
priv The 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:
priv The 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:
priv The 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:
priv The 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 char *language, const gavl_audio_format_t *format)

Add an audio stream.

Parameters:
priv The handle returned by the create() method
Parameters:
language as ISO 639-2 code (3 characters+'\0') or NULL
Parameters:
format Format 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 char *language, const gavl_audio_format_t *format, const gavl_compression_info_t *info)

Add an audio stream fpr compressed writing.

Parameters:
priv The handle returned by the create() method
Parameters:
language as ISO 639-2 code (3 characters+'\0') or NULL
Parameters:
format Format of the source
Parameters:
info Compression 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.

Add a video stream.

Parameters:
priv The handle returned by the create() method
Parameters:
format Format 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_video_format_t *format, const gavl_compression_info_t *info)

Add a video stream for compressed writing.

Parameters:
priv The handle returned by the create() method
Parameters:
format Format of the source
Parameters:
info Compression 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_subtitle_text_stream)(void *priv, const char *language, int *timescale)

Add a text subtitle stream.

Parameters:
priv The handle returned by the create() method
Parameters:
language as ISO 639-2 code (3 characters+'\0') or NULL
Returns:
Index of this stream (starting with 0)
int(* bg_encoder_plugin_s::add_subtitle_overlay_stream)(void *priv, const char *language, const gavl_video_format_t *format)

Add a text subtitle stream.

Parameters:
priv The handle returned by the create() method
Parameters:
language as ISO 639-2 code (3 characters+'\0') or NULL
Parameters:
format Format 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:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
name Name of the parameter
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
name Name of the parameter
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
name Name of the parameter
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
name Name of the parameter
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
pass Number of this pass (starting with 1)
Parameters:
total_passes Number of total passes
Parameters:
stats_file Name 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:
priv The 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.
void(* bg_encoder_plugin_s::get_audio_format)(void *priv, int stream, gavl_audio_format_t *ret)

Get audio format.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
ret Returns format
Call this after calling start() if it's defined.

Get video format of an overlay subtitle stream.

Parameters:
priv The handle returned by the create() method
Parameters:
stream Stream index (starting with 0)
Parameters:
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.

Parameters:
priv The handle returned by the create() method
Parameters:
frame Frame with samples
Parameters:
stream Stream index (starting with 0)
Returns:
1 is the data was successfully written, 0 else
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.

Parameters:
priv The handle returned by the create() method
Parameters:
packet Packet with compressed data
Parameters:
stream Stream index (starting with 0)
Returns:
1 is the data was successfully written, 0 else
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.

Parameters:
priv The handle returned by the create() method
Parameters:
frame Frame
Parameters:
stream Stream index (starting with 0)
Returns:
1 is the data was successfully written, 0 else
int(* bg_encoder_plugin_s::write_video_packet)(void *data, gavl_packet_t *packet, int stream)

Write video packet.

Parameters:
priv The handle returned by the create() method
Parameters:
packet Packet with compressed data
Parameters:
stream Stream index (starting with 0)
Returns:
1 is the data was successfully written, 0 else
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.

Parameters:
priv The handle returned by the create() method
Parameters:
frame The text
Parameters:
start Start of the subtitle
Parameters:
duration Duration of the subtitle
Parameters:
stream Stream index (starting with 0)
Returns:
1 is the data was successfully written, 0 else
int(* bg_encoder_plugin_s::write_subtitle_overlay)(void *data, gavl_overlay_t *ovl, int stream)

Write an overlay subtitle.

Parameters:
priv The handle returned by the create() method
Parameters:
ovl An overlay
Parameters:
stream Stream index (starting with 0)
Returns:
1 is the data was successfully written, 0 else
int(* bg_encoder_plugin_s::close)(void *data, int do_delete)

Close encoder.

Parameters:
priv The handle returned by the create() method
Parameters:
do_delete Set 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:
Generated on Sat Jan 28 06:53:19 2012 for gmerlin by  doxygen 1.6.3