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.
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.


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.

const char*(* bg_encoder_plugin_s::get_extension)(void *priv)

Return the file extension.

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

Parameters:
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.

Parameters:
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

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, gavl_audio_format_t *format)

Add an audio stream.

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

Add a video stream.

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

Add a text subtitle stream.

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

Add a text subtitle stream.

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

Parameters:
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.

Parameters:
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.

Parameters:
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.

Parameters:
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
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
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.

Parameters:
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.

Get video format of an overlay subtitle stream.

Parameters:
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.

Parameters:
priv The handle returned by the create() method
frame Frame with samples
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_video_frame)(void *data, gavl_video_frame_t *frame, int stream)

Write video frame.

Parameters:
priv The handle returned by the create() method
frame Frame
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
frame The text
start Start of the subtitle
duration Duration of the subtitle
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
ovl An overlay
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
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 Aug 22 00:44:56 2009 for gmerlin by  doxygen 1.5.9