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 
72 
73 #include "libavcodec/parser_list.c"
74 
76 
77 static void av_parser_init_next(void)
78 {
79  AVCodecParser *prev = NULL, *p;
80  int i = 0;
81  while ((p = (AVCodecParser*)parser_list[i++])) {
82  if (prev)
83  prev->next = p;
84  prev = p;
85  }
86 }
87 
89 {
91 
92  if (p)
93  return p->next;
94  else
95  return (AVCodecParser*)parser_list[0];
96 }
97 
98 const AVCodecParser *av_parser_iterate(void **opaque)
99 {
100  uintptr_t i = (uintptr_t)*opaque;
101  const AVCodecParser *p = parser_list[i];
102 
103  if (p)
104  *opaque = (void*)(i + 1);
105 
106  return p;
107 }
108 
110 {
112 }
AVCodecParser ff_hevc_parser
Definition: hevc_parser.c:383
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:109
AVCodecParser ff_dpx_parser
Definition: dpx_parser.c:111
AVCodecParser ff_av1_parser
Definition: av1_parser.c:254
AVCodecParser ff_h261_parser
Definition: h261_parser.c:89
AVCodecParser ff_bmp_parser
Definition: bmp_parser.c:108
AVCodecParser ff_mlp_parser
Definition: mlp_parser.c:211
AVCodecParser ff_dnxhd_parser
Definition: dnxhd_parser.c:141
AVCodecParser ff_webp_parser
Definition: webp_parser.c:107
AVCodecParser ff_mpegvideo_parser
static AVOnce av_parser_next_init
Definition: parsers.c:75
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:113
struct AVCodecParser * next
Definition: avcodec.h:3532
AVCodecParser ff_sbc_parser
Definition: sbc_parser.c:117
static void av_parser_init_next(void)
Definition: parsers.c:77
#define AVOnce
Definition: thread.h:172
AVCodecParser ff_vp9_parser
Definition: vp9_parser.c:67
AVCodecParser * av_parser_next(const AVCodecParser *p)
Definition: parsers.c:88
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:745
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:132
AVCodecParser ff_dvdsub_parser
Definition: dvdsub_parser.c:87
AVCodecParser ff_ac3_parser
#define AV_ONCE_INIT
Definition: thread.h:173
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:98
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:705
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:131
static int ff_thread_once(char *control, void(*routine)(void))
Definition: thread.h:175
AVCodecParser ff_g729_parser
Definition: g729_parser.c:85
AVCodecParser ff_rv30_parser
int i
Definition: input.c:406
AVCodecParser ff_vc1_parser
Definition: vc1_parser.c:289
AVCodecParser ff_jpeg2000_parser
AVCodecParser ff_rv40_parser