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

Antonio Rojas arojas at archlinux.org
Thu Feb 18 08:15:56 UTC 2016


    Date: Thursday, February 18, 2016 @ 09:15:55
  Author: arojas
Revision: 162224

ffmpeg 3.0 rebuild

Added:
  hedgewars/trunk/hedgewars-ffmpeg3.patch
Modified:
  hedgewars/trunk/PKGBUILD

-------------------------+
 PKGBUILD                |   10 ++++--
 hedgewars-ffmpeg3.patch |   76 ++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 83 insertions(+), 3 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2016-02-18 08:15:33 UTC (rev 162223)
+++ PKGBUILD	2016-02-18 08:15:55 UTC (rev 162224)
@@ -4,7 +4,7 @@
 
 pkgname=hedgewars
 pkgver=0.9.22
-pkgrel=5
+pkgrel=6
 pkgdesc="Turn-based strategy artillery game similiar to Worms"
 arch=('i686' 'x86_64')
 url="http://hedgewars.org"
@@ -26,12 +26,16 @@
 	     # for scaling the icon
 	     'imagemagick')
 install='hedgewars.install'
-source=("http://download.gna.org/hedgewars/${pkgname}-src-${pkgver}.tar.bz2")
-sha256sums=('b699c8971ff420c3edd6533527ae2e99040f1e79207c9140826945bcf0e62192')
+source=("http://download.gna.org/hedgewars/${pkgname}-src-${pkgver}.tar.bz2" hedgewars-ffmpeg3.patch)
+sha256sums=('b699c8971ff420c3edd6533527ae2e99040f1e79207c9140826945bcf0e62192'
+            '8c77091440f0e9c6ca365e160f56b2195a573dca206ee29d762ff6a35af84604')
 
 prepare() {
   cd ${pkgname}-src-${pkgver}
   sed -i 's|instance NFData (Chan a)$|instance NFData (Chan a) where rnf x = seq x ()|' gameServer/CoreTypes.hs
+
+# Fix build with ffmpeg 3.0 (Debian)
+  patch -p1 -i ../hedgewars-ffmpeg3.patch
 }
 
 build() {

Added: hedgewars-ffmpeg3.patch
===================================================================
--- hedgewars-ffmpeg3.patch	                        (rev 0)
+++ hedgewars-ffmpeg3.patch	2016-02-18 08:15:55 UTC (rev 162224)
@@ -0,0 +1,76 @@
+Description: Replace deprecated FFmpeg API
+Author: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
+Last-Update: <2015-11-02>
+
+--- hedgewars-0.9.22-dfsg.orig/QTfrontend/util/LibavInteraction.cpp
++++ hedgewars-0.9.22-dfsg/QTfrontend/util/LibavInteraction.cpp
+@@ -106,8 +106,8 @@ LibavInteraction::LibavInteraction() : Q
+             if (!pCodec->pix_fmts)
+                 continue;
+             bool yuv420Supported = false;
+-            for (const PixelFormat* pfmt = pCodec->pix_fmts; *pfmt != -1; pfmt++)
+-                if (*pfmt == PIX_FMT_YUV420P)
++            for (const AVPixelFormat* pfmt = pCodec->pix_fmts; *pfmt != -1; pfmt++)
++                if (*pfmt == AV_PIX_FMT_YUV420P)
+                 {
+                     yuv420Supported = true;
+                     break;
+--- hedgewars-0.9.22-dfsg.orig/hedgewars/avwrapper/avwrapper.c
++++ hedgewars-0.9.22-dfsg/hedgewars/avwrapper/avwrapper.c
+@@ -158,7 +158,7 @@ static void AddAudioStream()
+     else
+         g_NumSamples = g_pAudio->frame_size;
+     g_pSamples = (int16_t*)av_malloc(g_NumSamples*g_Channels*sizeof(int16_t));
+-    g_pAFrame = avcodec_alloc_frame();
++    g_pAFrame = av_frame_alloc();
+     if (!g_pAFrame)
+     {
+         Log("Could not allocate frame\n");
+@@ -241,7 +241,7 @@ static int AddVideoStream()
+     g_pVideo->time_base.den = g_Framerate.num;
+     g_pVideo->time_base.num = g_Framerate.den;
+     //g_pVideo->gop_size = 12; /* emit one intra frame every twelve frames at most */
+-    g_pVideo->pix_fmt = PIX_FMT_YUV420P;
++    g_pVideo->pix_fmt = AV_PIX_FMT_YUV420P;
+ 
+     // set quality
+     if (g_VQuality > 100)
+@@ -299,7 +299,7 @@ static int AddVideoStream()
+ #endif
+         return FatalError("Could not open video codec %s", g_pVCodec->long_name);
+ 
+-    g_pVFrame = avcodec_alloc_frame();
++    g_pVFrame = av_frame_alloc();
+     if (!g_pVFrame)
+         return FatalError("Could not allocate frame");
+ 
+@@ -317,10 +317,10 @@ static int WriteFrame(AVFrame* pFrame)
+     // write interleaved audio frame
+     if (g_pAStream)
+     {
+-        VideoTime = (double)g_pVStream->pts.val*g_pVStream->time_base.num/g_pVStream->time_base.den;
++        VideoTime = (double)av_stream_get_end_pts(g_pVStream)*g_pVStream->time_base.num/g_pVStream->time_base.den;
+         do
+         {
+-            AudioTime = (double)g_pAStream->pts.val*g_pAStream->time_base.num/g_pAStream->time_base.den;
++            AudioTime = (double)av_stream_get_end_pts(g_pAStream)*g_pAStream->time_base.num/g_pAStream->time_base.den;
+             ret = WriteAudioFrame();
+         }
+         while (AudioTime < VideoTime && ret);
+@@ -526,14 +526,14 @@ AVWRAP_DECL int AVWrapper_Close()
+         avcodec_close(g_pVideo);
+         av_free(g_pVideo);
+         av_free(g_pVStream);
+-        av_free(g_pVFrame);
++        av_frame_free(&g_pVFrame);
+     }
+     if (g_pAStream)
+     {
+         avcodec_close(g_pAudio);
+         av_free(g_pAudio);
+         av_free(g_pAStream);
+-        av_free(g_pAFrame);
++        av_frame_free(&g_pAFrame);
+         av_free(g_pSamples);
+         fclose(g_pSoundFile);
+     }



More information about the arch-commits mailing list