]> git.sesse.net Git - vlc/commitdiff
Encore du debuggage.
authorJean-Marc Dressler <polux@videolan.org>
Tue, 11 Jan 2000 14:45:15 +0000 (14:45 +0000)
committerJean-Marc Dressler <polux@videolan.org>
Tue, 11 Jan 2000 14:45:15 +0000 (14:45 +0000)
include/vdec_motion.h
include/video_parser.h
include/vpar_blocks.h
include/vpar_headers.h
include/vpar_synchro.h

index 06ae4dcc71cc032faa3875af125424ea4a88df1f..64892c926a31aa622c4288b8a19fe44a1ec4f25c 100644 (file)
@@ -23,5 +23,21 @@ typedef void (*f_chroma_motion_t)( struct macroblock_s* );
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
-void vdec_MotionField( struct macroblock_s* );
-void vdec_MotionFrame( struct macroblock_s* );
+
+/* Empty function for intra macroblocks motion compensation */
+void vdec_DummyRecon    ( struct macroblock_s* );
+
+/* Motion compensation for skipped macroblocks */
+void vdec_MotionField   ( struct macroblock_s* );
+void vdec_MotionFrame   ( struct macroblock_s* );
+
+/* Motion compensation for non skipped macroblocks */
+void vdec_FieldRecon    ( struct macroblock_s* );
+void vdec_16x8Recon     ( struct macroblock_s* );
+void vdec_FrameRecon    ( struct macroblock_s* );
+void vdec_DMVRecon      ( struct macroblock_s* );
+
+/* Motion compensation functions for the 3 chroma formats */
+void vdec_Motion420();
+void vdec_Motion422();
+void vdec_Motion444();
index 0aa89c5a2ab55042a6b655d2d078d8e074b7f629..1b82939fe895c1d378af675cc789a1d0ea777a71 100644 (file)
@@ -88,6 +88,11 @@ typedef struct vpar_thread_s
 #endif
 } vpar_thread_t;
 
+/* Chroma types */
+#define CHROMA_420 1
+#define CHROMA_422 2
+#define CHROMA_444 3
+
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
index 3fe5feeeec67c94d2e514ad126500412a9efbe3d..0d786d5d05618e763e61e4bc9c299214721e3d08 100644 (file)
@@ -26,9 +26,9 @@ typedef struct macroblock_s
     int                     i_c_x, i_c_y; /* position of macroblock (chroma) */
     int                     i_chroma_nb_blocks;  /* nb of bks for a chr comp */
     int                     i_l_stride;           /* number of data_t to ignore
-                                                  * when changing lines     */
+                                                                      * when changing lines     */
     int                     i_c_stride;                  /* idem, for chroma */
-
+    
     /* IDCT information */
     elem_t                  ppi_blocks[12][64];                    /* blocks */
     f_idct_t                pf_idct[12];             /* sparse IDCT or not ? */
@@ -37,10 +37,8 @@ typedef struct macroblock_s
     /* Motion compensation information */
     f_motion_t              pf_motion;    /* function to use for motion comp */
     f_chroma_motion_t       pf_chroma_motion;
-    picture_t *             p_backw_top;
-    picture_t *             p_backw_bot;
-    picture_t *             p_forw_top;
-    picture_t *             p_forw_bot;
+    picture_t *             p_backward;
+    picture_t *             p_forward;
     int                     ppi_field_select[2][2];
     int                     pppi_motion_vectors[2][2][2];
     int                     pi_dm_vector[2];
@@ -106,13 +104,6 @@ typedef struct lookup_s
 #define SCAN_ZIGZAG                         0
 #define SCAN_ALT                            1
 
-/*****************************************************************************
- * Constants
- *****************************************************************************/
-extern int *    pi_default_intra_quant;
-extern int *    pi_default_nonintra_quant;
-extern u8       pi_scan[2][64];
-
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
index 5036f0b94be3a1a0bb20a65b23c8df4563e01d18..6a9a20a9d7590f867a0ea28df5abec9a0632932f 100644 (file)
  * Function pointers
  *****************************************************************************/
 struct vpar_thread_s;
+struct macroblock_s;
 
 typedef void    (*f_slice_header_t)( struct vpar_thread_s*, int*, int, u32);
-typedef void    (*f_chroma_pattern_t)( struct vpar_thread_s* );
+typedef int     (*f_chroma_pattern_t)( struct vpar_thread_s* );
 typedef int     (*f_macroblock_type_t)( struct vpar_thread_s* );
 
 /*****************************************************************************
@@ -49,7 +50,7 @@ typedef struct sequence_s
     f_slice_header_t    pf_slice_header;
     quant_matrix_t      intra_quant, nonintra_quant;
     quant_matrix_t      chroma_intra_quant, chroma_nonintra_quant;
-    void                (*pf_decode_mv)( struct vpar_thread_s *, int );
+    void                (*pf_decode_mv)( struct vpar_thread_s *, struct macroblock_s *, int );
     f_chroma_pattern_t  pf_decode_pattern;
 
     /* Chromatic information */
@@ -99,9 +100,6 @@ typedef struct picture_parsing_s
     boolean_t           b_frame_structure;
     f_macroblock_type_t pf_macroblock_type;
 
-    /* Scalability variables */
-    int                 i_spatial_temporal_weight_code_table_index;
-    
     boolean_t           b_error;
 } picture_parsing_t;
 
index eeb28c37aecbd4b32f677e8852b1f47eeb862aea..47b98ac2a88efbdbf7d3d6fa34f7a33c0d0b6e83 100644 (file)
@@ -26,7 +26,7 @@ typedef struct video_synchro_s
 /*****************************************************************************
  * Prototypes
  *****************************************************************************/
-void vpar_SynchroChoose( struct vpar_thread_s * p_vpar, int i_coding_type, 
+boolean_t vpar_SynchroChoose( struct vpar_thread_s * p_vpar, int i_coding_type, 
                          int i_structure );
 void vpar_SynchroTrash( struct vpar_thread_s * p_vpar, int i_coding_type,
                         int i_structure );