# HG changeset patch # User diego # Date 1274830890 0 # Node ID 07faae7acdfae857dbbcc31d7b6542574af64c05 # Parent 3221c1d5a16490c0839ab4fe4c546ea7246edecd Add support for decoding VP8 through libvpx wrapper in FFmpeg. patch by James Zern, jzern google com diff -r 3221c1d5a164 -r 07faae7acdfa Changelog --- a/Changelog Tue May 25 23:09:20 2010 +0000 +++ b/Changelog Tue May 25 23:41:30 2010 +0000 @@ -17,6 +17,7 @@ * 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 -r 3221c1d5a164 -r 07faae7acdfa configure --- a/configure Tue May 25 23:09:20 2010 +0000 +++ b/configure Tue May 25 23:41:30 2010 +0000 @@ -299,6 +299,7 @@ --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_lavc=auto _libdirac_lavc=auto _libschroedinger_lavc=auto +_libvpx_lavc=auto _libnut=auto _lirc=auto _lircc=auto @@ -1137,6 +1139,8 @@ --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 @@ 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 -r 3221c1d5a164 -r 07faae7acdfa etc/codecs.conf --- a/etc/codecs.conf Tue May 25 23:09:20 2010 +0000 +++ b/etc/codecs.conf Tue May 25 23:41:30 2010 +0000 @@ -2173,6 +2173,14 @@ 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