/src/ffmpeg/libavcodec/msmpeg4dec.h
Line | Count | Source |
1 | | /* |
2 | | * MSMPEG4 decoder header |
3 | | * copyright (c) 2007 Aurelien Jacobs <aurel@gnuage.org> |
4 | | * |
5 | | * This file is part of FFmpeg. |
6 | | * |
7 | | * FFmpeg is free software; you can redistribute it and/or |
8 | | * modify it under the terms of the GNU Lesser General Public |
9 | | * License as published by the Free Software Foundation; either |
10 | | * version 2.1 of the License, or (at your option) any later version. |
11 | | * |
12 | | * FFmpeg is distributed in the hope that it will be useful, |
13 | | * but WITHOUT ANY WARRANTY; without even the implied warranty of |
14 | | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU |
15 | | * Lesser General Public License for more details. |
16 | | * |
17 | | * You should have received a copy of the GNU Lesser General Public |
18 | | * License along with FFmpeg; if not, write to the Free Software |
19 | | * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA |
20 | | */ |
21 | | |
22 | | #ifndef AVCODEC_MSMPEG4DEC_H |
23 | | #define AVCODEC_MSMPEG4DEC_H |
24 | | |
25 | | #include "avcodec.h" |
26 | | #include "h263dec.h" |
27 | | #include "mpegvideo.h" |
28 | | |
29 | 7.19k | #define INTER_INTRA_VLC_BITS 3 |
30 | 10.2M | #define MB_NON_INTRA_VLC_BITS 9 |
31 | | |
32 | | typedef struct MSMP4DecContext { |
33 | | H263DecContext h; |
34 | | int bit_rate; |
35 | | int flipflop_rounding; |
36 | | int mv_table_index; |
37 | | int rl_table_index; |
38 | | int rl_chroma_table_index; |
39 | | int dc_table_index; |
40 | | int use_skip_mb_code; |
41 | | int per_mb_rl_table; |
42 | | int esc3_level_length; |
43 | | int esc3_run_length; |
44 | | } MSMP4DecContext; |
45 | | |
46 | | static inline MSMP4DecContext *mpv_to_msmpeg4(H263DecContext *const h) |
47 | 16.8M | { |
48 | | // Only legal because no MSMPEG-4 decoder uses slice-threading. |
49 | 16.8M | return (MSMP4DecContext*)h; |
50 | 16.8M | } Unexecuted instantiation: wmv2dec.c:mpv_to_msmpeg4 Unexecuted instantiation: h263dec.c:mpv_to_msmpeg4 msmpeg4dec.c:mpv_to_msmpeg4 Line | Count | Source | 47 | 16.8M | { | 48 | | // Only legal because no MSMPEG-4 decoder uses slice-threading. | 49 | 16.8M | return (MSMP4DecContext*)h; | 50 | 16.8M | } |
|
51 | | |
52 | | extern const VLCElem *ff_mb_non_intra_vlc[4]; |
53 | | extern VLCElem ff_inter_intra_vlc[8]; |
54 | | |
55 | | int ff_msmpeg4_decode_init(AVCodecContext *avctx); |
56 | | int ff_msmpeg4_decode_ext_header(H263DecContext *const h, int buf_size); |
57 | | void ff_msmpeg4_decode_motion(MSMP4DecContext *ms, int *mx_ptr, int *my_ptr); |
58 | | int ff_msmpeg4_decode_block(MSMP4DecContext *ms, int16_t * block, |
59 | | int n, int coded, const uint8_t *scan_table); |
60 | | |
61 | | #endif |