yading@10: /* yading@10: * This file is part of FFmpeg. yading@10: * yading@10: * FFmpeg is free software; you can redistribute it and/or yading@10: * modify it under the terms of the GNU Lesser General Public yading@10: * License as published by the Free Software Foundation; either yading@10: * version 2.1 of the License, or (at your option) any later version. yading@10: * yading@10: * FFmpeg is distributed in the hope that it will be useful, yading@10: * but WITHOUT ANY WARRANTY; without even the implied warranty of yading@10: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU yading@10: * Lesser General Public License for more details. yading@10: * yading@10: * You should have received a copy of the GNU Lesser General Public yading@10: * License along with FFmpeg; if not, write to the Free Software yading@10: * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA yading@10: */ yading@10: yading@10: #ifndef AVCODEC_INTRAX8_H yading@10: #define AVCODEC_INTRAX8_H yading@10: yading@10: #include "get_bits.h" yading@10: #include "mpegvideo.h" yading@10: #include "intrax8dsp.h" yading@10: yading@10: typedef struct IntraX8Context { yading@10: VLC * j_ac_vlc[4];//they point to the static j_mb_vlc yading@10: VLC * j_orient_vlc; yading@10: VLC * j_dc_vlc[3]; yading@10: yading@10: int use_quant_matrix; yading@10: //set by ff_intrax8_common_init yading@10: uint8_t * prediction_table;//2*(mb_w*2) yading@10: ScanTable scantable[3]; yading@10: //set by the caller codec yading@10: MpegEncContext * s; yading@10: IntraX8DSPContext dsp; yading@10: int quant; yading@10: int dquant; yading@10: int qsum; yading@10: //calculated per frame yading@10: int quant_dc_chroma; yading@10: int divide_quant_dc_luma; yading@10: int divide_quant_dc_chroma; yading@10: //changed per block yading@10: int edges; yading@10: int flat_dc; yading@10: int predicted_dc; yading@10: int raw_orient; yading@10: int chroma_orient; yading@10: int orient; yading@10: int est_run; yading@10: } IntraX8Context; yading@10: yading@10: void ff_intrax8_common_init(IntraX8Context * w, MpegEncContext * const s); yading@10: void ff_intrax8_common_end(IntraX8Context * w); yading@10: int ff_intrax8_decode_picture(IntraX8Context * w, int quant, int halfpq); yading@10: yading@10: #endif /* AVCODEC_INTRAX8_H */