summaryrefslogtreecommitdiff
path: root/src/libmpeg2/mpeg2_internal.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/libmpeg2/mpeg2_internal.h')
-rw-r--r--src/libmpeg2/mpeg2_internal.h294
1 files changed, 0 insertions, 294 deletions
diff --git a/src/libmpeg2/mpeg2_internal.h b/src/libmpeg2/mpeg2_internal.h
deleted file mode 100644
index 345e73080..000000000
--- a/src/libmpeg2/mpeg2_internal.h
+++ /dev/null
@@ -1,294 +0,0 @@
-/*
- * mpeg2_internal.h
- * Copyright (C) 2000-2002 Michel Lespinasse <walken@zoy.org>
- * Copyright (C) 1999-2000 Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
- *
- * This file is part of mpeg2dec, a free MPEG-2 video stream decoder.
- * See http://libmpeg2.sourceforge.net/ for updates.
- *
- * mpeg2dec is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * mpeg2dec is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
- */
-
-#ifndef MPEG2_INTERNAL_H
-#define MPEG2_INTERNAL_H
-
-#include "video_out.h"
-#include "accel_xvmc.h"
-
-#ifdef ENABLE_ALTIVEC
-#include <altivec.h>
-#endif
-
-/* macroblock modes */
-#define MACROBLOCK_INTRA XINE_MACROBLOCK_INTRA
-#define MACROBLOCK_PATTERN XINE_MACROBLOCK_PATTERN
-#define MACROBLOCK_MOTION_BACKWARD XINE_MACROBLOCK_MOTION_BACKWARD
-#define MACROBLOCK_MOTION_FORWARD XINE_MACROBLOCK_MOTION_FORWARD
-#define MACROBLOCK_QUANT XINE_MACROBLOCK_QUANT
-#define DCT_TYPE_INTERLACED XINE_MACROBLOCK_DCT_TYPE_INTERLACED
-
-/* motion_type */
-#define MOTION_TYPE_MASK (3*64)
-#define MOTION_TYPE_BASE 64
-#define MC_FIELD (1*64)
-#define MC_FRAME (2*64)
-#define MC_16X8 (2*64)
-#define MC_DMV (3*64)
-
-/* picture structure */
-#define TOP_FIELD VO_TOP_FIELD
-#define BOTTOM_FIELD VO_BOTTOM_FIELD
-#define FRAME_PICTURE VO_BOTH_FIELDS
-
-/* picture coding type (mpeg2 header) */
-#define I_TYPE 1
-#define P_TYPE 2
-#define B_TYPE 3
-#define D_TYPE 4
-
-typedef struct motion_s {
- uint8_t * ref[2][3];
- uint8_t ** ref2[2];
- int pmv[2][2];
- int f_code[2];
-} motion_t;
-
-typedef struct picture_s {
- /* first, state that carries information from one macroblock to the */
- /* next inside a slice, and is never used outside of mpeg2_slice() */
-
- /* DCT coefficients - should be kept aligned ! */
- int16_t DCTblock[64];
-
- /* XvMC DCT block and macroblock data for XvMC acceleration */
- xine_macroblocks_t *mc;
- int XvMC_mb_type;
- int XvMC_mv_field_sel[2][2];
- int XvMC_x;
- int XvMC_y;
- int XvMC_motion_type;
- int XvMC_dmvector[2];
- int XvMC_cbp;
- int XvMC_dct_type;
-
- /* bit parsing stuff */
- uint32_t bitstream_buf; /* current 32 bit working set of buffer */
- int bitstream_bits; /* used bits in working set */
- uint8_t * bitstream_ptr; /* buffer with stream data */
-
- uint8_t * dest[3];
- int pitches[3];
- int offset;
- unsigned int limit_x;
- unsigned int limit_y_16;
- unsigned int limit_y_8;
- unsigned int limit_y;
-
- /* Motion vectors */
- /* The f_ and b_ correspond to the forward and backward motion */
- /* predictors */
- motion_t b_motion;
- motion_t f_motion;
-
- /* predictor for DC coefficients in intra blocks */
- int16_t dc_dct_pred[3];
-
- int quantizer_scale; /* remove */
- int current_field; /* remove */
- int dmv_offset; /* remove */
- unsigned int v_offset; /* remove */
-
-
- /* now non-slice-specific information */
-
- /* sequence header stuff */
- uint8_t intra_quantizer_matrix [64];
- uint8_t non_intra_quantizer_matrix [64];
- int load_intra_quantizer_matrix;
- int load_non_intra_quantizer_matrix;
-
- /* The width and height of the picture snapped to macroblock units */
- int coded_picture_width;
- int coded_picture_height;
-
- /* The width and height as it appears on header sequence */
- unsigned int display_width, display_height;
-
- /* picture header stuff */
-
- /* what type of picture this is (I, P, B, D) */
- int picture_coding_type;
-
- int vbv_delay;
- int low_delay;
-
- /* picture coding extension stuff */
-
- /* quantization factor for intra dc coefficients */
- int intra_dc_precision;
- /* top/bottom/both fields */
- int picture_structure;
- /* bool to indicate all predictions are frame based */
- int frame_pred_frame_dct;
- /* bool to indicate whether intra blocks have motion vectors */
- /* (for concealment) */
- int concealment_motion_vectors;
- /* bit to indicate which quantization table to use */
- int q_scale_type;
- /* bool to use different vlc tables */
- int intra_vlc_format;
- /* used for DMV MC */
- int top_field_first;
-
- /* stuff derived from bitstream */
-
- /* pointer to the zigzag scan we're supposed to be using */
- uint8_t * scan;
-
- struct vo_frame_s * current_frame;
- struct vo_frame_s * forward_reference_frame;
- struct vo_frame_s * backward_reference_frame;
-
- int frame_width, frame_height;
-
- int second_field;
-
- int mpeg1;
-
- int skip_non_intra_dct;
-
- /* these things are not needed by the decoder */
- /* this is a temporary interface, we will build a better one later. */
- int aspect_ratio_information;
- int saved_aspect_ratio;
- int frame_rate_code;
- int progressive_sequence;
- int repeat_first_field;
- int progressive_frame;
- int32_t frame_centre_horizontal_offset;
- int32_t frame_centre_vertical_offset;
- uint32_t video_format;
- uint32_t colour_description;
- uint32_t colour_primatives;
- uint32_t transfer_characteristics;
- uint32_t matrix_coefficients;
- uint32_t display_horizontal_size;
- uint32_t display_vertical_size;
- uint32_t drop_frame_flag;
- uint32_t time_code_hours;
- uint32_t time_code_minutes;
- uint32_t time_code_seconds;
- uint32_t time_code_pictures;
- uint32_t closed_gop;
- uint32_t broken_link;
-
- int bitrate;
- int frame_rate_ext_n;
- int frame_rate_ext_d;
-
-} picture_t;
-
-typedef struct cpu_state_s {
-#ifdef ARCH_PPC
- uint8_t regv[12*16];
-#endif
- int dummy;
-} cpu_state_t;
-
-/* cpu_state.c */
-extern void (* mpeg2_cpu_state_save) (cpu_state_t * state);
-extern void (* mpeg2_cpu_state_restore) (cpu_state_t * state);
-void mpeg2_cpu_state_init (uint32_t mm_accel);
-
-/* header.c */
-extern uint8_t mpeg2_scan_norm[64];
-extern uint8_t mpeg2_scan_alt[64];
-void mpeg2_header_state_init (picture_t * picture);
-int mpeg2_header_picture (picture_t * picture, uint8_t * buffer);
-int mpeg2_header_sequence (picture_t * picture, uint8_t * buffer);
-int mpeg2_header_extension (picture_t * picture, uint8_t * buffer);
-int mpeg2_header_group_of_pictures (picture_t * picture, uint8_t * buffer);
-
-/* idct.c */
-extern void (* mpeg2_idct_copy) (int16_t * block, uint8_t * dest, int stride);
-extern void (* mpeg2_idct_add) (int16_t * block, uint8_t * dest, int stride);
-extern void (* mpeg2_idct) (int16_t * block);
-extern void (* mpeg2_zero_block) (int16_t * block);
-void mpeg2_idct_init (uint32_t mm_accel);
-
-/* idct_mlib.c */
-void mpeg2_idct_add_mlib (int16_t * block, uint8_t * dest, int stride);
-void mpeg2_idct_copy_mlib_non_ieee (int16_t * block, uint8_t * dest,
- int stride);
-void mpeg2_idct_add_mlib_non_ieee (int16_t * block, uint8_t * dest,
- int stride);
-void mpeg2_idct_mlib (int16_t * block);
-
-/* idct_mmx.c */
-void mpeg2_idct_copy_mmxext (int16_t * block, uint8_t * dest, int stride);
-void mpeg2_idct_add_mmxext (int16_t * block, uint8_t * dest, int stride);
-void mpeg2_idct_mmxext (int16_t * block);
-void mpeg2_idct_copy_mmx (int16_t * block, uint8_t * dest, int stride);
-void mpeg2_idct_add_mmx (int16_t * block, uint8_t * dest, int stride);
-void mpeg2_idct_mmx (int16_t * block);
-void mpeg2_zero_block_mmx (int16_t * block);
-void mpeg2_idct_mmx_init (void);
-
-/* idct_altivec.c */
-# ifdef ENABLE_ALTIVEC
-void mpeg2_idct_copy_altivec (vector signed short * block, unsigned char * dest,
- int stride);
-void mpeg2_idct_add_altivec (vector signed short * block, unsigned char * dest,
- int stride);
-# else /* ! ENABLE_ALTIVEC */
-void mpeg2_idct_copy_altivec (signed short * block, unsigned char * dest,
- int stride);
-void mpeg2_idct_add_altivec (signed short * block, unsigned char * dest,
- int stride);
-# endif /* ENABLE_ALTIVEC */
-void mpeg2_idct_altivec_init (void);
-
-/* motion_comp.c */
-void mpeg2_mc_init (uint32_t mm_accel);
-
-typedef struct mpeg2_mc_s {
- void (* put [8]) (uint8_t * dst, uint8_t *, int32_t, int32_t);
- void (* avg [8]) (uint8_t * dst, uint8_t *, int32_t, int32_t);
-} mpeg2_mc_t;
-
-#define MPEG2_MC_EXTERN(x) mpeg2_mc_t mpeg2_mc_##x = { \
- {MC_put_o_16_##x, MC_put_x_16_##x, MC_put_y_16_##x, MC_put_xy_16_##x, \
- MC_put_o_8_##x, MC_put_x_8_##x, MC_put_y_8_##x, MC_put_xy_8_##x}, \
- {MC_avg_o_16_##x, MC_avg_x_16_##x, MC_avg_y_16_##x, MC_avg_xy_16_##x, \
- MC_avg_o_8_##x, MC_avg_x_8_##x, MC_avg_y_8_##x, MC_avg_xy_8_##x} \
-};
-
-extern mpeg2_mc_t mpeg2_mc;
-extern mpeg2_mc_t mpeg2_mc_c;
-extern mpeg2_mc_t mpeg2_mc_mmx;
-extern mpeg2_mc_t mpeg2_mc_mmxext;
-extern mpeg2_mc_t mpeg2_mc_3dnow;
-extern mpeg2_mc_t mpeg2_mc_altivec;
-extern mpeg2_mc_t mpeg2_mc_mlib;
-extern mpeg2_mc_t mpeg2_mc_vis;
-
-/* slice.c */
-void mpeg2_slice (picture_t * picture, int code, uint8_t * buffer);
-
-/* stats.c */
-void mpeg2_stats (int code, uint8_t * buffer);
-
-
-#endif