gecko/content/media/fmp4/PlatformDecoderModule.cpp
Anthony Jones 06268ce2d9 Bug 1015829 - Runtime binding for libav 53, 54, 55; r=edwin
--HG--
rename : content/media/fmp4/ffmpeg/include/README_mozilla => content/media/fmp4/ffmpeg/README_mozilla
rename : content/media/fmp4/ffmpeg/include/COPYING.LGPLv2.1 => content/media/fmp4/ffmpeg/libav53/include/COPYING.LGPLv2.1
rename : content/media/fmp4/ffmpeg/include/libavcodec/avcodec.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/avcodec.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/avfft.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/avfft.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/dxva2.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/dxva2.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/old_codec_ids.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/old_codec_ids.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/opt.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/opt.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/vaapi.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/vaapi.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/vda.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/vda.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/vdpau.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/vdpau.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/version.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/version.h
rename : content/media/fmp4/ffmpeg/include/libavcodec/xvmc.h => content/media/fmp4/ffmpeg/libav53/include/libavcodec/xvmc.h
rename : content/media/fmp4/ffmpeg/include/libavformat/avformat.h => content/media/fmp4/ffmpeg/libav53/include/libavformat/avformat.h
rename : content/media/fmp4/ffmpeg/include/libavformat/avio.h => content/media/fmp4/ffmpeg/libav53/include/libavformat/avio.h
rename : content/media/fmp4/ffmpeg/include/libavformat/version.h => content/media/fmp4/ffmpeg/libav53/include/libavformat/version.h
rename : content/media/fmp4/ffmpeg/include/libavutil/adler32.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/adler32.h
rename : content/media/fmp4/ffmpeg/include/libavutil/aes.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/aes.h
rename : content/media/fmp4/ffmpeg/include/libavutil/attributes.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/attributes.h
rename : content/media/fmp4/ffmpeg/include/libavutil/audio_fifo.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/audio_fifo.h
rename : content/media/fmp4/ffmpeg/include/libavutil/audioconvert.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/audioconvert.h
rename : content/media/fmp4/ffmpeg/include/libavutil/avassert.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/avassert.h
rename : content/media/fmp4/ffmpeg/include/libavutil/avconfig.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/avconfig.h
rename : content/media/fmp4/ffmpeg/include/libavutil/avstring.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/avstring.h
rename : content/media/fmp4/ffmpeg/include/libavutil/avutil.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/avutil.h
rename : content/media/fmp4/ffmpeg/include/libavutil/base64.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/base64.h
rename : content/media/fmp4/ffmpeg/include/libavutil/blowfish.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/blowfish.h
rename : content/media/fmp4/ffmpeg/include/libavutil/bprint.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/bprint.h
rename : content/media/fmp4/ffmpeg/include/libavutil/bswap.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/bswap.h
rename : content/media/fmp4/ffmpeg/include/libavutil/common.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/common.h
rename : content/media/fmp4/ffmpeg/include/libavutil/cpu.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/cpu.h
rename : content/media/fmp4/ffmpeg/include/libavutil/crc.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/crc.h
rename : content/media/fmp4/ffmpeg/include/libavutil/dict.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/dict.h
rename : content/media/fmp4/ffmpeg/include/libavutil/error.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/error.h
rename : content/media/fmp4/ffmpeg/include/libavutil/eval.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/eval.h
rename : content/media/fmp4/ffmpeg/include/libavutil/fifo.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/fifo.h
rename : content/media/fmp4/ffmpeg/include/libavutil/file.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/file.h
rename : content/media/fmp4/ffmpeg/include/libavutil/imgutils.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/imgutils.h
rename : content/media/fmp4/ffmpeg/include/libavutil/intfloat.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/intfloat.h
rename : content/media/fmp4/ffmpeg/include/libavutil/intfloat_readwrite.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/intfloat_readwrite.h
rename : content/media/fmp4/ffmpeg/include/libavutil/intreadwrite.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/intreadwrite.h
rename : content/media/fmp4/ffmpeg/include/libavutil/lfg.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/lfg.h
rename : content/media/fmp4/ffmpeg/include/libavutil/log.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/log.h
rename : content/media/fmp4/ffmpeg/include/libavutil/lzo.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/lzo.h
rename : content/media/fmp4/ffmpeg/include/libavutil/mathematics.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/mathematics.h
rename : content/media/fmp4/ffmpeg/include/libavutil/md5.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/md5.h
rename : content/media/fmp4/ffmpeg/include/libavutil/mem.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/mem.h
rename : content/media/fmp4/ffmpeg/include/libavutil/old_pix_fmts.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/old_pix_fmts.h
rename : content/media/fmp4/ffmpeg/include/libavutil/opt.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/opt.h
rename : content/media/fmp4/ffmpeg/include/libavutil/parseutils.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/parseutils.h
rename : content/media/fmp4/ffmpeg/include/libavutil/pixdesc.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/pixdesc.h
rename : content/media/fmp4/ffmpeg/include/libavutil/pixfmt.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/pixfmt.h
rename : content/media/fmp4/ffmpeg/include/libavutil/random_seed.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/random_seed.h
rename : content/media/fmp4/ffmpeg/include/libavutil/rational.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/rational.h
rename : content/media/fmp4/ffmpeg/include/libavutil/samplefmt.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/samplefmt.h
rename : content/media/fmp4/ffmpeg/include/libavutil/sha.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/sha.h
rename : content/media/fmp4/ffmpeg/include/libavutil/time.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/time.h
rename : content/media/fmp4/ffmpeg/include/libavutil/timecode.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/timecode.h
rename : content/media/fmp4/ffmpeg/include/libavutil/timestamp.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/timestamp.h
rename : content/media/fmp4/ffmpeg/include/libavutil/version.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/version.h
rename : content/media/fmp4/ffmpeg/include/libavutil/xtea.h => content/media/fmp4/ffmpeg/libav53/include/libavutil/xtea.h
2014-07-03 14:43:13 +12:00

