* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include "libavutil/thread.h"
#include "avformat.h"
#include "rtp.h"
#include "rdt.h"
#define REGISTER_MUXDEMUX(X, x) REGISTER_MUXER(X, x); REGISTER_DEMUXER(X, x)
-void av_register_all(void)
+static void register_all(void)
{
- static int initialized;
-
- if (initialized)
- return;
-
avcodec_register_all();
/* (de)muxers */
REGISTER_DEMUXER (MGSTS, mgsts);
REGISTER_MUXDEMUX(MICRODVD, microdvd);
REGISTER_MUXDEMUX(MJPEG, mjpeg);
+ REGISTER_DEMUXER (MJPEG_2000, mjpeg_2000);
REGISTER_MUXDEMUX(MLP, mlp);
REGISTER_DEMUXER (MLV, mlv);
REGISTER_DEMUXER (MM, mm);
REGISTER_DEMUXER (SAMI, sami);
REGISTER_MUXDEMUX(SAP, sap);
REGISTER_DEMUXER (SBG, sbg);
+ REGISTER_MUXDEMUX(SCC, scc);
REGISTER_DEMUXER (SDP, sdp);
REGISTER_DEMUXER (SDR2, sdr2);
+ REGISTER_DEMUXER (SDS, sds);
+ REGISTER_DEMUXER (SDX, sdx);
#if CONFIG_RTPDEC
ff_register_rtp_dynamic_payload_handlers();
ff_register_rdt_dynamic_payload_handlers();
REGISTER_DEMUXER (IMAGE_PICTOR_PIPE, image_pictor_pipe);
REGISTER_DEMUXER (IMAGE_PNG_PIPE, image_png_pipe);
REGISTER_DEMUXER (IMAGE_PPM_PIPE, image_ppm_pipe);
+ REGISTER_DEMUXER (IMAGE_PSD_PIPE, image_psd_pipe);
REGISTER_DEMUXER (IMAGE_QDRAW_PIPE, image_qdraw_pipe);
REGISTER_DEMUXER (IMAGE_SGI_PIPE, image_sgi_pipe);
REGISTER_DEMUXER (IMAGE_SUNRAST_PIPE, image_sunrast_pipe);
REGISTER_DEMUXER (IMAGE_TIFF_PIPE, image_tiff_pipe);
REGISTER_DEMUXER (IMAGE_WEBP_PIPE, image_webp_pipe);
+ REGISTER_DEMUXER (IMAGE_XPM_PIPE, image_xpm_pipe);
/* external libraries */
REGISTER_MUXER (CHROMAPRINT, chromaprint);
REGISTER_DEMUXER (LIBMODPLUG, libmodplug);
REGISTER_MUXDEMUX(LIBNUT, libnut);
REGISTER_DEMUXER (LIBOPENMPT, libopenmpt);
+}
+
+void av_register_all(void)
+{
+ AVOnce control = AV_ONCE_INIT;
- initialized = 1;
+ ff_thread_once(&control, register_all);
}