From ab1c858071ac93fc4736582f259b580c4734cc71 Mon Sep 17 00:00:00 2001 From: diego Date: Tue, 25 May 2010 23:41:30 +0000 Subject: [PATCH] Add support for decoding VP8 through libvpx wrapper in FFmpeg. patch by James Zern, jzern google com git-svn-id: svn://svn.mplayerhq.hu/mplayer/trunk@31220 b3059339-0415-0410-9bf9-f77b7e298cf2 --- Changelog | 1 + configure | 28 ++++++++++++++++++++++++++++ etc/codecs.conf | 8 ++++++++ 3 files changed, 37 insertions(+) diff --git a/Changelog b/Changelog index b15c7fb655..9a24914a59 100644 --- a/Changelog +++ b/Changelog @@ -17,6 +17,7 @@ MPlayer (1.0) * JPEG 2000 support via OpenJPEG * internal liba52 copy removed * CineForm HD (CFHD) via binary DLL + * VP8 decoding through libvpx wrapper in FFmpeg Demuxers: * support for TrueHD in Blu-ray streams in libmpdemux diff --git a/configure b/configure index 021708e83d..0e851da0be 100755 --- a/configure +++ b/configure @@ -299,6 +299,7 @@ Codecs: --disable-libdirac-lavc disable Dirac in libavcodec [autodetect] --disable-libschroedinger-lavc disable Dirac in libavcodec (Schroedinger decoder) [autodetect] + --disable-libvpx-lavc disable libvpx in libavcodec [autodetect] --disable-libnut disable libnut [autodetect] --disable-libavutil_a disable static libavutil [autodetect] --disable-libavcodec_a disable static libavcodec [autodetect] @@ -693,6 +694,7 @@ _x264=auto _x264_lavc=auto _libdirac_lavc=auto _libschroedinger_lavc=auto +_libvpx_lavc=auto _libnut=auto _lirc=auto _lircc=auto @@ -1137,6 +1139,8 @@ for ac_option do --disable-libdirac-lavc) _libdirac_lavc=no ;; --enable-libschroedinger-lavc) _libschroedinger_lavc=yes ;; --disable-libschroedinger-lavc) _libschroedinger_lavc=no ;; + --enable-libvpx-lavc) _libvpx_lavc=yes ;; + --disable-libvpx-lavc) _libvpx_lavc=no ;; --enable-libnut) _libnut=yes ;; --disable-libnut) _libnut=no ;; --enable-libavutil_a) _libavutil_a=yes ;; @@ -7596,6 +7600,30 @@ else fi echores "$_libschroedinger_lavc" +echocheck "libvpx" +if test "$_libvpx_lavc" = auto; then + _libvpx_lavc=no + if test "$_libavcodec_a" != yes; then + res_comment="libavcodec (static) is required by libvpx, sorry" + else + cat > $TMPC << EOF +#include +#include +int main(void) { vpx_codec_dec_init(NULL, &vpx_codec_vp8_dx_algo, NULL, 0); return 0; } +EOF + cc_check -lvpx && _libvpx_lavc=yes && extra_ldflags="$extra_ldflags -lvpx" + fi +fi +if test "$_libvpx_lavc" = yes ; then + def_libvpx_lavc='#define CONFIG_LIBVPX 1' + _libavdecoders="$_libavdecoders LIBVPX_DECODER" + codecmodules="libvpx $codecmodules" +else + def_libvpx_lavc='#define CONFIG_LIBVPX 0' + nocodecmodules="libvpx $nocodecmodules" +fi +echores "$_libvpx_lavc" + echocheck "libnut" if test "$_libnut" = auto ; then cat > $TMPC << EOF diff --git a/etc/codecs.conf b/etc/codecs.conf index 3b1e356662..23bff5dc8e 100644 --- a/etc/codecs.conf +++ b/etc/codecs.conf @@ -2173,6 +2173,14 @@ videocodec vp7 out YUY2 out BGR32,BGR24 +videocodec fflibvpx + info "FFmpeg wrapper for libvpx/VP8" + status working + fourcc VP80 + driver ffmpeg + dll "libvpx" + out YV12 + videocodec mwv1 info "Motion Wavelets" status working