Coverage Report

Created: 2026-01-25 07:18

next uncovered line (L), next uncovered region (R), next uncovered branch (B)
/src/ffmpeg/libavcodec/parsers.c
Line
Count
Source
1
/*
2
 * This file is part of FFmpeg.
3
 *
4
 * FFmpeg is free software; you can redistribute it and/or
5
 * modify it under the terms of the GNU Lesser General Public
6
 * License as published by the Free Software Foundation; either
7
 * version 2.1 of the License, or (at your option) any later version.
8
 *
9
 * FFmpeg is distributed in the hope that it will be useful,
10
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
12
 * Lesser General Public License for more details.
13
 *
14
 * You should have received a copy of the GNU Lesser General Public
15
 * License along with FFmpeg; if not, write to the Free Software
16
 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
 */
18
19
#include <stdint.h>
20
21
#include "avcodec.h"
22
#include "parser_internal.h"
23
24
#if FF_API_PARSER_PRIVATE
25
#include "libavutil/internal.h"
26
#include <assert.h>
27
#include <stddef.h>
28
29
FF_DISABLE_DEPRECATION_WARNINGS
30
#define CHECK_OFFSET(field, public_prefix) static_assert(offsetof(FFCodecParser, field) == offsetof(FFCodecParser, p.public_prefix ## field), "Wrong offsets")
31
CHECK_OFFSET(codec_ids,);
32
CHECK_OFFSET(priv_data_size,);
33
CHECK_OFFSET(init, parser_);
34
CHECK_OFFSET(parse, parser_);
35
CHECK_OFFSET(close, parser_);
36
CHECK_OFFSET(split,);
37
FF_ENABLE_DEPRECATION_WARNINGS
38
#endif
39
40
extern const FFCodecParser ff_aac_parser;
41
extern const FFCodecParser ff_aac_latm_parser;
42
extern const FFCodecParser ff_ac3_parser;
43
extern const FFCodecParser ff_adx_parser;
44
extern const FFCodecParser ff_ahx_parser;
45
extern const FFCodecParser ff_amr_parser;
46
extern const FFCodecParser ff_apv_parser;
47
extern const FFCodecParser ff_av1_parser;
48
extern const FFCodecParser ff_avs2_parser;
49
extern const FFCodecParser ff_avs3_parser;
50
extern const FFCodecParser ff_bmp_parser;
51
extern const FFCodecParser ff_cavsvideo_parser;
52
extern const FFCodecParser ff_cook_parser;
53
extern const FFCodecParser ff_cri_parser;
54
extern const FFCodecParser ff_dca_parser;
55
extern const FFCodecParser ff_dirac_parser;
56
extern const FFCodecParser ff_dnxhd_parser;
57
extern const FFCodecParser ff_dnxuc_parser;
58
extern const FFCodecParser ff_dolby_e_parser;
59
extern const FFCodecParser ff_dpx_parser;
60
extern const FFCodecParser ff_dvaudio_parser;
61
extern const FFCodecParser ff_dvbsub_parser;
62
extern const FFCodecParser ff_dvdsub_parser;
63
extern const FFCodecParser ff_dvd_nav_parser;
64
extern const FFCodecParser ff_evc_parser;
65
extern const FFCodecParser ff_flac_parser;
66
extern const FFCodecParser ff_ftr_parser;
67
extern const FFCodecParser ff_ffv1_parser;
68
extern const FFCodecParser ff_g723_1_parser;
69
extern const FFCodecParser ff_g729_parser;
70
extern const FFCodecParser ff_gif_parser;
71
extern const FFCodecParser ff_gsm_parser;
72
extern const FFCodecParser ff_h261_parser;
73
extern const FFCodecParser ff_h263_parser;
74
extern const FFCodecParser ff_h264_parser;
75
extern const FFCodecParser ff_hevc_parser;
76
extern const FFCodecParser ff_hdr_parser;
77
extern const FFCodecParser ff_ipu_parser;
78
extern const FFCodecParser ff_jpeg2000_parser;
79
extern const FFCodecParser ff_jpegxl_parser;
80
extern const FFCodecParser ff_jpegxs_parser;
81
extern const FFCodecParser ff_misc4_parser;
82
extern const FFCodecParser ff_mjpeg_parser;
83
extern const FFCodecParser ff_mlp_parser;
84
extern const FFCodecParser ff_mpeg4video_parser;
85
extern const FFCodecParser ff_mpegaudio_parser;
86
extern const FFCodecParser ff_mpegvideo_parser;
87
extern const FFCodecParser ff_opus_parser;
88
extern const FFCodecParser ff_prores_parser;
89
extern const FFCodecParser ff_png_parser;
90
extern const FFCodecParser ff_pnm_parser;
91
extern const FFCodecParser ff_prores_raw_parser;
92
extern const FFCodecParser ff_qoi_parser;
93
extern const FFCodecParser ff_rv34_parser;
94
extern const FFCodecParser ff_sbc_parser;
95
extern const FFCodecParser ff_sipr_parser;
96
extern const FFCodecParser ff_tak_parser;
97
extern const FFCodecParser ff_vc1_parser;
98
extern const FFCodecParser ff_vorbis_parser;
99
extern const FFCodecParser ff_vp3_parser;
100
extern const FFCodecParser ff_vp8_parser;
101
extern const FFCodecParser ff_vp9_parser;
102
extern const FFCodecParser ff_vvc_parser;
103
extern const FFCodecParser ff_webp_parser;
104
extern const FFCodecParser ff_xbm_parser;
105
extern const FFCodecParser ff_xma_parser;
106
extern const FFCodecParser ff_xwd_parser;
107
108
#include "libavcodec/parser_list.c"
109
110
const AVCodecParser *av_parser_iterate(void **opaque)
111
0
{
112
0
    uintptr_t i = (uintptr_t)*opaque;
113
0
    const FFCodecParser *p = parser_list[i];
114
115
0
    if (p) {
116
0
        *opaque = (void*)(i + 1);
117
0
        return &p->p;
118
0
    }
119
120
0
    return NULL;
121
0
}