Date: Wednesday, February 17, 2016 @ 10:19:38 Author: arojas Revision: 259892
ffmpeg 3.0 rebuild Added: moc/trunk/moc-ffmpeg3.patch Modified: moc/trunk/PKGBUILD -------------------+ PKGBUILD | 13 +++++- moc-ffmpeg3.patch | 102 ++++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 112 insertions(+), 3 deletions(-) Modified: PKGBUILD =================================================================== --- PKGBUILD 2016-02-17 09:11:03 UTC (rev 259891) +++ PKGBUILD 2016-02-17 09:19:38 UTC (rev 259892) @@ -3,7 +3,7 @@ pkgname=moc pkgver=2.5.0 -pkgrel=3 +pkgrel=4 epoch=1 pkgdesc="An ncurses console audio player designed to be powerful and easy to use" arch=('i686' 'x86_64') @@ -18,11 +18,18 @@ 'wavpack: for using the wavpack plugin' 'faad2: for using the aac plugin' 'libmodplug: for using the modplug plugin') -source=(http://ftp.daper.net/pub/soft/moc/stable/${pkgname}-${pkgver}.tar.bz2{,.sig}) +source=(http://ftp.daper.net/pub/soft/moc/stable/${pkgname}-${pkgver}.tar.bz2{,.sig} moc-ffmpeg3.patch) sha1sums=('a02c10075541995771dbdccb7f2d0ecd19d70b81' - 'SKIP') + 'SKIP' + '7d997ac25041010837d5f3ec79920b8afeec87f7') validpgpkeys=('59359B80406D9E73E80599BEF3121E4F2885A7AA') +prepare() { + cd $pkgname-$pkgver +# Fix build with ffmpeg 3.0 (Debian) + patch -p1 -i ../moc-ffmpeg3.patch +} + build() { cd ${pkgname}-${pkgver} ./configure --prefix=/usr --without-rcc \ Added: moc-ffmpeg3.patch =================================================================== --- moc-ffmpeg3.patch (rev 0) +++ moc-ffmpeg3.patch 2016-02-17 09:19:38 UTC (rev 259892) @@ -0,0 +1,102 @@ +--- moc-2.5.0.orig/configure.in ++++ moc-2.5.0/configure.in +@@ -557,22 +557,6 @@ then + echo + fi + +-dnl +-dnl If the warning below gets reported, then for further guidance: +-dnl +-dnl vi +/REQUEST_CHANNELS decoder_plugins/ffmpeg/ffmpeg.c +-dnl +-if test "x$want_ffmpeg" = "xyes" && \ +- test "x$ac_cv_member_struct_AVCodecContext_request_channels" != "xyes" +-then +- echo "WARNING: It appears that the FFmpeg/LibAV API has changed and no longer" +- echo " supports downmixing to stereo as it did previously. Report" +- echo " this message along with the output of 'ffmpeg -version' to" +- echo " <$PACKAGE_BUGREPORT>. Meanwhile, you may have to live without" +- echo " stereo downmixing." +- echo +-fi +- + echo "WARNING: Since MOC version 2 the executable file name has changed to mocp!" + echo " Please remove old moc binary if you have installed an older version." + echo +--- moc-2.5.0.orig/decoder_plugins/ffmpeg/ffmpeg.c ++++ moc-2.5.0/decoder_plugins/ffmpeg/ffmpeg.c +@@ -67,7 +67,7 @@ GCC_DIAG_OFF(deprecated-declarations) + GCC_DIAG_ON(deprecated-declarations) + #include <libavutil/mathematics.h> + #ifdef HAVE_AV_GET_CHANNEL_LAYOUT_NB_CHANNELS +-#include <libavutil/audioconvert.h> ++#include <libavutil/channel_layout.h> + #endif + #else + #include <ffmpeg/avformat.h> +@@ -823,17 +823,6 @@ static bool is_seek_broken (struct ffmpe + return false; + } + +-#ifdef HAVE_STRUCT_AVCODECCONTEXT_REQUEST_CHANNELS +-/* This warning reset suppresses a deprecation warning message +- * for the AVCodecContext's 'request_channels' field. */ +-GCC_DIAG_OFF(deprecated-declarations) +-static inline void set_request_channels (AVCodecContext *enc, int channels) +-{ +- enc->request_channels = channels; +-} +-GCC_DIAG_ON(deprecated-declarations) +-#endif +- + /* Downmix multi-channel audios to stereo. */ + static void set_downmixing (struct ffmpeg_data *data) + { +@@ -847,30 +836,11 @@ static void set_downmixing (struct ffmpe + + data->enc->channels = 2; + +-#ifdef HAVE_STRUCT_AVCODECCONTEXT_REQUEST_CHANNELS +- +- /* +- * When FFmpeg breaks its API (and it will), this code will be +- * disabled and users will complain that MOC no longer downmixes +- * to stereo. This is because the 'request_channels' field in +- * AVCodecContext is marked as deprecated (and so will probably +- * be removed at some time) but FFmpeg requires it to be set to +- * trigger downmixing (go figure!). Currently, there is no +- * guidance on how it will work in the future, but looking at +- * where 's->downmixed' is set near the end of 'ac3_decode_init()' +- * in the FFmpeg's source code file 'libavcodec/ac3dec.c' might +- * help (in the absence of proper documentation). +- */ +- +- set_request_channels (data->enc, 2); +- + #ifdef AV_CH_LAYOUT_STEREO_DOWNMIX + data->enc->request_channel_layout = AV_CH_LAYOUT_STEREO_DOWNMIX; + #else + data->enc->request_channel_layout = CH_LAYOUT_STEREO_DOWNMIX; + #endif +- +-#endif + } + + static void *ffmpeg_open (const char *file) +--- moc-2.5.0.orig/decoder_plugins/ffmpeg/ffmpeg.m4 ++++ moc-2.5.0/decoder_plugins/ffmpeg/ffmpeg.m4 +@@ -51,14 +51,6 @@ then + save_LIBS="$LIBS" + LIBS="$LIBS $ffmpeg_LIBS" + AC_CHECK_HEADERS(ffmpeg/avformat.h libavformat/avformat.h) +- if test "x$ac_cv_header_ffmpeg_avformat_h" = "xyes" +- then +- AC_CHECK_MEMBERS([struct AVCodecContext.request_channels], [], [], +- [#include <ffmpeg/avcodec.h>]) +- else +- AC_CHECK_MEMBERS([struct AVCodecContext.request_channels], [], [], +- [#include <libavcodec/avcodec.h>]) +- fi + AC_SEARCH_LIBS(avcodec_open2, avcodec, + [AC_DEFINE([HAVE_AVCODEC_OPEN2], 1, + [Define to 1 if you have the `avcodec_open2' function.])])