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