]> git.sesse.net Git - vlc/blobdiff - include/vpar_blocks.h
The motion compensation routines are now modules as well ; choose your
[vlc] / include / vpar_blocks.h
index 5750985a86fe27f2656e9633976d48e332bf9908..a3efa11d898d359a7a64f0ef1f724f60188c3140 100644 (file)
@@ -1,13 +1,34 @@
 /*****************************************************************************
  * vpar_blocks.h : video parser blocks management
- * (c)1999 VideoLAN
- *****************************************************************************
  *****************************************************************************
+ * Copyright (C) 1999, 2000 VideoLAN
+ * $Id: vpar_blocks.h,v 1.32 2001/01/18 05:13:22 sam Exp $
+ *
+ * Authors: Christophe Massiot <massiot@via.ecp.fr>
+ *          Jean-Marc Dressler <polux@via.ecp.fr>
+ *          Stéphane Borel <stef@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.
+ *****************************************************************************/
+
+/*****************************************************************************
  * Requires:
  *  "config.h"
  *  "common.h"
  *  "mtime.h"
- *  "vlc_thread.h"
+ *  "threads.h"
  *  "input.h"
  *  "video.h"
  *  "video_output.h"
@@ -31,7 +52,8 @@ typedef struct macroblock_s
 
     /* IDCT information */
     dctelem_t               ppi_blocks[12][64];                    /* blocks */
-    f_idct_t                pf_idct[12];             /* sparse IDCT or not ? */
+    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 */
 
@@ -72,6 +94,7 @@ typedef struct
                                                    * matrices                */
     int                 pi_dc_dct_pred[3];          /* ISO/IEC 13818-2 7.2.1 */
     int                 pppi_pmv[2][2][2];  /* Motion vect predictors, 7.6.3 */
+    int                 i_motion_dir;/* Used for the next skipped macroblock */
 
     /* Context used to optimize block parsing */
     int                 i_motion_type, i_mv_count, i_mv_format;
@@ -135,8 +158,8 @@ typedef struct dct_lookup_s
 /*****************************************************************************
  * Constants
  *****************************************************************************/
-extern int      pi_default_intra_quant[];
-extern int      pi_default_nonintra_quant[];
+extern u8       pi_default_intra_quant[64];
+extern u8       pi_default_nonintra_quant[64];
 extern u8       pi_scan[2][64];
 
 /*****************************************************************************
@@ -148,17 +171,5 @@ void vpar_InitPMBType( struct vpar_thread_s * p_vpar );
 void vpar_InitBMBType( struct vpar_thread_s * p_vpar );
 void vpar_InitCodedPattern( struct vpar_thread_s * p_vpar );
 void vpar_InitDCTTables( struct vpar_thread_s * p_vpar );
-void vpar_PictureDataGENERIC( struct vpar_thread_s * p_vpar, int i_mb_base );
-#if (VPAR_OPTIM_LEVEL > 0)
-void vpar_PictureData2I420F0( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2P420F0( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2B420F0( struct vpar_thread_s * p_vpar, int i_mb_base );
-#endif
-#if (VPAR_OPTIM_LEVEL > 1)
-void vpar_PictureData2I420TZ( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2P420TZ( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2B420TZ( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2I420BZ( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2P420BZ( struct vpar_thread_s * p_vpar, int i_mb_base );
-void vpar_PictureData2B420BZ( struct vpar_thread_s * p_vpar, int i_mb_base );
-#endif
\ No newline at end of file
+void vpar_InitScanTable( struct vpar_thread_s * p_vpar );
+void vpar_PictureData( struct vpar_thread_s * p_vpar, int i_mb_base );