1 /* 2 * tivodecode, (c) 2006, Jeremy Drake 3 * See COPYING file for license terms 4 */ 5 6 #ifndef TIVO_DECODER_H_ 7 #define TIVO_DECODER_H_ 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 #include "tdconfig.h" 14 #include <stddef.h> 15 #ifdef HAVE_SYS_TYPES_H 16 # include <sys/types.h> 17 #endif 18 #ifdef HAVE_UNISTD_H 19 # include <unistd.h> 20 #endif 21 #include "turing_stream.h" 22 23 #if SIZEOF_OFF_T == 8 24 # define OFF_T_TYPE off_t 25 # define OFF_T_FORMAT "llu" 26 #elif defined(WIN32) 27 # define OFF_T_TYPE __int64 28 # define OFF_T_FORMAT "llu" 29 #else 30 # warning "Not compiling for large file (>2G) support!" 31 # define OFF_T_TYPE off_t 32 # define OFF_T_FORMAT "lu" 33 #endif 34 35 typedef int (*write_func_t) (void * mem, int size, void * fh); 36 37 /* 38 * called for each frame 39 */ 40 int process_frame(unsigned char code, turing_state * turing, OFF_T_TYPE packet_start, void * packet_stream, read_func_t read_handler, void * ofh, write_func_t write_handler); 41 42 #ifdef __cplusplus 43 } 44 #endif 45 #endif 46