FFmpeg
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
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 
68 
69 #include "libavcodec/parser_list.c"
70 
72 
73 static void av_parser_init_next(void)
74 {
75  AVCodecParser *prev = NULL, *p;
76  int i = 0;
77  while ((p = (AVCodecParser*)parser_list[i++])) {
78  if (prev)
79  prev->next = p;
80  prev = p;
81  }
82 }
83 
85 {
87 
88  if (p)
89  return p->next;
90  else
91  return (AVCodecParser*)parser_list[0];
92 }
93 
94 const AVCodecParser *av_parser_iterate(void **opaque)
95 {
96  uintptr_t i = (uintptr_t)*opaque;
97  const AVCodecParser *p = parser_list[i];
98 
99  if (p)
100  *opaque = (void*)(i + 1);
101 
102  return p;
103 }
104 
106 {
108 }
AVCodecParser ff_hevc_parser
Definition: hevc_parser.c:372
AVCodecParser ff_aac_parser
Definition: aac_parser.c:65
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:105
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:394
AVCodecParser ff_dnxhd_parser
Definition: dnxhd_parser.c:138
AVCodecParser ff_mpegvideo_parser
static AVOnce av_parser_next_init
Definition: parsers.c:71
AVCodecParser ff_opus_parser
Definition: opus_parser.c:193
AVCodecParser ff_png_parser
Definition: png_parser.c:112
struct AVCodecParser * next
Definition: avcodec.h:5227
AVCodecParser ff_sbc_parser
Definition: sbc_parser.c:117
static void av_parser_init_next(void)
Definition: parsers.c:73
#define AVOnce
Definition: thread.h:159
AVCodecParser ff_vp9_parser
Definition: vp9_parser.c:67
AVCodecParser * av_parser_next(const AVCodecParser *p)
Definition: parsers.c:84
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:121
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:83
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:94
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:77
AVCodecParser ff_rv30_parser
AVCodecParser ff_vc1_parser
Definition: vc1_parser.c:289
AVCodecParser ff_rv40_parser