[arch-commits] Commit in moc/trunk (PKGBUILD moc-ffmpeg3.patch)

Antonio Rojas arojas at archlinux.org
Wed Feb 17 09:19:38 UTC 2016


    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.])])



More information about the arch-commits mailing list