/* mpg2enc.h, defines and types */ /* 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. * */ #ifndef MPEG2ENC_H #define MPEG2ENC_H #define PICTURE_START_CODE 0x100L #define SLICE_MIN_START 0x101L #define SLICE_MAX_START 0x1AFL #define USER_START_CODE 0x1B2L #define SEQ_START_CODE 0x1B3L #define EXT_START_CODE 0x1B5L #define SEQ_END_CODE 0x1B7L #define GOP_START_CODE 0x1B8L #define ISO_END_CODE 0x1B9L #define PACK_START_CODE 0x1BAL #define SYSTEM_START_CODE 0x1BBL /* 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 MB_INTRA 1 #define MB_PATTERN 2 #define MB_BACKWARD 4 #define MB_FORWARD 8 #define MB_QUANT 16 /* 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 SEQ_ID 1 #define DISP_ID 2 #define QUANT_ID 3 #define SEQSCAL_ID 5 #define PANSCAN_ID 7 #define CODING_ID 8 #define SPATSCAL_ID 9 #define TEMPSCAL_ID 10 /* inputtype */ #define T_Y_U_V 0 #define T_YUV 1 #define T_PPM 2 #define T_QUICKTIME 3 #define T_MPEG 4 #define T_STDIN 5 #define T_BUFFERS 6 #define BUFFER_ALIGN 64 /* macroblock information */ struct mbinfo { int mb_type; /* intra/forward/backward/interpolated */ int motion_type; /* frame/field/16x8/dual_prime */ int dct_type; /* field/frame DCT */ int mquant; /* quantization parameter */ int cbp; /* coded block pattern */ int skipped; /* skipped macroblock */ int MV[2][2][2]; /* motion vectors */ int mv_field_sel[2][2]; /* motion vertical field select */ int dmvector[2]; /* dual prime vectors */ double act; /* activity measure */ int i_act; /* Activity measure if intra coded (I/P-frame) */ int p_act; /* Activity measure for *forward* prediction (P-frame) */ int b_act; /* Activity measure if bi-directionally coded (B-frame) */ int var; /* Macroblock luminance variance (measure of activity) */ short (*dctblocks)[64]; }; /* motion data */ struct motion_data { int forw_hor_f_code,forw_vert_f_code; /* vector range */ int sxf,syf; /* search range */ int back_hor_f_code,back_vert_f_code; int sxb,syb; }; #endif