66 lines
1.6 KiB
C++

/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim:set ts=2 sw=2 sts=2 et cindent: */
/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
#include "PlatformDecoderModule.h"
#ifdef XP_WIN
#include "WMFDecoderModule.h"
#endif
#ifdef MOZ_FFMPEG
#include "FFmpegRuntimeLinker.h"
#endif
#include "mozilla/Preferences.h"
namespace mozilla {
extern PlatformDecoderModule* CreateBlankDecoderModule();
bool PlatformDecoderModule::sUseBlankDecoder = false;
bool PlatformDecoderModule::sFFmpegDecoderEnabled = false;
/* static */
void
PlatformDecoderModule::Init()
{
MOZ_ASSERT(NS_IsMainThread());
static bool alreadyInitialized = false;
if (alreadyInitialized) {
return;
}
alreadyInitialized = true;
Preferences::AddBoolVarCache(&sUseBlankDecoder,
"media.fragmented-mp4.use-blank-decoder");
Preferences::AddBoolVarCache(&sFFmpegDecoderEnabled,
"media.fragmented-mp4.ffmpeg.enabled", false);
#ifdef XP_WIN
WMFDecoderModule::Init();
#endif
}
/* static */
PlatformDecoderModule*
PlatformDecoderModule::Create()
{
if (sUseBlankDecoder) {
return CreateBlankDecoderModule();
}
#ifdef XP_WIN
nsAutoPtr<WMFDecoderModule> m(new WMFDecoderModule());
if (NS_SUCCEEDED(m->Startup())) {
return m.forget();
}
#endif
#ifdef MOZ_FFMPEG
if (sFFmpegDecoderEnabled) {
return FFmpegRuntimeLinker::CreateDecoderModule();
}
#endif
return nullptr;
}
} // namespace mozilla