EXPORT MODULE WRITING HOWTO
Some very short documentation on writing export modules for transcode
Include this
#include "transcode.h" //definition of vob_t and transfer_t structure
Data exchange structure for modules
typedef struct _vob_t {
//see transcode.h for details
} vob_t;
typedef struct _transfer_t {
int flag; // specifies context: TC_VIDEO for video
TC_AUDIO for audio
// or passes an integer to the module
FILE *fd; // file handle for input stream
// NULL if import module performs reading
// unused in export module
int size; // total amount of bytes in the buffer
char *buffer; // pointer to data array with frame data
} transfer_t;
Single function interface
int tc_export(int option, void *para1, void *para2);
exit codes: all handled by transcode
TC_EXPORT_UNKNOWN option not supported
TC_EXPORT_OK no error, hopefully the default
TC_EXPORT_ERROR a critical error occured
Input parameter
- option contains the requested action id
- para1/2 its actually meaning depends on option
Requested method
transcode calls the following routines in this order for both export modules, i.e., first for video and then for the audio context flag set. An export module should in general be able to deal with audio and video and write it to a common file. But the interface is more general.
[1]
- option=TC_EXPORT_NAME
- para1=_transfer_t
- para2=NULL
- Requested action
- Print out some general modules infos to stderr
- and inherit transcode verbosity flag
- (optional return capability flag)
- Status
- Optional
[2]
- option=TC_EXPORT_INIT
- para1=_transfer_t
- para2=_vob_t
- Requested action
- Initialize the encoder
- Status
- Required
[3]
- option=TC_EXPORT_OPEN
- para1=_transfer_t
- para2=_vob_t
- Requested action
- Open outputfile
- Status
- Required
[4]
- option=TC_EXPORT_ENCODE
- para1=_transfer_t
- para2=NULL
- Requested action
- Use this frame data to encode the next frame in the sequence
- Status
- Required
[5]
- option:TC_EXPORT_CLOSE
- para1=_transfer_t
- para2=NULL
- Requested action
- Close open files
- Status
- Required
[6]
- option=TC_EXPORT_STOP
- para1=_transfer_t
- para2=NULL
- Requested action
- Stop the encoder, free memory and prepare for module removal
- Status
- Required