Commit c3c8af96 authored by Christophe Massiot's avatar Christophe Massiot

* vpar_blocks.c : Correction d'une erreur introduite hier soir avec

  AddBlock en chrominance 420 ;
* vpar_headers.c : R�ordonnancement des fonctions (les fonctions inline
  doivent etre en tete sinon elles ne sont pas optimis�es en inline par
  gcc) ;
parent 6a8fb63a
...@@ -52,6 +52,7 @@ typedef struct macroblock_s ...@@ -52,6 +52,7 @@ typedef struct macroblock_s
f_addb_t pf_addb[12]; /* pointer to the Add function */ f_addb_t pf_addb[12]; /* pointer to the Add function */
data_t * p_data[12]; /* pointer to the position data_t * p_data[12]; /* pointer to the position
* in the final picture */ * in the final picture */
int i_addb_l_stride, i_addb_c_stride;
} macroblock_t; } macroblock_t;
/***************************************************************************** /*****************************************************************************
......
...@@ -363,8 +363,8 @@ static __inline__ void InitMacroblock( vpar_thread_t * p_vpar, ...@@ -363,8 +363,8 @@ static __inline__ void InitMacroblock( vpar_thread_t * p_vpar,
p_mb->i_c_y = p_vpar->mb.i_c_y; p_mb->i_c_y = p_vpar->mb.i_c_y;
p_mb->i_chroma_nb_blocks = p_vpar->sequence.i_chroma_nb_blocks; p_mb->i_chroma_nb_blocks = p_vpar->sequence.i_chroma_nb_blocks;
p_mb->i_l_stride = p_vpar->picture.i_l_stride; p_mb->i_addb_l_stride = p_mb->i_l_stride = p_vpar->picture.i_l_stride;
p_mb->i_c_stride = p_vpar->picture.i_c_stride; p_mb->i_addb_c_stride = p_mb->i_c_stride = p_vpar->picture.i_c_stride;
/* Update macroblock real position. */ /* Update macroblock real position. */
p_vpar->mb.i_l_x += 16; p_vpar->mb.i_l_x += 16;
...@@ -446,10 +446,16 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar, ...@@ -446,10 +446,16 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar,
{ {
if( p_vpar->mb.b_dct_type = GetBits( &p_vpar->bit_stream, 1 ) ) if( p_vpar->mb.b_dct_type = GetBits( &p_vpar->bit_stream, 1 ) )
{ {
p_mb->i_l_stride <<= 1; /* The DCT is coded on fields. Jump one line between each
p_mb->i_l_stride += 8; * sample. */
p_mb->i_c_stride <<= 1; p_mb->i_addb_l_stride <<= 1;
p_mb->i_c_stride += 8; p_mb->i_addb_l_stride += 8;
/* With CHROMA_420, the DCT is necessarily frame-coded. */
if( p_vpar->picture.sequence.i_chroma_format != CHROMA_420 )
{
p_mb->i_addb_c_stride <<= 1;
p_mb->i_addb_c_stride += 8;
}
} }
} }
} }
......
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