Commit 667b4eb4 authored by Christophe Massiot's avatar Christophe Massiot

Correction de 1242 fautes de frappe et includes foireux. Presque tout

compile presque.
parent ea23960c
...@@ -23,3 +23,6 @@ typedef void (*f_idct_t)( elem_t*, int ); ...@@ -23,3 +23,6 @@ typedef void (*f_idct_t)( elem_t*, int );
/***************************************************************************** /*****************************************************************************
* Prototypes * Prototypes
*****************************************************************************/ *****************************************************************************/
void vdec_DummyIDCT( elem_t*, int );
void vdec_SparseIDCT( elem_t*, int );
void vdec_IDCT( elem_t*, int );
...@@ -23,3 +23,5 @@ typedef void (*f_chroma_motion_t)( struct macroblock_s* ); ...@@ -23,3 +23,5 @@ typedef void (*f_chroma_motion_t)( struct macroblock_s* );
/***************************************************************************** /*****************************************************************************
* Prototypes * Prototypes
*****************************************************************************/ *****************************************************************************/
void vdec_MotionField( struct macroblock_s* );
void vdec_MotionFrame( struct macroblock_s* );
...@@ -35,7 +35,7 @@ typedef struct vdec_thread_s ...@@ -35,7 +35,7 @@ typedef struct vdec_thread_s
/* Input properties */ /* Input properties */
struct video_parser_s * p_vpar; /* video_parser thread */ struct vpar_thread_s * p_vpar; /* video_parser thread */
#ifdef STATS #ifdef STATS
/* Statistics */ /* Statistics */
...@@ -64,9 +64,6 @@ struct vpar_thread_s; ...@@ -64,9 +64,6 @@ struct vpar_thread_s;
/* Thread management functions */ /* Thread management functions */
vdec_thread_t * vdec_CreateThread ( struct vpar_thread_s *p_vpar /*, int *pi_status */ ); vdec_thread_t * vdec_CreateThread ( struct vpar_thread_s *p_vpar /*, int *pi_status */ );
void vdec_DestroyThread ( vdec_thread_t *p_vdec /*, int *pi_status */ ); void vdec_DestroyThread ( vdec_thread_t *p_vdec /*, int *pi_status */ );
void vdec_AddBlock( elem_t*, data_t*, int );
/* Time management functions */ void vdec_CopyBlock( elem_t*, data_t*, int );
/* ?? */ void vdec_DummyBlock( elem_t*, data_t*, int );
/* Dynamic thread settings */
/* ?? */
...@@ -81,9 +81,9 @@ typedef struct ...@@ -81,9 +81,9 @@ typedef struct
/***************************************************************************** /*****************************************************************************
* Prototypes * Prototypes
*****************************************************************************/ *****************************************************************************/
void vpar_CodedPattern420( struct vpar_thread_s* p_vpar ); int vpar_CodedPattern420( struct vpar_thread_s* p_vpar );
void vpar_CodedPattern422( struct vpar_thread_s* p_vpar ); int vpar_CodedPattern422( struct vpar_thread_s* p_vpar );
void vpar_CodedPattern444( struct vpar_thread_s* p_vpar ); int vpar_CodedPattern444( struct vpar_thread_s* p_vpar );
int vpar_IMBType( struct vpar_thread_s* p_vpar ); int vpar_IMBType( struct vpar_thread_s* p_vpar );
int vpar_PMBType( struct vpar_thread_s* p_vpar ); int vpar_PMBType( struct vpar_thread_s* p_vpar );
int vpar_BMBType( struct vpar_thread_s* p_vpar ); int vpar_BMBType( struct vpar_thread_s* p_vpar );
......
...@@ -28,11 +28,15 @@ ...@@ -28,11 +28,15 @@
#include "decoder_fifo.h" #include "decoder_fifo.h"
#include "video.h" #include "video.h"
#include "video_output.h" #include "video_output.h"
#include "video_parser.h"
#include "undec_picture.h" #include "vdec_idct.h"
#include "video_fifo.h"
#include "video_decoder.h" #include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "video_fifo.h"
#include "video_parser.h"
/* /*
* Local prototypes * Local prototypes
......
...@@ -28,17 +28,21 @@ ...@@ -28,17 +28,21 @@
#include "decoder_fifo.h" #include "decoder_fifo.h"
#include "video.h" #include "video.h"
#include "video_output.h" #include "video_output.h"
#include "video_parser.h"
#include "undec_picture.h" #include "vdec_idct.h"
#include "video_fifo.h"
#include "video_decoder.h" #include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "video_fifo.h"
#include "video_parser.h"
/* /*
* Local prototypes * Local prototypes
*/ */
typedef (void *) f_motion_c_t( coeff_t *, pel_lookup_table_t *, typedef void (*f_motion_c_t)( coeff_t *, pel_lookup_table_t *,
int, coeff_t *, int, int, int, coeff_t *, int, int,
int, int, int, int, int ); int, int, int, int, int );
......
...@@ -30,11 +30,15 @@ ...@@ -30,11 +30,15 @@
#include "decoder_fifo.h" #include "decoder_fifo.h"
#include "video.h" #include "video.h"
#include "video_output.h" #include "video_output.h"
#include "video_parser.h"
#include "undec_picture.h" #include "vdec_idct.h"
#include "video_fifo.h"
#include "video_decoder.h" #include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "video_fifo.h"
#include "video_parser.h"
/* /*
* Local prototypes * Local prototypes
...@@ -167,7 +171,7 @@ static void RunThread( vdec_thread_t *p_vdec ) ...@@ -167,7 +171,7 @@ static void RunThread( vdec_thread_t *p_vdec )
{ {
macroblock_t * p_mb; macroblock_t * p_mb;
if( (p_mb = GetMacroblock( &p_vdec->p_vpar.vfifo )) != NULL ) if( (p_mb = vpar_GetMacroblock( &p_vdec->p_vpar->vfifo )) != NULL )
{ {
DecodeMacroblock( p_vdec, p_mb ); DecodeMacroblock( p_vdec, p_mb );
} }
...@@ -195,13 +199,13 @@ static void RunThread( vdec_thread_t *p_vdec ) ...@@ -195,13 +199,13 @@ static void RunThread( vdec_thread_t *p_vdec )
*******************************************************************************/ *******************************************************************************/
static void ErrorThread( vdec_thread_t *p_vdec ) static void ErrorThread( vdec_thread_t *p_vdec )
{ {
undec_picture_t * p_undec_p; macroblock_t * p_mb;
/* Wait until a `die' order */ /* Wait until a `die' order */
while( !p_vdec->b_die ) while( !p_vdec->b_die )
{ {
p_undec_p = GetPicture( p_vdec->p_vpar.vfifo ); p_mb = vpar_GetMacroblock( &p_vdec->p_vpar->vfifo );
DestroyPicture( p_vdec->p_vpar.vfifo, p_undec_p ); vpar_DestroyMacroblock( &p_vdec->p_vpar->vfifo, p_mb );
/* Sleep a while */ /* Sleep a while */
msleep( VDEC_IDLE_SLEEP ); msleep( VDEC_IDLE_SLEEP );
...@@ -237,12 +241,12 @@ static void DecodeMacroblock( vdec_thread_t *p_vdec, macroblock_t * p_mb ) ...@@ -237,12 +241,12 @@ static void DecodeMacroblock( vdec_thread_t *p_vdec, macroblock_t * p_mb )
/* /*
* Inverse DCT (ISO/IEC 13818-2 section Annex A) * Inverse DCT (ISO/IEC 13818-2 section Annex A)
*/ */
(*p_mb->pf_idct[i_b])( p_mb, p_mb->ppi_blocks[i_b], p_mb->pi_sparse_pos[i_b] ); (p_mb->pf_idct[i_b])( p_mb->ppi_blocks[i_b], p_mb->pi_sparse_pos[i_b] );
/* /*
* Adding prediction and coefficient data (ISO/IEC 13818-2 section 7.6.8) * Adding prediction and coefficient data (ISO/IEC 13818-2 section 7.6.8)
*/ */
(*p_mb->pf_addb[i_b])( p_mb->ppi_blocks[i_b], (p_mb->pf_addb[i_b])( p_mb->ppi_blocks[i_b],
p_mb->p_data[i_b], p_mb->i_lum_incr ); p_mb->p_data[i_b], p_mb->i_lum_incr );
} }
...@@ -252,12 +256,12 @@ static void DecodeMacroblock( vdec_thread_t *p_vdec, macroblock_t * p_mb ) ...@@ -252,12 +256,12 @@ static void DecodeMacroblock( vdec_thread_t *p_vdec, macroblock_t * p_mb )
/* /*
* Inverse DCT (ISO/IEC 13818-2 section Annex A) * Inverse DCT (ISO/IEC 13818-2 section Annex A)
*/ */
(*p_mb->pf_idct[i_b])( p_mb, p_mb->ppi_blocks[i_b], p_mb->pi_sparse_pos[i_b] ); (p_mb->pf_idct[i_b])( p_mb->ppi_blocks[i_b], p_mb->pi_sparse_pos[i_b] );
/* /*
* Adding prediction and coefficient data (ISO/IEC 13818-2 section 7.6.8) * Adding prediction and coefficient data (ISO/IEC 13818-2 section 7.6.8)
*/ */
(*p_mb->pf_addb[i_b])( p_mb->ppi_blocks[i_b], (p_mb->pf_addb[i_b])( p_mb->ppi_blocks[i_b],
p_mb->p_data[i_b], p_mb->i_chroma_incr ); p_mb->p_data[i_b], p_mb->i_chroma_incr );
} }
...@@ -265,7 +269,7 @@ static void DecodeMacroblock( vdec_thread_t *p_vdec, macroblock_t * p_mb ) ...@@ -265,7 +269,7 @@ static void DecodeMacroblock( vdec_thread_t *p_vdec, macroblock_t * p_mb )
* Decoding is finished, release the macroblock and free * Decoding is finished, release the macroblock and free
* unneeded memory. * unneeded memory.
*/ */
vpar_ReleaseMacroblock( &p_vdec->p_vpar.vfifo, p_mb ); vpar_ReleaseMacroblock( &p_vdec->p_vpar->vfifo, p_mb );
} }
/******************************************************************************* /*******************************************************************************
......
...@@ -28,10 +28,15 @@ ...@@ -28,10 +28,15 @@
#include "decoder_fifo.h" #include "decoder_fifo.h"
#include "video.h" #include "video.h"
#include "video_output.h" #include "video_output.h"
#include "video_parser.h"
#include "video_fifo.h" #include "vdec_idct.h"
#include "video_decoder.h" #include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "video_fifo.h"
#include "video_parser.h"
/* /*
* Local prototypes * Local prototypes
...@@ -41,8 +46,12 @@ static __inline__ void InitMacroblock( vpar_thread_t * p_vpar, ...@@ -41,8 +46,12 @@ static __inline__ void InitMacroblock( vpar_thread_t * p_vpar,
static __inline__ int MacroblockAddressIncrement( vpar_thread_t * p_vpar ); static __inline__ int MacroblockAddressIncrement( vpar_thread_t * p_vpar );
static __inline__ void MacroblockModes( vpar_thread_t * p_vpar, static __inline__ void MacroblockModes( vpar_thread_t * p_vpar,
macroblock_t * p_mb ); macroblock_t * p_mb );
static void vpar_DecodeMPEG1Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b );
static void vpar_DecodeMPEG1Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b );
static void vpar_DecodeMPEG2Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b );
static void vpar_DecodeMPEG2Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b );
typedef (void *) f_decode_block_t( vpar_thread_t *, macroblock_t *, int ); typedef void (*f_decode_block_t)( vpar_thread_t *, macroblock_t *, int );
/***************************************************************************** /*****************************************************************************
* vpar_ParseMacroblock : Parse the next macroblock * vpar_ParseMacroblock : Parse the next macroblock
...@@ -66,8 +75,8 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address, ...@@ -66,8 +75,8 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address,
vdec_MotionField, vdec_MotionFrame}; vdec_MotionField, vdec_MotionFrame};
/* Reset DC predictors (7.2.1). */ /* Reset DC predictors (7.2.1). */
p_vpar->slice.pi_dct_pred[0] = p_vpar->slice.pi_dct_pred[1] p_vpar->slice.pi_dc_dct_pred[0] = p_vpar->slice.pi_dc_dct_pred[1]
= p_vpar->slice.pi_dct_pred[2] = p_vpar->slice.pi_dc_dct_pred[2]
= pi_dc_dct_reinit[p_vpar->picture.i_intra_dc_precision]; = pi_dc_dct_reinit[p_vpar->picture.i_intra_dc_precision];
if( p_vpar->picture.i_coding_type == P_CODING_TYPE ) if( p_vpar->picture.i_coding_type == P_CODING_TYPE )
...@@ -79,7 +88,7 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address, ...@@ -79,7 +88,7 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address,
if( (p_mb = p_vpar->picture.pp_mb[i_mb_base + i_mb] = if( (p_mb = p_vpar->picture.pp_mb[i_mb_base + i_mb] =
vpar_NewMacroblock( &p_vpar->vfifo )) == NULL ) vpar_NewMacroblock( &p_vpar->vfifo )) == NULL )
{ {
p_vpar->picture.b_error = TRUE; p_vpar->picture.b_error = 1;
intf_ErrMsg("vpar error: macroblock list is empty !"); intf_ErrMsg("vpar error: macroblock list is empty !");
return; return;
} }
...@@ -104,7 +113,7 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address, ...@@ -104,7 +113,7 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address,
if( (p_mb = p_vpar->picture.pp_mb[i_mb_base + *pi_mb_address] = if( (p_mb = p_vpar->picture.pp_mb[i_mb_base + *pi_mb_address] =
vpar_NewMacroblock( &p_vpar->vfifo )) == NULL ) vpar_NewMacroblock( &p_vpar->vfifo )) == NULL )
{ {
p_vpar->picture.b_error = TRUE; p_vpar->picture.b_error = 1;
intf_ErrMsg("vpar error: macroblock list is empty !"); intf_ErrMsg("vpar error: macroblock list is empty !");
return; return;
} }
...@@ -196,7 +205,7 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address, ...@@ -196,7 +205,7 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address,
/* Calculate block coordinates. */ /* Calculate block coordinates. */
p_mb->p_data[i_b] = pi_data[i_b] + pi_pos[i_b >> 2] p_mb->p_data[i_b] = pi_data[i_b] + pi_pos[i_b >> 2]
+ pi_y[i_b]*pi_width[i_b >> 2] + pi_y[i_b]*pi_width[i_b >> 2]
+ (p_vpar->mb.b_dct_type & ((i_b & 2) >> 1)) + (p_vpar->mb.b_dct_type & ((i_b & 2) >> 1));
/* INACHEV parce que trop pourri ! */ /* INACHEV parce que trop pourri ! */
} }
else else
...@@ -212,8 +221,8 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address, ...@@ -212,8 +221,8 @@ void vpar_ParseMacroblock( vpar_thread_t * p_vpar, int * pi_mb_address,
static int pi_dc_dct_reinit[4] = {128,256,512,1024}; static int pi_dc_dct_reinit[4] = {128,256,512,1024};
/* Reset DC predictors (7.2.1). */ /* Reset DC predictors (7.2.1). */
p_vpar->slice.pi_dct_pred[0] = p_vpar->slice.pi_dct_pred[1] p_vpar->slice.pi_dc_dct_pred[0] = p_vpar->slice.pi_dc_dct_pred[1]
= p_vpar->slice.pi_dct_pred[2] = p_vpar->slice.pi_dc_dct_pred[2]
= pi_dc_dct_reinit[p_vpar->picture.i_intra_dc_precision]; = pi_dc_dct_reinit[p_vpar->picture.i_intra_dc_precision];
} }
else if( !p_vpar->picture.b_concealment_mv ) else if( !p_vpar->picture.b_concealment_mv )
...@@ -271,14 +280,14 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar, ...@@ -271,14 +280,14 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar,
static int ppi_mv_format[2][4] = { {0, 1, 1, 1}, {0, 1, 2, 1} }; static int ppi_mv_format[2][4] = { {0, 1, 1, 1}, {0, 1, 2, 1} };
/* Get macroblock_type. */ /* Get macroblock_type. */
p_vpar->mb.i_mb_type = (*p_vpar->picture.pf_macroblock_type) p_vpar->mb.i_mb_type = (p_vpar->picture.pf_macroblock_type)
( vpar_thread_t * p_vpar ); ( vpar_thread_t * p_vpar );
/* SCALABILITY : warning, we don't know if spatial_temporal_weight_code /* SCALABILITY : warning, we don't know if spatial_temporal_weight_code
* has to be dropped, take care if you use scalable streams. */ * has to be dropped, take care if you use scalable streams. */
/* DumpBits( &p_vpar->bit_stream, 2 ); */ /* DumpBits( &p_vpar->bit_stream, 2 ); */
if( !(p_vpar->mb.i_mb_type & (MB_MOTION_FORWARD |MB_MOTION_BACKWARD)) if( !(p_vpar->mb.i_mb_type & (MB_MOTION_FORWARD || MB_MOTION_BACKWARD))
|| p_vpar->picture.b_frame_pred_frame_dct ) || p_vpar->picture.b_frame_pred_frame_dct )
{ {
/* If mb_type has neither MOTION_FORWARD nor MOTION_BACKWARD, this /* If mb_type has neither MOTION_FORWARD nor MOTION_BACKWARD, this
...@@ -290,7 +299,7 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar, ...@@ -290,7 +299,7 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar,
p_vpar->mb.i_motion_type = GetBits( &p_vpar->bit_stream, 2 ); p_vpar->mb.i_motion_type = GetBits( &p_vpar->bit_stream, 2 );
} }
p_mb->f_motion = pf_motion[p_vpar->picture.b_frame_structure] p_mb->pf_motion = pf_motion[p_vpar->picture.b_frame_structure]
[p_vpar->mb.i_motion_type]; [p_vpar->mb.i_motion_type];
p_vpar->mb.i_mv_count = ppi_mv_count[p_vpar->picture.b_frame_structure] p_vpar->mb.i_mv_count = ppi_mv_count[p_vpar->picture.b_frame_structure]
[p_vpar->mb.i_motion_type]; [p_vpar->mb.i_motion_type];
...@@ -299,7 +308,7 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar, ...@@ -299,7 +308,7 @@ static __inline__ void MacroblockModes( vpar_thread_t * p_vpar,
if( (p_vpar->picture.i_structure == FRAME_STRUCTURE) && if( (p_vpar->picture.i_structure == FRAME_STRUCTURE) &&
(!p_vpar->picture.b_frame_pred_frame_dct) && (!p_vpar->picture.b_frame_pred_frame_dct) &&
(p_var->mb.i_mb_type & (MB_PATTERN|MB_INTRA)) ) (p_vpar->mb.i_mb_type & (MB_PATTERN|MB_INTRA)) )
{ {
p_vpar->mb.b_dct_type = GetBits( &p_vpar->bit_stream, 1 ); p_vpar->mb.b_dct_type = GetBits( &p_vpar->bit_stream, 1 );
} }
...@@ -368,7 +377,7 @@ int vpar_CodedPattern444( vpar_thread_t * p_vpar ) ...@@ -368,7 +377,7 @@ int vpar_CodedPattern444( vpar_thread_t * p_vpar )
/***************************************************************************** /*****************************************************************************
* vpar_DecodeMPEG1Non : decode MPEG-1 non-intra blocks * vpar_DecodeMPEG1Non : decode MPEG-1 non-intra blocks
*****************************************************************************/ *****************************************************************************/
void vpar_DecodeMPEG1Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ) static void vpar_DecodeMPEG1Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b )
{ {
/* pomper dans Berkeley. Pour toutes ces fonctions, il faut mettre /* pomper dans Berkeley. Pour toutes ces fonctions, il faut mettre
p_mb->pf_idct[i_b] : p_mb->pf_idct[i_b] :
...@@ -381,14 +390,14 @@ void vpar_DecodeMPEG1Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ) ...@@ -381,14 +390,14 @@ void vpar_DecodeMPEG1Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b )
{ {
/* Remove end_of_macroblock (always 1, prevents startcode emulation) /* Remove end_of_macroblock (always 1, prevents startcode emulation)
* ISO/IEC 11172-2 section 2.4.2.7 and 2.4.3.6 */ * ISO/IEC 11172-2 section 2.4.2.7 and 2.4.3.6 */
DumpBits( &p_vpar->fifo, 1 ); DumpBits( &p_vpar->bit_stream, 1 );
} }
} }
/***************************************************************************** /*****************************************************************************
* vpar_DecodeMPEG1Intra : decode MPEG-1 intra blocks * vpar_DecodeMPEG1Intra : decode MPEG-1 intra blocks
*****************************************************************************/ *****************************************************************************/
void vpar_DecodeMPEG1Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ) static void vpar_DecodeMPEG1Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b )
{ {
/* pomper dans Berkeley. */ /* pomper dans Berkeley. */
...@@ -396,14 +405,14 @@ void vpar_DecodeMPEG1Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ...@@ -396,14 +405,14 @@ void vpar_DecodeMPEG1Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b
{ {
/* Remove end_of_macroblock (always 1, prevents startcode emulation) /* Remove end_of_macroblock (always 1, prevents startcode emulation)
* ISO/IEC 11172-2 section 2.4.2.7 and 2.4.3.6 */ * ISO/IEC 11172-2 section 2.4.2.7 and 2.4.3.6 */
DumpBits( &p_vpar->fifo, 1 ); DumpBits( &p_vpar->bit_stream, 1 );
} }
} }
/***************************************************************************** /*****************************************************************************
* vpar_DecodeMPEG2Non : decode MPEG-2 non-intra blocks * vpar_DecodeMPEG2Non : decode MPEG-2 non-intra blocks
*****************************************************************************/ *****************************************************************************/
void vpar_DecodeMPEG2Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ) static void vpar_DecodeMPEG2Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b )
{ {
/* pomper dans Berkeley. Bien sr les matrices seront diffrentes... */ /* pomper dans Berkeley. Bien sr les matrices seront diffrentes... */
} }
...@@ -411,7 +420,7 @@ void vpar_DecodeMPEG2Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ) ...@@ -411,7 +420,7 @@ void vpar_DecodeMPEG2Non( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b )
/***************************************************************************** /*****************************************************************************
* vpar_DecodeMPEG2Intra : decode MPEG-2 intra blocks * vpar_DecodeMPEG2Intra : decode MPEG-2 intra blocks
*****************************************************************************/ *****************************************************************************/
void vpar_DecodeMPEG2Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b ) static void vpar_DecodeMPEG2Intra( vpar_thread_t * p_vpar, macroblock_t * p_mb, int i_b )
{ {
/* pomper dans Berkeley. */ /* pomper dans Berkeley. */
} }
...@@ -543,6 +543,7 @@ static void PictureHeader( vpar_thread_t * p_vpar ) ...@@ -543,6 +543,7 @@ static void PictureHeader( vpar_thread_t * p_vpar )
else if( p_vpar->picture.i_current_structure == FRAME_STRUCTURE ) else if( p_vpar->picture.i_current_structure == FRAME_STRUCTURE )
{ {
/* Frame completely parsed. */ /* Frame completely parsed. */
P_picture.i_deccount = p_vpar->sequence.i_mb_size;
for( i_mb = 0; i_mb < p_vpar->sequence.i_mb_size; i_mb++ ) for( i_mb = 0; i_mb < p_vpar->sequence.i_mb_size; i_mb++ )
{ {
vpar_DecodeMacroblock( &p_vpar->vfifo, p_vpar->picture.pp_mb[i_mb] ); vpar_DecodeMacroblock( &p_vpar->vfifo, p_vpar->picture.pp_mb[i_mb] );
......
...@@ -28,10 +28,15 @@ ...@@ -28,10 +28,15 @@
#include "decoder_fifo.h" #include "decoder_fifo.h"
#include "video.h" #include "video.h"
#include "video_output.h" #include "video_output.h"
#include "video_parser.h"
#include "video_fifo.h" #include "vdec_idct.h"
#include "video_decoder.h" #include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "video_fifo.h"
#include "video_parser.h"
/* /*
* Local prototypes * Local prototypes
......
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