Merge CV, ver=5.1; ops/methods from HV, and interface from CV where possible
[goodguy/history.git] / cinelerra-5.1 / mpeg2enc / mpeg2enc.h
diff --git a/cinelerra-5.1/mpeg2enc/mpeg2enc.h b/cinelerra-5.1/mpeg2enc/mpeg2enc.h
new file mode 100644 (file)
index 0000000..bd0245f
--- /dev/null
@@ -0,0 +1,130 @@
+/* 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