# HG changeset patch # User aurel # Date 1178668715 0 # Node ID 5d4544d7cbbc19341030adad833ddb98f017d71d # Parent 25cd2084129a41071f059c28a7d11345efe4f277 move defines and enums out of cavsdata.h diff -r 25cd2084129a -r 5d4544d7cbbc cavs.c --- a/cavs.c Tue May 08 23:30:42 2007 +0000 +++ b/cavs.c Tue May 08 23:58:35 2007 +0000 @@ -29,9 +29,10 @@ #include "bitstream.h" #include "golomb.h" #include "mpegvideo.h" +#include "cavs.h" +#ifdef CONFIG_CAVS_DECODER #include "cavsdata.h" -#ifdef CONFIG_CAVS_DECODER typedef struct { MpegEncContext s; Picture picture; ///< currently decoded frame diff -r 25cd2084129a -r 5d4544d7cbbc cavs.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cavs.h Tue May 08 23:58:35 2007 +0000 @@ -0,0 +1,154 @@ +/* + * Chinese AVS video (AVS1-P2, JiZhun profile) decoder. + * Copyright (c) 2006 Stefan Gehrer + * + * This file is part of FFmpeg. + * + * FFmpeg is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * FFmpeg 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with FFmpeg; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#ifndef CAVS_H +#define CAVS_H + +#include "dsputil.h" + +#define SLICE_MIN_START_CODE 0x00000101 +#define SLICE_MAX_START_CODE 0x000001af +#define EXT_START_CODE 0x000001b5 +#define USER_START_CODE 0x000001b2 +#define CAVS_START_CODE 0x000001b0 +#define PIC_I_START_CODE 0x000001b3 +#define PIC_PB_START_CODE 0x000001b6 + +#define A_AVAIL 1 +#define B_AVAIL 2 +#define C_AVAIL 4 +#define D_AVAIL 8 +#define NOT_AVAIL -1 +#define REF_INTRA -2 +#define REF_DIR -3 + +#define ESCAPE_CODE 59 + +#define FWD0 0x01 +#define FWD1 0x02 +#define BWD0 0x04 +#define BWD1 0x08 +#define SYM0 0x10 +#define SYM1 0x20 +#define SPLITH 0x40 +#define SPLITV 0x80 + +#define MV_BWD_OFFS 12 +#define MV_STRIDE 4 + +enum mb_t { + I_8X8 = 0, + P_SKIP, + P_16X16, + P_16X8, + P_8X16, + P_8X8, + B_SKIP, + B_DIRECT, + B_FWD_16X16, + B_BWD_16X16, + B_SYM_16X16, + B_8X8 = 29 +}; + +enum sub_mb_t { + B_SUB_DIRECT, + B_SUB_FWD, + B_SUB_BWD, + B_SUB_SYM +}; + +enum intra_luma_t { + INTRA_L_VERT, + INTRA_L_HORIZ, + INTRA_L_LP, + INTRA_L_DOWN_LEFT, + INTRA_L_DOWN_RIGHT, + INTRA_L_LP_LEFT, + INTRA_L_LP_TOP, + INTRA_L_DC_128 +}; + +enum intra_chroma_t { + INTRA_C_LP, + INTRA_C_HORIZ, + INTRA_C_VERT, + INTRA_C_PLANE, + INTRA_C_LP_LEFT, + INTRA_C_LP_TOP, + INTRA_C_DC_128, +}; + +enum mv_pred_t { + MV_PRED_MEDIAN, + MV_PRED_LEFT, + MV_PRED_TOP, + MV_PRED_TOPRIGHT, + MV_PRED_PSKIP, + MV_PRED_BSKIP +}; + +enum block_t { + BLK_16X16, + BLK_16X8, + BLK_8X16, + BLK_8X8 +}; + +enum mv_loc_t { + MV_FWD_D3 = 0, + MV_FWD_B2, + MV_FWD_B3, + MV_FWD_C2, + MV_FWD_A1, + MV_FWD_X0, + MV_FWD_X1, + MV_FWD_A3 = 8, + MV_FWD_X2, + MV_FWD_X3, + MV_BWD_D3 = MV_BWD_OFFS, + MV_BWD_B2, + MV_BWD_B3, + MV_BWD_C2, + MV_BWD_A1, + MV_BWD_X0, + MV_BWD_X1, + MV_BWD_A3 = MV_BWD_OFFS+8, + MV_BWD_X2, + MV_BWD_X3 +}; + +DECLARE_ALIGNED_8(typedef, struct) { + int16_t x; + int16_t y; + int16_t dist; + int16_t ref; +} vector_t; + +typedef struct residual_vlc_t { + int8_t rltab[59][3]; + int8_t level_add[27]; + int8_t golomb_order; + int inc_limit; + int8_t max_run; +} residual_vlc_t; + +#endif /* CAVS_H */ diff -r 25cd2084129a -r 5d4544d7cbbc cavsdata.h --- a/cavsdata.h Tue May 08 23:30:42 2007 +0000 +++ b/cavsdata.h Tue May 08 23:58:35 2007 +0000 @@ -19,119 +19,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ -#define SLICE_MIN_START_CODE 0x00000101 -#define SLICE_MAX_START_CODE 0x000001af -#define EXT_START_CODE 0x000001b5 -#define USER_START_CODE 0x000001b2 -#define CAVS_START_CODE 0x000001b0 -#define PIC_I_START_CODE 0x000001b3 -#define PIC_PB_START_CODE 0x000001b6 - -#define A_AVAIL 1 -#define B_AVAIL 2 -#define C_AVAIL 4 -#define D_AVAIL 8 -#define NOT_AVAIL -1 -#define REF_INTRA -2 -#define REF_DIR -3 - -#define ESCAPE_CODE 59 - -#define FWD0 0x01 -#define FWD1 0x02 -#define BWD0 0x04 -#define BWD1 0x08 -#define SYM0 0x10 -#define SYM1 0x20 -#define SPLITH 0x40 -#define SPLITV 0x80 - -#define MV_BWD_OFFS 12 -#define MV_STRIDE 4 - -enum mb_t { - I_8X8 = 0, - P_SKIP, - P_16X16, - P_16X8, - P_8X16, - P_8X8, - B_SKIP, - B_DIRECT, - B_FWD_16X16, - B_BWD_16X16, - B_SYM_16X16, - B_8X8 = 29 -}; - -enum sub_mb_t { - B_SUB_DIRECT, - B_SUB_FWD, - B_SUB_BWD, - B_SUB_SYM -}; +#include "cavs.h" -enum intra_luma_t { - INTRA_L_VERT, - INTRA_L_HORIZ, - INTRA_L_LP, - INTRA_L_DOWN_LEFT, - INTRA_L_DOWN_RIGHT, - INTRA_L_LP_LEFT, - INTRA_L_LP_TOP, - INTRA_L_DC_128 -}; - -enum intra_chroma_t { - INTRA_C_LP, - INTRA_C_HORIZ, - INTRA_C_VERT, - INTRA_C_PLANE, - INTRA_C_LP_LEFT, - INTRA_C_LP_TOP, - INTRA_C_DC_128, -}; - -enum mv_pred_t { - MV_PRED_MEDIAN, - MV_PRED_LEFT, - MV_PRED_TOP, - MV_PRED_TOPRIGHT, - MV_PRED_PSKIP, - MV_PRED_BSKIP -}; - -enum block_t { - BLK_16X16, - BLK_16X8, - BLK_8X16, - BLK_8X8 -}; - -enum mv_loc_t { - MV_FWD_D3 = 0, - MV_FWD_B2, - MV_FWD_B3, - MV_FWD_C2, - MV_FWD_A1, - MV_FWD_X0, - MV_FWD_X1, - MV_FWD_A3 = 8, - MV_FWD_X2, - MV_FWD_X3, - MV_BWD_D3 = MV_BWD_OFFS, - MV_BWD_B2, - MV_BWD_B3, - MV_BWD_C2, - MV_BWD_A1, - MV_BWD_X0, - MV_BWD_X1, - MV_BWD_A3 = MV_BWD_OFFS+8, - MV_BWD_X2, - MV_BWD_X3 -}; - -#ifdef CONFIG_CAVS_DECODER static const uint8_t partition_flags[30] = { 0, //I_8X8 0, //P_SKIP @@ -212,13 +101,6 @@ 32771,35734,38965,42497,46341,50535,55109,60099 }; -DECLARE_ALIGNED_8(typedef, struct) { - int16_t x; - int16_t y; - int16_t dist; - int16_t ref; -} vector_t; - /** marks block as unavailable, i.e. out of picture or not yet decoded */ static const vector_t un_mv = {0,0,1,NOT_AVAIL}; @@ -230,14 +112,6 @@ /** marks block as using intra prediction */ static const vector_t intra_mv = {0,0,1,REF_INTRA}; -typedef struct residual_vlc_t { - int8_t rltab[59][3]; - int8_t level_add[27]; - int8_t golomb_order; - int inc_limit; - int8_t max_run; -} residual_vlc_t; - #define EOB 0,0,0 static const residual_vlc_t intra_2dvlc[7] = { @@ -640,4 +514,3 @@ static const int_fast8_t top_modifier_l[8] = {-1, 1, 5,-1,-1, 5, 7, 7}; static const int_fast8_t left_modifier_c[7] = { 5,-1, 2,-1, 6, 5, 6}; static const int_fast8_t top_modifier_c[7] = { 4, 1,-1,-1, 4, 6, 6}; -#endif /* CONFIG_CAVS_DECODER */