You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

112 lines
2.5 KiB

EXPORT MODULE WRITING HOWTO
---------------------------
Changes: 2001-08-13: changed order of init/open
and stop/close calls.
Some very short documentation on writing export modules for transcode
include this file:
------------------
#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)
//>0.3.3 of transcode interpret flag returned
//to read module capabilities for sanity checks
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