Commit 66355be3 authored by Diego Elio Pettenò's avatar Diego Elio Pettenò Committed by Michael Niedermayer

Prefix all _demuxer, _muxer, _protocol from libavformat and libavdevice.

This also lists the objects from those two libraries as internal (by adding
the ff_ prefix) so that they can then be hidden via linker scripts.
(cherry picked from commit c6610a21)
parent ebf3ee16
......@@ -23,11 +23,11 @@
#include "avdevice.h"
#define REGISTER_OUTDEV(X,x) { \
extern AVOutputFormat x##_muxer; \
if(CONFIG_##X##_OUTDEV) av_register_output_format(&x##_muxer); }
extern AVOutputFormat ff_##x##_muxer; \
if(CONFIG_##X##_OUTDEV) av_register_output_format(&ff_##x##_muxer); }
#define REGISTER_INDEV(X,x) { \
extern AVInputFormat x##_demuxer; \
if(CONFIG_##X##_INDEV) av_register_input_format(&x##_demuxer); }
extern AVInputFormat ff_##x##_demuxer; \
if(CONFIG_##X##_INDEV) av_register_input_format(&ff_##x##_demuxer); }
#define REGISTER_INOUTDEV(X,x) REGISTER_OUTDEV(X,x); REGISTER_INDEV(X,x)
void avdevice_register_all(void)
......
......@@ -163,7 +163,7 @@ static int audio_read_packet(AVFormatContext *s1, AVPacket *pkt)
return 0;
}
AVInputFormat alsa_demuxer = {
AVInputFormat ff_alsa_demuxer = {
"alsa",
NULL_IF_CONFIG_SMALL("ALSA audio input"),
sizeof(AlsaData),
......
......@@ -93,7 +93,7 @@ static int audio_write_packet(AVFormatContext *s1, AVPacket *pkt)
return 0;
}
AVOutputFormat alsa_muxer = {
AVOutputFormat ff_alsa_muxer = {
"alsa",
NULL_IF_CONFIG_SMALL("ALSA audio output"),
"",
......
......@@ -314,7 +314,7 @@ static int grab_read_close(AVFormatContext *s1)
return 0;
}
AVInputFormat bktr_demuxer = {
AVInputFormat ff_bktr_demuxer = {
"bktr",
NULL_IF_CONFIG_SMALL("video grab"),
sizeof(VideoData),
......
......@@ -227,7 +227,7 @@ static int dv1394_close(AVFormatContext * context)
return 0;
}
AVInputFormat dv1394_demuxer = {
AVInputFormat ff_dv1394_demuxer = {
.name = "dv1394",
.long_name = NULL_IF_CONFIG_SMALL("DV1394 A/V grab"),
.priv_data_size = sizeof(struct dv1394_data),
......
......@@ -314,7 +314,7 @@ static int audio_read_close(AVFormatContext *context)
return 0;
}
AVInputFormat jack_demuxer = {
AVInputFormat ff_jack_demuxer = {
"jack",
NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
sizeof(JackData),
......
......@@ -348,7 +348,7 @@ static int dc1394_v2_close(AVFormatContext * context)
return 0;
}
AVInputFormat libdc1394_demuxer = {
AVInputFormat ff_libdc1394_demuxer = {
.name = "libdc1394",
.long_name = NULL_IF_CONFIG_SMALL("dc1394 v.2 A/V grab"),
.priv_data_size = sizeof(struct dc1394_data),
......@@ -360,7 +360,7 @@ AVInputFormat libdc1394_demuxer = {
#endif
#if HAVE_LIBDC1394_1
AVInputFormat libdc1394_demuxer = {
AVInputFormat ff_libdc1394_demuxer = {
.name = "libdc1394",
.long_name = NULL_IF_CONFIG_SMALL("dc1394 v.1 A/V grab"),
.priv_data_size = sizeof(struct dc1394_data),
......
......@@ -293,7 +293,7 @@ static int audio_read_close(AVFormatContext *s1)
}
#if CONFIG_OSS_INDEV
AVInputFormat oss_demuxer = {
AVInputFormat ff_oss_demuxer = {
"oss",
NULL_IF_CONFIG_SMALL("Open Sound System capture"),
sizeof(AudioData),
......@@ -306,7 +306,7 @@ AVInputFormat oss_demuxer = {
#endif
#if CONFIG_OSS_OUTDEV
AVOutputFormat oss_muxer = {
AVOutputFormat ff_oss_muxer = {
"oss",
NULL_IF_CONFIG_SMALL("Open Sound System playback"),
"",
......
......@@ -339,7 +339,7 @@ static int grab_read_close(AVFormatContext *s1)
return 0;
}
AVInputFormat v4l_demuxer = {
AVInputFormat ff_v4l_demuxer = {
"video4linux",
NULL_IF_CONFIG_SMALL("Video4Linux device grab"),
sizeof(VideoData),
......
......@@ -680,7 +680,7 @@ static int v4l2_read_close(AVFormatContext *s1)
return 0;
}
AVInputFormat v4l2_demuxer = {
AVInputFormat ff_v4l2_demuxer = {
"video4linux2",
NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
sizeof(struct video_data),
......
......@@ -452,7 +452,7 @@ static int vfw_read_packet(AVFormatContext *s, AVPacket *pkt)
return pkt->size;
}
AVInputFormat vfwcap_demuxer = {
AVInputFormat ff_vfwcap_demuxer = {
"vfwcap",
NULL_IF_CONFIG_SMALL("VFW video capture"),
sizeof(struct vfw_ctx),
......
......@@ -442,7 +442,7 @@ x11grab_read_close(AVFormatContext *s1)
}
/** x11 grabber device demuxer declaration */
AVInputFormat x11_grab_device_demuxer =
AVInputFormat ff_x11_grab_device_demuxer =
{
"x11grab",
NULL_IF_CONFIG_SMALL("X11grab"),
......
......@@ -343,7 +343,7 @@ static int fourxm_read_close(AVFormatContext *s)
return 0;
}
AVInputFormat fourxm_demuxer = {
AVInputFormat ff_fourxm_demuxer = {
"4xm",
NULL_IF_CONFIG_SMALL("4X Technologies format"),
sizeof(FourxmDemuxContext),
......
......@@ -164,7 +164,7 @@ static int a64_write_trailer(struct AVFormatContext *s)
return 0;
}
AVOutputFormat a64_muxer = {
AVOutputFormat ff_a64_muxer = {
.name = "a64",
.long_name = NULL_IF_CONFIG_SMALL("a64 - video for Commodore 64"),
.mime_type = NULL,
......
......@@ -81,7 +81,7 @@ static int adts_aac_read_header(AVFormatContext *s,
return 0;
}
AVInputFormat aac_demuxer = {
AVInputFormat ff_aac_demuxer = {
"aac",
NULL_IF_CONFIG_SMALL("raw ADTS AAC"),
0,
......
......@@ -70,7 +70,7 @@ static int ac3_probe(AVProbeData *p)
return ac3_eac3_probe(p, CODEC_ID_AC3);
}
AVInputFormat ac3_demuxer = {
AVInputFormat ff_ac3_demuxer = {
"ac3",
NULL_IF_CONFIG_SMALL("raw AC-3"),
0,
......@@ -89,7 +89,7 @@ static int eac3_probe(AVProbeData *p)
return ac3_eac3_probe(p, CODEC_ID_EAC3);
}
AVInputFormat eac3_demuxer = {
AVInputFormat ff_eac3_demuxer = {
"eac3",
NULL_IF_CONFIG_SMALL("raw E-AC-3"),
0,
......
......@@ -137,7 +137,7 @@ static int adts_write_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
AVOutputFormat adts_muxer = {
AVOutputFormat ff_adts_muxer = {
"adts",
NULL_IF_CONFIG_SMALL("ADTS AAC"),
"audio/aac",
......
......@@ -93,7 +93,7 @@ static int aea_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
AVInputFormat aea_demuxer = {
AVInputFormat ff_aea_demuxer = {
"aea",
NULL_IF_CONFIG_SMALL("MD STUDIO audio"),
0,
......
......@@ -311,7 +311,7 @@ static int aiff_read_packet(AVFormatContext *s,
return 0;
}
AVInputFormat aiff_demuxer = {
AVInputFormat ff_aiff_demuxer = {
"aiff",
NULL_IF_CONFIG_SMALL("Audio IFF"),
sizeof(AIFFInputContext),
......
......@@ -145,7 +145,7 @@ static int aiff_write_trailer(AVFormatContext *s)
return 0;
}
AVOutputFormat aiff_muxer = {
AVOutputFormat ff_aiff_muxer = {
"aiff",
NULL_IF_CONFIG_SMALL("Audio IFF"),
"audio/aiff",
......
......@@ -23,18 +23,18 @@
#include "rdt.h"
#define REGISTER_MUXER(X,x) { \
extern AVOutputFormat x##_muxer; \
if(CONFIG_##X##_MUXER) av_register_output_format(&x##_muxer); }
extern AVOutputFormat ff_##x##_muxer; \
if(CONFIG_##X##_MUXER) av_register_output_format(&ff_##x##_muxer); }
#define REGISTER_DEMUXER(X,x) { \
extern AVInputFormat x##_demuxer; \
if(CONFIG_##X##_DEMUXER) av_register_input_format(&x##_demuxer); }
extern AVInputFormat ff_##x##_demuxer; \
if(CONFIG_##X##_DEMUXER) av_register_input_format(&ff_##x##_demuxer); }
#define REGISTER_MUXDEMUX(X,x) REGISTER_MUXER(X,x); REGISTER_DEMUXER(X,x)
#define REGISTER_PROTOCOL(X,x) { \
extern URLProtocol x##_protocol; \
if(CONFIG_##X##_PROTOCOL) av_register_protocol2(&x##_protocol, sizeof(x##_protocol)); }
extern URLProtocol ff_##x##_protocol; \
if(CONFIG_##X##_PROTOCOL) av_register_protocol2(&ff_##x##_protocol, sizeof(ff_##x##_protocol)); }
void av_register_all(void)
{
......
......@@ -169,7 +169,7 @@ static int amr_read_packet(AVFormatContext *s,
}
#if CONFIG_AMR_DEMUXER
AVInputFormat amr_demuxer = {
AVInputFormat ff_amr_demuxer = {
"amr",
NULL_IF_CONFIG_SMALL("3GPP AMR file format"),
0, /*priv_data_size*/
......@@ -181,7 +181,7 @@ AVInputFormat amr_demuxer = {
#endif
#if CONFIG_AMR_MUXER
AVOutputFormat amr_muxer = {
AVOutputFormat ff_amr_muxer = {
"amr",
NULL_IF_CONFIG_SMALL("3GPP AMR file format"),
"audio/amr",
......
......@@ -225,7 +225,7 @@ repeat:
return 0;
}
AVInputFormat anm_demuxer = {
AVInputFormat ff_anm_demuxer = {
"anm",
NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
sizeof(AnmDemuxContext),
......
......@@ -80,7 +80,7 @@ static int apc_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
AVInputFormat apc_demuxer = {
AVInputFormat ff_apc_demuxer = {
"apc",
NULL_IF_CONFIG_SMALL("CRYO APC format"),
0,
......
......@@ -391,7 +391,7 @@ static int ape_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
AVInputFormat ape_demuxer = {
AVInputFormat ff_ape_demuxer = {
"ape",
NULL_IF_CONFIG_SMALL("Monkey's Audio"),
sizeof(APEContext),
......
......@@ -579,7 +579,7 @@ static int applehttp_probe(AVProbeData *p)
return 0;
}
AVInputFormat applehttp_demuxer = {
AVInputFormat ff_applehttp_demuxer = {
"applehttp",
NULL_IF_CONFIG_SMALL("Apple HTTP Live Streaming format"),
sizeof(AppleHTTPContext),
......
......@@ -229,7 +229,7 @@ extern const AVMetadataConv ff_asf_metadata_conv[];
#define ASF_PL_FLAG_KEY_FRAME 0x80 //1000 0000
extern AVInputFormat asf_demuxer;
extern AVInputFormat ff_asf_demuxer;
int ff_guidcmp(const void *g1, const void *g2);
void ff_get_guid(ByteIOContext *s, ff_asf_guid *g);
......
......@@ -1203,7 +1203,7 @@ static int asf_read_seek(AVFormatContext *s, int stream_index, int64_t pts, int
return 0;
}
AVInputFormat asf_demuxer = {
AVInputFormat ff_asf_demuxer = {
"asf",
NULL_IF_CONFIG_SMALL("ASF format"),
sizeof(ASFContext),
......
......@@ -855,7 +855,7 @@ static int asf_write_trailer(AVFormatContext *s)
}
#if CONFIG_ASF_MUXER
AVOutputFormat asf_muxer = {
AVOutputFormat ff_asf_muxer = {
"asf",
NULL_IF_CONFIG_SMALL("ASF format"),
"video/x-ms-asf",
......@@ -876,7 +876,7 @@ AVOutputFormat asf_muxer = {
#endif
#if CONFIG_ASF_STREAM_MUXER
AVOutputFormat asf_stream_muxer = {
AVOutputFormat ff_asf_stream_muxer = {
"asf_stream",
NULL_IF_CONFIG_SMALL("ASF format"),
"video/x-ms-asf",
......
......@@ -202,7 +202,7 @@ static int read_seek2(AVFormatContext *s, int stream_index,
return 0;
}
AVInputFormat ass_demuxer = {
AVInputFormat ff_ass_demuxer = {
.name = "ass",
.long_name = NULL_IF_CONFIG_SMALL("Advanced SubStation Alpha subtitle format"),
.priv_data_size = sizeof(ASSContext),
......
......@@ -77,7 +77,7 @@ static int write_trailer(AVFormatContext *s)
return 0;
}
AVOutputFormat ass_muxer = {
AVOutputFormat ff_ass_muxer = {
.name = "ass",
.long_name = NULL_IF_CONFIG_SMALL("Advanced SubStation Alpha subtitle format"),
.mime_type = "text/x-ssa",
......
......@@ -183,7 +183,7 @@ static int au_read_packet(AVFormatContext *s,
}
#if CONFIG_AU_DEMUXER
AVInputFormat au_demuxer = {
AVInputFormat ff_au_demuxer = {
"au",
NULL_IF_CONFIG_SMALL("SUN AU format"),
0,
......@@ -197,7 +197,7 @@ AVInputFormat au_demuxer = {
#endif
#if CONFIG_AU_MUXER
AVOutputFormat au_muxer = {
AVOutputFormat ff_au_muxer = {
"au",
NULL_IF_CONFIG_SMALL("SUN AU format"),
"audio/basic",
......
......@@ -1373,7 +1373,7 @@ static int avi_probe(AVProbeData *p)
return 0;
}
AVInputFormat avi_demuxer = {
AVInputFormat ff_avi_demuxer = {
"avi",
NULL_IF_CONFIG_SMALL("AVI format"),
sizeof(AVIContext),
......
......@@ -630,7 +630,7 @@ static int avi_write_trailer(AVFormatContext *s)
return res;
}
AVOutputFormat avi_muxer = {
AVOutputFormat ff_avi_muxer = {
"avi",
NULL_IF_CONFIG_SMALL("AVI format"),
"video/x-msvideo",
......
......@@ -207,7 +207,7 @@ static int avisynth_read_seek(AVFormatContext *s, int stream_index, int64_t pts,
return 0;
}
AVInputFormat avisynth_demuxer = {
AVInputFormat ff_avisynth_demuxer = {
"avs",
NULL_IF_CONFIG_SMALL("AVISynth"),
sizeof(AVISynthContext),
......
......@@ -215,7 +215,7 @@ static int avs_read_close(AVFormatContext * s)
return 0;
}
AVInputFormat avs_demuxer = {
AVInputFormat ff_avs_demuxer = {
"avs",
NULL_IF_CONFIG_SMALL("AVS format"),
sizeof(AvsFormat),
......
......@@ -224,7 +224,7 @@ static int vid_read_packet(AVFormatContext *s,
return 0;
}
AVInputFormat bethsoftvid_demuxer = {
AVInputFormat ff_bethsoftvid_demuxer = {
"bethsoftvid",
NULL_IF_CONFIG_SMALL("Bethesda Softworks VID format"),
sizeof(BVID_DemuxContext),
......
......@@ -158,7 +158,7 @@ static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt)
return ret;
}
AVInputFormat bfi_demuxer = {
AVInputFormat ff_bfi_demuxer = {
"bfi",
NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
sizeof(BFIContext),
......
......@@ -257,7 +257,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
return 0;
}
AVInputFormat bink_demuxer = {
AVInputFormat ff_bink_demuxer = {
"bink",
NULL_IF_CONFIG_SMALL("Bink"),
sizeof(BinkDemuxContext),
......
......@@ -192,7 +192,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
AVInputFormat c93_demuxer = {
AVInputFormat ff_c93_demuxer = {
"c93",
NULL_IF_CONFIG_SMALL("Interplay C93"),
sizeof(C93DemuxContext),
......
......@@ -381,7 +381,7 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
AVInputFormat caf_demuxer = {
AVInputFormat ff_caf_demuxer = {
"caf",
NULL_IF_CONFIG_SMALL("Apple Core Audio Format"),
sizeof(CaffContext),
......
......@@ -65,7 +65,7 @@ static int cavsvideo_probe(AVProbeData *p)
return 0;
}
AVInputFormat cavsvideo_demuxer = {
AVInputFormat ff_cavsvideo_demuxer = {
"cavsvideo",
NULL_IF_CONFIG_SMALL("raw Chinese AVS video"),
0,
......
......@@ -55,7 +55,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
AVInputFormat cdg_demuxer = {
AVInputFormat ff_cdg_demuxer = {
"cdg",
NULL_IF_CONFIG_SMALL("CD Graphics Format"),
0,
......
......@@ -188,7 +188,7 @@ static int64_t concat_seek(URLContext *h, int64_t pos, int whence)
return result;
}
URLProtocol concat_protocol = {
URLProtocol ff_concat_protocol = {
"concat",
concat_open,
concat_read,
......
......@@ -54,7 +54,7 @@ static int crc_write_trailer(struct AVFormatContext *s)
return 0;
}
AVOutputFormat crc_muxer = {
AVOutputFormat ff_crc_muxer = {
"crc",
NULL_IF_CONFIG_SMALL("CRC testing format"),
NULL,
......
......@@ -65,7 +65,7 @@ static int daud_write_packet(struct AVFormatContext *s, AVPacket *pkt)
}
#if CONFIG_DAUD_DEMUXER
AVInputFormat daud_demuxer = {
AVInputFormat ff_daud_demuxer = {
"daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
0,
......@@ -79,7 +79,7 @@ AVInputFormat daud_demuxer = {
#endif
#if CONFIG_DAUD_MUXER
AVOutputFormat daud_muxer =
AVOutputFormat ff_daud_muxer =
{
"daud",
NULL_IF_CONFIG_SMALL("D-Cinema audio format"),
......
......@@ -31,7 +31,7 @@ static int dirac_probe(AVProbeData *p)
return 0;
}
AVInputFormat dirac_demuxer = {
AVInputFormat ff_dirac_demuxer = {
"dirac",
NULL_IF_CONFIG_SMALL("raw Dirac"),
0,
......
......@@ -42,7 +42,7 @@ static int dnxhd_probe(AVProbeData *p)
return AVPROBE_SCORE_MAX;
}
AVInputFormat dnxhd_demuxer = {
AVInputFormat ff_dnxhd_demuxer = {
"dnxhd",
NULL_IF_CONFIG_SMALL("raw DNxHD (SMPTE VC-3)"),
0,
......
......@@ -216,7 +216,7 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
AVInputFormat dsicin_demuxer = {
AVInputFormat ff_dsicin_demuxer = {
"dsicin",
NULL_IF_CONFIG_SMALL("Delphine Software International CIN format"),
sizeof(CinDemuxContext),
......
......@@ -65,7 +65,7 @@ static int dts_probe(AVProbeData *p)
return 0;
}
AVInputFormat dts_demuxer = {
AVInputFormat ff_dts_demuxer = {
"dts",
NULL_IF_CONFIG_SMALL("raw DTS"),
0,
......
......@@ -518,7 +518,7 @@ static int dv_probe(AVProbeData *p)
}
#if CONFIG_DV_DEMUXER
AVInputFormat dv_demuxer = {
AVInputFormat ff_dv_demuxer = {
"dv",
NULL_IF_CONFIG_SMALL("DV video format"),
sizeof(RawDVContext),
......
......@@ -399,7 +399,7 @@ static int dv_write_trailer(struct AVFormatContext *s)
return 0;
}
AVOutputFormat dv_muxer = {
AVOutputFormat ff_dv_muxer = {
"dv",
NULL_IF_CONFIG_SMALL("DV video format"),
NULL,
......
......@@ -209,7 +209,7 @@ static int dxa_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR(EIO);
}
AVInputFormat dxa_demuxer = {
AVInputFormat ff_dxa_demuxer = {
"dxa",
NULL_IF_CONFIG_SMALL("DXA"),
sizeof(DXAContext),
......
......@@ -90,7 +90,7 @@ static int cdata_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
AVInputFormat ea_cdata_demuxer = {
AVInputFormat ff_ea_cdata_demuxer = {
"ea_cdata",
NULL_IF_CONFIG_SMALL("Electronic Arts cdata"),
sizeof(CdataDemuxContext),
......
......@@ -568,7 +568,7 @@ get_video_packet:
return ret;
}
AVInputFormat ea_demuxer = {
AVInputFormat ff_ea_demuxer = {
"ea",
NULL_IF_CONFIG_SMALL("Electronic Arts Multimedia Format"),
sizeof(EaDemuxContext),
......
......@@ -518,7 +518,7 @@ static int ffm_probe(AVProbeData *p)
return 0;
}
AVInputFormat ffm_demuxer = {
AVInputFormat ff_ffm_demuxer = {
"ffm",
NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"),
sizeof(FFMContext),
......
......@@ -240,7 +240,7 @@ static int ffm_write_trailer(AVFormatContext *s)
return 0;
}
AVOutputFormat ffm_muxer = {
AVOutputFormat ff_ffm_muxer = {
"ffm",
NULL_IF_CONFIG_SMALL("FFM (FFserver live feed) format"),
"",
......
......@@ -163,7 +163,7 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
AVInputFormat ffmetadata_demuxer = {
AVInputFormat ff_ffmetadata_demuxer = {
.name = "ffmetadata",
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text format"),
.read_probe = probe,
......
......@@ -89,7 +89,7 @@ static int write_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
AVOutputFormat ffmetadata_muxer = {
AVOutputFormat ff_ffmetadata_muxer = {
.name = "ffmetadata",
.long_name = NULL_IF_CONFIG_SMALL("FFmpeg metadata in text format"),
.extensions = "ffmeta",
......
......@@ -94,7 +94,7 @@ static int file_close(URLContext *h)
return close(fd);
}
URLProtocol file_protocol = {
URLProtocol ff_file_protocol = {
"file",
file_open,
file_read,
......@@ -130,7 +130,7 @@ static int pipe_open(URLContext *h, const char *filename, int flags)
return 0;
}
URLProtocol pipe_protocol = {
URLProtocol ff_pipe_protocol = {
"pipe",
pipe_open,
file_read,
......
......@@ -98,7 +98,7 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
return 0;
}
AVInputFormat filmstrip_demuxer = {
</