Commit c609a04c authored by Stéphane Borel's avatar Stéphane Borel

* Modifications d'erreurs dans MacroBlockAddressIncrement

* Ajout des fonctions vpar_*MBtype
* Ajout de tables de lookup (pour les tableaux B1 � B4 et B9)
* Ajout de vpar_CodedPattern420

Il manque encore pas mal de fonctions (en particulier DecodeMPEG)
parent a551606d
......@@ -63,7 +63,15 @@ typedef struct vpar_thread_s
s16 pi_crop_buf[65536];
s16 * pi_crop;
#endif
mb_addr_inc_t mb_addr_inc[2048];
lookup_t pl_mb_addr_inc[2048]; /* for macroblock
address increment */
/* variable length codes for the structure dct_dc_size */
lookup_t pppl_dct_dc_size[2][2][32];
lookup_t pppl_dct_dc_size[2][2][32];
/* tables for macroblock types 0=P 1=B */
lookup_t pl_mb_type[2][64];
/* table for coded_block_pattern */
lookup_t pl_coded_pattern[512];
#ifdef STATS
/* Statistics */
......
......@@ -61,12 +61,24 @@ typedef struct
boolean_t b_dmv;
/* AddressIncrement information */
int i_addr_inc;
/* Macroblock Type */
int i_coded_block_pattern;
boolean_t b_dct_type;
int i_l_x, i_l_y, i_c_x, i_c_y;
} macroblock_parsing_t;
/******************************************************************************
* lookup_t : entry type for lookup tables *
******************************************************************************/
typedef struct lookup_s
{
int i_value;
int i_length;
} lookup_t;
/*****************************************************************************
* Standard codes
*****************************************************************************/
......@@ -84,8 +96,11 @@ typedef struct
#define MOTION_DMV 3
/* Macroblock Address Increment types */
#define MACROBLOCK_ESCAPE 8
#define MACROBLOCK_STUFFING 15
#define MB_ADDRINC_ESCAPE 8
#define MB_ADDRINC_STUFFING 15
/* Error constant for lookup tables */
#define MB_ERROR (-1)
/* Scan */
#define SCAN_ZIGZAG 0
......
......@@ -115,18 +115,6 @@ typedef struct slice_parsing_s
int pppi_pmv[2][2][2]; /* Motion vect predictors, 7.6.3 */
} slice_parsing_t;
/*****************************************************************************
* mb_addr_inc_t : entry type for MacroblockAddressIncrement lookup table *
*****************************************************************************/
typedef struct mb_addr_inc_s
{
int i_value;
int i_length;
} mb_addr_inc_t;
/*****************************************************************************
* Standard codes
*****************************************************************************/
......
......@@ -226,6 +226,10 @@ static int InitThread( vpar_thread_t *p_vpar )
vpar_InitCrop( p_vpar );
#endif
InitMbAddrInc( p_vpar );
InitDCTTables( p_vpar );
InitPMBType( p_vpar );
InitBMBType( p_vpar );
InitCodedPattern( p_vpar );
/* Mark thread as running and return */
intf_DbgMsg("vpar debug: InitThread(%p) succeeded\n", p_vpar);
......
This diff is collapsed.
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment