/* mpeg2dec.h, MPEG specific defines */ /* Copyright (C) 1996, MPEG Software Simulation Group. All Rights Reserved. */ /* * Disclaimer of Warranty * * These software programs are available to the user without any license fee or * royalty on an "as is" basis. The MPEG Software Simulation Group disclaims * any and all warranties, whether express, implied, or statuary, including any * implied warranties or merchantability or of fitness for a particular * purpose. In no event shall the copyright-holder be liable for any * incidental, punitive, or consequential damages of any kind whatsoever * arising from the use of these programs. * * This disclaimer of warranty extends to the user of these programs and user's * customers, employees, agents, transferees, successors, and assigns. * * The MPEG Software Simulation Group does not represent or warrant that the * programs furnished hereunder are free of infringement of any third-party * patents. * * Commercial implementations of MPEG-1 and MPEG-2 video, including shareware, * are subject to royalty fees to patent holders. Many of these patents are * general enough such that they are unavoidable regardless of implementation * design. * */ #define ERROR (-1) #define PICTURE_START_CODE 0x100 #define SLICE_START_CODE_MIN 0x101 #define SLICE_START_CODE_MAX 0x1AF #define USER_DATA_START_CODE 0x1B2 #define SEQUENCE_HEADER_CODE 0x1B3 #define SEQUENCE_ERROR_CODE 0x1B4 #define EXTENSION_START_CODE 0x1B5 #define SEQUENCE_END_CODE 0x1B7 #define GROUP_START_CODE 0x1B8 #define SYSTEM_START_CODE_MIN 0x1B9 #define SYSTEM_START_CODE_MAX 0x1FF #define ISO_END_CODE 0x1B9 #define PACK_START_CODE 0x1BA #define SYSTEM_START_CODE 0x1BB #define VIDEO_ELEMENTARY_STREAM 0x1e0 /* scalable_mode */ #define SC_NONE 0 #define SC_DP 1 #define SC_SPAT 2 #define SC_SNR 3 #define SC_TEMP 4 /* picture coding type */ #define I_TYPE 1 #define P_TYPE 2 #define B_TYPE 3 #define D_TYPE 4 /* picture structure */ #define TOP_FIELD 1 #define BOTTOM_FIELD 2 #define FRAME_PICTURE 3 /* macroblock type */ #define MACROBLOCK_INTRA 1 #define MACROBLOCK_PATTERN 2 #define MACROBLOCK_MOTION_BACKWARD 4 #define MACROBLOCK_MOTION_FORWARD 8 #define MACROBLOCK_QUANT 16 #define SPATIAL_TEMPORAL_WEIGHT_CODE_FLAG 32 #define PERMITTED_SPATIAL_TEMPORAL_WEIGHT_CLASS 64 /* motion_type */ #define MC_FIELD 1 #define MC_FRAME 2 #define MC_16X8 2 #define MC_DMV 3 /* mv_format */ #define MV_FIELD 0 #define MV_FRAME 1 /* chroma_format */ #define CHROMA420 1 #define CHROMA422 2 #define CHROMA444 3 /* extension start code IDs */ #define SEQUENCE_EXTENSION_ID 1 #define SEQUENCE_DISPLAY_EXTENSION_ID 2 #define QUANT_MATRIX_EXTENSION_ID 3 #define COPYRIGHT_EXTENSION_ID 4 #define SEQUENCE_SCALABLE_EXTENSION_ID 5 #define PICTURE_DISPLAY_EXTENSION_ID 7 #define PICTURE_CODING_EXTENSION_ID 8 #define PICTURE_SPATIAL_SCALABLE_EXTENSION_ID 9 #define PICTURE_TEMPORAL_SCALABLE_EXTENSION_ID 10 #define ZIG_ZAG 0 #define PROFILE_422 (128+5) #define MAIN_LEVEL 8 /* Layers: used by Verbose_Flag, Verifier_Flag, Stats_Flag, and Trace_Flag */ #define NO_LAYER 0 #define SEQUENCE_LAYER 1 #define PICTURE_LAYER 2 #define SLICE_LAYER 3 #define MACROBLOCK_LAYER 4 #define BLOCK_LAYER 5 #define EVENT_LAYER 6 #define ALL_LAYERS 7 #define FILENAME_LENGTH 256 #define MB_WEIGHT 32 #define MB_CLASS4 64 /* FIXME */ #include #if defined(_MSC_VER) || defined(__BORLANDC__) typedef int ssize_t; #endif #define FILESTAR #include #ifndef __cplusplus typedef struct { #ifdef FILESTAR FILE* InFd; #else int InFd; #endif } istream; #endif typedef struct { FILE* OutFd; } ostream; int my_printf(const char *format, ...); int my_fprintf(const char *format, ...); int my_sprintf(char *str, const char *format, ...); void my_exit(int status); int my_fopenr(const char *path, const char *mode, istream *os); int my_fopen(const char *path, const char *mode, ostream *os); int my_fseek(ostream *stream, long offset, int whence); int my_fseekr(istream *stream, long offset, int whence); size_t my_fread(void *ptr, size_t size, size_t nmemb, istream *stream); size_t my_fwrite(const void *ptr, size_t size, size_t nmemb, ostream *stream); int my_fclose(ostream *fp); int my_fcloser(istream *fp);