00001 /* 00002 * Copyright (c) 2002 The FFmpeg Project 00003 * 00004 * This file is part of FFmpeg. 00005 * 00006 * FFmpeg is free software; you can redistribute it and/or 00007 * modify it under the terms of the GNU Lesser General Public 00008 * License as published by the Free Software Foundation; either 00009 * version 2.1 of the License, or (at your option) any later version. 00010 * 00011 * FFmpeg is distributed in the hope that it will be useful, 00012 * but WITHOUT ANY WARRANTY; without even the implied warranty of 00013 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00014 * Lesser General Public License for more details. 00015 * 00016 * You should have received a copy of the GNU Lesser General Public 00017 * License along with FFmpeg; if not, write to the Free Software 00018 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 00019 */ 00020 00021 #ifndef AVCODEC_WMV2_H 00022 #define AVCODEC_WMV2_H 00023 00024 #include "avcodec.h" 00025 #include "dsputil.h" 00026 #include "mpegvideo.h" 00027 #include "intrax8.h" 00028 00029 #define SKIP_TYPE_NONE 0 00030 #define SKIP_TYPE_MPEG 1 00031 #define SKIP_TYPE_ROW 2 00032 #define SKIP_TYPE_COL 3 00033 00034 00035 typedef struct Wmv2Context{ 00036 MpegEncContext s; 00037 IntraX8Context x8; 00038 int j_type_bit; 00039 int j_type; 00040 int abt_flag; 00041 int abt_type; 00042 int abt_type_table[6]; 00043 int per_mb_abt; 00044 int per_block_abt; 00045 int mspel_bit; 00046 int cbp_table_index; 00047 int top_left_mv_flag; 00048 int per_mb_rl_bit; 00049 int skip_type; 00050 int hshift; 00051 00052 ScanTable abt_scantable[2]; 00053 DECLARE_ALIGNED(16, DCTELEM, abt_block2)[6][64]; 00054 }Wmv2Context; 00055 00056 void ff_wmv2_common_init(Wmv2Context * w); 00057 00058 #endif /* AVCODEC_WMV2_H */