X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavformat%2Fallformats.c;h=f5be7aacb1de3fcb9ff4a4b5ae7d82a3a0d1dcd1;hb=c9024a9fd7ea7980f876a65816da8da78dd9d88d;hp=177947720089d860b8fa96cf41261992ff6ef8c2;hpb=7f37f5687dab7f5b2c5847f2f97b44c43ad396bf;p=ffmpeg diff --git a/libavformat/allformats.c b/libavformat/allformats.c index 17794772008..f5be7aacb1d 100644 --- a/libavformat/allformats.c +++ b/libavformat/allformats.c @@ -2,43 +2,42 @@ * Register all the formats and protocols * Copyright (c) 2000, 2001, 2002 Fabrice Bellard * - * This file is part of FFmpeg. + * This file is part of Libav. * - * FFmpeg is free software; you can redistribute it and/or + * Libav 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, + * Libav 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 + * License along with Libav; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA */ #include "avformat.h" -#include "rtp_internal.h" +#include "rtp.h" #include "rdt.h" +#include "url.h" +#include "version.h" -#define REGISTER_MUXER(X,x) { extern AVOutputFormat x##_muxer; \ - if(ENABLE_##X##_MUXER) av_register_output_format(&x##_muxer); } +#define REGISTER_MUXER(X,x) { \ + extern AVOutputFormat ff_##x##_muxer; \ + if(CONFIG_##X##_MUXER) av_register_output_format(&ff_##x##_muxer); } -#define REGISTER_DEMUXER(X,x) { extern AVInputFormat x##_demuxer; \ - if(ENABLE_##X##_DEMUXER) av_register_input_format(&x##_demuxer); } +#define REGISTER_DEMUXER(X,x) { \ + extern AVInputFormat ff_##x##_demuxer; \ + if(CONFIG_##X##_DEMUXER) av_register_input_format(&ff_##x##_demuxer); } #define REGISTER_MUXDEMUX(X,x) REGISTER_MUXER(X,x); REGISTER_DEMUXER(X,x) -#define REGISTER_PROTOCOL(X,x) { extern URLProtocol x##_protocol; \ - if(ENABLE_##X##_PROTOCOL) register_protocol(&x##_protocol); } +#define REGISTER_PROTOCOL(X,x) { \ + extern URLProtocol ff_##x##_protocol; \ + if(CONFIG_##X##_PROTOCOL) ffurl_register_protocol(&ff_##x##_protocol, sizeof(ff_##x##_protocol)); } -/* If you do not call this function, then you can select exactly which - formats you want to support */ - -/** - * Initialize libavformat and register all the (de)muxers and protocols. - */ void av_register_all(void) { static int initialized; @@ -47,15 +46,18 @@ void av_register_all(void) return; initialized = 1; - avcodec_init(); avcodec_register_all(); /* (de)muxers */ + REGISTER_MUXER (A64, a64); REGISTER_DEMUXER (AAC, aac); REGISTER_MUXDEMUX (AC3, ac3); REGISTER_MUXER (ADTS, adts); + REGISTER_MUXDEMUX (ADX, adx); + REGISTER_DEMUXER (AEA, aea); REGISTER_MUXDEMUX (AIFF, aiff); REGISTER_MUXDEMUX (AMR, amr); + REGISTER_DEMUXER (ANM, anm); REGISTER_DEMUXER (APC, apc); REGISTER_DEMUXER (APE, ape); REGISTER_MUXDEMUX (ASF, asf); @@ -68,9 +70,16 @@ void av_register_all(void) REGISTER_DEMUXER (AVS, avs); REGISTER_DEMUXER (BETHSOFTVID, bethsoftvid); REGISTER_DEMUXER (BFI, bfi); + REGISTER_DEMUXER (BINK, bink); + REGISTER_DEMUXER (BMV, bmv); REGISTER_DEMUXER (C93, c93); + REGISTER_DEMUXER (CAF, caf); + REGISTER_MUXDEMUX (CAVSVIDEO, cavsvideo); + REGISTER_DEMUXER (CDG, cdg); + REGISTER_DEMUXER (CDXL, cdxl); REGISTER_MUXER (CRC, crc); REGISTER_MUXDEMUX (DAUD, daud); + REGISTER_DEMUXER (DFA, dfa); REGISTER_MUXDEMUX (DIRAC, dirac); REGISTER_MUXDEMUX (DNXHD, dnxhd); REGISTER_DEMUXER (DSICIN, dsicin); @@ -81,17 +90,22 @@ void av_register_all(void) REGISTER_DEMUXER (EA_CDATA, ea_cdata); REGISTER_MUXDEMUX (EAC3, eac3); REGISTER_MUXDEMUX (FFM, ffm); + REGISTER_MUXDEMUX (FFMETADATA, ffmetadata); + REGISTER_MUXDEMUX (FILMSTRIP, filmstrip); REGISTER_MUXDEMUX (FLAC, flac); REGISTER_DEMUXER (FLIC, flic); REGISTER_MUXDEMUX (FLV, flv); REGISTER_DEMUXER (FOURXM, fourxm); REGISTER_MUXER (FRAMECRC, framecrc); + REGISTER_MUXER (FRAMEMD5, framemd5); + REGISTER_MUXDEMUX (G722, g722); REGISTER_MUXER (GIF, gif); REGISTER_DEMUXER (GSM, gsm); REGISTER_MUXDEMUX (GXF, gxf); REGISTER_MUXDEMUX (H261, h261); REGISTER_MUXDEMUX (H263, h263); REGISTER_MUXDEMUX (H264, h264); + REGISTER_DEMUXER (HLS, hls); REGISTER_DEMUXER (IDCIN, idcin); REGISTER_DEMUXER (IFF, iff); REGISTER_MUXDEMUX (IMAGE2, image2); @@ -99,12 +113,20 @@ void av_register_all(void) REGISTER_DEMUXER (INGENIENT, ingenient); REGISTER_DEMUXER (IPMOVIE, ipmovie); REGISTER_MUXER (IPOD, ipod); + REGISTER_MUXER (ISMV, ismv); + REGISTER_DEMUXER (ISS, iss); + REGISTER_DEMUXER (IV8, iv8); + REGISTER_MUXDEMUX (IVF, ivf); + REGISTER_DEMUXER (JV, jv); + REGISTER_MUXDEMUX (LATM, latm); REGISTER_DEMUXER (LMLM4, lmlm4); + REGISTER_DEMUXER (LXF, lxf); REGISTER_MUXDEMUX (M4V, m4v); + REGISTER_MUXER (MD5, md5); REGISTER_MUXDEMUX (MATROSKA, matroska); REGISTER_MUXER (MATROSKA_AUDIO, matroska_audio); REGISTER_MUXDEMUX (MJPEG, mjpeg); - REGISTER_DEMUXER (MLP, mlp); + REGISTER_MUXDEMUX (MLP, mlp); REGISTER_DEMUXER (MM, mm); REGISTER_MUXDEMUX (MMF, mmf); REGISTER_MUXDEMUX (MOV, mov); @@ -129,12 +151,15 @@ void av_register_all(void) REGISTER_DEMUXER (MTV, mtv); REGISTER_DEMUXER (MVI, mvi); REGISTER_MUXDEMUX (MXF, mxf); + REGISTER_MUXER (MXF_D10, mxf_d10); + REGISTER_DEMUXER (MXG, mxg); + REGISTER_DEMUXER (NC, nc); REGISTER_DEMUXER (NSV, nsv); REGISTER_MUXER (NULL, null); REGISTER_MUXDEMUX (NUT, nut); REGISTER_DEMUXER (NUV, nuv); REGISTER_MUXDEMUX (OGG, ogg); - REGISTER_DEMUXER (OMA, oma); + REGISTER_MUXDEMUX (OMA, oma); REGISTER_MUXDEMUX (PCM_ALAW, pcm_alaw); REGISTER_MUXDEMUX (PCM_MULAW, pcm_mulaw); REGISTER_MUXDEMUX (PCM_F64BE, pcm_f64be); @@ -155,54 +180,92 @@ void av_register_all(void) REGISTER_MUXDEMUX (PCM_U16BE, pcm_u16be); REGISTER_MUXDEMUX (PCM_U16LE, pcm_u16le); REGISTER_MUXDEMUX (PCM_U8, pcm_u8); + REGISTER_DEMUXER (PMP, pmp); REGISTER_MUXER (PSP, psp); REGISTER_DEMUXER (PVA, pva); + REGISTER_DEMUXER (QCP, qcp); + REGISTER_DEMUXER (R3D, r3d); REGISTER_MUXDEMUX (RAWVIDEO, rawvideo); - REGISTER_DEMUXER (REDIR, redir); REGISTER_DEMUXER (RL2, rl2); REGISTER_MUXDEMUX (RM, rm); REGISTER_MUXDEMUX (ROQ, roq); REGISTER_DEMUXER (RPL, rpl); - REGISTER_MUXER (RTP, rtp); - REGISTER_DEMUXER (RTSP, rtsp); + REGISTER_MUXDEMUX (RSO, rso); + REGISTER_MUXDEMUX (RTP, rtp); + REGISTER_MUXDEMUX (RTSP, rtsp); + REGISTER_MUXDEMUX (SAP, sap); REGISTER_DEMUXER (SDP, sdp); -#ifdef CONFIG_SDP_DEMUXER +#if CONFIG_RTPDEC av_register_rtp_dynamic_payload_handlers(); av_register_rdt_dynamic_payload_handlers(); #endif REGISTER_DEMUXER (SEGAFILM, segafilm); + REGISTER_MUXER (SEGMENT, segment); REGISTER_DEMUXER (SHORTEN, shorten); REGISTER_DEMUXER (SIFF, siff); REGISTER_DEMUXER (SMACKER, smacker); + REGISTER_MUXDEMUX (SMJPEG, smjpeg); REGISTER_DEMUXER (SOL, sol); + REGISTER_MUXDEMUX (SOX, sox); + REGISTER_MUXDEMUX (SPDIF, spdif); + REGISTER_MUXDEMUX (SRT, srt); REGISTER_DEMUXER (STR, str); REGISTER_MUXDEMUX (SWF, swf); REGISTER_MUXER (TG2, tg2); REGISTER_MUXER (TGP, tgp); REGISTER_DEMUXER (THP, thp); REGISTER_DEMUXER (TIERTEXSEQ, tiertexseq); + REGISTER_DEMUXER (TMV, tmv); + REGISTER_MUXDEMUX (TRUEHD, truehd); REGISTER_DEMUXER (TTA, tta); REGISTER_DEMUXER (TXD, txd); + REGISTER_DEMUXER (TTY, tty); REGISTER_DEMUXER (VC1, vc1); REGISTER_MUXDEMUX (VC1T, vc1t); REGISTER_DEMUXER (VMD, vmd); REGISTER_MUXDEMUX (VOC, voc); + REGISTER_DEMUXER (VQF, vqf); + REGISTER_DEMUXER (W64, w64); REGISTER_MUXDEMUX (WAV, wav); REGISTER_DEMUXER (WC3, wc3); + REGISTER_MUXER (WEBM, webm); REGISTER_DEMUXER (WSAUD, wsaud); REGISTER_DEMUXER (WSVQA, wsvqa); + REGISTER_DEMUXER (WTV, wtv); REGISTER_DEMUXER (WV, wv); REGISTER_DEMUXER (XA, xa); + REGISTER_DEMUXER (XMV, xmv); + REGISTER_DEMUXER (XWMA, xwma); + REGISTER_DEMUXER (YOP, yop); REGISTER_MUXDEMUX (YUV4MPEGPIPE, yuv4mpegpipe); - /* external libraries */ - REGISTER_MUXDEMUX (LIBNUT, libnut); - /* protocols */ +#if FF_API_APPLEHTTP_PROTO + REGISTER_PROTOCOL (APPLEHTTP, applehttp); +#endif + REGISTER_PROTOCOL (CONCAT, concat); + REGISTER_PROTOCOL (CRYPTO, crypto); REGISTER_PROTOCOL (FILE, file); + REGISTER_PROTOCOL (GOPHER, gopher); + REGISTER_PROTOCOL (HLS, hls); REGISTER_PROTOCOL (HTTP, http); + REGISTER_PROTOCOL (HTTPPROXY, httpproxy); + REGISTER_PROTOCOL (HTTPS, https); + REGISTER_PROTOCOL (MMSH, mmsh); + REGISTER_PROTOCOL (MMST, mmst); + REGISTER_PROTOCOL (MD5, md5); REGISTER_PROTOCOL (PIPE, pipe); + REGISTER_PROTOCOL (RTMP, rtmp); REGISTER_PROTOCOL (RTP, rtp); REGISTER_PROTOCOL (TCP, tcp); + REGISTER_PROTOCOL (TLS, tls); REGISTER_PROTOCOL (UDP, udp); + + /* external libraries */ + REGISTER_MUXDEMUX (LIBNUT, libnut); + REGISTER_PROTOCOL (LIBRTMP, librtmp); + REGISTER_PROTOCOL (LIBRTMPE, librtmpe); + REGISTER_PROTOCOL (LIBRTMPS, librtmps); + REGISTER_PROTOCOL (LIBRTMPT, librtmpt); + REGISTER_PROTOCOL (LIBRTMPTE, librtmpte); }