1 /* 2 * H.263 decoder internal header 3 * 4 * This file is part of FFmpeg. 5 * 6 * FFmpeg is free software; you can redistribute it and/or 7 * modify it under the terms of the GNU Lesser General Public 8 * License as published by the Free Software Foundation; either 9 * version 2.1 of the License, or (at your option) any later version. 10 * 11 * FFmpeg is distributed in the hope that it will be useful, 12 * but WITHOUT ANY WARRANTY; without even the implied warranty of 13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 14 * Lesser General Public License for more details. 15 * 16 * You should have received a copy of the GNU Lesser General Public 17 * License along with FFmpeg; if not, write to the Free Software 18 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA 19 */ 20 #ifndef AVCODEC_H263DEC_H 21 #define AVCODEC_H263DEC_H 22 23 #include "mpegvideo.h" 24 #include "vlc.h" 25 26 // The defines below define the number of bits that are read at once for 27 // reading vlc values. Changing these may improve speed and data cache needs 28 // be aware though that decreasing them may need the number of stages that is 29 // passed to get_vlc* to be increased. 30 #define H263_MV_VLC_BITS 9 31 #define INTRA_MCBPC_VLC_BITS 6 32 #define INTER_MCBPC_VLC_BITS 7 33 #define CBPY_VLC_BITS 6 34 #define TEX_VLC_BITS 9 35 36 extern VLC ff_h263_intra_MCBPC_vlc; 37 extern VLC ff_h263_inter_MCBPC_vlc; 38 extern VLC ff_h263_cbpy_vlc; 39 extern VLC ff_h263_mv_vlc; 40 41 extern const enum AVPixelFormat ff_h263_hwaccel_pixfmt_list_420[]; 42 43 int ff_h263_decode_motion(MpegEncContext * s, int pred, int f_code); 44 int ff_h263_decode_init(AVCodecContext *avctx); 45 int ff_h263_decode_frame(AVCodecContext *avctx, AVFrame *frame, 46 int *got_frame, AVPacket *avpkt); 47 int ff_h263_decode_end(AVCodecContext *avctx); 48 void ff_h263_decode_init_vlc(void); 49 int ff_h263_decode_picture_header(MpegEncContext *s); 50 int ff_h263_decode_gob_header(MpegEncContext *s); 51 int ff_h263_decode_mba(MpegEncContext *s); 52 53 /** 54 * Print picture info if FF_DEBUG_PICT_INFO is set. 55 */ 56 void ff_h263_show_pict_info(MpegEncContext *s); 57 58 int ff_intel_h263_decode_picture_header(MpegEncContext *s); 59 int ff_h263_decode_mb(MpegEncContext *s, 60 int16_t block[6][64]); 61 62 int ff_h263_resync(MpegEncContext *s); 63 64 #endif 65