* video_parser.h : video parser thread
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
+ * $Id: video_parser.h,v 1.35 2001/05/30 17:03:11 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
*****************************************************************************/
typedef struct vpar_thread_s
{
+ bit_stream_t bit_stream;
+
/* Thread properties and locks */
- boolean_t b_die; /* `die' flag */
- boolean_t b_run; /* `run' flag */
- boolean_t b_error; /* `error' flag */
- boolean_t b_active; /* `active' flag */
vlc_thread_t thread_id; /* id for thread functions */
/* Thread configuration */
/* Input properties */
decoder_fifo_t * p_fifo; /* PES input fifo */
- bit_stream_t bit_stream;
vdec_config_t * p_config;
-
/* Output properties */
vout_thread_t * p_vout; /* video output thread */
video_synchro_t synchro;
/* Lookup tables */
-#ifdef MPEG2_COMPLIANT
- s16 pi_crop_buf[8192];
- s16 * pi_crop;
-#endif
lookup_t pl_mb_addr_inc[2048]; /* for macroblock
address increment */
/* tables for macroblock types 0=P 1=B */
lookup_t * pl_coded_pattern;
/* variable length codes for the structure dct_dc_size for intra blocks */
lookup_t * pppl_dct_dc_size[2][2];
- /* Structure to store the tables B14 & B15 (ISO/CEI 13818-2 B.4) */
- dct_lookup_t ppl_dct_coef[2][16384];
-
-
+ /* Structure to store the tables B14 & B15 (ISO/IEC 13818-2 B.4) */
+ dct_lookup_t ppl_dct_coef[2][16384];
+ /* Scan table */
+ u8 ppi_scan[2][64];
+ /* Default quantization matrices */
+ u8 pi_default_intra_quant[64];
+ u8 pi_default_nonintra_quant[64];
+
+ /* Motion compensation plugin used and shortcuts */
+ struct module_s * p_motion_module;
+ void ( * pppf_motion[4][2][4] ) ( struct macroblock_s * );
+ void ( * ppf_motion_skipped[4][4] ) ( struct macroblock_s * );
+
+ /* IDCT plugin used and shortcuts to access its capabilities */
+ struct module_s * p_idct_module;
+ void ( * pf_idct_init ) ( struct vdec_thread_s * );
+ void ( * pf_sparse_idct ) ( struct vdec_thread_s *, dctelem_t*, int );
+ void ( * pf_idct ) ( struct vdec_thread_s *, dctelem_t*, int );
+ void ( * pf_norm_scan ) ( u8 ppi_scan[2][64] );
+ void ( * pf_decode_init ) ( struct vdec_thread_s * );
+ void ( * pf_decode_mb_c ) ( struct vdec_thread_s *, struct macroblock_s * );
+ void ( * pf_decode_mb_bw )( struct vdec_thread_s *, struct macroblock_s * );
#ifdef STATS
/* Statistics */