[Home]Export Modules/API

Showing revision 1

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

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]

Requested action
Print out some general modules infos to stderr
and inherit transcode verbosity flag
(optional return capability flag)
Status
Optional

[2]

Requested action
Initialize the encoder
Status
Required

[3]

Requested action
Open outputfile
Status
Required

[4]

Requested action
Use this frame data to encode the next frame in the sequence
Status
Required

[5]

Requested action
Close open files
Status
Required

[6]

Requested action
Stop the encoder, free memory and prepare for module removal
Status
Required


Transcode Wiki | Export Modules | Recent Changes | Preferences
Password required to edit | View other revisions | View current revision
Edited December 28, 2004 4:59 pm by Monroe (diff)
Search: