FFmpeg
parsers.c
Go to the documentation of this file.
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 "libavutil/thread.h"
22 
23 #include "avcodec.h"
24 
70 
71 #include "libavcodec/parser_list.c"
72 
74 
75 static void av_parser_init_next(void)
76 {
77  AVCodecParser *prev = NULL, *p;
78  int i = 0;
79  while ((p = (AVCodecParser*)parser_list[i++])) {
80  if (prev)
81  prev->next = p;
82  prev = p;
83  }
84 }
85 
87 {
89 
90  if (p)
91  return p->next;
92  else
93  return (AVCodecParser*)parser_list[0];
94 }
95 
96 const AVCodecParser *av_parser_iterate(void **opaque)
97 {
98  uintptr_t i = (uintptr_t)*opaque;
99  const AVCodecParser *p = parser_list[i];
100 
101  if (p)
102  *opaque = (void*)(i + 1);
103 
104  return p;
105 }
106 
108 {
110 }
AVCodecParser ff_hevc_parser
Definition: hevc_parser.c:372
AVCodecParser ff_aac_parser
Definition: aac_parser.c:65
AVCodecParser ff_g723_1_parser
Definition: g723_1_parser.c:55
AVCodecParser ff_vp8_parser
Definition: vp8_parser.c:76
#define NULL
Definition: coverity.c:32
AVCodecParser ff_dirac_parser
Definition: dirac_parser.c:276
void av_register_codec_parser(AVCodecParser *parser)
Definition: parsers.c:107
AVCodecParser ff_dpx_parser
Definition: dpx_parser.c:111
AVCodecParser ff_av1_parser
Definition: av1_parser.c:221
AVCodecParser ff_h261_parser
Definition: h261_parser.c:89
AVCodecParser ff_bmp_parser
Definition: bmp_parser.c:107
AVCodecParser ff_mlp_parser
Definition: mlp_parser.c:203
AVCodecParser ff_dnxhd_parser
Definition: dnxhd_parser.c:141
AVCodecParser ff_mpegvideo_parser
static AVOnce av_parser_next_init
Definition: parsers.c:73
AVCodecParser ff_gif_parser
Definition: gif_parser.c:183
AVCodecParser ff_opus_parser
Definition: opus_parser.c:193
AVCodecParser ff_png_parser
Definition: png_parser.c:112
struct AVCodecParser * next
Definition: avcodec.h:5287
AVCodecParser ff_sbc_parser
Definition: sbc_parser.c:117
static void av_parser_init_next(void)
Definition: parsers.c:75
#define AVOnce
Definition: thread.h:159
#define i(width, name, range_min, range_max)
Definition: cbs_h2645.c:259
AVCodecParser ff_vp9_parser
Definition: vp9_parser.c:67
AVCodecParser * av_parser_next(const AVCodecParser *p)
Definition: parsers.c:86
AVCodecParser ff_vp3_parser
Definition: vp3_parser.c:38
AVCodecParser ff_vorbis_parser
AVCodecParser ff_h263_parser
Definition: h263_parser.c:90
AVCodecParser ff_flac_parser
Definition: flac_parser.c:756
AVCodecParser ff_tak_parser
Definition: tak_parser.c:125
AVCodecParser ff_xma_parser
Definition: xma_parser.c:58
AVCodecParser ff_mpeg4video_parser
AVCodecParser ff_dvd_nav_parser
AVCodecParser ff_pnm_parser
Definition: pnm_parser.c:126
AVCodecParser ff_dvdsub_parser
Definition: dvdsub_parser.c:92
AVCodecParser ff_ac3_parser
#define AV_ONCE_INIT
Definition: thread.h:160
Libavcodec external API header.
AVCodecParser ff_avs2_parser
Definition: avs2_parser.c:89
const AVCodecParser * av_parser_iterate(void **opaque)
Iterate over all registered codec parsers.
Definition: parsers.c:96
AVCodecParser ff_cavsvideo_parser
Definition: cavs_parser.c:100
AVCodecParser ff_dca_parser
Definition: dca_parser.c:346
AVCodecParser ff_mpegaudio_parser
AVCodecParser ff_gsm_parser
Definition: gsm_parser.c:86
AVCodecParser ff_aac_latm_parser
Definition: latm_parser.c:107
AVCodecParser ff_sipr_parser
Definition: sipr_parser.c:69
AVCodecParser ff_cook_parser
Definition: cook_parser.c:56
AVCodecParser ff_h264_parser
Definition: h264_parser.c:708
AVCodecParser ff_dvbsub_parser
AVCodecParser ff_dvaudio_parser
AVCodecParser ff_adx_parser
Definition: adx_parser.c:91
AVCodecParser ff_mjpeg_parser
Definition: mjpeg_parser.c:129
static int ff_thread_once(char *control, void(*routine)(void))
Definition: thread.h:162
AVCodecParser ff_g729_parser
Definition: g729_parser.c:78
AVCodecParser ff_rv30_parser
AVCodecParser ff_vc1_parser
Definition: vc1_parser.c:289
AVCodecParser ff_rv40_parser