avformat/avformat: Add FFInputFormat, hide internals of AVInputFormat

This commit does for AVInputFormat what commit
59c9dc82f4 did for AVOutputFormat:
It adds a new type FFInputFormat, moves all the internals
of AVInputFormat to it and adds a now reduced AVInputFormat
as first member.

This does not affect/improve extensibility of both public
or private fields for demuxers (it is still a mess due to lavd).

This is possible since 50f34172e0
(which removed the last usage of an internal field of AVInputFormat
in fftools).

(Hint: tools/probetest.c accesses the internals of FFInputFormat
as well, but given that it is a testing tool this is not considered
a problem.)

Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
Andreas Rheinhardt 2024-02-10 15:50:43 +01:00 committed by James Almer
parent bb81c60927
commit b800327f4c
300 changed files with 2187 additions and 1948 deletions

8
configure vendored
View File

@ -4128,9 +4128,9 @@ find_filters_extern(){
FILTER_LIST=$(find_filters_extern libavfilter/allfilters.c)
OUTDEV_LIST=$(find_things_extern muxer FFOutputFormat libavdevice/alldevices.c outdev)
INDEV_LIST=$(find_things_extern demuxer AVInputFormat libavdevice/alldevices.c indev)
INDEV_LIST=$(find_things_extern demuxer FFInputFormat libavdevice/alldevices.c indev)
MUXER_LIST=$(find_things_extern muxer FFOutputFormat libavformat/allformats.c)
DEMUXER_LIST=$(find_things_extern demuxer AVInputFormat libavformat/allformats.c)
DEMUXER_LIST=$(find_things_extern demuxer FFInputFormat libavformat/allformats.c)
ENCODER_LIST=$(find_things_extern encoder FFCodec libavcodec/allcodecs.c)
DECODER_LIST=$(find_things_extern decoder FFCodec libavcodec/allcodecs.c)
CODEC_LIST="
@ -8202,9 +8202,9 @@ print_enabled_components libavfilter/filter_list.c AVFilter filter_list $FILTER_
print_enabled_components libavcodec/codec_list.c FFCodec codec_list $CODEC_LIST
print_enabled_components libavcodec/parser_list.c AVCodecParser parser_list $PARSER_LIST
print_enabled_components libavcodec/bsf_list.c FFBitStreamFilter bitstream_filters $BSF_LIST
print_enabled_components libavformat/demuxer_list.c AVInputFormat demuxer_list $DEMUXER_LIST
print_enabled_components libavformat/demuxer_list.c FFInputFormat demuxer_list $DEMUXER_LIST
print_enabled_components libavformat/muxer_list.c FFOutputFormat muxer_list $MUXER_LIST
print_enabled_components libavdevice/indev_list.c AVInputFormat indev_list $INDEV_LIST
print_enabled_components libavdevice/indev_list.c FFInputFormat indev_list $INDEV_LIST
print_enabled_components libavdevice/outdev_list.c FFOutputFormat outdev_list $OUTDEV_LIST
print_enabled_components libavformat/protocol_list.c URLProtocol url_protocols $PROTOCOL_LIST

View File

@ -18,46 +18,47 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavformat/mux.h"
#include "avdevice.h"
/* devices */
extern const AVInputFormat ff_alsa_demuxer;
extern const FFInputFormat ff_alsa_demuxer;
extern const FFOutputFormat ff_alsa_muxer;
extern const AVInputFormat ff_android_camera_demuxer;
extern const FFInputFormat ff_android_camera_demuxer;
extern const FFOutputFormat ff_audiotoolbox_muxer;
extern const AVInputFormat ff_avfoundation_demuxer;
extern const AVInputFormat ff_bktr_demuxer;
extern const FFInputFormat ff_avfoundation_demuxer;
extern const FFInputFormat ff_bktr_demuxer;
extern const FFOutputFormat ff_caca_muxer;
extern const AVInputFormat ff_decklink_demuxer;
extern const FFInputFormat ff_decklink_demuxer;
extern const FFOutputFormat ff_decklink_muxer;
extern const AVInputFormat ff_dshow_demuxer;
extern const AVInputFormat ff_fbdev_demuxer;
extern const FFInputFormat ff_dshow_demuxer;
extern const FFInputFormat ff_fbdev_demuxer;
extern const FFOutputFormat ff_fbdev_muxer;
extern const AVInputFormat ff_gdigrab_demuxer;
extern const AVInputFormat ff_iec61883_demuxer;
extern const AVInputFormat ff_jack_demuxer;
extern const AVInputFormat ff_kmsgrab_demuxer;
extern const AVInputFormat ff_lavfi_demuxer;
extern const AVInputFormat ff_openal_demuxer;
extern const FFInputFormat ff_gdigrab_demuxer;
extern const FFInputFormat ff_iec61883_demuxer;
extern const FFInputFormat ff_jack_demuxer;
extern const FFInputFormat ff_kmsgrab_demuxer;
extern const FFInputFormat ff_lavfi_demuxer;
extern const FFInputFormat ff_openal_demuxer;
extern const FFOutputFormat ff_opengl_muxer;
extern const AVInputFormat ff_oss_demuxer;
extern const FFInputFormat ff_oss_demuxer;
extern const FFOutputFormat ff_oss_muxer;
extern const AVInputFormat ff_pulse_demuxer;
extern const FFInputFormat ff_pulse_demuxer;
extern const FFOutputFormat ff_pulse_muxer;
extern const FFOutputFormat ff_sdl2_muxer;
extern const AVInputFormat ff_sndio_demuxer;
extern const FFInputFormat ff_sndio_demuxer;
extern const FFOutputFormat ff_sndio_muxer;
extern const AVInputFormat ff_v4l2_demuxer;
extern const FFInputFormat ff_v4l2_demuxer;
extern const FFOutputFormat ff_v4l2_muxer;
extern const AVInputFormat ff_vfwcap_demuxer;
extern const AVInputFormat ff_xcbgrab_demuxer;
extern const FFInputFormat ff_vfwcap_demuxer;
extern const FFInputFormat ff_xcbgrab_demuxer;
extern const FFOutputFormat ff_xv_muxer;
/* external libraries */
extern const AVInputFormat ff_libcdio_demuxer;
extern const AVInputFormat ff_libdc1394_demuxer;
extern const FFInputFormat ff_libcdio_demuxer;
extern const FFInputFormat ff_libdc1394_demuxer;
#include "libavdevice/outdev_list.c"
#include "libavdevice/indev_list.c"
@ -72,12 +73,12 @@ static const void *next_input(const AVInputFormat *prev, AVClassCategory c2)
const AVClass *pc;
const AVClassCategory c1 = AV_CLASS_CATEGORY_DEVICE_INPUT;
AVClassCategory category = AV_CLASS_CATEGORY_NA;
const AVInputFormat *fmt = NULL;
const FFInputFormat *fmt = NULL;
int i = 0;
while (prev && (fmt = indev_list[i])) {
i++;
if (prev == fmt)
if (prev == &fmt->p)
break;
}
@ -85,7 +86,7 @@ static const void *next_input(const AVInputFormat *prev, AVClassCategory c2)
fmt = indev_list[i++];
if (!fmt)
break;
pc = fmt->priv_class;
pc = fmt->p.priv_class;
if (!pc)
continue;
category = pc->category;

View File

@ -52,6 +52,7 @@
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
@ -157,14 +158,14 @@ static const AVClass alsa_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_alsa_demuxer = {
.name = "alsa",
.long_name = NULL_IF_CONFIG_SMALL("ALSA audio input"),
const FFInputFormat ff_alsa_demuxer = {
.p.name = "alsa",
.p.long_name = NULL_IF_CONFIG_SMALL("ALSA audio input"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &alsa_demuxer_class,
.priv_data_size = sizeof(AlsaData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = ff_alsa_close,
.get_device_list = audio_get_device_list,
.flags = AVFMT_NOFILE,
.priv_class = &alsa_demuxer_class,
};

View File

@ -33,6 +33,7 @@
#include <media/NdkImageReader.h>
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavutil/avstring.h"
#include "libavutil/display.h"
@ -860,13 +861,13 @@ static const AVClass android_camera_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_android_camera_demuxer = {
.name = "android_camera",
.long_name = NULL_IF_CONFIG_SMALL("Android camera input device"),
const FFInputFormat ff_android_camera_demuxer = {
.p.name = "android_camera",
.p.long_name = NULL_IF_CONFIG_SMALL("Android camera input device"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &android_camera_class,
.priv_data_size = sizeof(AndroidCameraCtx),
.read_header = android_camera_read_header,
.read_packet = android_camera_read_packet,
.read_close = android_camera_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &android_camera_class,
};

View File

@ -19,6 +19,7 @@
#include "libavutil/avassert.h"
#include "avdevice.h"
#include "internal.h"
#include "libavformat/demux.h"
#include "libavformat/mux.h"
int avdevice_app_to_dev_control_message(struct AVFormatContext *s, enum AVAppToDevMessageType type,
@ -44,7 +45,7 @@ int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
av_assert0(device_list);
av_assert0(s->oformat || s->iformat);
if ((s->oformat && !ffofmt(s->oformat)->get_device_list) ||
(s->iformat && !s->iformat->get_device_list)) {
(s->iformat && !ffifmt(s->iformat)->get_device_list)) {
*device_list = NULL;
return AVERROR(ENOSYS);
}
@ -56,7 +57,7 @@ int avdevice_list_devices(AVFormatContext *s, AVDeviceInfoList **device_list)
if (s->oformat)
ret = ffofmt(s->oformat)->get_device_list(s, *device_list);
else
ret = s->iformat->get_device_list(s, *device_list);
ret = ffifmt(s->iformat)->get_device_list(s, *device_list);
if (ret < 0) {
avdevice_free_list_devices(device_list);
return ret;

View File

@ -24,6 +24,7 @@
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavutil/file_open.h"
#include "libavutil/internal.h"
@ -352,13 +353,13 @@ static const AVClass bktr_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_bktr_demuxer = {
.name = "bktr",
.long_name = NULL_IF_CONFIG_SMALL("video grab"),
const FFInputFormat ff_bktr_demuxer = {
.p.name = "bktr",
.p.long_name = NULL_IF_CONFIG_SMALL("video grab"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &bktr_class,
.priv_data_size = sizeof(VideoData),
.read_header = grab_read_header,
.read_packet = grab_read_packet,
.read_close = grab_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &bktr_class,
};

View File

@ -21,6 +21,7 @@
*/
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavutil/opt.h"
#include "decklink_common_c.h"
@ -111,11 +112,11 @@ static const AVClass decklink_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_decklink_demuxer = {
.name = "decklink",
.long_name = NULL_IF_CONFIG_SMALL("Blackmagic DeckLink input"),
.flags = AVFMT_NOFILE,
.priv_class = &decklink_demuxer_class,
const FFInputFormat ff_decklink_demuxer = {
.p.name = "decklink",
.p.long_name = NULL_IF_CONFIG_SMALL("Blackmagic DeckLink input"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &decklink_demuxer_class,
.priv_data_size = sizeof(struct decklink_cctx),
.get_device_list = ff_decklink_list_input_devices,
.read_header = ff_decklink_read_header,

View File

@ -24,6 +24,7 @@
#include "libavutil/pixdesc.h"
#include "libavutil/opt.h"
#include "libavutil/mem.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavformat/riff.h"
#include "avdevice.h"
@ -1924,14 +1925,15 @@ static const AVClass dshow_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_dshow_demuxer = {
.name = "dshow",
.long_name = NULL_IF_CONFIG_SMALL("DirectShow capture"),
const FFInputFormat ff_dshow_demuxer = {
.p.name = "dshow",
.p.long_name = NULL_IF_CONFIG_SMALL("DirectShow capture"),
.p.flags = AVFMT_NOFILE | AVFMT_NOBINSEARCH |
AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
.p.priv_class = &dshow_class,
.priv_data_size = sizeof(struct dshow_ctx),
.read_header = dshow_read_header,
.read_packet = dshow_read_packet,
.read_close = dshow_read_close,
.get_device_list= dshow_get_device_list,
.flags = AVFMT_NOFILE | AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
.priv_class = &dshow_class,
};

View File

@ -41,6 +41,7 @@
#include "libavutil/time.h"
#include "libavutil/parseutils.h"
#include "libavutil/pixdesc.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
#include "fbdev_common.h"
@ -232,14 +233,14 @@ static const AVClass fbdev_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_fbdev_demuxer = {
.name = "fbdev",
.long_name = NULL_IF_CONFIG_SMALL("Linux framebuffer"),
const FFInputFormat ff_fbdev_demuxer = {
.p.name = "fbdev",
.p.long_name = NULL_IF_CONFIG_SMALL("Linux framebuffer"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &fbdev_class,
.priv_data_size = sizeof(FBDevContext),
.read_header = fbdev_read_header,
.read_packet = fbdev_read_packet,
.read_close = fbdev_read_close,
.get_device_list = fbdev_get_device_list,
.flags = AVFMT_NOFILE,
.priv_class = &fbdev_class,
};

View File

@ -29,6 +29,7 @@
*/
#include "config.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavutil/opt.h"
#include "libavutil/time.h"
@ -677,13 +678,13 @@ static const AVClass gdigrab_class = {
};
/** gdi grabber device demuxer declaration */
const AVInputFormat ff_gdigrab_demuxer = {
.name = "gdigrab",
.long_name = NULL_IF_CONFIG_SMALL("GDI API Windows frame grabber"),
const FFInputFormat ff_gdigrab_demuxer = {
.p.name = "gdigrab",
.p.long_name = NULL_IF_CONFIG_SMALL("GDI API Windows frame grabber"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &gdigrab_class,
.priv_data_size = sizeof(struct gdigrab),
.read_header = gdigrab_read_header,
.read_packet = gdigrab_read_packet,
.read_close = gdigrab_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &gdigrab_class,
};

View File

@ -30,6 +30,7 @@
#include <libavc1394/avc1394.h>
#include <libavc1394/rom1394.h>
#include <libiec61883/iec61883.h>
#include "libavformat/demux.h"
#include "libavformat/dv.h"
#include "libavformat/mpegts.h"
#include "libavutil/opt.h"
@ -502,13 +503,13 @@ static const AVClass iec61883_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_iec61883_demuxer = {
.name = "iec61883",
.long_name = NULL_IF_CONFIG_SMALL("libiec61883 (new DV1394) A/V input device"),
const FFInputFormat ff_iec61883_demuxer = {
.p.name = "iec61883",
.p.long_name = NULL_IF_CONFIG_SMALL("libiec61883 (new DV1394) A/V input device"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &iec61883_class,
.priv_data_size = sizeof(struct iec61883_data),
.read_header = iec61883_read_header,
.read_packet = iec61883_read_packet,
.read_close = iec61883_close,
.flags = AVFMT_NOFILE,
.priv_class = &iec61883_class,
};

View File

@ -30,6 +30,7 @@
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "timefilter.h"
#include "avdevice.h"
@ -341,13 +342,13 @@ static const AVClass jack_indev_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_jack_demuxer = {
.name = "jack",
.long_name = NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
const FFInputFormat ff_jack_demuxer = {
.p.name = "jack",
.p.long_name = NULL_IF_CONFIG_SMALL("JACK Audio Connection Kit"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &jack_indev_class,
.priv_data_size = sizeof(JackData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = audio_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &jack_indev_class,
};

View File

@ -42,6 +42,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
typedef struct KMSGrabContext {
@ -708,13 +709,13 @@ static const AVClass kmsgrab_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_kmsgrab_demuxer = {
.name = "kmsgrab",
.long_name = NULL_IF_CONFIG_SMALL("KMS screen capture"),
const FFInputFormat ff_kmsgrab_demuxer = {
.p.name = "kmsgrab",
.p.long_name = NULL_IF_CONFIG_SMALL("KMS screen capture"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &kmsgrab_class,
.priv_data_size = sizeof(KMSGrabContext),
.read_header = &kmsgrab_read_header,
.read_packet = &kmsgrab_read_packet,
.read_close = &kmsgrab_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &kmsgrab_class,
};

View File

@ -39,6 +39,7 @@
#include "libavutil/pixdesc.h"
#include "libavfilter/avfilter.h"
#include "libavfilter/buffersink.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
@ -493,14 +494,14 @@ static const AVClass lavfi_class = {
.category = AV_CLASS_CATEGORY_DEVICE_INPUT,
};
const AVInputFormat ff_lavfi_demuxer = {
.name = "lavfi",
.long_name = NULL_IF_CONFIG_SMALL("Libavfilter virtual input device"),
const FFInputFormat ff_lavfi_demuxer = {
.p.name = "lavfi",
.p.long_name = NULL_IF_CONFIG_SMALL("Libavfilter virtual input device"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &lavfi_class,
.priv_data_size = sizeof(LavfiContext),
.read_header = lavfi_read_header,
.read_packet = lavfi_read_packet,
.read_close = lavfi_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &lavfi_class,
.flags_internal = FF_FMT_INIT_CLEANUP,
};

View File

@ -180,13 +180,13 @@ static const AVClass libcdio_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_libcdio_demuxer = {
.name = "libcdio",
const FFInputFormat ff_libcdio_demuxer = {
.p.name = "libcdio",
.p.flags = AVFMT_NOFILE,
.p.priv_class = &libcdio_class,
.read_header = read_header,
.read_packet = read_packet,
.read_close = read_close,
.read_seek = read_seek,
.priv_data_size = sizeof(CDIOContext),
.flags = AVFMT_NOFILE,
.priv_class = &libcdio_class,
};

View File

@ -31,6 +31,7 @@
#include "libavutil/pixdesc.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
typedef struct dc1394_data {
@ -288,13 +289,13 @@ static int dc1394_close(AVFormatContext * context)
return 0;
}
const AVInputFormat ff_libdc1394_demuxer = {
.name = "libdc1394",
.long_name = NULL_IF_CONFIG_SMALL("dc1394 v.2 A/V grab"),
const FFInputFormat ff_libdc1394_demuxer = {
.p.name = "libdc1394",
.p.long_name = NULL_IF_CONFIG_SMALL("dc1394 v.2 A/V grab"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &libdc1394_class,
.priv_data_size = sizeof(struct dc1394_data),
.read_header = dc1394_read_header,
.read_packet = dc1394_read_packet,
.read_close = dc1394_close,
.flags = AVFMT_NOFILE,
.priv_class = &libdc1394_class,
};

View File

@ -26,6 +26,7 @@
#include "libavutil/opt.h"
#include "libavutil/time.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "avdevice.h"
@ -248,14 +249,14 @@ static const AVClass class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_openal_demuxer = {
.name = "openal",
.long_name = NULL_IF_CONFIG_SMALL("OpenAL audio capture device"),
const FFInputFormat ff_openal_demuxer = {
.p.name = "openal",
.p.long_name = NULL_IF_CONFIG_SMALL("OpenAL audio capture device"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &class,
.priv_data_size = sizeof(al_data),
.read_probe = NULL,
.read_header = read_header,
.read_packet = read_packet,
.read_close = read_close,
.flags = AVFMT_NOFILE,
.priv_class = &class
};

View File

@ -35,6 +35,7 @@
#include "libavutil/time.h"
#include "avdevice.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "oss.h"
@ -130,13 +131,13 @@ static const AVClass oss_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_oss_demuxer = {
.name = "oss",
.long_name = NULL_IF_CONFIG_SMALL("OSS (Open Sound System) capture"),
const FFInputFormat ff_oss_demuxer = {
.p.name = "oss",
.p.long_name = NULL_IF_CONFIG_SMALL("OSS (Open Sound System) capture"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &oss_demuxer_class,
.priv_data_size = sizeof(OSSAudioData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = audio_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &oss_demuxer_class,
};

View File

@ -29,6 +29,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavformat/version.h"
#include "pulse_audio_common.h"
@ -393,14 +394,14 @@ static const AVClass pulse_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_pulse_demuxer = {
.name = "pulse",
.long_name = NULL_IF_CONFIG_SMALL("Pulse audio input"),
const FFInputFormat ff_pulse_demuxer = {
.p.name = "pulse",
.p.long_name = NULL_IF_CONFIG_SMALL("Pulse audio input"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &pulse_demuxer_class,
.priv_data_size = sizeof(PulseData),
.read_header = pulse_read_header,
.read_packet = pulse_read_packet,
.read_close = pulse_close,
.get_device_list = pulse_get_device_list,
.flags = AVFMT_NOFILE,
.priv_class = &pulse_demuxer_class,
};

View File

@ -27,6 +27,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
#include "libavdevice/sndio.h"
@ -109,13 +110,13 @@ static const AVClass sndio_demuxer_class = {
.category = AV_CLASS_CATEGORY_DEVICE_AUDIO_INPUT,
};
const AVInputFormat ff_sndio_demuxer = {
.name = "sndio",
.long_name = NULL_IF_CONFIG_SMALL("sndio audio capture"),
const FFInputFormat ff_sndio_demuxer = {
.p.name = "sndio",
.p.long_name = NULL_IF_CONFIG_SMALL("sndio audio capture"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &sndio_demuxer_class,
.priv_data_size = sizeof(SndioData),
.read_header = audio_read_header,
.read_packet = audio_read_packet,
.read_close = audio_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &sndio_demuxer_class,
};

View File

@ -19,6 +19,7 @@
#include "internal.h"
#include "libavutil/opt.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
int ff_alloc_input_device_context(AVFormatContext **avctx, const AVInputFormat *iformat, const char *format)
{
@ -38,8 +39,8 @@ int ff_alloc_input_device_context(AVFormatContext **avctx, const AVInputFormat *
goto error;
}
s->iformat = iformat;
if (s->iformat->priv_data_size > 0) {
s->priv_data = av_mallocz(s->iformat->priv_data_size);
if (ffifmt(s->iformat)->priv_data_size > 0) {
s->priv_data = av_mallocz(ffifmt(s->iformat)->priv_data_size);
if (!s->priv_data) {
ret = AVERROR(ENOMEM);
goto error;

View File

@ -1134,15 +1134,15 @@ static const AVClass v4l2_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT,
};
const AVInputFormat ff_v4l2_demuxer = {
.name = "video4linux2,v4l2",
.long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
const FFInputFormat ff_v4l2_demuxer = {
.p.name = "video4linux2,v4l2",
.p.long_name = NULL_IF_CONFIG_SMALL("Video4Linux2 device grab"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &v4l2_class,
.priv_data_size = sizeof(struct video_data),
.read_probe = v4l2_read_probe,
.read_header = v4l2_read_header,
.read_packet = v4l2_read_packet,
.read_close = v4l2_read_close,
.get_device_list = v4l2_get_device_list,
.flags = AVFMT_NOFILE,
.priv_class = &v4l2_class,
};

View File

@ -25,6 +25,7 @@
#include "libavutil/parseutils.h"
#include "libavcodec/packet_internal.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
// windows.h must no be included before winsock2.h, and libavformat internal
@ -482,13 +483,13 @@ static const AVClass vfw_class = {
.category = AV_CLASS_CATEGORY_DEVICE_VIDEO_INPUT
};
const AVInputFormat ff_vfwcap_demuxer = {
.name = "vfwcap",
.long_name = NULL_IF_CONFIG_SMALL("VfW video capture"),
const FFInputFormat ff_vfwcap_demuxer = {
.p.name = "vfwcap",
.p.long_name = NULL_IF_CONFIG_SMALL("VfW video capture"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &vfw_class,
.priv_data_size = sizeof(struct vfw_ctx),
.read_header = vfw_read_header,
.read_packet = vfw_read_packet,
.read_close = vfw_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &vfw_class,
};

View File

@ -45,6 +45,7 @@
#include "libavutil/time.h"
#include "libavformat/avformat.h"
#include "libavformat/demux.h"
#include "libavformat/internal.h"
typedef struct XCBGrabContext {
@ -900,13 +901,13 @@ static av_cold int xcbgrab_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_xcbgrab_demuxer = {
.name = "x11grab",
.long_name = NULL_IF_CONFIG_SMALL("X11 screen capture, using XCB"),
const FFInputFormat ff_xcbgrab_demuxer = {
.p.name = "x11grab",
.p.long_name = NULL_IF_CONFIG_SMALL("X11 screen capture, using XCB"),
.p.flags = AVFMT_NOFILE,
.p.priv_class = &xcbgrab_class,
.priv_data_size = sizeof(XCBGrabContext),
.read_header = xcbgrab_read_header,
.read_packet = xcbgrab_read_packet,
.read_close = xcbgrab_read_close,
.flags = AVFMT_NOFILE,
.priv_class = &xcbgrab_class,
};

View File

@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int threedostr_probe(const AVProbeData *p)
@ -191,12 +192,12 @@ static int threedostr_read_packet(AVFormatContext *s, AVPacket *pkt)
return AVERROR_EOF;
}
const AVInputFormat ff_threedostr_demuxer = {
.name = "3dostr",
.long_name = NULL_IF_CONFIG_SMALL("3DO STR"),
const FFInputFormat ff_threedostr_demuxer = {
.p.name = "3dostr",
.p.long_name = NULL_IF_CONFIG_SMALL("3DO STR"),
.p.extensions = "str",
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = threedostr_probe,
.read_header = threedostr_read_header,
.read_packet = threedostr_read_packet,
.extensions = "str",
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -31,6 +31,7 @@
#include "libavutil/intfloat.h"
#include "libavcodec/internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#define RIFF_TAG MKTAG('R', 'I', 'F', 'F')
@ -396,9 +397,9 @@ static int fourxm_read_close(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_fourxm_demuxer = {
.name = "4xm",
.long_name = NULL_IF_CONFIG_SMALL("4X Technologies"),
const FFInputFormat ff_fourxm_demuxer = {
.p.name = "4xm",
.p.long_name = NULL_IF_CONFIG_SMALL("4X Technologies"),
.priv_data_size = sizeof(FourxmDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = fourxm_probe,

View File

@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
#include "demux.h"
#include "internal.h"
#include "id3v1.h"
#include "id3v2.h"
@ -208,14 +209,14 @@ retry:
return ret;
}
const AVInputFormat ff_aac_demuxer = {
.name = "aac",
.long_name = NULL_IF_CONFIG_SMALL("raw ADTS AAC (Advanced Audio Coding)"),
const FFInputFormat ff_aac_demuxer = {
.p.name = "aac",
.p.long_name = NULL_IF_CONFIG_SMALL("raw ADTS AAC (Advanced Audio Coding)"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "aac",
.p.mime_type = "audio/aac,audio/aacp,audio/x-aac",
.read_probe = adts_aac_probe,
.read_header = adts_aac_read_header,
.read_packet = adts_aac_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "aac",
.mime_type = "audio/aac,audio/aacp,audio/x-aac",
.raw_codec_id = AV_CODEC_ID_AAC,
};

View File

@ -371,17 +371,17 @@ static const AVClass aa_class = {
.version = LIBAVUTIL_VERSION_INT,
};
const AVInputFormat ff_aa_demuxer = {
.name = "aa",
.long_name = NULL_IF_CONFIG_SMALL("Audible AA format files"),
.priv_class = &aa_class,
const FFInputFormat ff_aa_demuxer = {
.p.name = "aa",
.p.long_name = NULL_IF_CONFIG_SMALL("Audible AA format files"),
.p.priv_class = &aa_class,
.p.extensions = "aa",
.p.flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH,
.priv_data_size = sizeof(AADemuxContext),
.extensions = "aa",
.read_probe = aa_probe,
.read_header = aa_read_header,
.read_packet = aa_read_packet,
.read_seek = aa_read_seek,
.read_close = aa_read_close,
.flags = AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH,
.flags_internal = FF_FMT_INIT_CLEANUP,
};

View File

@ -383,15 +383,15 @@ static int aax_read_close(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_aax_demuxer = {
.name = "aax",
.long_name = NULL_IF_CONFIG_SMALL("CRI AAX"),
const FFInputFormat ff_aax_demuxer = {
.p.name = "aax",
.p.long_name = NULL_IF_CONFIG_SMALL("CRI AAX"),
.p.extensions = "aax",
.p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(AAXContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = aax_probe,
.read_header = aax_read_header,
.read_packet = aax_read_packet,
.read_close = aax_read_close,
.extensions = "aax",
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -25,6 +25,7 @@
#include "libavutil/crc.h"
#include "libavcodec/ac3_parser.h"
#include "avformat.h"
#include "demux.h"
#include "rawdec.h"
static int ac3_eac3_probe(const AVProbeData *p, enum AVCodecID expected_codec_id)
@ -104,17 +105,17 @@ static int ac3_probe(const AVProbeData *p)
return ac3_eac3_probe(p, AV_CODEC_ID_AC3);
}
const AVInputFormat ff_ac3_demuxer = {
.name = "ac3",
.long_name = NULL_IF_CONFIG_SMALL("raw AC-3"),
const FFInputFormat ff_ac3_demuxer = {
.p.name = "ac3",
.p.long_name = NULL_IF_CONFIG_SMALL("raw AC-3"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "ac3",
.p.priv_class = &ff_raw_demuxer_class,
.read_probe = ac3_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags= AVFMT_GENERIC_INDEX,
.extensions = "ac3",
.raw_codec_id = AV_CODEC_ID_AC3,
.priv_data_size = sizeof(FFRawDemuxerContext),
.priv_class = &ff_raw_demuxer_class,
};
#endif
@ -124,16 +125,16 @@ static int eac3_probe(const AVProbeData *p)
return ac3_eac3_probe(p, AV_CODEC_ID_EAC3);
}
const AVInputFormat ff_eac3_demuxer = {
.name = "eac3",
.long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
const FFInputFormat ff_eac3_demuxer = {
.p.name = "eac3",
.p.long_name = NULL_IF_CONFIG_SMALL("raw E-AC-3"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "eac3,ec3",
.p.priv_class = &ff_raw_demuxer_class,
.read_probe = eac3_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "eac3,ec3",
.raw_codec_id = AV_CODEC_ID_EAC3,
.priv_data_size = sizeof(FFRawDemuxerContext),
.priv_class = &ff_raw_demuxer_class,
};
#endif

View File

@ -22,6 +22,7 @@
#include "libavutil/avassert.h"
#include "libavutil/crc.h"
#include "avformat.h"
#include "demux.h"
#include "rawdec.h"
static int ac4_probe(const AVProbeData *p)
@ -93,12 +94,12 @@ static int ac4_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_ac4_demuxer = {
.name = "ac4",
.long_name = NULL_IF_CONFIG_SMALL("raw AC-4"),
const FFInputFormat ff_ac4_demuxer = {
.p.name = "ac4",
.p.long_name = NULL_IF_CONFIG_SMALL("raw AC-4"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "ac4",
.read_probe = ac4_probe,
.read_header = ac4_read_header,
.read_packet = ac4_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "ac4",
};

View File

@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int ace_probe(const AVProbeData *p)
@ -104,11 +105,11 @@ static int ace_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
const AVInputFormat ff_ace_demuxer = {
.name = "ace",
.long_name = NULL_IF_CONFIG_SMALL("tri-Ace Audio Container"),
const FFInputFormat ff_ace_demuxer = {
.p.name = "ace",
.p.long_name = NULL_IF_CONFIG_SMALL("tri-Ace Audio Container"),
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = ace_probe,
.read_header = ace_read_header,
.read_packet = ace_read_packet,
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -61,15 +61,15 @@ static int acm_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_acm_demuxer = {
.name = "acm",
.long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"),
const FFInputFormat ff_acm_demuxer = {
.p.name = "acm",
.p.long_name = NULL_IF_CONFIG_SMALL("Interplay ACM"),
.p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.p.extensions = "acm",
.p.priv_class = &ff_raw_demuxer_class,
.read_probe = acm_probe,
.read_header = acm_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.extensions = "acm",
.raw_codec_id = AV_CODEC_ID_INTERPLAY_ACM,
.priv_data_size = sizeof(FFRawDemuxerContext),
.priv_class = &ff_raw_demuxer_class,
};

View File

@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
#include "demux.h"
#include "riff.h"
#include "internal.h"
@ -198,9 +199,9 @@ static int read_packet(AVFormatContext *s,
return ret;
}
const AVInputFormat ff_act_demuxer = {
.name = "act",
.long_name = "ACT Voice file format",
const FFInputFormat ff_act_demuxer = {
.p.name = "act",
.p.long_name = "ACT Voice file format",
.priv_data_size = sizeof(ACTContext),
.read_probe = probe,
.read_header = read_header,

View File

@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int adp_probe(const AVProbeData *p)
@ -82,11 +83,11 @@ static int adp_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_adp_demuxer = {
.name = "adp",
.long_name = NULL_IF_CONFIG_SMALL("ADP"),
const FFInputFormat ff_adp_demuxer = {
.p.name = "adp",
.p.long_name = NULL_IF_CONFIG_SMALL("ADP"),
.p.extensions = "adp,dtk",
.read_probe = adp_probe,
.read_header = adp_read_header,
.read_packet = adp_read_packet,
.extensions = "adp,dtk",
};

View File

@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int ads_probe(const AVProbeData *p)
@ -80,11 +81,11 @@ static int ads_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_ads_demuxer = {
.name = "ads",
.long_name = NULL_IF_CONFIG_SMALL("Sony PS2 ADS"),
const FFInputFormat ff_ads_demuxer = {
.p.name = "ads",
.p.long_name = NULL_IF_CONFIG_SMALL("Sony PS2 ADS"),
.p.extensions = "ads,ss2",
.read_probe = ads_probe,
.read_header = ads_read_header,
.read_packet = ads_read_packet,
.extensions = "ads,ss2",
};

View File

@ -128,14 +128,14 @@ static int adx_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_adx_demuxer = {
.name = "adx",
.long_name = NULL_IF_CONFIG_SMALL("CRI ADX"),
const FFInputFormat ff_adx_demuxer = {
.p.name = "adx",
.p.long_name = NULL_IF_CONFIG_SMALL("CRI ADX"),
.p.extensions = "adx",
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = adx_probe,
.priv_data_size = sizeof(ADXDemuxerContext),
.read_header = adx_read_header,
.read_packet = adx_read_packet,
.extensions = "adx",
.raw_codec_id = AV_CODEC_ID_ADPCM_ADX,
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -23,6 +23,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "pcm.h"
#define AT1_SU_SIZE 212
@ -89,13 +90,13 @@ static int aea_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, s->streams[0]->codecpar->block_align);
}
const AVInputFormat ff_aea_demuxer = {
.name = "aea",
.long_name = NULL_IF_CONFIG_SMALL("MD STUDIO audio"),
const FFInputFormat ff_aea_demuxer = {
.p.name = "aea",
.p.long_name = NULL_IF_CONFIG_SMALL("MD STUDIO audio"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "aea",
.read_probe = aea_read_probe,
.read_header = aea_read_header,
.read_packet = aea_read_packet,
.read_seek = ff_pcm_read_seek,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "aea",
};

View File

@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
typedef struct AFCDemuxContext {
@ -68,12 +69,12 @@ static int afc_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_afc_demuxer = {
.name = "afc",
.long_name = NULL_IF_CONFIG_SMALL("AFC"),
const FFInputFormat ff_afc_demuxer = {
.p.name = "afc",
.p.long_name = NULL_IF_CONFIG_SMALL("AFC"),
.p.extensions = "afc",
.p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(AFCDemuxContext),
.read_header = afc_read_header,
.read_packet = afc_read_packet,
.extensions = "afc",
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK,
};

View File

@ -433,13 +433,13 @@ static int aiff_read_packet(AVFormatContext *s,
return 0;
}
const AVInputFormat ff_aiff_demuxer = {
.name = "aiff",
.long_name = NULL_IF_CONFIG_SMALL("Audio IFF"),
const FFInputFormat ff_aiff_demuxer = {
.p.name = "aiff",
.p.long_name = NULL_IF_CONFIG_SMALL("Audio IFF"),
.p.codec_tag = ff_aiff_codec_tags_list,
.priv_data_size = sizeof(AIFFInputContext),
.read_probe = aiff_probe,
.read_header = aiff_read_header,
.read_packet = aiff_read_packet,
.read_seek = ff_pcm_read_seek,
.codec_tag = ff_aiff_codec_tags_list,
};

View File

@ -130,12 +130,12 @@ static int aix_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_aix_demuxer = {
.name = "aix",
.long_name = NULL_IF_CONFIG_SMALL("CRI AIX"),
const FFInputFormat ff_aix_demuxer = {
.p.name = "aix",
.p.long_name = NULL_IF_CONFIG_SMALL("CRI AIX"),
.p.extensions= "aix",
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = aix_probe,
.read_header = aix_read_header,
.read_packet = aix_read_packet,
.extensions = "aix",
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -25,269 +25,270 @@
#include "libavformat/internal.h"
#include "avformat.h"
#include "demux.h"
#include "mux.h"
/* (de)muxers */
extern const FFOutputFormat ff_a64_muxer;
extern const AVInputFormat ff_aa_demuxer;
extern const AVInputFormat ff_aac_demuxer;
extern const AVInputFormat ff_aax_demuxer;
extern const AVInputFormat ff_ac3_demuxer;
extern const FFInputFormat ff_aa_demuxer;
extern const FFInputFormat ff_aac_demuxer;
extern const FFInputFormat ff_aax_demuxer;
extern const FFInputFormat ff_ac3_demuxer;
extern const FFOutputFormat ff_ac3_muxer;
extern const AVInputFormat ff_ac4_demuxer;
extern const FFInputFormat ff_ac4_demuxer;
extern const FFOutputFormat ff_ac4_muxer;
extern const AVInputFormat ff_ace_demuxer;
extern const AVInputFormat ff_acm_demuxer;
extern const AVInputFormat ff_act_demuxer;
extern const AVInputFormat ff_adf_demuxer;
extern const AVInputFormat ff_adp_demuxer;
extern const AVInputFormat ff_ads_demuxer;
extern const FFInputFormat ff_ace_demuxer;
extern const FFInputFormat ff_acm_demuxer;
extern const FFInputFormat ff_act_demuxer;
extern const FFInputFormat ff_adf_demuxer;
extern const FFInputFormat ff_adp_demuxer;
extern const FFInputFormat ff_ads_demuxer;
extern const FFOutputFormat ff_adts_muxer;
extern const AVInputFormat ff_adx_demuxer;
extern const FFInputFormat ff_adx_demuxer;
extern const FFOutputFormat ff_adx_muxer;
extern const AVInputFormat ff_aea_demuxer;
extern const AVInputFormat ff_afc_demuxer;
extern const AVInputFormat ff_aiff_demuxer;
extern const FFInputFormat ff_aea_demuxer;
extern const FFInputFormat ff_afc_demuxer;
extern const FFInputFormat ff_aiff_demuxer;
extern const FFOutputFormat ff_aiff_muxer;
extern const AVInputFormat ff_aix_demuxer;
extern const AVInputFormat ff_alp_demuxer;
extern const FFInputFormat ff_aix_demuxer;
extern const FFInputFormat ff_alp_demuxer;
extern const FFOutputFormat ff_alp_muxer;
extern const AVInputFormat ff_amr_demuxer;
extern const FFInputFormat ff_amr_demuxer;
extern const FFOutputFormat ff_amr_muxer;
extern const AVInputFormat ff_amrnb_demuxer;
extern const AVInputFormat ff_amrwb_demuxer;
extern const FFInputFormat ff_amrnb_demuxer;
extern const FFInputFormat ff_amrwb_demuxer;
extern const FFOutputFormat ff_amv_muxer;
extern const AVInputFormat ff_anm_demuxer;
extern const AVInputFormat ff_apac_demuxer;
extern const AVInputFormat ff_apc_demuxer;
extern const AVInputFormat ff_ape_demuxer;
extern const AVInputFormat ff_apm_demuxer;
extern const FFInputFormat ff_anm_demuxer;
extern const FFInputFormat ff_apac_demuxer;
extern const FFInputFormat ff_apc_demuxer;
extern const FFInputFormat ff_ape_demuxer;
extern const FFInputFormat ff_apm_demuxer;
extern const FFOutputFormat ff_apm_muxer;
extern const AVInputFormat ff_apng_demuxer;
extern const FFInputFormat ff_apng_demuxer;
extern const FFOutputFormat ff_apng_muxer;
extern const AVInputFormat ff_aptx_demuxer;
extern const FFInputFormat ff_aptx_demuxer;
extern const FFOutputFormat ff_aptx_muxer;
extern const AVInputFormat ff_aptx_hd_demuxer;
extern const FFInputFormat ff_aptx_hd_demuxer;
extern const FFOutputFormat ff_aptx_hd_muxer;
extern const AVInputFormat ff_aqtitle_demuxer;
extern const AVInputFormat ff_argo_asf_demuxer;
extern const FFInputFormat ff_aqtitle_demuxer;
extern const FFInputFormat ff_argo_asf_demuxer;
extern const FFOutputFormat ff_argo_asf_muxer;
extern const AVInputFormat ff_argo_brp_demuxer;
extern const AVInputFormat ff_argo_cvg_demuxer;
extern const FFInputFormat ff_argo_brp_demuxer;
extern const FFInputFormat ff_argo_cvg_demuxer;
extern const FFOutputFormat ff_argo_cvg_muxer;
extern const AVInputFormat ff_asf_demuxer;
extern const FFInputFormat ff_asf_demuxer;
extern const FFOutputFormat ff_asf_muxer;
extern const AVInputFormat ff_asf_o_demuxer;
extern const AVInputFormat ff_ass_demuxer;
extern const FFInputFormat ff_asf_o_demuxer;
extern const FFInputFormat ff_ass_demuxer;
extern const FFOutputFormat ff_ass_muxer;
extern const AVInputFormat ff_ast_demuxer;
extern const FFInputFormat ff_ast_demuxer;
extern const FFOutputFormat ff_ast_muxer;
extern const FFOutputFormat ff_asf_stream_muxer;
extern const AVInputFormat ff_au_demuxer;
extern const FFInputFormat ff_au_demuxer;
extern const FFOutputFormat ff_au_muxer;
extern const AVInputFormat ff_av1_demuxer;
extern const AVInputFormat ff_avi_demuxer;
extern const FFInputFormat ff_av1_demuxer;
extern const FFInputFormat ff_avi_demuxer;
extern const FFOutputFormat ff_avi_muxer;
extern const FFOutputFormat ff_avif_muxer;
extern const AVInputFormat ff_avisynth_demuxer;
extern const FFInputFormat ff_avisynth_demuxer;
extern const FFOutputFormat ff_avm2_muxer;
extern const AVInputFormat ff_avr_demuxer;
extern const AVInputFormat ff_avs_demuxer;
extern const AVInputFormat ff_avs2_demuxer;
extern const FFInputFormat ff_avr_demuxer;
extern const FFInputFormat ff_avs_demuxer;
extern const FFInputFormat ff_avs2_demuxer;
extern const FFOutputFormat ff_avs2_muxer;
extern const AVInputFormat ff_avs3_demuxer;
extern const FFInputFormat ff_avs3_demuxer;
extern const FFOutputFormat ff_avs3_muxer;
extern const AVInputFormat ff_bethsoftvid_demuxer;
extern const AVInputFormat ff_bfi_demuxer;
extern const AVInputFormat ff_bintext_demuxer;
extern const AVInputFormat ff_bink_demuxer;
extern const AVInputFormat ff_binka_demuxer;
extern const AVInputFormat ff_bit_demuxer;
extern const FFInputFormat ff_bethsoftvid_demuxer;
extern const FFInputFormat ff_bfi_demuxer;
extern const FFInputFormat ff_bintext_demuxer;
extern const FFInputFormat ff_bink_demuxer;
extern const FFInputFormat ff_binka_demuxer;
extern const FFInputFormat ff_bit_demuxer;
extern const FFOutputFormat ff_bit_muxer;
extern const AVInputFormat ff_bitpacked_demuxer;
extern const AVInputFormat ff_bmv_demuxer;
extern const AVInputFormat ff_bfstm_demuxer;
extern const AVInputFormat ff_brstm_demuxer;
extern const AVInputFormat ff_boa_demuxer;
extern const AVInputFormat ff_bonk_demuxer;
extern const AVInputFormat ff_c93_demuxer;
extern const AVInputFormat ff_caf_demuxer;
extern const FFInputFormat ff_bitpacked_demuxer;
extern const FFInputFormat ff_bmv_demuxer;
extern const FFInputFormat ff_bfstm_demuxer;
extern const FFInputFormat ff_brstm_demuxer;
extern const FFInputFormat ff_boa_demuxer;
extern const FFInputFormat ff_bonk_demuxer;
extern const FFInputFormat ff_c93_demuxer;
extern const FFInputFormat ff_caf_demuxer;
extern const FFOutputFormat ff_caf_muxer;
extern const AVInputFormat ff_cavsvideo_demuxer;
extern const FFInputFormat ff_cavsvideo_demuxer;
extern const FFOutputFormat ff_cavsvideo_muxer;
extern const AVInputFormat ff_cdg_demuxer;
extern const AVInputFormat ff_cdxl_demuxer;
extern const AVInputFormat ff_cine_demuxer;
extern const AVInputFormat ff_codec2_demuxer;
extern const FFInputFormat ff_cdg_demuxer;
extern const FFInputFormat ff_cdxl_demuxer;
extern const FFInputFormat ff_cine_demuxer;
extern const FFInputFormat ff_codec2_demuxer;
extern const FFOutputFormat ff_codec2_muxer;
extern const AVInputFormat ff_codec2raw_demuxer;
extern const FFInputFormat ff_codec2raw_demuxer;
extern const FFOutputFormat ff_codec2raw_muxer;
extern const AVInputFormat ff_concat_demuxer;
extern const FFInputFormat ff_concat_demuxer;
extern const FFOutputFormat ff_crc_muxer;
extern const AVInputFormat ff_dash_demuxer;
extern const FFInputFormat ff_dash_demuxer;
extern const FFOutputFormat ff_dash_muxer;
extern const AVInputFormat ff_data_demuxer;
extern const FFInputFormat ff_data_demuxer;
extern const FFOutputFormat ff_data_muxer;
extern const AVInputFormat ff_daud_demuxer;
extern const FFInputFormat ff_daud_demuxer;
extern const FFOutputFormat ff_daud_muxer;
extern const AVInputFormat ff_dcstr_demuxer;
extern const AVInputFormat ff_derf_demuxer;
extern const AVInputFormat ff_dfa_demuxer;
extern const AVInputFormat ff_dfpwm_demuxer;
extern const FFInputFormat ff_dcstr_demuxer;
extern const FFInputFormat ff_derf_demuxer;
extern const FFInputFormat ff_dfa_demuxer;
extern const FFInputFormat ff_dfpwm_demuxer;
extern const FFOutputFormat ff_dfpwm_muxer;
extern const AVInputFormat ff_dhav_demuxer;
extern const AVInputFormat ff_dirac_demuxer;
extern const FFInputFormat ff_dhav_demuxer;
extern const FFInputFormat ff_dirac_demuxer;
extern const FFOutputFormat ff_dirac_muxer;
extern const AVInputFormat ff_dnxhd_demuxer;
extern const FFInputFormat ff_dnxhd_demuxer;
extern const FFOutputFormat ff_dnxhd_muxer;
extern const AVInputFormat ff_dsf_demuxer;
extern const AVInputFormat ff_dsicin_demuxer;
extern const AVInputFormat ff_dss_demuxer;
extern const AVInputFormat ff_dts_demuxer;
extern const FFInputFormat ff_dsf_demuxer;
extern const FFInputFormat ff_dsicin_demuxer;
extern const FFInputFormat ff_dss_demuxer;
extern const FFInputFormat ff_dts_demuxer;
extern const FFOutputFormat ff_dts_muxer;
extern const AVInputFormat ff_dtshd_demuxer;
extern const AVInputFormat ff_dv_demuxer;
extern const FFInputFormat ff_dtshd_demuxer;
extern const FFInputFormat ff_dv_demuxer;
extern const FFOutputFormat ff_dv_muxer;
extern const AVInputFormat ff_dvbsub_demuxer;
extern const AVInputFormat ff_dvbtxt_demuxer;
extern const AVInputFormat ff_dvdvideo_demuxer;
extern const AVInputFormat ff_dxa_demuxer;
extern const AVInputFormat ff_ea_demuxer;
extern const AVInputFormat ff_ea_cdata_demuxer;
extern const AVInputFormat ff_eac3_demuxer;
extern const FFInputFormat ff_dvbsub_demuxer;
extern const FFInputFormat ff_dvbtxt_demuxer;
extern const FFInputFormat ff_dvdvideo_demuxer;
extern const FFInputFormat ff_dxa_demuxer;
extern const FFInputFormat ff_ea_demuxer;
extern const FFInputFormat ff_ea_cdata_demuxer;
extern const FFInputFormat ff_eac3_demuxer;
extern const FFOutputFormat ff_eac3_muxer;
extern const AVInputFormat ff_epaf_demuxer;
extern const AVInputFormat ff_evc_demuxer;
extern const FFInputFormat ff_epaf_demuxer;
extern const FFInputFormat ff_evc_demuxer;
extern const FFOutputFormat ff_evc_muxer;
extern const FFOutputFormat ff_f4v_muxer;
extern const AVInputFormat ff_ffmetadata_demuxer;
extern const FFInputFormat ff_ffmetadata_demuxer;
extern const FFOutputFormat ff_ffmetadata_muxer;
extern const FFOutputFormat ff_fifo_muxer;
extern const FFOutputFormat ff_fifo_test_muxer;
extern const AVInputFormat ff_filmstrip_demuxer;
extern const FFInputFormat ff_filmstrip_demuxer;
extern const FFOutputFormat ff_filmstrip_muxer;
extern const AVInputFormat ff_fits_demuxer;
extern const FFInputFormat ff_fits_demuxer;
extern const FFOutputFormat ff_fits_muxer;
extern const AVInputFormat ff_flac_demuxer;
extern const FFInputFormat ff_flac_demuxer;
extern const FFOutputFormat ff_flac_muxer;
extern const AVInputFormat ff_flic_demuxer;
extern const AVInputFormat ff_flv_demuxer;
extern const FFInputFormat ff_flic_demuxer;
extern const FFInputFormat ff_flv_demuxer;
extern const FFOutputFormat ff_flv_muxer;
extern const AVInputFormat ff_live_flv_demuxer;
extern const AVInputFormat ff_fourxm_demuxer;
extern const FFInputFormat ff_live_flv_demuxer;
extern const FFInputFormat ff_fourxm_demuxer;
extern const FFOutputFormat ff_framecrc_muxer;
extern const FFOutputFormat ff_framehash_muxer;
extern const FFOutputFormat ff_framemd5_muxer;
extern const AVInputFormat ff_frm_demuxer;
extern const AVInputFormat ff_fsb_demuxer;
extern const AVInputFormat ff_fwse_demuxer;
extern const AVInputFormat ff_g722_demuxer;
extern const FFInputFormat ff_frm_demuxer;
extern const FFInputFormat ff_fsb_demuxer;
extern const FFInputFormat ff_fwse_demuxer;
extern const FFInputFormat ff_g722_demuxer;
extern const FFOutputFormat ff_g722_muxer;
extern const AVInputFormat ff_g723_1_demuxer;
extern const FFInputFormat ff_g723_1_demuxer;
extern const FFOutputFormat ff_g723_1_muxer;
extern const AVInputFormat ff_g726_demuxer;
extern const FFInputFormat ff_g726_demuxer;
extern const FFOutputFormat ff_g726_muxer;
extern const AVInputFormat ff_g726le_demuxer;
extern const FFInputFormat ff_g726le_demuxer;
extern const FFOutputFormat ff_g726le_muxer;
extern const AVInputFormat ff_g729_demuxer;
extern const AVInputFormat ff_gdv_demuxer;
extern const AVInputFormat ff_genh_demuxer;
extern const AVInputFormat ff_gif_demuxer;
extern const FFInputFormat ff_g729_demuxer;
extern const FFInputFormat ff_gdv_demuxer;
extern const FFInputFormat ff_genh_demuxer;
extern const FFInputFormat ff_gif_demuxer;
extern const FFOutputFormat ff_gif_muxer;
extern const AVInputFormat ff_gsm_demuxer;
extern const FFInputFormat ff_gsm_demuxer;
extern const FFOutputFormat ff_gsm_muxer;
extern const AVInputFormat ff_gxf_demuxer;
extern const FFInputFormat ff_gxf_demuxer;
extern const FFOutputFormat ff_gxf_muxer;
extern const AVInputFormat ff_h261_demuxer;
extern const FFInputFormat ff_h261_demuxer;
extern const FFOutputFormat ff_h261_muxer;
extern const AVInputFormat ff_h263_demuxer;
extern const FFInputFormat ff_h263_demuxer;
extern const FFOutputFormat ff_h263_muxer;
extern const AVInputFormat ff_h264_demuxer;
extern const FFInputFormat ff_h264_demuxer;
extern const FFOutputFormat ff_h264_muxer;
extern const FFOutputFormat ff_hash_muxer;
extern const AVInputFormat ff_hca_demuxer;
extern const AVInputFormat ff_hcom_demuxer;
extern const FFInputFormat ff_hca_demuxer;
extern const FFInputFormat ff_hcom_demuxer;
extern const FFOutputFormat ff_hds_muxer;
extern const AVInputFormat ff_hevc_demuxer;
extern const FFInputFormat ff_hevc_demuxer;
extern const FFOutputFormat ff_hevc_muxer;
extern const AVInputFormat ff_hls_demuxer;
extern const FFInputFormat ff_hls_demuxer;
extern const FFOutputFormat ff_hls_muxer;
extern const AVInputFormat ff_hnm_demuxer;
extern const AVInputFormat ff_iamf_demuxer;
extern const FFInputFormat ff_hnm_demuxer;
extern const FFInputFormat ff_iamf_demuxer;
extern const FFOutputFormat ff_iamf_muxer;
extern const AVInputFormat ff_ico_demuxer;
extern const FFInputFormat ff_ico_demuxer;
extern const FFOutputFormat ff_ico_muxer;
extern const AVInputFormat ff_idcin_demuxer;
extern const AVInputFormat ff_idf_demuxer;
extern const AVInputFormat ff_iff_demuxer;
extern const AVInputFormat ff_ifv_demuxer;
extern const AVInputFormat ff_ilbc_demuxer;
extern const FFInputFormat ff_idcin_demuxer;
extern const FFInputFormat ff_idf_demuxer;
extern const FFInputFormat ff_iff_demuxer;
extern const FFInputFormat ff_ifv_demuxer;
extern const FFInputFormat ff_ilbc_demuxer;
extern const FFOutputFormat ff_ilbc_muxer;
extern const AVInputFormat ff_image2_demuxer;
extern const FFInputFormat ff_image2_demuxer;
extern const FFOutputFormat ff_image2_muxer;
extern const AVInputFormat ff_image2pipe_demuxer;
extern const FFInputFormat ff_image2pipe_demuxer;
extern const FFOutputFormat ff_image2pipe_muxer;
extern const AVInputFormat ff_image2_alias_pix_demuxer;
extern const AVInputFormat ff_image2_brender_pix_demuxer;
extern const AVInputFormat ff_imf_demuxer;
extern const AVInputFormat ff_ingenient_demuxer;
extern const AVInputFormat ff_ipmovie_demuxer;
extern const FFInputFormat ff_image2_alias_pix_demuxer;
extern const FFInputFormat ff_image2_brender_pix_demuxer;
extern const FFInputFormat ff_imf_demuxer;
extern const FFInputFormat ff_ingenient_demuxer;
extern const FFInputFormat ff_ipmovie_demuxer;
extern const FFOutputFormat ff_ipod_muxer;
extern const AVInputFormat ff_ipu_demuxer;
extern const AVInputFormat ff_ircam_demuxer;
extern const FFInputFormat ff_ipu_demuxer;
extern const FFInputFormat ff_ircam_demuxer;
extern const FFOutputFormat ff_ircam_muxer;
extern const FFOutputFormat ff_ismv_muxer;
extern const AVInputFormat ff_iss_demuxer;
extern const AVInputFormat ff_iv8_demuxer;
extern const AVInputFormat ff_ivf_demuxer;
extern const FFInputFormat ff_iss_demuxer;
extern const FFInputFormat ff_iv8_demuxer;
extern const FFInputFormat ff_ivf_demuxer;
extern const FFOutputFormat ff_ivf_muxer;
extern const AVInputFormat ff_ivr_demuxer;
extern const AVInputFormat ff_jacosub_demuxer;
extern const FFInputFormat ff_ivr_demuxer;
extern const FFInputFormat ff_jacosub_demuxer;
extern const FFOutputFormat ff_jacosub_muxer;
extern const AVInputFormat ff_jv_demuxer;
extern const AVInputFormat ff_jpegxl_anim_demuxer;
extern const AVInputFormat ff_kux_demuxer;
extern const AVInputFormat ff_kvag_demuxer;
extern const FFInputFormat ff_jv_demuxer;
extern const FFInputFormat ff_jpegxl_anim_demuxer;
extern const FFInputFormat ff_kux_demuxer;
extern const FFInputFormat ff_kvag_demuxer;
extern const FFOutputFormat ff_kvag_muxer;
extern const AVInputFormat ff_laf_demuxer;
extern const FFInputFormat ff_laf_demuxer;
extern const FFOutputFormat ff_latm_muxer;
extern const AVInputFormat ff_lmlm4_demuxer;
extern const AVInputFormat ff_loas_demuxer;
extern const AVInputFormat ff_luodat_demuxer;
extern const AVInputFormat ff_lrc_demuxer;
extern const FFInputFormat ff_lmlm4_demuxer;
extern const FFInputFormat ff_loas_demuxer;
extern const FFInputFormat ff_luodat_demuxer;
extern const FFInputFormat ff_lrc_demuxer;
extern const FFOutputFormat ff_lrc_muxer;
extern const AVInputFormat ff_lvf_demuxer;
extern const AVInputFormat ff_lxf_demuxer;
extern const AVInputFormat ff_m4v_demuxer;
extern const FFInputFormat ff_lvf_demuxer;
extern const FFInputFormat ff_lxf_demuxer;
extern const FFInputFormat ff_m4v_demuxer;
extern const FFOutputFormat ff_m4v_muxer;
extern const AVInputFormat ff_mca_demuxer;
extern const AVInputFormat ff_mcc_demuxer;
extern const FFInputFormat ff_mca_demuxer;
extern const FFInputFormat ff_mcc_demuxer;
extern const FFOutputFormat ff_md5_muxer;
extern const AVInputFormat ff_matroska_demuxer;
extern const FFInputFormat ff_matroska_demuxer;
extern const FFOutputFormat ff_matroska_muxer;
extern const FFOutputFormat ff_matroska_audio_muxer;
extern const AVInputFormat ff_mgsts_demuxer;
extern const AVInputFormat ff_microdvd_demuxer;
extern const FFInputFormat ff_mgsts_demuxer;
extern const FFInputFormat ff_microdvd_demuxer;
extern const FFOutputFormat ff_microdvd_muxer;
extern const AVInputFormat ff_mjpeg_demuxer;
extern const FFInputFormat ff_mjpeg_demuxer;
extern const FFOutputFormat ff_mjpeg_muxer;
extern const AVInputFormat ff_mjpeg_2000_demuxer;
extern const AVInputFormat ff_mlp_demuxer;
extern const FFInputFormat ff_mjpeg_2000_demuxer;
extern const FFInputFormat ff_mlp_demuxer;
extern const FFOutputFormat ff_mlp_muxer;
extern const AVInputFormat ff_mlv_demuxer;
extern const AVInputFormat ff_mm_demuxer;
extern const AVInputFormat ff_mmf_demuxer;
extern const FFInputFormat ff_mlv_demuxer;
extern const FFInputFormat ff_mm_demuxer;
extern const FFInputFormat ff_mmf_demuxer;
extern const FFOutputFormat ff_mmf_muxer;
extern const AVInputFormat ff_mods_demuxer;
extern const AVInputFormat ff_moflex_demuxer;
extern const AVInputFormat ff_mov_demuxer;
extern const FFInputFormat ff_mods_demuxer;
extern const FFInputFormat ff_moflex_demuxer;
extern const FFInputFormat ff_mov_demuxer;
extern const FFOutputFormat ff_mov_muxer;
extern const FFOutputFormat ff_mp2_muxer;
extern const AVInputFormat ff_mp3_demuxer;
extern const FFInputFormat ff_mp3_demuxer;
extern const FFOutputFormat ff_mp3_muxer;
extern const FFOutputFormat ff_mp4_muxer;
extern const AVInputFormat ff_mpc_demuxer;
extern const AVInputFormat ff_mpc8_demuxer;
extern const FFInputFormat ff_mpc_demuxer;
extern const FFInputFormat ff_mpc8_demuxer;
extern const FFOutputFormat ff_mpeg1system_muxer;
extern const FFOutputFormat ff_mpeg1vcd_muxer;
extern const FFOutputFormat ff_mpeg1video_muxer;
@ -295,282 +296,282 @@ extern const FFOutputFormat ff_mpeg2dvd_muxer;
extern const FFOutputFormat ff_mpeg2svcd_muxer;
extern const FFOutputFormat ff_mpeg2video_muxer;
extern const FFOutputFormat ff_mpeg2vob_muxer;
extern const AVInputFormat ff_mpegps_demuxer;
extern const AVInputFormat ff_mpegts_demuxer;
extern const FFInputFormat ff_mpegps_demuxer;
extern const FFInputFormat ff_mpegts_demuxer;
extern const FFOutputFormat ff_mpegts_muxer;
extern const AVInputFormat ff_mpegtsraw_demuxer;
extern const AVInputFormat ff_mpegvideo_demuxer;
extern const AVInputFormat ff_mpjpeg_demuxer;
extern const FFInputFormat ff_mpegtsraw_demuxer;
extern const FFInputFormat ff_mpegvideo_demuxer;
extern const FFInputFormat ff_mpjpeg_demuxer;
extern const FFOutputFormat ff_mpjpeg_muxer;
extern const AVInputFormat ff_mpl2_demuxer;
extern const AVInputFormat ff_mpsub_demuxer;
extern const AVInputFormat ff_msf_demuxer;
extern const AVInputFormat ff_msnwc_tcp_demuxer;
extern const AVInputFormat ff_msp_demuxer;
extern const AVInputFormat ff_mtaf_demuxer;
extern const AVInputFormat ff_mtv_demuxer;
extern const AVInputFormat ff_musx_demuxer;
extern const AVInputFormat ff_mv_demuxer;
extern const AVInputFormat ff_mvi_demuxer;
extern const AVInputFormat ff_mxf_demuxer;
extern const FFInputFormat ff_mpl2_demuxer;
extern const FFInputFormat ff_mpsub_demuxer;
extern const FFInputFormat ff_msf_demuxer;
extern const FFInputFormat ff_msnwc_tcp_demuxer;
extern const FFInputFormat ff_msp_demuxer;
extern const FFInputFormat ff_mtaf_demuxer;
extern const FFInputFormat ff_mtv_demuxer;
extern const FFInputFormat ff_musx_demuxer;
extern const FFInputFormat ff_mv_demuxer;
extern const FFInputFormat ff_mvi_demuxer;
extern const FFInputFormat ff_mxf_demuxer;
extern const FFOutputFormat ff_mxf_muxer;
extern const FFOutputFormat ff_mxf_d10_muxer;
extern const FFOutputFormat ff_mxf_opatom_muxer;
extern const AVInputFormat ff_mxg_demuxer;
extern const AVInputFormat ff_nc_demuxer;
extern const AVInputFormat ff_nistsphere_demuxer;
extern const AVInputFormat ff_nsp_demuxer;
extern const AVInputFormat ff_nsv_demuxer;
extern const FFInputFormat ff_mxg_demuxer;
extern const FFInputFormat ff_nc_demuxer;
extern const FFInputFormat ff_nistsphere_demuxer;
extern const FFInputFormat ff_nsp_demuxer;
extern const FFInputFormat ff_nsv_demuxer;
extern const FFOutputFormat ff_null_muxer;
extern const AVInputFormat ff_nut_demuxer;
extern const FFInputFormat ff_nut_demuxer;
extern const FFOutputFormat ff_nut_muxer;
extern const AVInputFormat ff_nuv_demuxer;
extern const AVInputFormat ff_obu_demuxer;
extern const FFInputFormat ff_nuv_demuxer;
extern const FFInputFormat ff_obu_demuxer;
extern const FFOutputFormat ff_obu_muxer;
extern const FFOutputFormat ff_oga_muxer;
extern const AVInputFormat ff_ogg_demuxer;
extern const FFInputFormat ff_ogg_demuxer;
extern const FFOutputFormat ff_ogg_muxer;
extern const FFOutputFormat ff_ogv_muxer;
extern const AVInputFormat ff_oma_demuxer;
extern const FFInputFormat ff_oma_demuxer;
extern const FFOutputFormat ff_oma_muxer;
extern const FFOutputFormat ff_opus_muxer;
extern const AVInputFormat ff_osq_demuxer;
extern const AVInputFormat ff_paf_demuxer;
extern const AVInputFormat ff_pcm_alaw_demuxer;
extern const FFInputFormat ff_osq_demuxer;
extern const FFInputFormat ff_paf_demuxer;
extern const FFInputFormat ff_pcm_alaw_demuxer;
extern const FFOutputFormat ff_pcm_alaw_muxer;
extern const AVInputFormat ff_pcm_mulaw_demuxer;
extern const FFInputFormat ff_pcm_mulaw_demuxer;
extern const FFOutputFormat ff_pcm_mulaw_muxer;
extern const AVInputFormat ff_pcm_vidc_demuxer;
extern const FFInputFormat ff_pcm_vidc_demuxer;
extern const FFOutputFormat ff_pcm_vidc_muxer;
extern const AVInputFormat ff_pcm_f64be_demuxer;
extern const FFInputFormat ff_pcm_f64be_demuxer;
extern const FFOutputFormat ff_pcm_f64be_muxer;
extern const AVInputFormat ff_pcm_f64le_demuxer;
extern const FFInputFormat ff_pcm_f64le_demuxer;
extern const FFOutputFormat ff_pcm_f64le_muxer;
extern const AVInputFormat ff_pcm_f32be_demuxer;
extern const FFInputFormat ff_pcm_f32be_demuxer;
extern const FFOutputFormat ff_pcm_f32be_muxer;
extern const AVInputFormat ff_pcm_f32le_demuxer;
extern const FFInputFormat ff_pcm_f32le_demuxer;
extern const FFOutputFormat ff_pcm_f32le_muxer;
extern const AVInputFormat ff_pcm_s32be_demuxer;
extern const FFInputFormat ff_pcm_s32be_demuxer;
extern const FFOutputFormat ff_pcm_s32be_muxer;
extern const AVInputFormat ff_pcm_s32le_demuxer;
extern const FFInputFormat ff_pcm_s32le_demuxer;
extern const FFOutputFormat ff_pcm_s32le_muxer;
extern const AVInputFormat ff_pcm_s24be_demuxer;
extern const FFInputFormat ff_pcm_s24be_demuxer;
extern const FFOutputFormat ff_pcm_s24be_muxer;
extern const AVInputFormat ff_pcm_s24le_demuxer;
extern const FFInputFormat ff_pcm_s24le_demuxer;
extern const FFOutputFormat ff_pcm_s24le_muxer;
extern const AVInputFormat ff_pcm_s16be_demuxer;
extern const FFInputFormat ff_pcm_s16be_demuxer;
extern const FFOutputFormat ff_pcm_s16be_muxer;
extern const AVInputFormat ff_pcm_s16le_demuxer;
extern const FFInputFormat ff_pcm_s16le_demuxer;
extern const FFOutputFormat ff_pcm_s16le_muxer;
extern const AVInputFormat ff_pcm_s8_demuxer;
extern const FFInputFormat ff_pcm_s8_demuxer;
extern const FFOutputFormat ff_pcm_s8_muxer;
extern const AVInputFormat ff_pcm_u32be_demuxer;
extern const FFInputFormat ff_pcm_u32be_demuxer;
extern const FFOutputFormat ff_pcm_u32be_muxer;
extern const AVInputFormat ff_pcm_u32le_demuxer;
extern const FFInputFormat ff_pcm_u32le_demuxer;
extern const FFOutputFormat ff_pcm_u32le_muxer;
extern const AVInputFormat ff_pcm_u24be_demuxer;
extern const FFInputFormat ff_pcm_u24be_demuxer;
extern const FFOutputFormat ff_pcm_u24be_muxer;
extern const AVInputFormat ff_pcm_u24le_demuxer;
extern const FFInputFormat ff_pcm_u24le_demuxer;
extern const FFOutputFormat ff_pcm_u24le_muxer;
extern const AVInputFormat ff_pcm_u16be_demuxer;
extern const FFInputFormat ff_pcm_u16be_demuxer;
extern const FFOutputFormat ff_pcm_u16be_muxer;
extern const AVInputFormat ff_pcm_u16le_demuxer;
extern const FFInputFormat ff_pcm_u16le_demuxer;
extern const FFOutputFormat ff_pcm_u16le_muxer;
extern const AVInputFormat ff_pcm_u8_demuxer;
extern const FFInputFormat ff_pcm_u8_demuxer;
extern const FFOutputFormat ff_pcm_u8_muxer;
extern const AVInputFormat ff_pdv_demuxer;
extern const AVInputFormat ff_pjs_demuxer;
extern const AVInputFormat ff_pmp_demuxer;
extern const AVInputFormat ff_pp_bnk_demuxer;
extern const FFInputFormat ff_pdv_demuxer;
extern const FFInputFormat ff_pjs_demuxer;
extern const FFInputFormat ff_pmp_demuxer;
extern const FFInputFormat ff_pp_bnk_demuxer;
extern const FFOutputFormat ff_psp_muxer;
extern const AVInputFormat ff_pva_demuxer;
extern const AVInputFormat ff_pvf_demuxer;
extern const AVInputFormat ff_qcp_demuxer;
extern const AVInputFormat ff_qoa_demuxer;
extern const AVInputFormat ff_r3d_demuxer;
extern const AVInputFormat ff_rawvideo_demuxer;
extern const FFInputFormat ff_pva_demuxer;
extern const FFInputFormat ff_pvf_demuxer;
extern const FFInputFormat ff_qcp_demuxer;
extern const FFInputFormat ff_qoa_demuxer;
extern const FFInputFormat ff_r3d_demuxer;
extern const FFInputFormat ff_rawvideo_demuxer;
extern const FFOutputFormat ff_rawvideo_muxer;
extern const FFOutputFormat ff_rcwt_muxer;
extern const AVInputFormat ff_realtext_demuxer;
extern const AVInputFormat ff_redspark_demuxer;
extern const AVInputFormat ff_rka_demuxer;
extern const AVInputFormat ff_rl2_demuxer;
extern const AVInputFormat ff_rm_demuxer;
extern const FFInputFormat ff_realtext_demuxer;
extern const FFInputFormat ff_redspark_demuxer;
extern const FFInputFormat ff_rka_demuxer;
extern const FFInputFormat ff_rl2_demuxer;
extern const FFInputFormat ff_rm_demuxer;
extern const FFOutputFormat ff_rm_muxer;
extern const AVInputFormat ff_roq_demuxer;
extern const FFInputFormat ff_roq_demuxer;
extern const FFOutputFormat ff_roq_muxer;
extern const AVInputFormat ff_rpl_demuxer;
extern const AVInputFormat ff_rsd_demuxer;
extern const AVInputFormat ff_rso_demuxer;
extern const FFInputFormat ff_rpl_demuxer;
extern const FFInputFormat ff_rsd_demuxer;
extern const FFInputFormat ff_rso_demuxer;
extern const FFOutputFormat ff_rso_muxer;
extern const AVInputFormat ff_rtp_demuxer;
extern const FFInputFormat ff_rtp_demuxer;
extern const FFOutputFormat ff_rtp_muxer;
extern const FFOutputFormat ff_rtp_mpegts_muxer;
extern const AVInputFormat ff_rtsp_demuxer;
extern const FFInputFormat ff_rtsp_demuxer;
extern const FFOutputFormat ff_rtsp_muxer;
extern const AVInputFormat ff_s337m_demuxer;
extern const AVInputFormat ff_sami_demuxer;
extern const AVInputFormat ff_sap_demuxer;
extern const FFInputFormat ff_s337m_demuxer;
extern const FFInputFormat ff_sami_demuxer;
extern const FFInputFormat ff_sap_demuxer;
extern const FFOutputFormat ff_sap_muxer;
extern const AVInputFormat ff_sbc_demuxer;
extern const FFInputFormat ff_sbc_demuxer;
extern const FFOutputFormat ff_sbc_muxer;
extern const AVInputFormat ff_sbg_demuxer;
extern const AVInputFormat ff_scc_demuxer;
extern const FFInputFormat ff_sbg_demuxer;
extern const FFInputFormat ff_scc_demuxer;
extern const FFOutputFormat ff_scc_muxer;
extern const AVInputFormat ff_scd_demuxer;
extern const AVInputFormat ff_sdns_demuxer;
extern const AVInputFormat ff_sdp_demuxer;
extern const AVInputFormat ff_sdr2_demuxer;
extern const AVInputFormat ff_sds_demuxer;
extern const AVInputFormat ff_sdx_demuxer;
extern const AVInputFormat ff_segafilm_demuxer;
extern const FFInputFormat ff_scd_demuxer;
extern const FFInputFormat ff_sdns_demuxer;
extern const FFInputFormat ff_sdp_demuxer;
extern const FFInputFormat ff_sdr2_demuxer;
extern const FFInputFormat ff_sds_demuxer;
extern const FFInputFormat ff_sdx_demuxer;
extern const FFInputFormat ff_segafilm_demuxer;
extern const FFOutputFormat ff_segafilm_muxer;
extern const FFOutputFormat ff_segment_muxer;
extern const FFOutputFormat ff_stream_segment_muxer;
extern const AVInputFormat ff_ser_demuxer;
extern const AVInputFormat ff_sga_demuxer;
extern const AVInputFormat ff_shorten_demuxer;
extern const AVInputFormat ff_siff_demuxer;
extern const AVInputFormat ff_simbiosis_imx_demuxer;
extern const AVInputFormat ff_sln_demuxer;
extern const AVInputFormat ff_smacker_demuxer;
extern const AVInputFormat ff_smjpeg_demuxer;
extern const FFInputFormat ff_ser_demuxer;
extern const FFInputFormat ff_sga_demuxer;
extern const FFInputFormat ff_shorten_demuxer;
extern const FFInputFormat ff_siff_demuxer;
extern const FFInputFormat ff_simbiosis_imx_demuxer;
extern const FFInputFormat ff_sln_demuxer;
extern const FFInputFormat ff_smacker_demuxer;
extern const FFInputFormat ff_smjpeg_demuxer;
extern const FFOutputFormat ff_smjpeg_muxer;
extern const FFOutputFormat ff_smoothstreaming_muxer;
extern const AVInputFormat ff_smush_demuxer;
extern const AVInputFormat ff_sol_demuxer;
extern const AVInputFormat ff_sox_demuxer;
extern const FFInputFormat ff_smush_demuxer;
extern const FFInputFormat ff_sol_demuxer;
extern const FFInputFormat ff_sox_demuxer;
extern const FFOutputFormat ff_sox_muxer;
extern const FFOutputFormat ff_spx_muxer;
extern const AVInputFormat ff_spdif_demuxer;
extern const FFInputFormat ff_spdif_demuxer;
extern const FFOutputFormat ff_spdif_muxer;
extern const AVInputFormat ff_srt_demuxer;
extern const FFInputFormat ff_srt_demuxer;
extern const FFOutputFormat ff_srt_muxer;
extern const AVInputFormat ff_str_demuxer;
extern const AVInputFormat ff_stl_demuxer;
extern const FFInputFormat ff_str_demuxer;
extern const FFInputFormat ff_stl_demuxer;
extern const FFOutputFormat ff_streamhash_muxer;
extern const AVInputFormat ff_subviewer1_demuxer;
extern const AVInputFormat ff_subviewer_demuxer;
extern const AVInputFormat ff_sup_demuxer;
extern const FFInputFormat ff_subviewer1_demuxer;
extern const FFInputFormat ff_subviewer_demuxer;
extern const FFInputFormat ff_sup_demuxer;
extern const FFOutputFormat ff_sup_muxer;
extern const AVInputFormat ff_svag_demuxer;
extern const AVInputFormat ff_svs_demuxer;
extern const AVInputFormat ff_swf_demuxer;
extern const FFInputFormat ff_svag_demuxer;
extern const FFInputFormat ff_svs_demuxer;
extern const FFInputFormat ff_swf_demuxer;
extern const FFOutputFormat ff_swf_muxer;
extern const AVInputFormat ff_tak_demuxer;
extern const FFInputFormat ff_tak_demuxer;
extern const FFOutputFormat ff_tee_muxer;
extern const AVInputFormat ff_tedcaptions_demuxer;
extern const FFInputFormat ff_tedcaptions_demuxer;
extern const FFOutputFormat ff_tg2_muxer;
extern const FFOutputFormat ff_tgp_muxer;
extern const AVInputFormat ff_thp_demuxer;
extern const AVInputFormat ff_threedostr_demuxer;
extern const AVInputFormat ff_tiertexseq_demuxer;
extern const FFInputFormat ff_thp_demuxer;
extern const FFInputFormat ff_threedostr_demuxer;
extern const FFInputFormat ff_tiertexseq_demuxer;
extern const FFOutputFormat ff_mkvtimestamp_v2_muxer;
extern const AVInputFormat ff_tmv_demuxer;
extern const AVInputFormat ff_truehd_demuxer;
extern const FFInputFormat ff_tmv_demuxer;
extern const FFInputFormat ff_truehd_demuxer;
extern const FFOutputFormat ff_truehd_muxer;
extern const AVInputFormat ff_tta_demuxer;
extern const FFInputFormat ff_tta_demuxer;
extern const FFOutputFormat ff_tta_muxer;
extern const FFOutputFormat ff_ttml_muxer;
extern const AVInputFormat ff_txd_demuxer;
extern const AVInputFormat ff_tty_demuxer;
extern const AVInputFormat ff_ty_demuxer;
extern const FFInputFormat ff_txd_demuxer;
extern const FFInputFormat ff_tty_demuxer;
extern const FFInputFormat ff_ty_demuxer;
extern const FFOutputFormat ff_uncodedframecrc_muxer;
extern const AVInputFormat ff_usm_demuxer;
extern const AVInputFormat ff_v210_demuxer;
extern const AVInputFormat ff_v210x_demuxer;
extern const AVInputFormat ff_vag_demuxer;
extern const AVInputFormat ff_vc1_demuxer;
extern const FFInputFormat ff_usm_demuxer;
extern const FFInputFormat ff_v210_demuxer;
extern const FFInputFormat ff_v210x_demuxer;
extern const FFInputFormat ff_vag_demuxer;
extern const FFInputFormat ff_vc1_demuxer;
extern const FFOutputFormat ff_vc1_muxer;
extern const AVInputFormat ff_vc1t_demuxer;
extern const FFInputFormat ff_vc1t_demuxer;
extern const FFOutputFormat ff_vc1t_muxer;
extern const AVInputFormat ff_vividas_demuxer;
extern const AVInputFormat ff_vivo_demuxer;
extern const AVInputFormat ff_vmd_demuxer;
extern const AVInputFormat ff_vobsub_demuxer;
extern const AVInputFormat ff_voc_demuxer;
extern const FFInputFormat ff_vividas_demuxer;
extern const FFInputFormat ff_vivo_demuxer;
extern const FFInputFormat ff_vmd_demuxer;
extern const FFInputFormat ff_vobsub_demuxer;
extern const FFInputFormat ff_voc_demuxer;
extern const FFOutputFormat ff_voc_muxer;
extern const AVInputFormat ff_vpk_demuxer;
extern const AVInputFormat ff_vplayer_demuxer;
extern const AVInputFormat ff_vqf_demuxer;
extern const AVInputFormat ff_vvc_demuxer;
extern const FFInputFormat ff_vpk_demuxer;
extern const FFInputFormat ff_vplayer_demuxer;
extern const FFInputFormat ff_vqf_demuxer;
extern const FFInputFormat ff_vvc_demuxer;
extern const FFOutputFormat ff_vvc_muxer;
extern const AVInputFormat ff_w64_demuxer;
extern const FFInputFormat ff_w64_demuxer;
extern const FFOutputFormat ff_w64_muxer;
extern const AVInputFormat ff_wady_demuxer;
extern const AVInputFormat ff_wavarc_demuxer;
extern const AVInputFormat ff_wav_demuxer;
extern const FFInputFormat ff_wady_demuxer;
extern const FFInputFormat ff_wavarc_demuxer;
extern const FFInputFormat ff_wav_demuxer;
extern const FFOutputFormat ff_wav_muxer;
extern const AVInputFormat ff_wc3_demuxer;
extern const FFInputFormat ff_wc3_demuxer;
extern const FFOutputFormat ff_webm_muxer;
extern const AVInputFormat ff_webm_dash_manifest_demuxer;
extern const FFInputFormat ff_webm_dash_manifest_demuxer;
extern const FFOutputFormat ff_webm_dash_manifest_muxer;
extern const FFOutputFormat ff_webm_chunk_muxer;
extern const FFOutputFormat ff_webp_muxer;
extern const AVInputFormat ff_webvtt_demuxer;
extern const FFInputFormat ff_webvtt_demuxer;
extern const FFOutputFormat ff_webvtt_muxer;
extern const AVInputFormat ff_wsaud_demuxer;
extern const FFInputFormat ff_wsaud_demuxer;
extern const FFOutputFormat ff_wsaud_muxer;
extern const AVInputFormat ff_wsd_demuxer;
extern const AVInputFormat ff_wsvqa_demuxer;
extern const AVInputFormat ff_wtv_demuxer;
extern const FFInputFormat ff_wsd_demuxer;
extern const FFInputFormat ff_wsvqa_demuxer;
extern const FFInputFormat ff_wtv_demuxer;
extern const FFOutputFormat ff_wtv_muxer;
extern const AVInputFormat ff_wve_demuxer;
extern const AVInputFormat ff_wv_demuxer;
extern const FFInputFormat ff_wve_demuxer;
extern const FFInputFormat ff_wv_demuxer;
extern const FFOutputFormat ff_wv_muxer;
extern const AVInputFormat ff_xa_demuxer;
extern const AVInputFormat ff_xbin_demuxer;
extern const AVInputFormat ff_xmd_demuxer;
extern const AVInputFormat ff_xmv_demuxer;
extern const AVInputFormat ff_xvag_demuxer;
extern const AVInputFormat ff_xwma_demuxer;
extern const AVInputFormat ff_yop_demuxer;
extern const AVInputFormat ff_yuv4mpegpipe_demuxer;
extern const FFInputFormat ff_xa_demuxer;
extern const FFInputFormat ff_xbin_demuxer;
extern const FFInputFormat ff_xmd_demuxer;
extern const FFInputFormat ff_xmv_demuxer;
extern const FFInputFormat ff_xvag_demuxer;
extern const FFInputFormat ff_xwma_demuxer;
extern const FFInputFormat ff_yop_demuxer;
extern const FFInputFormat ff_yuv4mpegpipe_demuxer;
extern const FFOutputFormat ff_yuv4mpegpipe_muxer;
/* image demuxers */
extern const AVInputFormat ff_image_bmp_pipe_demuxer;
extern const AVInputFormat ff_image_cri_pipe_demuxer;
extern const AVInputFormat ff_image_dds_pipe_demuxer;
extern const AVInputFormat ff_image_dpx_pipe_demuxer;
extern const AVInputFormat ff_image_exr_pipe_demuxer;
extern const AVInputFormat ff_image_gem_pipe_demuxer;
extern const AVInputFormat ff_image_gif_pipe_demuxer;
extern const AVInputFormat ff_image_hdr_pipe_demuxer;
extern const AVInputFormat ff_image_j2k_pipe_demuxer;
extern const AVInputFormat ff_image_jpeg_pipe_demuxer;
extern const AVInputFormat ff_image_jpegls_pipe_demuxer;
extern const AVInputFormat ff_image_jpegxl_pipe_demuxer;
extern const AVInputFormat ff_image_pam_pipe_demuxer;
extern const AVInputFormat ff_image_pbm_pipe_demuxer;
extern const AVInputFormat ff_image_pcx_pipe_demuxer;
extern const AVInputFormat ff_image_pfm_pipe_demuxer;
extern const AVInputFormat ff_image_pgmyuv_pipe_demuxer;
extern const AVInputFormat ff_image_pgm_pipe_demuxer;
extern const AVInputFormat ff_image_pgx_pipe_demuxer;
extern const AVInputFormat ff_image_phm_pipe_demuxer;
extern const AVInputFormat ff_image_photocd_pipe_demuxer;
extern const AVInputFormat ff_image_pictor_pipe_demuxer;
extern const AVInputFormat ff_image_png_pipe_demuxer;
extern const AVInputFormat ff_image_ppm_pipe_demuxer;
extern const AVInputFormat ff_image_psd_pipe_demuxer;
extern const AVInputFormat ff_image_qdraw_pipe_demuxer;
extern const AVInputFormat ff_image_qoi_pipe_demuxer;
extern const AVInputFormat ff_image_sgi_pipe_demuxer;
extern const AVInputFormat ff_image_svg_pipe_demuxer;
extern const AVInputFormat ff_image_sunrast_pipe_demuxer;
extern const AVInputFormat ff_image_tiff_pipe_demuxer;
extern const AVInputFormat ff_image_vbn_pipe_demuxer;
extern const AVInputFormat ff_image_webp_pipe_demuxer;
extern const AVInputFormat ff_image_xbm_pipe_demuxer;
extern const AVInputFormat ff_image_xpm_pipe_demuxer;
extern const AVInputFormat ff_image_xwd_pipe_demuxer;
extern const FFInputFormat ff_image_bmp_pipe_demuxer;
extern const FFInputFormat ff_image_cri_pipe_demuxer;
extern const FFInputFormat ff_image_dds_pipe_demuxer;
extern const FFInputFormat ff_image_dpx_pipe_demuxer;
extern const FFInputFormat ff_image_exr_pipe_demuxer;
extern const FFInputFormat ff_image_gem_pipe_demuxer;
extern const FFInputFormat ff_image_gif_pipe_demuxer;
extern const FFInputFormat ff_image_hdr_pipe_demuxer;
extern const FFInputFormat ff_image_j2k_pipe_demuxer;
extern const FFInputFormat ff_image_jpeg_pipe_demuxer;
extern const FFInputFormat ff_image_jpegls_pipe_demuxer;
extern const FFInputFormat ff_image_jpegxl_pipe_demuxer;
extern const FFInputFormat ff_image_pam_pipe_demuxer;
extern const FFInputFormat ff_image_pbm_pipe_demuxer;
extern const FFInputFormat ff_image_pcx_pipe_demuxer;
extern const FFInputFormat ff_image_pfm_pipe_demuxer;
extern const FFInputFormat ff_image_pgmyuv_pipe_demuxer;
extern const FFInputFormat ff_image_pgm_pipe_demuxer;
extern const FFInputFormat ff_image_pgx_pipe_demuxer;
extern const FFInputFormat ff_image_phm_pipe_demuxer;
extern const FFInputFormat ff_image_photocd_pipe_demuxer;
extern const FFInputFormat ff_image_pictor_pipe_demuxer;
extern const FFInputFormat ff_image_png_pipe_demuxer;
extern const FFInputFormat ff_image_ppm_pipe_demuxer;
extern const FFInputFormat ff_image_psd_pipe_demuxer;
extern const FFInputFormat ff_image_qdraw_pipe_demuxer;
extern const FFInputFormat ff_image_qoi_pipe_demuxer;
extern const FFInputFormat ff_image_sgi_pipe_demuxer;
extern const FFInputFormat ff_image_svg_pipe_demuxer;
extern const FFInputFormat ff_image_sunrast_pipe_demuxer;
extern const FFInputFormat ff_image_tiff_pipe_demuxer;
extern const FFInputFormat ff_image_vbn_pipe_demuxer;
extern const FFInputFormat ff_image_webp_pipe_demuxer;
extern const FFInputFormat ff_image_xbm_pipe_demuxer;
extern const FFInputFormat ff_image_xpm_pipe_demuxer;
extern const FFInputFormat ff_image_xwd_pipe_demuxer;
/* external libraries */
extern const FFOutputFormat ff_chromaprint_muxer;
extern const AVInputFormat ff_libgme_demuxer;
extern const AVInputFormat ff_libmodplug_demuxer;
extern const AVInputFormat ff_libopenmpt_demuxer;
extern const AVInputFormat ff_vapoursynth_demuxer;
extern const FFInputFormat ff_libgme_demuxer;
extern const FFInputFormat ff_libmodplug_demuxer;
extern const FFInputFormat ff_libopenmpt_demuxer;
extern const FFInputFormat ff_vapoursynth_demuxer;
#include "libavformat/muxer_list.c"
#include "libavformat/demuxer_list.c"
@ -603,22 +604,24 @@ const AVInputFormat *av_demuxer_iterate(void **opaque)
{
static const uintptr_t size = sizeof(demuxer_list)/sizeof(demuxer_list[0]) - 1;
uintptr_t i = (uintptr_t)*opaque;
const AVInputFormat *f = NULL;
const FFInputFormat *f = NULL;
uintptr_t tmp;
if (i < size) {
f = demuxer_list[i];
} else if (tmp = atomic_load_explicit(&indev_list_intptr, memory_order_relaxed)) {
const AVInputFormat *const *indev_list = (const AVInputFormat *const *)tmp;
const FFInputFormat *const *indev_list = (const FFInputFormat *const *)tmp;
f = indev_list[i - size];
}
if (f)
if (f) {
*opaque = (void*)(i + 1);
return f;
return &f->p;
}
return NULL;
}
void avpriv_register_devices(const FFOutputFormat * const o[], const AVInputFormat * const i[])
void avpriv_register_devices(const FFOutputFormat * const o[], const FFInputFormat * const i[])
{
atomic_store_explicit(&outdev_list_intptr, (uintptr_t)o, memory_order_relaxed);
atomic_store_explicit(&indev_list_intptr, (uintptr_t)i, memory_order_relaxed);

View File

@ -24,6 +24,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@ -163,9 +164,9 @@ static int alp_seek(AVFormatContext *s, int stream_index,
return avio_seek(s->pb, hdr->header_size + 8, SEEK_SET);
}
const AVInputFormat ff_alp_demuxer = {
.name = "alp",
.long_name = NULL_IF_CONFIG_SMALL("LEGO Racers ALP"),
const FFInputFormat ff_alp_demuxer = {
.p.name = "alp",
.p.long_name = NULL_IF_CONFIG_SMALL("LEGO Racers ALP"),
.priv_data_size = sizeof(ALPHeader),
.read_probe = alp_probe,
.read_header = alp_read_header,

View File

@ -29,6 +29,7 @@ Write and read amr data according to RFC3267, http://www.ietf.org/rfc/rfc3267.tx
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "avio_internal.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawdec.h"
@ -140,15 +141,15 @@ static int amr_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_amr_demuxer = {
.name = "amr",
.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR"),
const FFInputFormat ff_amr_demuxer = {
.p.name = "amr",
.p.long_name = NULL_IF_CONFIG_SMALL("3GPP AMR"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(AMRContext),
.read_probe = amr_probe,
.read_header = amr_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_GENERIC_INDEX,
.priv_class = &ff_raw_demuxer_class,
};
#endif
@ -197,15 +198,15 @@ static int amrnb_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_amrnb_demuxer = {
.name = "amrnb",
.long_name = NULL_IF_CONFIG_SMALL("raw AMR-NB"),
const FFInputFormat ff_amrnb_demuxer = {
.p.name = "amrnb",
.p.long_name = NULL_IF_CONFIG_SMALL("raw AMR-NB"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(AMRContext),
.read_probe = amrnb_probe,
.read_header = amrnb_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_GENERIC_INDEX,
.priv_class = &ff_raw_demuxer_class,
};
#endif
@ -254,15 +255,15 @@ static int amrwb_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_amrwb_demuxer = {
.name = "amrwb",
.long_name = NULL_IF_CONFIG_SMALL("raw AMR-WB"),
const FFInputFormat ff_amrwb_demuxer = {
.p.name = "amrwb",
.p.long_name = NULL_IF_CONFIG_SMALL("raw AMR-WB"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &ff_raw_demuxer_class,
.priv_data_size = sizeof(AMRContext),
.read_probe = amrwb_probe,
.read_header = amrwb_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_GENERIC_INDEX,
.priv_class = &ff_raw_demuxer_class,
};
#endif

View File

@ -215,9 +215,9 @@ repeat:
return 0;
}
const AVInputFormat ff_anm_demuxer = {
.name = "anm",
.long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
const FFInputFormat ff_anm_demuxer = {
.p.name = "anm",
.p.long_name = NULL_IF_CONFIG_SMALL("Deluxe Paint Animation"),
.priv_data_size = sizeof(AnmDemuxContext),
.read_probe = probe,
.read_header = read_header,

View File

@ -72,15 +72,15 @@ static int apac_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_apac_demuxer = {
.name = "apac",
.long_name = NULL_IF_CONFIG_SMALL("raw APAC"),
const FFInputFormat ff_apac_demuxer = {
.p.name = "apac",
.p.long_name = NULL_IF_CONFIG_SMALL("raw APAC"),
.p.extensions = "apc",
.p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.p.priv_class = &ff_raw_demuxer_class,
.read_probe = apac_probe,
.read_header = apac_read_header,
.read_packet = ff_raw_read_partial_packet,
.extensions = "apc",
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.raw_codec_id = AV_CODEC_ID_APAC,
.priv_data_size = sizeof(FFRawDemuxerContext),
.priv_class = &ff_raw_demuxer_class,
};

View File

@ -79,9 +79,9 @@ static int apc_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_apc_demuxer = {
.name = "apc",
.long_name = NULL_IF_CONFIG_SMALL("CRYO APC"),
const FFInputFormat ff_apc_demuxer = {
.p.name = "apc",
.p.long_name = NULL_IF_CONFIG_SMALL("CRYO APC"),
.read_probe = apc_probe,
.read_header = apc_read_header,
.read_packet = apc_read_packet,

View File

@ -24,6 +24,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "apetag.h"
@ -444,9 +445,10 @@ static int ape_read_seek(AVFormatContext *s, int stream_index, int64_t timestamp
return 0;
}
const AVInputFormat ff_ape_demuxer = {
.name = "ape",
.long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
const FFInputFormat ff_ape_demuxer = {
.p.name = "ape",
.p.long_name = NULL_IF_CONFIG_SMALL("Monkey's Audio"),
.p.extensions = "ape,apl,mac",
.priv_data_size = sizeof(APEContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = ape_probe,
@ -454,5 +456,4 @@ const AVInputFormat ff_ape_demuxer = {
.read_packet = ape_read_packet,
.read_close = ape_read_close,
.read_seek = ape_read_seek,
.extensions = "ape,apl,mac",
};

View File

@ -23,6 +23,7 @@
#include "config_components.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@ -202,9 +203,9 @@ static int apm_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_apm_demuxer = {
.name = "apm",
.long_name = NULL_IF_CONFIG_SMALL("Ubisoft Rayman 2 APM"),
const FFInputFormat ff_apm_demuxer = {
.p.name = "apm",
.p.long_name = NULL_IF_CONFIG_SMALL("Ubisoft Rayman 2 APM"),
.read_probe = apm_probe,
.read_header = apm_read_header,
.read_packet = apm_read_packet

View File

@ -28,6 +28,7 @@
#include "avformat.h"
#include "avio_internal.h"
#include "demux.h"
#include "internal.h"
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
@ -421,13 +422,13 @@ static const AVClass demuxer_class = {
.category = AV_CLASS_CATEGORY_DEMUXER,
};
const AVInputFormat ff_apng_demuxer = {
.name = "apng",
.long_name = NULL_IF_CONFIG_SMALL("Animated Portable Network Graphics"),
const FFInputFormat ff_apng_demuxer = {
.p.name = "apng",
.p.long_name = NULL_IF_CONFIG_SMALL("Animated Portable Network Graphics"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &demuxer_class,
.priv_data_size = sizeof(APNGDemuxContext),
.read_probe = apng_probe,
.read_header = apng_read_header,
.read_packet = apng_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.priv_class = &demuxer_class,
};

View File

@ -24,6 +24,7 @@
#include "libavutil/opt.h"
#include "avformat.h"
#include "demux.h"
#define APTX_BLOCK_SIZE 4
#define APTX_PACKET_SIZE (256*APTX_BLOCK_SIZE)
@ -101,27 +102,27 @@ static const AVClass aptx_demuxer_class = {
};
#if CONFIG_APTX_DEMUXER
const AVInputFormat ff_aptx_demuxer = {
.name = "aptx",
.long_name = NULL_IF_CONFIG_SMALL("raw aptX"),
.extensions = "aptx",
const FFInputFormat ff_aptx_demuxer = {
.p.name = "aptx",
.p.long_name = NULL_IF_CONFIG_SMALL("raw aptX"),
.p.extensions = "aptx",
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &aptx_demuxer_class,
.priv_data_size = sizeof(AptXDemuxerContext),
.read_header = aptx_read_header,
.read_packet = aptx_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.priv_class = &aptx_demuxer_class,
};
#endif
#if CONFIG_APTX_HD_DEMUXER
const AVInputFormat ff_aptx_hd_demuxer = {
.name = "aptx_hd",
.long_name = NULL_IF_CONFIG_SMALL("raw aptX HD"),
.extensions = "aptxhd",
const FFInputFormat ff_aptx_hd_demuxer = {
.p.name = "aptx_hd",
.p.long_name = NULL_IF_CONFIG_SMALL("raw aptX HD"),
.p.extensions = "aptxhd",
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &aptx_demuxer_class,
.priv_data_size = sizeof(AptXDemuxerContext),
.read_header = aptx_hd_read_header,
.read_packet = aptx_hd_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.priv_class = &aptx_demuxer_class,
};
#endif

View File

@ -27,6 +27,7 @@
*/
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/opt.h"
@ -135,9 +136,11 @@ static const AVClass aqt_class = {
.version = LIBAVUTIL_VERSION_INT,
};
const AVInputFormat ff_aqtitle_demuxer = {
.name = "aqtitle",
.long_name = NULL_IF_CONFIG_SMALL("AQTitle subtitles"),
const FFInputFormat ff_aqtitle_demuxer = {
.p.name = "aqtitle",
.p.long_name = NULL_IF_CONFIG_SMALL("AQTitle subtitles"),
.p.extensions = "aqt",
.p.priv_class = &aqt_class,
.priv_data_size = sizeof(AQTitleContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = aqt_probe,
@ -145,6 +148,4 @@ const AVInputFormat ff_aqtitle_demuxer = {
.read_packet = aqt_read_packet,
.read_seek2 = aqt_read_seek,
.read_close = aqt_read_close,
.extensions = "aqt",
.priv_class = &aqt_class,
};

View File

@ -24,6 +24,7 @@
#include "libavutil/avstring.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "libavutil/channel_layout.h"
@ -272,9 +273,9 @@ static int argo_asf_seek(AVFormatContext *s, int stream_index,
* - Argonaut Sound File?
* - Audio Stream File?
*/
const AVInputFormat ff_argo_asf_demuxer = {
.name = "argo_asf",
.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games ASF"),
const FFInputFormat ff_argo_asf_demuxer = {
.p.name = "argo_asf",
.p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games ASF"),
.priv_data_size = sizeof(ArgoASFDemuxContext),
.read_probe = argo_asf_probe,
.read_header = argo_asf_read_header,

View File

@ -21,6 +21,7 @@
*/
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "libavutil/intreadwrite.h"
#include "libavutil/avassert.h"
@ -413,9 +414,9 @@ static int argo_brp_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_argo_brp_demuxer = {
.name = "argo_brp",
.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games BRP"),
const FFInputFormat ff_argo_brp_demuxer = {
.p.name = "argo_brp",
.p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games BRP"),
.priv_data_size = sizeof(ArgoBRPDemuxContext),
.read_probe = argo_brp_probe,
.read_header = argo_brp_read_header,

View File

@ -25,6 +25,7 @@
#include "libavutil/avstring.h"
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "libavutil/opt.h"
@ -253,9 +254,9 @@ static int argo_cvg_seek(AVFormatContext *s, int stream_index,
return 0;
}
const AVInputFormat ff_argo_cvg_demuxer = {
.name = "argo_cvg",
.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games CVG"),
const FFInputFormat ff_argo_cvg_demuxer = {
.p.name = "argo_cvg",
.p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games CVG"),
.priv_data_size = sizeof(ArgoCVGDemuxContext),
.read_probe = argo_cvg_probe,
.read_header = argo_cvg_read_header,

View File

@ -1617,9 +1617,11 @@ static int asf_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
const AVInputFormat ff_asf_demuxer = {
.name = "asf",
.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
const FFInputFormat ff_asf_demuxer = {
.p.name = "asf",
.p.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
.p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
.p.priv_class = &asf_class,
.priv_data_size = sizeof(ASFContext),
.read_probe = asf_probe,
.read_header = asf_read_header,
@ -1627,6 +1629,4 @@ const AVInputFormat ff_asf_demuxer = {
.read_close = asf_read_close,
.read_seek = asf_read_seek,
.read_timestamp = asf_read_pts,
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
.priv_class = &asf_class,
};

View File

@ -1674,9 +1674,10 @@ failed:
return ret;
}
const AVInputFormat ff_asf_o_demuxer = {
.name = "asf_o",
.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
const FFInputFormat ff_asf_o_demuxer = {
.p.name = "asf_o",
.p.long_name = NULL_IF_CONFIG_SMALL("ASF (Advanced / Active Streaming Format)"),
.p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
.priv_data_size = sizeof(ASFContext),
.read_probe = asf_probe,
.read_header = asf_read_header,
@ -1684,5 +1685,4 @@ const AVInputFormat ff_asf_o_demuxer = {
.read_close = asf_read_close,
.read_timestamp = asf_read_timestamp,
.read_seek = asf_read_seek,
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH,
};

View File

@ -23,6 +23,7 @@
#include <stdint.h>
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "subtitles.h"
#include "libavutil/bprint.h"
@ -160,9 +161,9 @@ end:
return res;
}
const AVInputFormat ff_ass_demuxer = {
.name = "ass",
.long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
const FFInputFormat ff_ass_demuxer = {
.p.name = "ass",
.p.long_name = NULL_IF_CONFIG_SMALL("SSA (SubStation Alpha) subtitle"),
.flags_internal = FF_FMT_INIT_CLEANUP,
.priv_data_size = sizeof(ASSContext),
.read_probe = ass_probe,

View File

@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "ast.h"
@ -111,13 +112,13 @@ static int ast_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_ast_demuxer = {
.name = "ast",
.long_name = NULL_IF_CONFIG_SMALL("AST (Audio Stream)"),
const FFInputFormat ff_ast_demuxer = {
.p.name = "ast",
.p.long_name = NULL_IF_CONFIG_SMALL("AST (Audio Stream)"),
.p.extensions = "ast",
.p.flags = AVFMT_GENERIC_INDEX,
.p.codec_tag = ff_ast_codec_tags_list,
.read_probe = ast_probe,
.read_header = ast_read_header,
.read_packet = ast_read_packet,
.extensions = "ast",
.flags = AVFMT_GENERIC_INDEX,
.codec_tag = ff_ast_codec_tags_list,
};

View File

@ -32,6 +32,7 @@
#include "libavutil/bprint.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
#include "mux.h"
@ -235,14 +236,14 @@ static int au_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_au_demuxer = {
.name = "au",
.long_name = NULL_IF_CONFIG_SMALL("Sun AU"),
const FFInputFormat ff_au_demuxer = {
.p.name = "au",
.p.long_name = NULL_IF_CONFIG_SMALL("Sun AU"),
.p.codec_tag = au_codec_tags,
.read_probe = au_probe,
.read_header = au_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
.codec_tag = au_codec_tags,
};
#endif /* CONFIG_AU_DEMUXER */

View File

@ -27,6 +27,7 @@
#include "libavcodec/bsf.h"
#include "avformat.h"
#include "avio_internal.h"
#include "demux.h"
#include "internal.h"
typedef struct AV1DemuxContext {
@ -281,18 +282,18 @@ end:
return ret;
}
const AVInputFormat ff_av1_demuxer = {
.name = "av1",
.long_name = NULL_IF_CONFIG_SMALL("AV1 Annex B"),
const FFInputFormat ff_av1_demuxer = {
.p.name = "av1",
.p.long_name = NULL_IF_CONFIG_SMALL("AV1 Annex B"),
.p.extensions = "obu",
.p.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
.p.priv_class = &av1_demuxer_class,
.priv_data_size = sizeof(AV1DemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = annexb_probe,
.read_header = av1_read_header,
.read_packet = annexb_read_packet,
.read_close = av1_read_close,
.extensions = "obu",
.flags = AVFMT_GENERIC_INDEX | AVFMT_NOTIMESTAMPS,
.priv_class = &av1_demuxer_class,
};
#endif
@ -426,17 +427,17 @@ static int obu_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_obu_demuxer = {
.name = "obu",
.long_name = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"),
const FFInputFormat ff_obu_demuxer = {
.p.name = "obu",
.p.long_name = NULL_IF_CONFIG_SMALL("AV1 low overhead OBU"),
.p.extensions = "obu",
.p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.p.priv_class = &av1_demuxer_class,
.priv_data_size = sizeof(AV1DemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = obu_probe,
.read_header = av1_read_header,
.read_packet = obu_read_packet,
.read_close = av1_read_close,
.extensions = "obu",
.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.priv_class = &av1_demuxer_class,
};
#endif

View File

@ -330,7 +330,6 @@
struct AVFormatContext;
struct AVFrame;
struct AVDeviceInfoList;
/**
* @defgroup metadata_api Public Metadata API
@ -584,103 +583,6 @@ typedef struct AVInputFormat {
* @see av_probe_input_format2
*/
const char *mime_type;
/*****************************************************************
* No fields below this line are part of the public API. They
* may not be used outside of libavformat and can be changed and
* removed at will.
* New public fields should be added right above.
*****************************************************************
*/
/**
* Raw demuxers store their codec ID here.
*/
int raw_codec_id;
/**
* Size of private data so that it can be allocated in the wrapper.
*/
int priv_data_size;
/**
* Internal flags. See FF_FMT_FLAG_* in internal.h.
*/
int flags_internal;
/**
* Tell if a given file has a chance of being parsed as this format.
* The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes
* big so you do not have to check for that unless you need more.
*/
int (*read_probe)(const AVProbeData *);
/**
* Read the format header and initialize the AVFormatContext
* structure. Return 0 if OK. 'avformat_new_stream' should be
* called to create new streams.
*/
int (*read_header)(struct AVFormatContext *);
/**
* Read one packet and put it in 'pkt'. pts and flags are also
* set. 'avformat_new_stream' can be called only if the flag
* AVFMTCTX_NOHEADER is used and only in the calling thread (not in a
* background thread).
* @return 0 on success, < 0 on error.
* Upon returning an error, pkt must be unreferenced by the caller.
*/
int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
/**
* Close the stream. The AVFormatContext and AVStreams are not
* freed by this function
*/
int (*read_close)(struct AVFormatContext *);
/**
* Seek to a given timestamp relative to the frames in
* stream component stream_index.
* @param stream_index Must not be -1.
* @param flags Selects which direction should be preferred if no exact
* match is available.
* @return >= 0 on success (but not necessarily the new offset)
*/
int (*read_seek)(struct AVFormatContext *,
int stream_index, int64_t timestamp, int flags);
/**
* Get the next timestamp in stream[stream_index].time_base units.
* @return the timestamp or AV_NOPTS_VALUE if an error occurred
*/
int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
int64_t *pos, int64_t pos_limit);
/**
* Start/resume playing - only meaningful if using a network-based format
* (RTSP).
*/
int (*read_play)(struct AVFormatContext *);
/**
* Pause playing - only meaningful if using a network-based format
* (RTSP).
*/
int (*read_pause)(struct AVFormatContext *);
/**
* Seek to timestamp ts.
* Seeking will be done so that the point from which all active streams
* can be presented successfully will be closest to ts and within min/max_ts.
* Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
*/
int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
/**
* Returns device list with it properties.
* @see avdevice_list_devices() for more details.
*/
int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list);
} AVInputFormat;
/**
* @}

View File

@ -2010,16 +2010,16 @@ static int avi_probe(const AVProbeData *p)
return 0;
}
const AVInputFormat ff_avi_demuxer = {
.name = "avi",
.long_name = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
const FFInputFormat ff_avi_demuxer = {
.p.name = "avi",
.p.long_name = NULL_IF_CONFIG_SMALL("AVI (Audio Video Interleaved)"),
.p.extensions = "avi",
.p.priv_class = &demuxer_class,
.priv_data_size = sizeof(AVIContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.extensions = "avi",
.read_probe = avi_probe,
.read_header = avi_read_header,
.read_packet = avi_read_packet,
.read_close = avi_read_close,
.read_seek = avi_read_seek,
.priv_class = &demuxer_class,
};

View File

@ -26,6 +26,7 @@
#include "libavcodec/internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "config.h"
@ -1197,14 +1198,14 @@ static const AVClass avisynth_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
const AVInputFormat ff_avisynth_demuxer = {
.name = "avisynth",
.long_name = NULL_IF_CONFIG_SMALL("AviSynth script"),
const FFInputFormat ff_avisynth_demuxer = {
.p.name = "avisynth",
.p.long_name = NULL_IF_CONFIG_SMALL("AviSynth script"),
.p.extensions = "avs",
.p.priv_class = &avisynth_demuxer_class,
.priv_data_size = sizeof(AviSynthContext),
.read_header = avisynth_read_header,
.read_packet = avisynth_read_packet,
.read_close = avisynth_read_close,
.read_seek = avisynth_read_seek,
.extensions = "avs",
.priv_class = &avisynth_demuxer_class,
};

View File

@ -21,6 +21,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "pcm.h"
@ -90,13 +91,13 @@ static int avr_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_avr_demuxer = {
.name = "avr",
.long_name = NULL_IF_CONFIG_SMALL("AVR (Audio Visual Research)"),
const FFInputFormat ff_avr_demuxer = {
.p.name = "avr",
.p.long_name = NULL_IF_CONFIG_SMALL("AVR (Audio Visual Research)"),
.p.extensions = "avr",
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = avr_probe,
.read_header = avr_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
.extensions = "avr",
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -26,6 +26,7 @@
*/
#include "avformat.h"
#include "demux.h"
#include "voc.h"
@ -228,9 +229,9 @@ static int avs_read_packet(AVFormatContext * s, AVPacket * pkt)
}
}
const AVInputFormat ff_avs_demuxer = {
.name = "avs",
.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Creature Shock"),
const FFInputFormat ff_avs_demuxer = {
.p.name = "avs",
.p.long_name = NULL_IF_CONFIG_SMALL("Argonaut Games Creature Shock"),
.priv_data_size = sizeof(AvsFormat),
.read_probe = avs_probe,
.read_header = avs_read_header,

View File

@ -31,6 +31,7 @@
#include "libavutil/imgutils.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "libavcodec/bethsoftvideo.h"
@ -290,9 +291,9 @@ static int vid_read_packet(AVFormatContext *s,
}
}
const AVInputFormat ff_bethsoftvid_demuxer = {
.name = "bethsoftvid",
.long_name = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID"),
const FFInputFormat ff_bethsoftvid_demuxer = {
.p.name = "bethsoftvid",
.p.long_name = NULL_IF_CONFIG_SMALL("Bethesda Softworks VID"),
.priv_data_size = sizeof(BVID_DemuxContext),
.read_probe = vid_probe,
.read_header = vid_read_header,

View File

@ -176,9 +176,9 @@ static int bfi_read_packet(AVFormatContext * s, AVPacket * pkt)
return ret;
}
const AVInputFormat ff_bfi_demuxer = {
.name = "bfi",
.long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
const FFInputFormat ff_bfi_demuxer = {
.p.name = "bfi",
.p.long_name = NULL_IF_CONFIG_SMALL("Brute Force & Ignorance"),
.priv_data_size = sizeof(BFIContext),
.read_probe = bfi_probe,
.read_header = bfi_read_header,

View File

@ -324,13 +324,13 @@ static int read_seek(AVFormatContext *s, int stream_index, int64_t timestamp, in
return 0;
}
const AVInputFormat ff_bink_demuxer = {
.name = "bink",
.long_name = NULL_IF_CONFIG_SMALL("Bink"),
const FFInputFormat ff_bink_demuxer = {
.p.name = "bink",
.p.long_name = NULL_IF_CONFIG_SMALL("Bink"),
.p.flags = AVFMT_SHOW_IDS,
.priv_data_size = sizeof(BinkDemuxContext),
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
.flags = AVFMT_SHOW_IDS,
};

View File

@ -20,6 +20,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int binka_probe(const AVProbeData *p)
@ -89,12 +90,12 @@ static int binka_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_binka_demuxer = {
.name = "binka",
.long_name = NULL_IF_CONFIG_SMALL("Bink Audio"),
const FFInputFormat ff_binka_demuxer = {
.p.name = "binka",
.p.long_name = NULL_IF_CONFIG_SMALL("Bink Audio"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "binka",
.read_probe = binka_probe,
.read_header = binka_read_header,
.read_packet = binka_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "binka",
};

View File

@ -36,6 +36,7 @@
#include "libavutil/opt.h"
#include "libavutil/parseutils.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "sauce.h"
#include "libavcodec/bintext.h"
@ -388,50 +389,50 @@ static const AVOption options[] = {
}}
#if CONFIG_BINTEXT_DEMUXER
const AVInputFormat ff_bintext_demuxer = {
.name = "bin",
.long_name = NULL_IF_CONFIG_SMALL("Binary text"),
const FFInputFormat ff_bintext_demuxer = {
.p.name = "bin",
.p.long_name = NULL_IF_CONFIG_SMALL("Binary text"),
.p.priv_class = CLASS("Binary text demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_probe = bin_probe,
.read_header = bintext_read_header,
.read_packet = read_packet,
.priv_class = CLASS("Binary text demuxer"),
};
#endif
#if CONFIG_XBIN_DEMUXER
const AVInputFormat ff_xbin_demuxer = {
.name = "xbin",
.long_name = NULL_IF_CONFIG_SMALL("eXtended BINary text (XBIN)"),
const FFInputFormat ff_xbin_demuxer = {
.p.name = "xbin",
.p.long_name = NULL_IF_CONFIG_SMALL("eXtended BINary text (XBIN)"),
.p.priv_class = CLASS("eXtended BINary text (XBIN) demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_probe = xbin_probe,
.read_header = xbin_read_header,
.read_packet = read_packet,
.priv_class = CLASS("eXtended BINary text (XBIN) demuxer"),
};
#endif
#if CONFIG_ADF_DEMUXER
const AVInputFormat ff_adf_demuxer = {
.name = "adf",
.long_name = NULL_IF_CONFIG_SMALL("Artworx Data Format"),
const FFInputFormat ff_adf_demuxer = {
.p.name = "adf",
.p.long_name = NULL_IF_CONFIG_SMALL("Artworx Data Format"),
.p.extensions = "adf",
.p.priv_class = CLASS("Artworx Data Format demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_header = adf_read_header,
.read_packet = read_packet,
.extensions = "adf",
.priv_class = CLASS("Artworx Data Format demuxer"),
};
#endif
#if CONFIG_IDF_DEMUXER
const AVInputFormat ff_idf_demuxer = {
.name = "idf",
.long_name = NULL_IF_CONFIG_SMALL("iCE Draw File"),
const FFInputFormat ff_idf_demuxer = {
.p.name = "idf",
.p.long_name = NULL_IF_CONFIG_SMALL("iCE Draw File"),
.p.extensions = "idf",
.p.priv_class = CLASS("iCE Draw File demuxer"),
.priv_data_size = sizeof(BinDemuxContext),
.read_probe = idf_probe,
.read_header = idf_read_header,
.read_packet = read_packet,
.extensions = "idf",
.priv_class = CLASS("iCE Draw File demuxer"),
};
#endif

View File

@ -22,6 +22,7 @@
#include "config_components.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "libavcodec/get_bits.h"
@ -113,13 +114,13 @@ static int read_packet(AVFormatContext *s,
return 0;
}
const AVInputFormat ff_bit_demuxer = {
.name = "bit",
.long_name = NULL_IF_CONFIG_SMALL("G.729 BIT file format"),
const FFInputFormat ff_bit_demuxer = {
.p.name = "bit",
.p.long_name = NULL_IF_CONFIG_SMALL("G.729 BIT file format"),
.p.extensions = "bit",
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.extensions = "bit",
};
#endif

View File

@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
enum BMVFlags {
@ -124,12 +125,12 @@ static int bmv_read_close(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_bmv_demuxer = {
.name = "bmv",
.long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV"),
const FFInputFormat ff_bmv_demuxer = {
.p.name = "bmv",
.p.long_name = NULL_IF_CONFIG_SMALL("Discworld II BMV"),
.p.extensions = "bmv",
.priv_data_size = sizeof(BMVContext),
.read_header = bmv_read_header,
.read_packet = bmv_read_packet,
.read_close = bmv_read_close,
.extensions = "bmv",
};

View File

@ -22,6 +22,7 @@
#include "libavutil/intreadwrite.h"
#include "libavcodec/internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int probe(const AVProbeData *p)
@ -78,11 +79,11 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, st->codecpar->block_align);
}
const AVInputFormat ff_boa_demuxer = {
.name = "boa",
.long_name = NULL_IF_CONFIG_SMALL("Black Ops Audio"),
const FFInputFormat ff_boa_demuxer = {
.p.name = "boa",
.p.long_name = NULL_IF_CONFIG_SMALL("Black Ops Audio"),
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -103,15 +103,15 @@ static int bonk_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_bonk_demuxer = {
.name = "bonk",
.long_name = NULL_IF_CONFIG_SMALL("raw Bonk"),
const FFInputFormat ff_bonk_demuxer = {
.p.name = "bonk",
.p.long_name = NULL_IF_CONFIG_SMALL("raw Bonk"),
.p.extensions = "bonk",
.p.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.p.priv_class = &ff_raw_demuxer_class,
.read_probe = bonk_probe,
.read_header = bonk_read_header,
.read_packet = ff_raw_read_partial_packet,
.extensions = "bonk",
.flags = AVFMT_NOBINSEARCH | AVFMT_NOGENSEARCH | AVFMT_NO_BYTE_SEEK | AVFMT_NOTIMESTAMPS,
.raw_codec_id = AV_CODEC_ID_BONK,
.priv_data_size = sizeof(FFRawDemuxerContext),
.priv_class = &ff_raw_demuxer_class,
};

View File

@ -467,9 +467,10 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
const AVInputFormat ff_brstm_demuxer = {
.name = "brstm",
.long_name = NULL_IF_CONFIG_SMALL("BRSTM (Binary Revolution Stream)"),
const FFInputFormat ff_brstm_demuxer = {
.p.name = "brstm",
.p.long_name = NULL_IF_CONFIG_SMALL("BRSTM (Binary Revolution Stream)"),
.p.extensions = "brstm",
.priv_data_size = sizeof(BRSTMDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe,
@ -477,12 +478,12 @@ const AVInputFormat ff_brstm_demuxer = {
.read_packet = read_packet,
.read_close = read_close,
.read_seek = read_seek,
.extensions = "brstm",
};
const AVInputFormat ff_bfstm_demuxer = {
.name = "bfstm",
.long_name = NULL_IF_CONFIG_SMALL("BFSTM (Binary Cafe Stream)"),
const FFInputFormat ff_bfstm_demuxer = {
.p.name = "bfstm",
.p.long_name = NULL_IF_CONFIG_SMALL("BFSTM (Binary Cafe Stream)"),
.p.extensions = "bfstm,bcstm",
.priv_data_size = sizeof(BRSTMDemuxContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = probe_bfstm,
@ -490,5 +491,4 @@ const AVInputFormat ff_bfstm_demuxer = {
.read_packet = read_packet,
.read_close = read_close,
.read_seek = read_seek,
.extensions = "bfstm,bcstm",
};

View File

@ -20,6 +20,7 @@
*/
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "voc.h"
#include "libavutil/intreadwrite.h"
@ -185,9 +186,9 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_c93_demuxer = {
.name = "c93",
.long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
const FFInputFormat ff_c93_demuxer = {
.p.name = "c93",
.p.long_name = NULL_IF_CONFIG_SMALL("Interplay C93"),
.priv_data_size = sizeof(C93DemuxContext),
.read_probe = probe,
.read_header = read_header,

View File

@ -512,13 +512,13 @@ static int read_seek(AVFormatContext *s, int stream_index,
return 0;
}
const AVInputFormat ff_caf_demuxer = {
.name = "caf",
.long_name = NULL_IF_CONFIG_SMALL("Apple CAF (Core Audio Format)"),
const FFInputFormat ff_caf_demuxer = {
.p.name = "caf",
.p.long_name = NULL_IF_CONFIG_SMALL("Apple CAF (Core Audio Format)"),
.p.codec_tag = ff_caf_codec_tags_list,
.priv_data_size = sizeof(CafContext),
.read_probe = probe,
.read_header = read_header,
.read_packet = read_packet,
.read_seek = read_seek,
.codec_tag = ff_caf_codec_tags_list,
};

View File

@ -20,6 +20,7 @@
*/
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#define CDG_PACKET_SIZE 24
@ -83,12 +84,12 @@ static int read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_cdg_demuxer = {
.name = "cdg",
.long_name = NULL_IF_CONFIG_SMALL("CD Graphics"),
const FFInputFormat ff_cdg_demuxer = {
.p.name = "cdg",
.p.long_name = NULL_IF_CONFIG_SMALL("CD Graphics"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "cdg",
.read_probe = read_probe,
.read_header = read_header,
.read_packet = read_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "cdg",
};

View File

@ -24,6 +24,7 @@
#include "libavutil/parseutils.h"
#include "libavutil/opt.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#define CDXL_HEADER_SIZE 32
@ -257,15 +258,15 @@ static const AVClass cdxl_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
const AVInputFormat ff_cdxl_demuxer = {
.name = "cdxl",
.long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
const FFInputFormat ff_cdxl_demuxer = {
.p.name = "cdxl",
.p.long_name = NULL_IF_CONFIG_SMALL("Commodore CDXL video"),
.p.priv_class = &cdxl_demuxer_class,
.p.extensions = "cdxl,xl",
.p.flags = AVFMT_GENERIC_INDEX,
.priv_data_size = sizeof(CDXLDemuxContext),
.priv_class = &cdxl_demuxer_class,
.read_probe = cdxl_read_probe,
.read_header = cdxl_read_header,
.read_packet = cdxl_read_packet,
.read_seek = read_seek,
.extensions = "cdxl,xl",
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -29,6 +29,7 @@
#include "libavcodec/bmp.h"
#include "libavutil/intfloat.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
typedef struct {
@ -336,9 +337,9 @@ static int cine_read_seek(AVFormatContext *avctx, int stream_index, int64_t time
return 0;
}
const AVInputFormat ff_cine_demuxer = {
.name = "cine",
.long_name = NULL_IF_CONFIG_SMALL("Phantom Cine"),
const FFInputFormat ff_cine_demuxer = {
.p.name = "cine",
.p.long_name = NULL_IF_CONFIG_SMALL("Phantom Cine"),
.priv_data_size = sizeof(CineDemuxContext),
.read_probe = cine_read_probe,
.read_header = cine_read_header,

View File

@ -27,6 +27,7 @@
#include "libavutil/opt.h"
#include "avio_internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "mux.h"
#include "rawenc.h"
@ -294,18 +295,18 @@ static const AVClass codec2raw_demux_class = {
};
#if CONFIG_CODEC2_DEMUXER
const AVInputFormat ff_codec2_demuxer = {
.name = "codec2",
.long_name = NULL_IF_CONFIG_SMALL("codec2 .c2 demuxer"),
const FFInputFormat ff_codec2_demuxer = {
.p.name = "codec2",
.p.long_name = NULL_IF_CONFIG_SMALL("codec2 .c2 demuxer"),
.p.extensions = "c2",
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &codec2_demux_class,
.priv_data_size = sizeof(Codec2Context),
.extensions = "c2",
.read_probe = codec2_probe,
.read_header = codec2_read_header,
.read_packet = codec2_read_packet,
.read_seek = ff_pcm_read_seek,
.flags = AVFMT_GENERIC_INDEX,
.raw_codec_id = AV_CODEC_ID_CODEC2,
.priv_class = &codec2_demux_class,
};
#endif
@ -324,15 +325,15 @@ const FFOutputFormat ff_codec2_muxer = {
#endif
#if CONFIG_CODEC2RAW_DEMUXER
const AVInputFormat ff_codec2raw_demuxer = {
.name = "codec2raw",
.long_name = NULL_IF_CONFIG_SMALL("raw codec2 demuxer"),
const FFInputFormat ff_codec2raw_demuxer = {
.p.name = "codec2raw",
.p.long_name = NULL_IF_CONFIG_SMALL("raw codec2 demuxer"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.priv_class = &codec2raw_demux_class,
.priv_data_size = sizeof(Codec2Context),
.read_header = codec2raw_read_header,
.read_packet = codec2_read_packet,
.read_seek = ff_pcm_read_seek,
.flags = AVFMT_GENERIC_INDEX,
.raw_codec_id = AV_CODEC_ID_CODEC2,
.priv_class = &codec2raw_demux_class,
};
#endif

View File

@ -936,9 +936,10 @@ static const AVClass concat_class = {
};
const AVInputFormat ff_concat_demuxer = {
.name = "concat",
.long_name = NULL_IF_CONFIG_SMALL("Virtual concatenation script"),
const FFInputFormat ff_concat_demuxer = {
.p.name = "concat",
.p.long_name = NULL_IF_CONFIG_SMALL("Virtual concatenation script"),
.p.priv_class = &concat_class,
.priv_data_size = sizeof(ConcatContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = concat_probe,
@ -946,5 +947,4 @@ const AVInputFormat ff_concat_demuxer = {
.read_packet = concat_read_packet,
.read_close = concat_read_close,
.read_seek2 = concat_seek,
.priv_class = &concat_class,
};

View File

@ -2355,10 +2355,11 @@ static const AVClass dash_class = {
.version = LIBAVUTIL_VERSION_INT,
};
const AVInputFormat ff_dash_demuxer = {
.name = "dash",
.long_name = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
.priv_class = &dash_class,
const FFInputFormat ff_dash_demuxer = {
.p.name = "dash",
.p.long_name = NULL_IF_CONFIG_SMALL("Dynamic Adaptive Streaming over HTTP"),
.p.priv_class = &dash_class,
.p.flags = AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(DASHContext),
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_probe = dash_probe,
@ -2366,5 +2367,4 @@ const AVInputFormat ff_dash_demuxer = {
.read_packet = dash_read_packet,
.read_close = dash_close,
.read_seek = dash_read_seek,
.flags = AVFMT_NO_BYTE_SEEK,
};

View File

@ -21,6 +21,7 @@
#include "libavutil/channel_layout.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int daud_header(AVFormatContext *s) {
@ -53,10 +54,10 @@ static int daud_packet(AVFormatContext *s, AVPacket *pkt) {
return ret;
}
const AVInputFormat ff_daud_demuxer = {
.name = "daud",
.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"),
const FFInputFormat ff_daud_demuxer = {
.p.name = "daud",
.p.long_name = NULL_IF_CONFIG_SMALL("D-Cinema audio"),
.p.extensions = "302,daud",
.read_header = daud_header,
.read_packet = daud_packet,
.extensions = "302,daud",
};

View File

@ -20,6 +20,7 @@
*/
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int dcstr_probe(const AVProbeData *p)
@ -80,12 +81,12 @@ static int dcstr_read_packet(AVFormatContext *s, AVPacket *pkt)
return av_get_packet(s->pb, pkt, par->block_align);
}
const AVInputFormat ff_dcstr_demuxer = {
.name = "dcstr",
.long_name = NULL_IF_CONFIG_SMALL("Sega DC STR"),
const FFInputFormat ff_dcstr_demuxer = {
.p.name = "dcstr",
.p.long_name = NULL_IF_CONFIG_SMALL("Sega DC STR"),
.p.extensions = "str",
.p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH,
.read_probe = dcstr_probe,
.read_header = dcstr_read_header,
.read_packet = dcstr_read_packet,
.extensions = "str",
.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_NOBINSEARCH,
};

View File

@ -283,8 +283,8 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
s->duration = s->start_time = AV_NOPTS_VALUE;
/* Allocate private data. */
if (s->iformat->priv_data_size > 0) {
if (!(s->priv_data = av_mallocz(s->iformat->priv_data_size))) {
if (ffifmt(s->iformat)->priv_data_size > 0) {
if (!(s->priv_data = av_mallocz(ffifmt(s->iformat)->priv_data_size))) {
ret = AVERROR(ENOMEM);
goto fail;
}
@ -300,9 +300,9 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
if (s->pb)
ff_id3v2_read_dict(s->pb, &si->id3v2_meta, ID3v2_DEFAULT_MAGIC, &id3v2_extra_meta);
if (s->iformat->read_header)
if ((ret = s->iformat->read_header(s)) < 0) {
if (s->iformat->flags_internal & FF_FMT_INIT_CLEANUP)
if (ffifmt(s->iformat)->read_header)
if ((ret = ffifmt(s->iformat)->read_header(s)) < 0) {
if (ffifmt(s->iformat)->flags_internal & FF_FMT_INIT_CLEANUP)
goto close;
goto fail;
}
@ -347,8 +347,8 @@ int avformat_open_input(AVFormatContext **ps, const char *filename,
return 0;
close:
if (s->iformat->read_close)
s->iformat->read_close(s);
if (ffifmt(s->iformat)->read_close)
ffifmt(s->iformat)->read_close(s);
fail:
ff_id3v2_free_extra_meta(&id3v2_extra_meta);
av_dict_free(&tmp);
@ -375,8 +375,8 @@ void avformat_close_input(AVFormatContext **ps)
pb = NULL;
if (s->iformat)
if (s->iformat->read_close)
s->iformat->read_close(s);
if (ffifmt(s->iformat)->read_close)
ffifmt(s->iformat)->read_close(s);
avformat_free_context(s);
@ -628,7 +628,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
}
}
err = s->iformat->read_packet(s, pkt);
err = ffifmt(s->iformat)->read_packet(s, pkt);
if (err < 0) {
av_packet_unref(pkt);

View File

@ -26,6 +26,109 @@
#include "libavcodec/packet.h"
#include "avformat.h"
struct AVDeviceInfoList;
typedef struct FFInputFormat {
/**
* The public AVInputFormat. See avformat.h for it.
*/
AVInputFormat p;
/**
* Raw demuxers store their codec ID here.
*/
int raw_codec_id;
/**
* Size of private data so that it can be allocated in the wrapper.
*/
int priv_data_size;
/**
* Internal flags. See FF_FMT_FLAG_* in internal.h.
*/
int flags_internal;
/**
* Tell if a given file has a chance of being parsed as this format.
* The buffer provided is guaranteed to be AVPROBE_PADDING_SIZE bytes
* big so you do not have to check for that unless you need more.
*/
int (*read_probe)(const AVProbeData *);
/**
* Read the format header and initialize the AVFormatContext
* structure. Return 0 if OK. 'avformat_new_stream' should be
* called to create new streams.
*/
int (*read_header)(struct AVFormatContext *);
/**
* Read one packet and put it in 'pkt'. pts and flags are also
* set. 'avformat_new_stream' can be called only if the flag
* AVFMTCTX_NOHEADER is used and only in the calling thread (not in a
* background thread).
* @return 0 on success, < 0 on error.
* Upon returning an error, pkt must be unreferenced by the caller.
*/
int (*read_packet)(struct AVFormatContext *, AVPacket *pkt);
/**
* Close the stream. The AVFormatContext and AVStreams are not
* freed by this function
*/
int (*read_close)(struct AVFormatContext *);
/**
* Seek to a given timestamp relative to the frames in
* stream component stream_index.
* @param stream_index Must not be -1.
* @param flags Selects which direction should be preferred if no exact
* match is available.
* @return >= 0 on success (but not necessarily the new offset)
*/
int (*read_seek)(struct AVFormatContext *,
int stream_index, int64_t timestamp, int flags);
/**
* Get the next timestamp in stream[stream_index].time_base units.
* @return the timestamp or AV_NOPTS_VALUE if an error occurred
*/
int64_t (*read_timestamp)(struct AVFormatContext *s, int stream_index,
int64_t *pos, int64_t pos_limit);
/**
* Start/resume playing - only meaningful if using a network-based format
* (RTSP).
*/
int (*read_play)(struct AVFormatContext *);
/**
* Pause playing - only meaningful if using a network-based format
* (RTSP).
*/
int (*read_pause)(struct AVFormatContext *);
/**
* Seek to timestamp ts.
* Seeking will be done so that the point from which all active streams
* can be presented successfully will be closest to ts and within min/max_ts.
* Active streams are all streams that have AVStream.discard < AVDISCARD_ALL.
*/
int (*read_seek2)(struct AVFormatContext *s, int stream_index, int64_t min_ts, int64_t ts, int64_t max_ts, int flags);
/**
* Returns device list with it properties.
* @see avdevice_list_devices() for more details.
*/
int (*get_device_list)(struct AVFormatContext *s, struct AVDeviceInfoList *device_list);
} FFInputFormat;
static inline const FFInputFormat *ffifmt(const AVInputFormat *fmt)
{
return (const FFInputFormat*)fmt;
}
#define MAX_STD_TIMEBASES (30*12+30+3+6)
typedef struct FFStreamInfo {
int64_t last_dts;
@ -90,7 +193,7 @@ void ff_read_frame_flush(AVFormatContext *s);
/**
* Perform a binary search using av_index_search_timestamp() and
* AVInputFormat.read_timestamp().
* FFInputFormat.read_timestamp().
*
* @param target_ts target timestamp in the time base of the given stream
* @param stream_index stream number
@ -166,7 +269,7 @@ void ff_rfps_calculate(AVFormatContext *ic);
* rounded to the nearest integer and halfway cases away from zero, and can
* therefore fall outside of the output interval.
*
* Useful to simplify the rescaling of the arguments of AVInputFormat::read_seek2()
* Useful to simplify the rescaling of the arguments of FFInputFormat::read_seek2()
*
* @param[in] tb_in Timebase of the input `min_ts`, `ts` and `max_ts`
* @param[in] tb_out Timebase of the output `min_ts`, `ts` and `max_ts`

View File

@ -181,8 +181,8 @@ int ff_add_param_change(AVPacket *pkt, int32_t channels,
int av_read_play(AVFormatContext *s)
{
if (s->iformat->read_play)
return s->iformat->read_play(s);
if (ffifmt(s->iformat)->read_play)
return ffifmt(s->iformat)->read_play(s);
if (s->pb)
return avio_pause(s->pb, 0);
return AVERROR(ENOSYS);
@ -190,8 +190,8 @@ int av_read_play(AVFormatContext *s)
int av_read_pause(AVFormatContext *s)
{
if (s->iformat->read_pause)
return s->iformat->read_pause(s);
if (ffifmt(s->iformat)->read_pause)
return ffifmt(s->iformat)->read_pause(s);
if (s->pb)
return avio_pause(s->pb, 1);
return AVERROR(ENOSYS);

View File

@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "pcm.h"
@ -67,12 +68,12 @@ static int derf_read_header(AVFormatContext *s)
return 0;
}
const AVInputFormat ff_derf_demuxer = {
.name = "derf",
.long_name = NULL_IF_CONFIG_SMALL("Xilam DERF"),
const FFInputFormat ff_derf_demuxer = {
.p.name = "derf",
.p.long_name = NULL_IF_CONFIG_SMALL("Xilam DERF"),
.p.extensions = "adp",
.read_probe = derf_probe,
.read_header = derf_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
.extensions = "adp",
};

View File

@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
static int dfa_probe(const AVProbeData *p)
@ -120,11 +121,11 @@ static int dfa_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_dfa_demuxer = {
.name = "dfa",
.long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
const FFInputFormat ff_dfa_demuxer = {
.p.name = "dfa",
.p.long_name = NULL_IF_CONFIG_SMALL("Chronomaster DFA"),
.p.flags = AVFMT_GENERIC_INDEX,
.read_probe = dfa_probe,
.read_header = dfa_read_header,
.read_packet = dfa_read_packet,
.flags = AVFMT_GENERIC_INDEX,
};

View File

@ -22,6 +22,7 @@
#include "libavutil/avstring.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "pcm.h"
#include "libavutil/log.h"
@ -71,15 +72,15 @@ static const AVClass dfpwm_demuxer_class = {
.version = LIBAVUTIL_VERSION_INT,
};
const AVInputFormat ff_dfpwm_demuxer = {
.name = "dfpwm",
.long_name = NULL_IF_CONFIG_SMALL("raw DFPWM1a"),
const FFInputFormat ff_dfpwm_demuxer = {
.p.name = "dfpwm",
.p.long_name = NULL_IF_CONFIG_SMALL("raw DFPWM1a"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "dfpwm",
.p.priv_class = &dfpwm_demuxer_class,
.priv_data_size = sizeof(DFPWMAudioDemuxerContext),
.read_header = dfpwm_read_header,
.read_packet = ff_pcm_read_packet,
.read_seek = ff_pcm_read_seek,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "dfpwm",
.raw_codec_id = AV_CODEC_ID_DFPWM,
.priv_class = &dfpwm_demuxer_class,
};

View File

@ -25,6 +25,7 @@
#include "libavutil/parseutils.h"
#include "avio_internal.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
typedef struct DHAVContext {
@ -462,14 +463,14 @@ static int dhav_read_seek(AVFormatContext *s, int stream_index,
return 0;
}
const AVInputFormat ff_dhav_demuxer = {
.name = "dhav",
.long_name = NULL_IF_CONFIG_SMALL("Video DAV"),
const FFInputFormat ff_dhav_demuxer = {
.p.name = "dhav",
.p.long_name = NULL_IF_CONFIG_SMALL("Video DAV"),
.p.extensions = "dav",
.p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_TS_DISCONT | AVFMT_TS_NONSTRICT | AVFMT_SEEK_TO_PTS,
.priv_data_size = sizeof(DHAVContext),
.read_probe = dhav_probe,
.read_header = dhav_read_header,
.read_packet = dhav_read_packet,
.read_seek = dhav_read_seek,
.extensions = "dav",
.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK | AVFMT_TS_DISCONT | AVFMT_TS_NONSTRICT | AVFMT_SEEK_TO_PTS,
};

View File

@ -22,6 +22,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "id3v2.h"
@ -209,12 +210,12 @@ static int dsf_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_dsf_demuxer = {
.name = "dsf",
.long_name = NULL_IF_CONFIG_SMALL("DSD Stream File (DSF)"),
const FFInputFormat ff_dsf_demuxer = {
.p.name = "dsf",
.p.long_name = NULL_IF_CONFIG_SMALL("DSD Stream File (DSF)"),
.p.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
.priv_data_size = sizeof(DSFContext),
.read_probe = dsf_probe,
.read_header = dsf_read_header,
.read_packet = dsf_read_packet,
.flags = AVFMT_GENERIC_INDEX | AVFMT_NO_BYTE_SEEK,
};

View File

@ -27,6 +27,7 @@
#include "libavutil/channel_layout.h"
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#include "avio_internal.h"
@ -227,9 +228,9 @@ static int cin_read_packet(AVFormatContext *s, AVPacket *pkt)
return 0;
}
const AVInputFormat ff_dsicin_demuxer = {
.name = "dsicin",
.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN"),
const FFInputFormat ff_dsicin_demuxer = {
.p.name = "dsicin",
.p.long_name = NULL_IF_CONFIG_SMALL("Delphine Software International CIN"),
.priv_data_size = sizeof(CinDemuxContext),
.read_probe = cin_probe,
.read_header = cin_read_header,

View File

@ -23,6 +23,7 @@
#include "libavutil/intreadwrite.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#define DSS_HEAD_OFFSET_AUTHOR 0xc
@ -353,13 +354,13 @@ static int dss_read_seek(AVFormatContext *s, int stream_index,
}
const AVInputFormat ff_dss_demuxer = {
.name = "dss",
.long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard (DSS)"),
const FFInputFormat ff_dss_demuxer = {
.p.name = "dss",
.p.long_name = NULL_IF_CONFIG_SMALL("Digital Speech Standard (DSS)"),
.p.extensions = "dss",
.priv_data_size = sizeof(DSSDemuxContext),
.read_probe = dss_probe,
.read_header = dss_read_header,
.read_packet = dss_read_packet,
.read_seek = dss_read_seek,
.extensions = "dss"
};

View File

@ -27,6 +27,7 @@
#include "libavcodec/get_bits.h"
#include "avformat.h"
#include "demux.h"
#include "rawdec.h"
static int dts_probe(const AVProbeData *p)
@ -132,15 +133,15 @@ static int dts_probe(const AVProbeData *p)
return 0;
}
const AVInputFormat ff_dts_demuxer = {
.name = "dts",
.long_name = NULL_IF_CONFIG_SMALL("raw DTS"),
const FFInputFormat ff_dts_demuxer = {
.p.name = "dts",
.p.long_name = NULL_IF_CONFIG_SMALL("raw DTS"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "dts",
.p.priv_class = &ff_raw_demuxer_class,
.read_probe = dts_probe,
.read_header = ff_raw_audio_read_header,
.read_packet = ff_raw_read_partial_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "dts",
.raw_codec_id = AV_CODEC_ID_DTS,
.priv_data_size = sizeof(FFRawDemuxerContext),
.priv_class = &ff_raw_demuxer_class,
};

View File

@ -23,6 +23,7 @@
#include "libavutil/dict.h"
#include "libavcodec/dca.h"
#include "avformat.h"
#include "demux.h"
#include "internal.h"
#define AUPR_HDR 0x415550522D484452
@ -162,14 +163,14 @@ static int raw_read_packet(AVFormatContext *s, AVPacket *pkt)
return ret;
}
const AVInputFormat ff_dtshd_demuxer = {
.name = "dtshd",
.long_name = NULL_IF_CONFIG_SMALL("raw DTS-HD"),
const FFInputFormat ff_dtshd_demuxer = {
.p.name = "dtshd",
.p.long_name = NULL_IF_CONFIG_SMALL("raw DTS-HD"),
.p.flags = AVFMT_GENERIC_INDEX,
.p.extensions = "dtshd",
.priv_data_size = sizeof(DTSHDDemuxContext),
.read_probe = dtshd_probe,
.read_header = dtshd_read_header,
.read_packet = raw_read_packet,
.flags = AVFMT_GENERIC_INDEX,
.extensions = "dtshd",
.raw_codec_id = AV_CODEC_ID_DTS,
};

View File

@ -710,15 +710,15 @@ static int dv_probe(const AVProbeData *p)
return 0;
}
const AVInputFormat ff_dv_demuxer = {
.name = "dv",
.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
const FFInputFormat ff_dv_demuxer = {
.p.name = "dv",
.p.long_name = NULL_IF_CONFIG_SMALL("DV (Digital Video)"),
.p.extensions = "dv,dif",
.priv_data_size = sizeof(RawDVContext),
.read_probe = dv_probe,
.read_header = dv_read_header,
.read_packet = dv_read_packet,
.read_seek = dv_read_seek,
.extensions = "dv,dif",
};
#else // CONFIG_DV_DEMUXER

View File

@ -1209,7 +1209,7 @@ static void dvdvideo_subdemux_close(AVFormatContext *s)
static int dvdvideo_subdemux_open(AVFormatContext *s)
{
DVDVideoDemuxContext *c = s->priv_data;
extern const AVInputFormat ff_mpegps_demuxer;
extern const FFInputFormat ff_mpegps_demuxer;
int ret = 0;
if (!(c->mpeg_buf = av_mallocz(DVDVIDEO_BLOCK_SIZE)))
@ -1238,7 +1238,7 @@ static int dvdvideo_subdemux_open(AVFormatContext *s)
c->mpeg_ctx->correct_ts_overflow = 0;
c->mpeg_ctx->io_open = NULL;
return avformat_open_input(&c->mpeg_ctx, "", &ff_mpegps_demuxer, NULL);
return avformat_open_input(&c->mpeg_ctx, "", &ff_mpegps_demuxer.p, NULL);
}
static int dvdvideo_read_header(AVFormatContext *s)
@ -1389,12 +1389,13 @@ static const AVClass dvdvideo_class = {
.version = LIBAVUTIL_VERSION_INT
};
const AVInputFormat ff_dvdvideo_demuxer = {
.name = "dvdvideo",
.long_name = NULL_IF_CONFIG_SMALL("DVD-Video"),
.priv_class = &dvdvideo_class,
const FFInputFormat ff_dvdvideo_demuxer = {
.p.name = "dvdvideo",
.p.long_name = NULL_IF_CONFIG_SMALL("DVD-Video"),
.p.priv_class = &dvdvideo_class,
.p.flags = AVFMT_NOFILE | AVFMT_SHOW_IDS | AVFMT_TS_DISCONT |
AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH | AVFMT_NOBINSEARCH,
.priv_data_size = sizeof(DVDVideoDemuxContext),
.flags = AVFMT_NOFILE | AVFMT_SHOW_IDS | AVFMT_TS_DISCONT | AVFMT_NO_BYTE_SEEK | AVFMT_NOGENSEARCH | AVFMT_NOBINSEARCH,
.flags_internal = FF_FMT_INIT_CLEANUP,
.read_close = dvdvideo_close,
.read_header = dvdvideo_read_header,

Some files were not shown because too many files have changed in this diff Show More