Coverage Report

Created: 2026-04-01 07:42

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/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