1
0
mirror of https://github.com/FFmpeg/FFmpeg.git synced 2025-01-13 21:28:01 +02:00
FFmpeg/libavformat/allformats.c
Michael Niedermayer 619d8e2e58 updating nut demuxer to latest spec
no muxing yet
no index yet
no seeking yet
libnuts crcs dont match mine (didnt investigate yet)
samplerate is stored wrong by libnut (demuxer has a workaround)
code is not clean or beautifull yet, but i thought its better to commit early before someone unneccesarily wastes his time duplicating the work
demuxer split from muxer

Originally committed as revision 6966 to svn://svn.ffmpeg.org/ffmpeg/trunk
2006-11-11 01:35:50 +00:00

486 lines
13 KiB
C

/*
* Register all the formats and protocols
* Copyright (c) 2000, 2001, 2002 Fabrice Bellard
*
* This file is part of FFmpeg.
*
* FFmpeg is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* FFmpeg is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* You should have received a copy of the GNU Lesser General Public
* License along with FFmpeg; if not, write to the Free Software
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
#include "avformat.h"
#include "allformats.h"
/* If you do not call this function, then you can select exactly which
formats you want to support */
/**
* Initialize libavcodec and register all the codecs and formats.
*/
void av_register_all(void)
{
static int inited = 0;
if (inited != 0)
return;
inited = 1;
avcodec_init();
avcodec_register_all();
#ifdef CONFIG_FOURXM_DEMUXER
av_register_input_format(&fourxm_demuxer);
#endif
#ifdef CONFIG_ADTS_MUXER
av_register_output_format(&adts_muxer);
#endif
#ifdef CONFIG_AIFF_DEMUXER
av_register_input_format(&aiff_demuxer);
#endif
#ifdef CONFIG_AIFF_MUXER
av_register_output_format(&aiff_muxer);
#endif
#ifdef CONFIG_AMR_DEMUXER
av_register_input_format(&amr_demuxer);
#endif
#ifdef CONFIG_AMR_MUXER
av_register_output_format(&amr_muxer);
#endif
#ifdef CONFIG_ASF_DEMUXER
av_register_input_format(&asf_demuxer);
#endif
#ifdef CONFIG_ASF_MUXER
av_register_output_format(&asf_muxer);
#endif
#ifdef CONFIG_ASF_STREAM_MUXER
av_register_output_format(&asf_stream_muxer);
#endif
#ifdef CONFIG_AU_DEMUXER
av_register_input_format(&au_demuxer);
#endif
#ifdef CONFIG_AU_MUXER
av_register_output_format(&au_muxer);
#endif
#if defined(CONFIG_AUDIO_OSS) || defined(CONFIG_AUDIO_BEOS)
#ifdef CONFIG_AUDIO_DEMUXER
av_register_input_format(&audio_demuxer);
#endif
#ifdef CONFIG_AUDIO_MUXER
av_register_output_format(&audio_muxer);
#endif
#endif /* CONFIG_AUDIO_OSS || CONFIG_AUDIO_BEOS */
#ifdef CONFIG_AVI_DEMUXER
av_register_input_format(&avi_demuxer);
#endif
#ifdef CONFIG_AVI_MUXER
av_register_output_format(&avi_muxer);
#endif
#ifdef CONFIG_AVISYNTH
av_register_input_format(&avisynth_demuxer);
#endif
#ifdef CONFIG_AVS_DEMUXER
av_register_input_format(&avs_demuxer);
#endif
#ifdef CONFIG_CRC_MUXER
av_register_output_format(&crc_muxer);
#endif
#ifdef CONFIG_FRAMECRC_MUXER
av_register_output_format(&framecrc_muxer);
#endif
#ifdef CONFIG_DAUD_DEMUXER
av_register_input_format(&daud_demuxer);
#endif
#ifdef CONFIG_DC1394
#ifdef CONFIG_DC1394_DEMUXER
av_register_input_format(&dc1394_demuxer);
#endif
#endif /* CONFIG_DC1394 */
#ifdef CONFIG_DSICIN_DEMUXER
av_register_input_format(&dsicin_demuxer);
#endif
#ifdef CONFIG_DV1394
#ifdef CONFIG_DV1394_DEMUXER
av_register_input_format(&dv1394_demuxer);
#endif
#endif /* CONFIG_DV1394 */
#ifdef CONFIG_DV_DEMUXER
av_register_input_format(&dv_demuxer);
#endif
#ifdef CONFIG_DV_MUXER
av_register_output_format(&dv_muxer);
#endif
#ifdef CONFIG_EA_DEMUXER
av_register_input_format(&ea_demuxer);
#endif
#ifdef CONFIG_FFM_DEMUXER
av_register_input_format(&ffm_demuxer);
#endif
#ifdef CONFIG_FFM_MUXER
av_register_output_format(&ffm_muxer);
#endif
#ifdef CONFIG_FLIC_DEMUXER
av_register_input_format(&flic_demuxer);
#endif
#ifdef CONFIG_FLV_DEMUXER
av_register_input_format(&flv_demuxer);
#endif
#ifdef CONFIG_FLV_MUXER
av_register_output_format(&flv_muxer);
#endif
#ifdef CONFIG_GIF_MUXER
av_register_output_format(&gif_muxer);
#endif
#ifdef CONFIG_GIF_DEMUXER
av_register_input_format(&gif_demuxer);
#endif
#ifdef CONFIG_GXF_DEMUXER
av_register_input_format(&gxf_demuxer);
#endif
#if defined(CONFIG_GXF_MUXER) && defined(CONFIG_GPL)
av_register_output_format(&gxf_muxer);
#endif
#ifdef CONFIG_IDCIN_DEMUXER
av_register_input_format(&idcin_demuxer);
#endif
#ifdef CONFIG_ROQ_DEMUXER
av_register_input_format(&roq_demuxer);
#endif
#ifdef CONFIG_IMAGE2_DEMUXER
av_register_input_format(&image2_demuxer);
#endif
#ifdef CONFIG_IMAGE2PIPE_DEMUXER
av_register_input_format(&image2pipe_demuxer);
#endif
#ifdef CONFIG_IMAGE2_MUXER
av_register_output_format(&image2_muxer);
#endif
#ifdef CONFIG_IMAGE2PIPE_MUXER
av_register_output_format(&image2pipe_muxer);
#endif
#ifdef CONFIG_IPMOVIE_DEMUXER
av_register_input_format(&ipmovie_demuxer);
#endif
#ifdef CONFIG_MATROSKA_DEMUXER
av_register_input_format(&matroska_demuxer);
#endif
#ifdef CONFIG_MM_DEMUXER
av_register_input_format(&mm_demuxer);
#endif
#ifdef CONFIG_MMF_DEMUXER
av_register_input_format(&mmf_demuxer);
#endif
#ifdef CONFIG_MMF_MUXER
av_register_output_format(&mmf_muxer);
#endif
#ifdef CONFIG_MOV_DEMUXER
av_register_input_format(&mov_demuxer);
#endif
#ifdef CONFIG_MOV_MUXER
av_register_output_format(&mov_muxer);
#endif
#ifdef CONFIG_MTV_DEMUXER
av_register_input_format(&mtv_demuxer);
#endif
#ifdef CONFIG_TGP_MUXER
av_register_output_format(&tgp_muxer);
#endif
#ifdef CONFIG_MP4_MUXER
av_register_output_format(&mp4_muxer);
#endif
#ifdef CONFIG_PSP_MUXER
av_register_output_format(&psp_muxer);
#endif
#ifdef CONFIG_TG2_MUXER
av_register_output_format(&tg2_muxer);
#endif
#ifdef CONFIG_MP3_DEMUXER
av_register_input_format(&mp3_demuxer);
#endif
#ifdef CONFIG_MP2_MUXER
av_register_output_format(&mp2_muxer);
#endif
#ifdef CONFIG_MP3_MUXER
av_register_output_format(&mp3_muxer);
#endif
#ifdef CONFIG_MPEG1SYSTEM_MUXER
av_register_output_format(&mpeg1system_muxer);
#endif
#ifdef CONFIG_MPEG1VCD_MUXER
av_register_output_format(&mpeg1vcd_muxer);
#endif
#ifdef CONFIG_MPEG2VOB_MUXER
av_register_output_format(&mpeg2vob_muxer);
#endif
#ifdef CONFIG_MPEG2SVCD_MUXER
av_register_output_format(&mpeg2svcd_muxer);
#endif
#ifdef CONFIG_MPEG2DVD_MUXER
av_register_output_format(&mpeg2dvd_muxer);
#endif
#ifdef CONFIG_MPEGPS_DEMUXER
av_register_input_format(&mpegps_demuxer);
#endif
#ifdef CONFIG_MPEGTS_DEMUXER
av_register_input_format(&mpegts_demuxer);
#endif
#ifdef CONFIG_MPEGTS_MUXER
av_register_output_format(&mpegts_muxer);
#endif
#ifdef CONFIG_MPJPEG_MUXER
av_register_output_format(&mpjpeg_muxer);
#endif
#ifdef CONFIG_MXF_DEMUXER
av_register_input_format(&mxf_demuxer);
#endif
#ifdef CONFIG_NSV_DEMUXER
av_register_input_format(&nsv_demuxer);
#endif
#ifdef CONFIG_NUT_DEMUXER
av_register_input_format(&nut_demuxer);
#endif
#ifdef CONFIG_NUT_MUXER
// av_register_output_format(&nut_muxer);
#endif
#ifdef CONFIG_NUV_DEMUXER
av_register_input_format(&nuv_demuxer);
#endif
#ifdef CONFIG_OGG_DEMUXER
av_register_input_format(&ogg_demuxer);
#endif
#ifdef CONFIG_LIBOGG
#ifdef CONFIG_OGG_MUXER
av_register_output_format(&ogg_muxer);
#endif
#endif /* CONFIG_LIBOGG */
#ifdef CONFIG_STR_DEMUXER
av_register_input_format(&str_demuxer);
#endif
#ifdef CONFIG_SHORTEN_DEMUXER
av_register_input_format(&shorten_demuxer);
#endif
#ifdef CONFIG_FLAC_DEMUXER
av_register_input_format(&flac_demuxer);
#endif
#ifdef CONFIG_FLAC_MUXER
av_register_output_format(&flac_muxer);
#endif
#ifdef CONFIG_AC3_DEMUXER
av_register_input_format(&ac3_demuxer);
#endif
#ifdef CONFIG_AC3_MUXER
av_register_output_format(&ac3_muxer);
#endif
#ifdef CONFIG_DTS_DEMUXER
av_register_input_format(&dts_demuxer);
#endif
#ifdef CONFIG_AAC_DEMUXER
av_register_input_format(&aac_demuxer);
#endif
#ifdef CONFIG_H261_DEMUXER
av_register_input_format(&h261_demuxer);
#endif
#ifdef CONFIG_H261_MUXER
av_register_output_format(&h261_muxer);
#endif
#ifdef CONFIG_H263_DEMUXER
av_register_input_format(&h263_demuxer);
#endif
#ifdef CONFIG_H263_MUXER
av_register_output_format(&h263_muxer);
#endif
#ifdef CONFIG_M4V_DEMUXER
av_register_input_format(&m4v_demuxer);
#endif
#ifdef CONFIG_M4V_MUXER
av_register_output_format(&m4v_muxer);
#endif
#ifdef CONFIG_H264_DEMUXER
av_register_input_format(&h264_demuxer);
#endif
#ifdef CONFIG_H264_MUXER
av_register_output_format(&h264_muxer);
#endif
#ifdef CONFIG_MPEGVIDEO_DEMUXER
av_register_input_format(&mpegvideo_demuxer);
#endif
#ifdef CONFIG_MPEG1VIDEO_MUXER
av_register_output_format(&mpeg1video_muxer);
#endif
#ifdef CONFIG_MPEG2VIDEO_MUXER
av_register_output_format(&mpeg2video_muxer);
#endif
#ifdef CONFIG_MJPEG_DEMUXER
av_register_input_format(&mjpeg_demuxer);
#endif
#ifdef CONFIG_INGENIENT_DEMUXER
av_register_input_format(&ingenient_demuxer);
#endif
#ifdef CONFIG_MJPEG_MUXER
av_register_output_format(&mjpeg_muxer);
#endif
#ifdef CONFIG_PCM_S16LE_DEMUXER
av_register_input_format(&pcm_s16le_demuxer);
#endif
#ifdef CONFIG_PCM_S16LE_MUXER
av_register_output_format(&pcm_s16le_muxer);
#endif
#ifdef CONFIG_PCM_S16BE_DEMUXER
av_register_input_format(&pcm_s16be_demuxer);
#endif
#ifdef CONFIG_PCM_S16BE_MUXER
av_register_output_format(&pcm_s16be_muxer);
#endif
#ifdef CONFIG_PCM_U16LE_DEMUXER
av_register_input_format(&pcm_u16le_demuxer);
#endif
#ifdef CONFIG_PCM_U16LE_MUXER
av_register_output_format(&pcm_u16le_muxer);
#endif
#ifdef CONFIG_PCM_U16BE_DEMUXER
av_register_input_format(&pcm_u16be_demuxer);
#endif
#ifdef CONFIG_PCM_U16BE_MUXER
av_register_output_format(&pcm_u16be_muxer);
#endif
#ifdef CONFIG_PCM_S8_DEMUXER
av_register_input_format(&pcm_s8_demuxer);
#endif
#ifdef CONFIG_PCM_S8_MUXER
av_register_output_format(&pcm_s8_muxer);
#endif
#ifdef CONFIG_PCM_U8_DEMUXER
av_register_input_format(&pcm_u8_demuxer);
#endif
#ifdef CONFIG_PCM_U8_MUXER
av_register_output_format(&pcm_u8_muxer);
#endif
#ifdef CONFIG_PCM_MULAW_DEMUXER
av_register_input_format(&pcm_mulaw_demuxer);
#endif
#ifdef CONFIG_PCM_MULAW_MUXER
av_register_output_format(&pcm_mulaw_muxer);
#endif
#ifdef CONFIG_PCM_ALAW_DEMUXER
av_register_input_format(&pcm_alaw_demuxer);
#endif
#ifdef CONFIG_PCM_ALAW_MUXER
av_register_output_format(&pcm_alaw_muxer);
#endif
#ifdef CONFIG_RAWVIDEO_DEMUXER
av_register_input_format(&rawvideo_demuxer);
#endif
#ifdef CONFIG_RAWVIDEO_MUXER
av_register_output_format(&rawvideo_muxer);
#endif
#ifdef CONFIG_NULL_MUXER
av_register_output_format(&null_muxer);
#endif
#ifdef CONFIG_RM_DEMUXER
av_register_input_format(&rm_demuxer);
#endif
#ifdef CONFIG_RM_MUXER
av_register_output_format(&rm_muxer);
#endif
#ifdef CONFIG_NETWORK
#ifdef CONFIG_RTP_MUXER
av_register_output_format(&rtp_muxer);
#endif
#ifdef CONFIG_RTSP_DEMUXER
av_register_input_format(&rtsp_demuxer);
#endif
#ifdef CONFIG_SDP_DEMUXER
av_register_input_format(&sdp_demuxer);
#endif
#ifdef CONFIG_REDIR_DEMUXER
av_register_input_format(&redir_demuxer);
#endif
av_register_rtp_dynamic_payload_handlers();
#endif /* CONFIG_NETWORK */
#ifdef CONFIG_SEGAFILM_DEMUXER
av_register_input_format(&segafilm_demuxer);
#endif
#ifdef CONFIG_VMD_DEMUXER
av_register_input_format(&vmd_demuxer);
#endif
#ifdef CONFIG_SMACKER_DEMUXER
av_register_input_format(&smacker_demuxer);
#endif
#ifdef CONFIG_SOL_DEMUXER
av_register_input_format(&sol_demuxer);
#endif
#ifdef CONFIG_SWF_DEMUXER
av_register_input_format(&swf_demuxer);
#endif
#ifdef CONFIG_SWF_MUXER
av_register_output_format(&swf_muxer);
#endif
#ifdef CONFIG_TTA_DEMUXER
av_register_input_format(&tta_demuxer);
#endif
#ifdef CONFIG_VIDEO4LINUX2
#ifdef CONFIG_V4L2_DEMUXER
av_register_input_format(&v4l2_demuxer);
#endif
#endif /* CONFIG_VIDEO4LINUX2 */
#if defined(CONFIG_VIDEO4LINUX) || defined(CONFIG_BKTR)
#ifdef CONFIG_VIDEO_GRAB_DEVICE_DEMUXER
av_register_input_format(&video_grab_device_demuxer);
#endif
#endif /* CONFIG_VIDEO4LINUX || CONFIG_BKTR */
#ifdef CONFIG_VOC_DEMUXER
av_register_input_format(&voc_demuxer);
#endif
#ifdef CONFIG_VOC_MUXER
av_register_output_format(&voc_muxer);
#endif
#ifdef CONFIG_WAV_DEMUXER
av_register_input_format(&wav_demuxer);
#endif
#ifdef CONFIG_WAV_MUXER
av_register_output_format(&wav_muxer);
#endif
#ifdef CONFIG_WC3_DEMUXER
av_register_input_format(&wc3_demuxer);
#endif
#ifdef CONFIG_WSAUD_DEMUXER
av_register_input_format(&wsaud_demuxer);
#endif
#ifdef CONFIG_WSVQA_DEMUXER
av_register_input_format(&wsvqa_demuxer);
#endif
#ifdef CONFIG_WV_DEMUXER
av_register_input_format(&wv_demuxer);
#endif
#ifdef CONFIG_YUV4MPEGPIPE_MUXER
av_register_output_format(&yuv4mpegpipe_muxer);
#endif
#ifdef CONFIG_YUV4MPEGPIPE_DEMUXER
av_register_input_format(&yuv4mpegpipe_demuxer);
#endif
#ifdef CONFIG_TIERTEXSEQ_DEMUXER
av_register_input_format(&tiertexseq_demuxer);
#endif
#ifdef CONFIG_PROTOCOLS
/* file protocols */
register_protocol(&file_protocol);
register_protocol(&pipe_protocol);
#ifdef CONFIG_NETWORK
register_protocol(&udp_protocol);
register_protocol(&rtp_protocol);
register_protocol(&tcp_protocol);
register_protocol(&http_protocol);
#endif
#endif
}