Sophie

Sophie

distrib > Mageia > 7 > i586 > media > tainted-updates > by-pkgid > 888e64a48cf84001726088eaed288234 > files > 554

transcode-1.1.7-23.1.mga7.tainted.i586.rpm

		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