Commit 18f5cd99 authored by Christophe Massiot's avatar Christophe Massiot

Cleaned up include/. Unnecessary headers are no longer under include/, but

under src/. (eat that)
parent 213957d2
/*****************************************************************************
* input.h: structures of the input not exported to other modules
* input_ext-plugins.h: structures of the input not exported to other modules,
* but exported to plug-ins
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input.h,v 1.38 2001/06/27 09:53:56 massiot Exp $
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: input_ext-plugins.h,v 1.1 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -131,3 +132,163 @@ static __inline__ void input_NullPacket( input_thread_t * p_input,
}
}
/*
* Optional netlist management
*/
/*****************************************************************************
* netlist_t: structure to manage a netlist
*****************************************************************************/
typedef struct netlist_s
{
vlc_mutex_t lock;
size_t i_buffer_size;
/* Buffers */
byte_t * p_buffers; /* Big malloc'ed area */
data_packet_t * p_data; /* malloc'ed area */
pes_packet_t * p_pes; /* malloc'ed area */
/* FIFOs of free packets */
data_packet_t ** pp_free_data;
pes_packet_t ** pp_free_pes;
struct iovec * p_free_iovec;
/* FIFO size */
unsigned int i_nb_pes;
unsigned int i_nb_data;
/* Index */
unsigned int i_data_start, i_data_end;
unsigned int i_pes_start, i_pes_end;
/* Number of blocs read once by readv */
unsigned int i_read_once;
} netlist_t;
/*****************************************************************************
* Prototypes
*****************************************************************************/
int input_NetlistInit( struct input_thread_s *,
int i_nb_data, int i_nb_pes,
size_t i_buffer_size,
int i_read_once );
struct iovec * input_NetlistGetiovec( void * p_method_data );
void input_NetlistMviovec( void * , size_t, struct data_packet_s **);
struct data_packet_s * input_NetlistNewPacket( void *, size_t );
struct pes_packet_s * input_NetlistNewPES( void * );
void input_NetlistDeletePacket( void *, struct data_packet_s * );
void input_NetlistDeletePES( void *, struct pes_packet_s * );
void input_NetlistEnd( struct input_thread_s * );
/*
* Optional MPEG demultiplexing
*/
/*****************************************************************************
* Constants
*****************************************************************************/
#define TS_PACKET_SIZE 188 /* Size of a TS packet */
#define PSI_SECTION_SIZE 4096 /* Maximum size of a PSI section */
#define PAT_UNINITIALIZED (1 << 6)
#define PMT_UNINITIALIZED (1 << 6)
#define PSI_IS_PAT 0x00
#define PSI_IS_PMT 0x01
#define UNKNOWN_PSI 0xff
/*****************************************************************************
* psi_section_t
*****************************************************************************
* Describes a PSI section. Beware, it doesn't contain pointers to the TS
* packets that contain it as for a PES, but the data themselves
*****************************************************************************/
typedef struct psi_section_s
{
byte_t buffer[PSI_SECTION_SIZE];
u8 i_section_number;
u8 i_last_section_number;
u8 i_version_number;
u16 i_section_length;
u16 i_read_in_section;
/* the PSI is complete */
boolean_t b_is_complete;
/* packet missed up ? */
boolean_t b_trash;
/*about sections */
boolean_t b_section_complete;
/* where are we currently ? */
byte_t * p_current;
} psi_section_t;
/*****************************************************************************
* es_ts_data_t: extension of es_descriptor_t
*****************************************************************************/
typedef struct es_ts_data_s
{
boolean_t b_psi; /* Does the stream have to be handled by
* the PSI decoder ? */
int i_psi_type; /* There are different types of PSI */
psi_section_t * p_psi_section; /* PSI packets */
/* Markers */
int i_continuity_counter;
} es_ts_data_t;
/*****************************************************************************
* pgrm_ts_data_t: extension of pgrm_descriptor_t
*****************************************************************************/
typedef struct pgrm_ts_data_s
{
u16 i_pcr_pid; /* PCR ES, for TS streams */
int i_pmt_version;
} pgrm_ts_data_t;
/*****************************************************************************
* stream_ts_data_t: extension of stream_descriptor_t
*****************************************************************************/
typedef struct stream_ts_data_s
{
int i_pat_version; /* Current version of the PAT */
} stream_ts_data_t;
/*****************************************************************************
* stream_ps_data_t: extension of stream_descriptor_t
*****************************************************************************/
typedef struct stream_ps_data_s
{
boolean_t b_has_PSM; /* very rare, in fact */
u8 i_PSM_version;
} stream_ps_data_t;
/* PSM version is 5 bits, so -1 is not a valid value */
#define EMPTY_PSM_VERSION -1
/*****************************************************************************
* Prototypes
*****************************************************************************/
void input_ParsePES ( struct input_thread_s *, struct es_descriptor_s * );
void input_GatherPES ( struct input_thread_s *, struct data_packet_s *,
struct es_descriptor_s *, boolean_t, boolean_t );
es_descriptor_t * input_ParsePS( struct input_thread_s *,
struct data_packet_s * );
void input_DemuxPS ( struct input_thread_s *, struct data_packet_s * );
void input_DemuxTS ( struct input_thread_s *, struct data_packet_s * );
void input_DemuxPSI ( struct input_thread_s *, struct data_packet_s *,
struct es_descriptor_s *, boolean_t, boolean_t );
/*****************************************************************************
* netlist_t: structure to manage a netlist
*****************************************************************************/
typedef struct netlist_s
{
vlc_mutex_t lock;
size_t i_buffer_size;
/* Buffers */
byte_t * p_buffers; /* Big malloc'ed area */
data_packet_t * p_data; /* malloc'ed area */
pes_packet_t * p_pes; /* malloc'ed area */
/* FIFOs of free packets */
data_packet_t ** pp_free_data;
pes_packet_t ** pp_free_pes;
struct iovec * p_free_iovec;
/* FIFO size */
unsigned int i_nb_pes;
unsigned int i_nb_data;
/* Index */
unsigned int i_data_start, i_data_end;
unsigned int i_pes_start, i_pes_end;
/* Number of blocs read once by readv */
unsigned int i_read_once;
} netlist_t;
/*****************************************************************************
* Prototypes
*****************************************************************************/
int input_NetlistInit( struct input_thread_s *,
int i_nb_data, int i_nb_pes,
size_t i_buffer_size,
int i_read_once );
struct iovec * input_NetlistGetiovec( void * p_method_data );
void input_NetlistMviovec( void * , size_t, struct data_packet_s **);
struct data_packet_s * input_NetlistNewPacket( void *, size_t );
struct pes_packet_s * input_NetlistNewPES( void * );
void input_NetlistDeletePacket( void *, struct data_packet_s * );
void input_NetlistDeletePES( void *, struct pes_packet_s * );
void input_NetlistEnd( struct input_thread_s * );
......@@ -2,7 +2,7 @@
* modules.h : Module management functions.
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: modules.h,v 1.26 2001/06/27 09:53:56 massiot Exp $
* $Id: modules.h,v 1.27 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
......@@ -179,10 +179,8 @@ typedef struct function_list_s
struct
{
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_sparse_idct ) ( void *, dctelem_t *, int );
void ( * pf_idct ) ( void *, dctelem_t *, int );
void ( * pf_norm_scan ) ( u8 ppi_scan[2][64] );
void ( * pf_decode_init ) ( struct vdec_thread_s * );
......
/*****************************************************************************
* mpeg_system.h: structures of the input used to parse MPEG-1, MPEG-2 PS
* and TS system layers
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: mpeg_system.h,v 1.4 2001/06/03 12:47:21 sam Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
* This program 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.
*
* This program 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, USA.
*****************************************************************************/
/*****************************************************************************
* Constants
*****************************************************************************/
#define TS_PACKET_SIZE 188 /* Size of a TS packet */
#define PSI_SECTION_SIZE 4096 /* Maximum size of a PSI section */
#define PAT_UNINITIALIZED (1 << 6)
#define PMT_UNINITIALIZED (1 << 6)
#define PSI_IS_PAT 0x00
#define PSI_IS_PMT 0x01
#define UNKNOWN_PSI 0xff
/*****************************************************************************
* psi_section_t
*****************************************************************************
* Describes a PSI section. Beware, it doesn't contain pointers to the TS
* packets that contain it as for a PES, but the data themselves
*****************************************************************************/
typedef struct psi_section_s
{
byte_t buffer[PSI_SECTION_SIZE];
u8 i_section_number;
u8 i_last_section_number;
u8 i_version_number;
u16 i_section_length;
u16 i_read_in_section;
/* the PSI is complete */
boolean_t b_is_complete;
/* packet missed up ? */
boolean_t b_trash;
/*about sections */
boolean_t b_section_complete;
/* where are we currently ? */
byte_t * p_current;
} psi_section_t;
/*****************************************************************************
* es_ts_data_t: extension of es_descriptor_t
*****************************************************************************/
typedef struct es_ts_data_s
{
boolean_t b_psi; /* Does the stream have to be handled by
* the PSI decoder ? */
int i_psi_type; /* There are different types of PSI */
psi_section_t * p_psi_section; /* PSI packets */
/* Markers */
int i_continuity_counter;
} es_ts_data_t;
/*****************************************************************************
* pgrm_ts_data_t: extension of pgrm_descriptor_t
*****************************************************************************/
typedef struct pgrm_ts_data_s
{
u16 i_pcr_pid; /* PCR ES, for TS streams */
int i_pmt_version;
} pgrm_ts_data_t;
/*****************************************************************************
* stream_ts_data_t: extension of stream_descriptor_t
*****************************************************************************/
typedef struct stream_ts_data_s
{
int i_pat_version; /* Current version of the PAT */
} stream_ts_data_t;
/*****************************************************************************
* stream_ps_data_t: extension of stream_descriptor_t
*****************************************************************************/
typedef struct stream_ps_data_s
{
boolean_t b_has_PSM; /* very rare, in fact */
u8 i_PSM_version;
} stream_ps_data_t;
/* PSM version is 5 bits, so -1 is not a valid value */
#define EMPTY_PSM_VERSION -1
/*****************************************************************************
* Prototypes
*****************************************************************************/
void input_ParsePES ( struct input_thread_s *, struct es_descriptor_s * );
void input_GatherPES ( struct input_thread_s *, struct data_packet_s *,
struct es_descriptor_s *, boolean_t, boolean_t );
es_descriptor_t * input_ParsePS( struct input_thread_s *,
struct data_packet_s * );
void input_DemuxPS ( struct input_thread_s *, struct data_packet_s * );
void input_DemuxTS ( struct input_thread_s *, struct data_packet_s * );
void input_DemuxPSI ( struct input_thread_s *, struct data_packet_s *,
struct es_descriptor_s *, boolean_t, boolean_t );
/*****************************************************************************
* video_decoder.h : video decoder thread
* vdec_common.h : structures from the video decoder exported to plug-ins
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: video_decoder.h,v 1.24 2001/05/30 17:03:11 sam Exp $
* $Id: vdec_ext-plugins.h,v 1.1 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -22,21 +22,79 @@
*****************************************************************************/
/*****************************************************************************
* Requires:
* "config.h"
* "common.h"
* "mtime.h"
* "threads.h"
* "input.h"
* "video.h"
* "video_output.h"
* "decoder_fifo.h"
* Function pointers
*****************************************************************************/
typedef void (*f_motion_t)( struct macroblock_s * );
/*****************************************************************************
* macroblock_t : information on a macroblock passed to the video_decoder
* thread
*****************************************************************************/
typedef struct macroblock_s
{
picture_t * p_picture; /* current frame in progress */
int i_mb_type; /* macroblock type */
int i_coded_block_pattern;
/* which blocks are coded ? */
int i_chroma_nb_blocks; /* number of blocks for
* chroma components */
/* IDCT information */
dctelem_t ppi_blocks[12][64]; /* blocks */
void ( * pf_idct[12] ) ( void *, dctelem_t*, int );
/* sparse IDCT or not ? */
int pi_sparse_pos[12]; /* position of the
* non-NULL coeff */
/* Motion compensation information */
f_motion_t pf_motion; /* function to use for motion comp */
picture_t * p_backward; /* backward reference frame */
picture_t * p_forward; /* forward reference frame */
int ppi_field_select[2][2]; /* field to use to
* form predictions */
int pppi_motion_vectors[2][2][2]; /* motion vectors */
int ppi_dmv[2][2]; /* differential motion vectors */
/* coordinates of the block in the picture */
int i_l_x, i_c_x;
int i_motion_l_y;
int i_motion_c_y;
int i_l_stride; /* number of yuv_data_t to
* ignore when changing line */
int i_c_stride; /* idem, for chroma */
boolean_t b_P_second; /* Second field of a P picture ?
* (used to determine the predicting
* frame) */
boolean_t b_motion_field; /* Field we are predicting
* (top field or bottom field) */
/* AddBlock information */
yuv_data_t * p_data[12]; /* pointer to the position
* in the final picture */
int i_addb_l_stride, i_addb_c_stride;
/* nb of coeffs to jump when changing lines */
} macroblock_t;
/* Macroblock types */
#define MB_INTRA 1
#define MB_PATTERN 2
#define MB_MOTION_BACKWARD 4
#define MB_MOTION_FORWARD 8
#define MB_QUANT 16
/* Motion types */
#define MOTION_FIELD 1
#define MOTION_FRAME 2
#define MOTION_16X8 2
#define MOTION_DMV 3
/* Structures */
#define TOP_FIELD 1
#define BOTTOM_FIELD 2
#define FRAME_STRUCTURE 3
/*****************************************************************************
* vdec_thread_t: video decoder thread descriptor
*****************************************************************************
* XXX??
*****************************************************************************/
typedef struct vdec_thread_s
{
......@@ -47,11 +105,8 @@ typedef struct vdec_thread_s
boolean_t b_active; /* `active' flag */
vlc_thread_t thread_id; /* id for thread functions */
/* Thread configuration */
/* XXX?? */
// int *pi_status;
/* idct iformations */
/* IDCT iformations */
void * p_idct_data;
dctelem_t p_pre_idct[64*64];
/* Macroblock copy functions */
......@@ -64,24 +119,3 @@ typedef struct vdec_thread_s
} vdec_thread_t;
/*****************************************************************************
* Prototypes
*****************************************************************************/
struct vpar_thread_s;
struct macroblock_s;
/* Thread management functions */
#ifndef VDEC_SMP
int vdec_InitThread ( struct vdec_thread_s *p_vdec );
#endif
void vdec_DecodeMacroblock ( struct vdec_thread_s *p_vdec,
struct macroblock_s *p_mb );
void vdec_DecodeMacroblockC ( struct vdec_thread_s *p_vdec,
struct macroblock_s *p_mb );
void vdec_DecodeMacroblockBW ( struct vdec_thread_s *p_vdec,
struct macroblock_s *p_mb );
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 */ );
......@@ -2,7 +2,7 @@
* input_dummy.c: dummy input plugin, to manage "vlc:***" special options
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: input_dummy.c,v 1.2 2001/06/08 20:03:16 sam Exp $
* $Id: input_dummy.c,v 1.3 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
*
......@@ -51,8 +51,7 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_ext-plugins.h"
#include "modules.h"
#include "modules_export.h"
......
......@@ -7,7 +7,7 @@
* will only be given back to netlist when refcount is zero.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000, 2001 VideoLAN
* $Id: dvd_netlist.c,v 1.11 2001/06/15 05:12:30 sam Exp $
* $Id: dvd_netlist.c,v 1.12 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Henri Fallon <henri@videolan.org>
* Stphane Borel <stef@videolan.org>
......@@ -56,8 +56,8 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input_ext-plugins.h"
#include "input.h"
#include "dvd_netlist.h"
#include "modules.h"
......
......@@ -10,7 +10,7 @@
* -dvd_udf to find files
*****************************************************************************
* Copyright (C) 1998-2001 VideoLAN
* $Id: input_dvd.c,v 1.79 2001/07/11 02:01:04 sam Exp $
* $Id: input_dvd.c,v 1.80 2001/07/17 09:48:07 massiot Exp $
*
* Author: Stphane Borel <stef@via.ecp.fr>
*
......@@ -80,14 +80,12 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_ext-plugins.h"
#include "input_dvd.h"
#include "dvd_netlist.h"
#include "dvd_ifo.h"
#include "dvd_summary.h"
#include "mpeg_system.h"
#include "debug.h"
......
......@@ -2,7 +2,7 @@
* idct.c : IDCT module
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: idct.c,v 1.12 2001/07/11 02:01:04 sam Exp $
* $Id: idct.c,v 1.13 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Gal Hendryckx <jimmy@via.ecp.fr>
*
......@@ -40,7 +40,7 @@
#include "video.h"
#include "video_output.h"
#include "video_decoder.h"
#include "vdec_ext-plugins.h"
#include "vdec_block.h"
#include "vdec_idct.h"
......@@ -121,8 +121,7 @@ static void vdec_NormScan( u8 ppi_scan[2][64] )
/*****************************************************************************
* vdec_IDCT : IDCT function for normal matrices
*****************************************************************************/
void _M( vdec_IDCT )( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_idontcare )
void _M( vdec_IDCT )( void * p_idct_data, dctelem_t * p_block, int i_idontcare )
{
s32 tmp0, tmp1, tmp2, tmp3;
s32 tmp10, tmp11, tmp12, tmp13;
......
......@@ -2,7 +2,7 @@
* idctaltivec.c : Altivec IDCT module
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: idctaltivec.c,v 1.9 2001/07/11 02:01:04 sam Exp $
* $Id: idctaltivec.c,v 1.10 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -39,11 +39,11 @@
#include "video.h"
#include "video_output.h"
#include "video_decoder.h"
#include "modules.h"
#include "modules_inner.h"
#include "vdec_ext-plugins.h"
#include "vdec_block.h"
#include "vdec_idct.h"
......@@ -128,8 +128,7 @@ static void vdec_NormScan( u8 ppi_scan[2][64] )
/*****************************************************************************
* vdec_IDCT :
*****************************************************************************/
void _M( vdec_IDCT )( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_idontcare )
void _M( vdec_IDCT )( void * p_idct_data, dctelem_t * p_block, int i_idontcare )
{
IDCT( p_block, p_block );
}
......
......@@ -2,7 +2,7 @@
* idctclassic.c : Classic IDCT module
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: idctclassic.c,v 1.12 2001/07/11 02:01:04 sam Exp $
* $Id: idctclassic.c,v 1.13 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Gal Hendryckx <jimmy@via.ecp.fr>
*
......@@ -39,7 +39,7 @@
#include "video.h"
#include "video_output.h"
#include "video_decoder.h"
#include "vdec_ext-plugins.h"
#include "modules.h"
#include "modules_inner.h"
......@@ -123,8 +123,7 @@ static void vdec_NormScan( u8 ppi_scan[2][64] )
/*****************************************************************************
* vdec_IDCT : IDCT function for normal matrices
*****************************************************************************/
void _M( vdec_IDCT )( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_idontcare )
void _M( vdec_IDCT )( void * p_idct_data, dctelem_t * p_block, int i_idontcare )
{
/* dct classique: pour tester la meilleure entre la classique et la */
/* no classique */
......
......@@ -2,7 +2,7 @@
* idctmmx.c : MMX IDCT module
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: idctmmx.c,v 1.14 2001/07/11 02:01:04 sam Exp $
* $Id: idctmmx.c,v 1.15 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
* Michel Lespinasse <walken@zoy.org>
......@@ -43,11 +43,11 @@
#include "video.h"
#include "video_output.h"
#include "video_decoder.h"
#include "modules.h"
#include "modules_inner.h"
#include "vdec_ext-plugins.h"
#include "vdec_block.h"
#include "vdec_idct.h"
......@@ -434,8 +434,7 @@ static s32 rounder3[] ATTR_ALIGN(8) =
static s32 rounder5[] ATTR_ALIGN(8) =
rounder (-0.441341716183); // C3*(-C5/C4+C5-C3)/2
void _M( vdec_IDCT )( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_idontcare )
void _M( vdec_IDCT )( void * p_idct_data, dctelem_t * p_block, int i_idontcare )
{
static dctelem_t table04[] ATTR_ALIGN(16) =
table (22725, 21407, 19266, 16384, 12873, 8867, 4520);
......
......@@ -2,7 +2,7 @@
* idctmmxext.c : MMX EXT IDCT module
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: idctmmxext.c,v 1.11 2001/07/11 02:01:04 sam Exp $
* $Id: idctmmxext.c,v 1.12 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Aaron Holtzman <aholtzma@ess.engr.uvic.ca>
* Michel Lespinasse <walken@zoy.org>
......@@ -43,11 +43,11 @@
#include "video.h"
#include "video_output.h"
#include "video_decoder.h"
#include "modules.h"
#include "modules_inner.h"
#include "vdec_ext-plugins.h"
#include "vdec_block.h"
#include "vdec_idct.h"
......@@ -418,8 +418,7 @@ static s32 rounder3[] ATTR_ALIGN(8) =
static s32 rounder5[] ATTR_ALIGN(8) =
rounder (-0.441341716183); // C3*(-C5/C4+C5-C3)/2
void _M( vdec_IDCT )( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_idontcare )
void _M( vdec_IDCT )( void * p_idct_data, dctelem_t * p_block, int i_idontcare )
{
static dctelem_t table04[] ATTR_ALIGN(16) =
table (22725, 21407, 19266, 16384, 12873, 8867, 4520);
......
......@@ -2,7 +2,7 @@
* vdec_block_h: Macroblock copy functions
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: vdec_block.h,v 1.2 2001/05/30 17:03:12 sam Exp $
* $Id: vdec_block.h,v 1.3 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -47,7 +47,8 @@ void _M( vdec_DecodeMacroblockBW ) ( struct vdec_thread_s *p_vdec,
/* \
* Inverse DCT (ISO/IEC 13818-2 section Annex A) \
*/ \
(p_mb->pf_idct[i_b])( p_vdec, p_mb->ppi_blocks[i_b], \
(p_mb->pf_idct[i_b])( p_vdec->p_idct_data, \
p_mb->ppi_blocks[i_b], \
p_mb->pi_sparse_pos[i_b] ); \
\
/* \
......@@ -68,7 +69,8 @@ void _M( vdec_DecodeMacroblockBW ) ( struct vdec_thread_s *p_vdec,
/* \
* Inverse DCT (ISO/IEC 13818-2 section Annex A) \
*/ \
(p_mb->pf_idct[i_b])( p_vdec, p_mb->ppi_blocks[i_b], \
(p_mb->pf_idct[i_b])( p_vdec->p_idct_data, \
p_mb->ppi_blocks[i_b], \
p_mb->pi_sparse_pos[i_b] ); \
\
/* \
......@@ -95,7 +97,8 @@ void _M( vdec_DecodeMacroblockBW ) ( struct vdec_thread_s *p_vdec,
/* \
* Inverse DCT (ISO/IEC 13818-2 section Annex A) \
*/ \
(p_mb->pf_idct[i_b])( p_vdec, p_mb->ppi_blocks[i_b], \
(p_mb->pf_idct[i_b])( p_vdec->p_idct_data, \
p_mb->ppi_blocks[i_b], \
p_mb->pi_sparse_pos[i_b] ); \
\
/* \
......
......@@ -2,7 +2,7 @@
* vdec_block_c.c: Macroblock copy functions in C
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: vdec_block_c.c,v 1.4 2001/06/20 07:43:48 sam Exp $
* $Id: vdec_block_c.c,v 1.5 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -47,15 +47,7 @@
#include "video.h"
#include "video_output.h"
#include "vdec_motion.h"
#include "video_decoder.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "vpar_synchro.h"
#include "video_parser.h"
#include "video_fifo.h"
#include "vdec_ext-plugins.h"
#include "vdec_block.h"
......
......@@ -2,7 +2,7 @@
* vdec_block_mmx.c: Macroblock copy functions in MMX assembly
*****************************************************************************
* Copyright (C) 1999, 2000, 2001 VideoLAN
* $Id: vdec_block_mmx.c,v 1.4 2001/06/20 07:43:48 sam Exp $
* $Id: vdec_block_mmx.c,v 1.5 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Gal Hendryckx <jimmy@via.ecp.fr>
*
......@@ -47,15 +47,7 @@
#include "video.h"
#include "video_output.h"
#include "vdec_motion.h"
#include "video_decoder.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
#include "vpar_synchro.h"
#include "video_parser.h"
#include "video_fifo.h"
#include "vdec_ext-plugins.h"
#include "vdec_block.h"
......
......@@ -2,7 +2,7 @@
* vdec_idct.c : common IDCT functions
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vdec_idct.c,v 1.1 2001/05/06 04:32:02 sam Exp $
* $Id: vdec_idct.c,v 1.2 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Gal Hendryckx <jimmy@via.ecp.fr>
*
......@@ -43,21 +43,22 @@
#include "video.h"
#include "video_output.h"
#include "video_decoder.h"
#include "modules.h"
#include "vdec_ext-plugins.h"
#include "vdec_idct.h"
/*****************************************************************************
* vdec_InitIDCT : initialize datas for vdec_SparseIDCT
*****************************************************************************/
void _M( vdec_InitIDCT ) (vdec_thread_t * p_vdec)
void _M( vdec_InitIDCT ) ( vdec_thread_t * p_vdec )
{
int i;
dctelem_t * p_pre;
dctelem_t * p_pre = p_vdec->p_pre_idct;
memset( p_pre, 0, 64*64*sizeof(dctelem_t) );
p_vdec->p_idct_data = malloc( sizeof(dctelem_t) * 64 * 64 );
p_pre = (dctelem_t *) p_vdec->p_idct_data;
memset( p_pre, 0, 64 * 64 * sizeof(dctelem_t) );
for( i=0 ; i < 64 ; i++ )
{
......@@ -70,8 +71,8 @@ void _M( vdec_InitIDCT ) (vdec_thread_t * p_vdec)
/*****************************************************************************
* vdec_SparseIDCT : IDCT function for sparse matrices
*****************************************************************************/
void _M( vdec_SparseIDCT ) ( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_sparse_pos)
void _M( vdec_SparseIDCT ) ( void * p_idct_data,
dctelem_t * p_block, int i_sparse_pos )
{
short int val;
int * dp;
......@@ -79,6 +80,7 @@ void _M( vdec_SparseIDCT ) ( vdec_thread_t * p_vdec, dctelem_t * p_block,
short int * p_dest;
short int * p_source;
int coeff, rr;
dctelem_t * p_pre = (dctelem_t *) p_idct_data;
/* If DC Coefficient. */
if ( i_sparse_pos == 0 )
......@@ -99,7 +101,7 @@ void _M( vdec_SparseIDCT ) ( vdec_thread_t * p_vdec, dctelem_t * p_block,
}
/* Some other coefficient. */
p_dest = (s16*)p_block;
p_source = (s16*)&p_vdec->p_pre_idct[i_sparse_pos];
p_source = (s16*)&p_pre[i_sparse_pos * 64];
coeff = (int)p_dest[i_sparse_pos];
for( rr=0 ; rr < 4 ; rr++ )
{
......
......@@ -2,7 +2,7 @@
* vdec_idct.h : macros for the inverse discrete cosine transform
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vdec_idct.h,v 1.1 2001/05/06 04:32:02 sam Exp $
* $Id: vdec_idct.h,v 1.2 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Gaël Hendryckx <jimmy@via.ecp.fr>
* Christophe Massiot <massiot@via.ecp.fr>
......@@ -143,9 +143,7 @@
/*****************************************************************************
* Protoypes
*****************************************************************************/
void _M( vdec_SparseIDCT ) ( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_sparse_pos);
void _M( vdec_InitIDCT ) ( vdec_thread_t * p_vdec );
void _M( vdec_IDCT ) ( vdec_thread_t * p_vdec, dctelem_t * p_block,
int i_idontcare );
void _M( vdec_SparseIDCT ) ( void *, dctelem_t * p_block, int i_sparse_pos);
void _M( vdec_InitIDCT ) ( struct vdec_thread_s * );
void _M( vdec_IDCT ) ( void *, dctelem_t * p_block, int i_idontcare );
......@@ -2,7 +2,7 @@
* vdec_motion_common.c : common motion compensation routines common
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vdec_motion_common.c,v 1.8 2001/06/07 15:27:44 sam Exp $
* $Id: vdec_motion_common.c,v 1.9 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Jean-Marc Dressler <polux@via.ecp.fr>
......@@ -44,8 +44,7 @@
#include "video.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vdec_ext-plugins.h"
#include "modules.h"
#include "modules_export.h"
......
......@@ -2,7 +2,7 @@
* input_es.c: Elementary Stream demux and packet management
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: input_es.c,v 1.7 2001/06/27 09:53:56 massiot Exp $
* $Id: input_es.c,v 1.8 2001/07/17 09:48:07 massiot Exp $
*
* Author: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -64,12 +64,9 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_ext-plugins.h"
#include "input_es.h"
#include "mpeg_system.h"
#include "input_netlist.h"
#include "debug.h"
......
......@@ -2,7 +2,7 @@
* input_ps.c: PS demux and packet management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ps.c,v 1.29 2001/06/27 09:53:56 massiot Exp $
* $Id: input_ps.c,v 1.30 2001/07/17 09:48:07 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Cyril Deguet <asmax@via.ecp.fr>
......@@ -62,11 +62,9 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_ext-plugins.h"
#include "input_ps.h"
#include "mpeg_system.h"
#include "debug.h"
......
......@@ -2,7 +2,7 @@
* input_ts.c: TS demux and netlist management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ts.c,v 1.29 2001/07/12 23:06:54 gbazin Exp $
* $Id: input_ts.c,v 1.30 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Henri Fallon <henri@videolan.org>
*
......@@ -74,11 +74,8 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input_ext-plugins.h"
#include "mpeg_system.h"
#include "input_netlist.h"
#include "input.h"
#include "input_ts.h"
#include "modules.h"
......
......@@ -4,7 +4,7 @@
* decoders.
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input.c,v 1.125 2001/06/27 09:53:57 massiot Exp $
* $Id: input.c,v 1.126 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -74,8 +74,8 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input_ext-plugins.h"
#include "input.h"
#include "interface.h"
#include "main.h"
......
......@@ -2,7 +2,7 @@
* input_clock.c: Clock/System date convertions, stream management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_clock.c,v 1.18 2001/06/27 09:53:57 massiot Exp $
* $Id: input_clock.c,v 1.19 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -38,8 +38,7 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_ext-plugins.h"
/*
* DISCUSSION : SYNCHRONIZATION METHOD
......
......@@ -2,7 +2,7 @@
* input_dec.c: Functions for the management of decoders
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_dec.c,v 1.11 2001/04/28 03:36:25 sam Exp $
* $Id: input_dec.c,v 1.12 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -39,8 +39,7 @@
#include "stream_control.h"
#include "input_ext-dec.h"
#include "input_ext-intf.h"
#include "input.h"
#include "input_ext-plugins.h"
/*****************************************************************************
* input_RunDecoder: spawns a new decoder thread
......
......@@ -2,7 +2,7 @@
* input_ext-dec.c: services to the decoders
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ext-dec.c,v 1.16 2001/05/08 00:43:57 sam Exp $
* $Id: input_ext-dec.c,v 1.17 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -39,8 +39,7 @@
#include "stream_control.h"
#include "input_ext-dec.h"
#include "input_ext-intf.h"
#include "input.h"
#include "input_ext-plugins.h"
/*****************************************************************************
* InitBitstream: initialize a bit_stream_t structure
......
......@@ -2,7 +2,7 @@
* input_ext-intf.c: services to the interface
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_ext-intf.c,v 1.25 2001/07/08 17:45:52 gbazin Exp $
* $Id: input_ext-intf.c,v 1.26 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -39,8 +39,7 @@
#include "stream_control.h"
#include "input_ext-dec.h"
#include "input_ext-intf.h"
#include "input.h"
#include "input_ext-plugins.h"
/*****************************************************************************
* input_SetStatus: change the reading status
......
......@@ -2,7 +2,7 @@
* input_netlist.c: netlist management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: input_netlist.c,v 1.39 2001/05/31 03:57:54 sam Exp $
* $Id: input_netlist.c,v 1.40 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Henri Fallon <henri@videolan.org>
*
......@@ -50,9 +50,7 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_netlist.h"
#include "input_ext-plugins.h"
/*****************************************************************************
* input_NetlistInit: allocates netlist buffers and init indexes
......
......@@ -2,7 +2,7 @@
* input_programs.c: es_descriptor_t, pgrm_descriptor_t management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: input_programs.c,v 1.59 2001/06/27 09:53:57 massiot Exp $
* $Id: input_programs.c,v 1.60 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -41,7 +41,7 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_ext-plugins.h"
#include "main.h" /* --noaudio --novideo */
......
......@@ -2,7 +2,7 @@
* mpeg_system.c: TS, PS and PES management
*****************************************************************************
* Copyright (C) 1998, 1999, 2000 VideoLAN
* $Id: mpeg_system.c,v 1.54 2001/05/07 03:14:09 stef Exp $
* $Id: mpeg_system.c,v 1.55 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Michel Lespinasse <walken@via.ecp.fr>
......@@ -44,9 +44,7 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "mpeg_system.h"
#include "input_ext-plugins.h"
#include "main.h" /* AC3/MPEG channel, SPU channel */
......
......@@ -2,7 +2,7 @@
* modules.c : Built-in and plugin modules management functions
*****************************************************************************
* Copyright (C) 2001 VideoLAN
* $Id: modules.c,v 1.39 2001/07/16 22:00:45 gbazin Exp $
* $Id: modules.c,v 1.40 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Samuel Hocevar <sam@zoy.org>
* Ethan C. Baldridge <BaldridgeE@cadmus.com>
......@@ -73,9 +73,7 @@
#include "stream_control.h"
#include "input_ext-intf.h"
#include "input_ext-dec.h"
#include "input.h"
#include "input_netlist.h"
#include "mpeg_system.h"
#include "input_ext-plugins.h"
#include "video.h"
#include "video_output.h"
......
......@@ -2,7 +2,7 @@
* video_decoder.c : video decoder thread
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: video_decoder.c,v 1.52 2001/06/03 12:47:22 sam Exp $
* $Id: video_decoder.c,v 1.53 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Gal Hendryckx <jimmy@via.ecp.fr>
......@@ -48,7 +48,7 @@
#include "video.h"
#include "video_output.h"
#include "vdec_motion.h"
#include "vdec_ext-plugins.h"
#include "video_decoder.h"
#include "vpar_blocks.h"
......@@ -155,6 +155,8 @@ int vdec_InitThread( vdec_thread_t *p_vdec )
{
intf_DbgMsg("vdec debug: initializing video decoder thread %p", p_vdec);
p_vdec->p_idct_data = NULL;
p_vdec->pf_decode_init = p_vdec->p_vpar->pf_decode_init;
p_vdec->pf_decode_mb_c = p_vdec->p_vpar->pf_decode_mb_c;
p_vdec->pf_decode_mb_bw = p_vdec->p_vpar->pf_decode_mb_bw;
......@@ -203,6 +205,11 @@ static void ErrorThread( vdec_thread_t *p_vdec )
static void EndThread( vdec_thread_t *p_vdec )
{
intf_DbgMsg("vdec debug: EndThread(%p)", p_vdec);
if( p_vdec->p_idct_data != NULL )
{
free( p_vdec->p_idct_data );
}
}
/*****************************************************************************
......
/*****************************************************************************
* vdec_motion.h : types for the motion compensation algorithm
* video_decoder.h : video decoder thread
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vdec_motion.h,v 1.14 2001/01/18 05:13:22 sam Exp $
* $Id: video_decoder.h,v 1.3 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Jean-Marc Dressler <polux@via.ecp.fr>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
......@@ -26,17 +25,30 @@
* Requires:
* "config.h"
* "common.h"
* "mtime.h"
* "threads.h"
* "video_parser.h"
* "undec_picture.h"
* "input.h"
* "video.h"
* "video_output.h"
* "decoder_fifo.h"
*****************************************************************************/
/*****************************************************************************
* Function pointers
* Prototypes
*****************************************************************************/
struct macroblock_s;
struct vpar_thread_s;
struct motion_arg_s;
struct macroblock_s;
typedef void (*f_motion_t)( struct macroblock_s* );
/* Thread management functions */
#ifndef VDEC_SMP
int vdec_InitThread ( struct vdec_thread_s *p_vdec );
#endif
void vdec_DecodeMacroblock ( struct vdec_thread_s *p_vdec,
struct macroblock_s *p_mb );
void vdec_DecodeMacroblockC ( struct vdec_thread_s *p_vdec,
struct macroblock_s *p_mb );
void vdec_DecodeMacroblockBW ( struct vdec_thread_s *p_vdec,
struct macroblock_s *p_mb );
struct vdec_thread_s * vdec_CreateThread( struct vpar_thread_s *p_vpar );
void vdec_DestroyThread ( struct vdec_thread_s *p_vdec );
......@@ -2,7 +2,7 @@
* video_fifo.c : video FIFO management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: video_fifo.c,v 1.1 2001/07/16 16:39:00 massiot Exp $
* $Id: video_fifo.c,v 1.2 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -41,8 +41,8 @@
#include "video.h"
#include "video_output.h"
#include "vdec_ext-plugins.h"
#include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
......
......@@ -2,7 +2,7 @@
* video_fifo.h : FIFO for the pool of video_decoders
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: video_fifo.h,v 1.19 2001/06/03 12:47:21 sam Exp $
* $Id: video_fifo.h,v 1.6 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......
......@@ -2,7 +2,7 @@
* video_parser.c : video parser thread
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: video_parser.c,v 1.1 2001/07/16 16:39:00 massiot Exp $
* $Id: video_parser.c,v 1.2 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Samuel Hocevar <sam@via.ecp.fr>
......@@ -54,8 +54,8 @@
#include "video.h"
#include "video_output.h"
#include "vdec_ext-plugins.h"
#include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
......
......@@ -2,7 +2,7 @@
* 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 $
* $Id: video_parser.h,v 1.10 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
*
......@@ -88,11 +88,6 @@ typedef struct vpar_thread_s
/* Thread properties and locks */
vlc_thread_t thread_id; /* id for thread functions */
/* Thread configuration */
/* XXX?? */
// int *pi_status;
/* Input properties */
decoder_fifo_t * p_fifo; /* PES input fifo */
vdec_config_t * p_config;
......@@ -138,8 +133,8 @@ typedef struct vpar_thread_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_sparse_idct ) ( void *, dctelem_t*, int );
void ( * pf_idct ) ( void *, 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 * );
......
......@@ -2,7 +2,7 @@
* vpar_blocks.c : blocks parsing
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vpar_blocks.c,v 1.1 2001/07/16 16:39:00 massiot Exp $
* $Id: vpar_blocks.c,v 1.2 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Jean-Marc Dressler <polux@via.ecp.fr>
......@@ -43,8 +43,8 @@
#include "video.h"
#include "video_output.h"
#include "vdec_ext-plugins.h"
#include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
......
......@@ -2,7 +2,7 @@
* vpar_blocks.h : video parser blocks management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vpar_blocks.h,v 1.33 2001/01/21 01:36:25 massiot Exp $
* $Id: vpar_blocks.h,v 1.4 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Jean-Marc Dressler <polux@via.ecp.fr>
......@@ -36,55 +36,6 @@
* "video_fifo.h"
*****************************************************************************/
/*****************************************************************************
* macroblock_t : information on a macroblock passed to the video_decoder
* thread
*****************************************************************************/
typedef struct macroblock_s
{
picture_t * p_picture; /* current frame in progress */
int i_mb_type; /* macroblock type */
int i_coded_block_pattern;
/* which blocks are coded ? */
int i_chroma_nb_blocks; /* number of blocks for
* chroma components */
/* IDCT information */
dctelem_t ppi_blocks[12][64]; /* blocks */
void ( * pf_idct[12] ) ( struct vdec_thread_s *,
dctelem_t*, int ); /* sparse IDCT or not ? */
int pi_sparse_pos[12]; /* position of the
* non-NULL coeff */
/* Motion compensation information */
f_motion_t pf_motion; /* function to use for motion comp */
picture_t * p_backward; /* backward reference frame */
picture_t * p_forward; /* forward reference frame */
int ppi_field_select[2][2]; /* field to use to
* form predictions */
int pppi_motion_vectors[2][2][2]; /* motion vectors */
int ppi_dmv[2][2]; /* differential motion vectors */
/* coordinates of the block in the picture */
int i_l_x, i_c_x;
int i_motion_l_y;
int i_motion_c_y;
int i_l_stride; /* number of yuv_data_t to
* ignore when changing line */
int i_c_stride; /* idem, for chroma */
boolean_t b_P_second; /* Second field of a P picture ?
* (used to determine the predicting
* frame) */
boolean_t b_motion_field; /* Field we are predicting
* (top field or bottom field) */
/* AddBlock information */
yuv_data_t * p_data[12]; /* pointer to the position
* in the final picture */
int i_addb_l_stride, i_addb_c_stride;
/* nb of coeffs to jump when changing lines */
} macroblock_t;
/*****************************************************************************
* macroblock_parsing_t : macroblock context & predictors
*****************************************************************************/
......@@ -127,18 +78,6 @@ typedef struct dct_lookup_s
/*****************************************************************************
* Standard codes
*****************************************************************************/
/* Macroblock types */
#define MB_INTRA 1
#define MB_PATTERN 2
#define MB_MOTION_BACKWARD 4
#define MB_MOTION_FORWARD 8
#define MB_QUANT 16
/* Motion types */
#define MOTION_FIELD 1
#define MOTION_FRAME 2
#define MOTION_16X8 2
#define MOTION_DMV 3
/* Macroblock Address Increment types */
#define MB_ADDRINC_ESCAPE 8
......
......@@ -2,7 +2,7 @@
* vpar_headers.c : headers parsing
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vpar_headers.c,v 1.1 2001/07/16 16:39:00 massiot Exp $
* $Id: vpar_headers.c,v 1.2 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Stphane Borel <stef@via.ecp.fr>
......@@ -43,8 +43,8 @@
#include "video.h"
#include "video_output.h"
#include "vdec_ext-plugins.h"
#include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
......@@ -52,8 +52,6 @@
#include "video_parser.h"
#include "video_fifo.h"
#include "main.h" /* XXX REMOVE THIS */
/*
* Local prototypes
*/
......
......@@ -2,7 +2,7 @@
* vpar_headers.h : video parser : headers parsing
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vpar_headers.h,v 1.26 2001/05/06 04:32:02 sam Exp $
* $Id: vpar_headers.h,v 1.8 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Stphane Borel <stef@via.ecp.fr>
......@@ -177,11 +177,6 @@ typedef struct picture_parsing_s
#define D_CODING_TYPE 4 /* MPEG-1 ONLY */
/* other values are reserved */
/* Structures */
#define TOP_FIELD 1
#define BOTTOM_FIELD 2
#define FRAME_STRUCTURE 3
/*****************************************************************************
* Prototypes
*****************************************************************************/
......
......@@ -2,7 +2,7 @@
* vpar_synchro.c : frame dropping routines
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vpar_synchro.c,v 1.1 2001/07/16 16:39:00 massiot Exp $
* $Id: vpar_synchro.c,v 1.2 2001/07/17 09:48:08 massiot Exp $
*
* Authors: Christophe Massiot <massiot@via.ecp.fr>
* Samuel Hocevar <sam@via.ecp.fr>
......@@ -111,8 +111,8 @@
#include "video.h"
#include "video_output.h"
#include "vdec_ext-plugins.h"
#include "video_decoder.h"
#include "vdec_motion.h"
#include "vpar_blocks.h"
#include "vpar_headers.h"
......
......@@ -2,7 +2,7 @@
* vpar_synchro.h : video parser blocks management
*****************************************************************************
* Copyright (C) 1999, 2000 VideoLAN
* $Id: vpar_synchro.h,v 1.33 2001/05/06 04:32:02 sam Exp $
* $Id: vpar_synchro.h,v 1.10 2001/07/17 09:48:08 massiot Exp $
*
* Author: Christophe Massiot <massiot@via.ecp.fr>
*
......
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