[arch-commits] Commit in avidemux/trunk (2.5.3_field_asm_fix.diff ChangeLog PKGBUILD)

Ionut Biru ibiru at archlinux.org
Tue Jun 8 12:07:54 EDT 2010


    Date: Tuesday, June 8, 2010 @ 12:07:54
  Author: ibiru
Revision: 82110

upgpkg: avidemux 2.5.3-2
x264 20100607 rebuild

Added:
  avidemux/trunk/2.5.3_field_asm_fix.diff
Modified:
  avidemux/trunk/ChangeLog
  avidemux/trunk/PKGBUILD

--------------------------+
 2.5.3_field_asm_fix.diff |  135 +++++++++++++++++++++++++++++++++++++++++++++
 ChangeLog                |    6 ++
 PKGBUILD                 |    9 ++-
 3 files changed, 147 insertions(+), 3 deletions(-)

Added: 2.5.3_field_asm_fix.diff
===================================================================
--- 2.5.3_field_asm_fix.diff	                        (rev 0)
+++ 2.5.3_field_asm_fix.diff	2010-06-08 16:07:54 UTC (rev 82110)
@@ -0,0 +1,135 @@
+diff --git a/avidemux/ADM_coreImage/src/ADM_interlaceUtil.cpp b/avidemux/ADM_coreImage/src/ADM_interlaceUtil.cpp
+index 33b2a7f..99f0664 100644
+--- a/avidemux/ADM_coreImage/src/ADM_interlaceUtil.cpp
++++ b/avidemux/ADM_coreImage/src/ADM_interlaceUtil.cpp
+@@ -30,19 +30,8 @@ Skip factor=2
+  ***************************************************************************/
+ 
+ #include "ADM_default.h"
+-
+-//#include "ADM_editor/ADM_edit.hxx"
+ #include "ADM_videoFilter.h"
+ 
+-//#define MMX_TRACE
+-#warning remove mmxmacro and debug asm
+-//#define ASM_ILACING
+-
+-
+-#include "ADM_mmxMacros.h"
+-
+-
+-
+ 
+ #define SKIP_FACTOR 2   // 2^SKIPFACTOR=SKIP_LINEAR+1
+ #define SKIP_LINEAR   3
+@@ -62,7 +51,7 @@ Skip factor=2
+ */
+ 
+ #if defined(ADM_CPU_X86) && defined(ASM_ILACING)
+-
++#warning REWRITE IN PLAIN ASM
+ static uint32_t      ADMVideo_interlaceCount_MMX( uint8_t *src ,uint32_t w, uint32_t h);
+ static uint8_t * FUNNY_MANGLE(_l_p)  =NULL;
+ static uint8_t * FUNNY_MANGLE(_l_c) =NULL;
+diff --git a/avidemux/ADM_coreImage/src/ADM_vidFieldASM.cpp b/avidemux/ADM_coreImage/src/ADM_vidFieldASM.cpp
+index 61d11d4..479731c 100644
+--- a/avidemux/ADM_coreImage/src/ADM_vidFieldASM.cpp
++++ b/avidemux/ADM_coreImage/src/ADM_vidFieldASM.cpp
+@@ -20,15 +20,13 @@
+  ***************************************************************************/
+ 
+ #include "ADM_default.h"
+-
+ #include "ADM_videoFilter.h"
+-
+ #include"ADM_vidField.h"
+ 
+ #ifdef ADM_CPU_X86
+ //	#define DEBUG_DEINT 1
+ //	#define MMX_TRACE 1
+-	#include "ADM_mmxMacros.h"
++//	#include "ADM_mmxMacros.h"
+ 
+  void myDeintASM(void);
+ 
+@@ -36,25 +34,27 @@
+  static uint8_t * FUNNY_MANGLE(_l_p) , * FUNNY_MANGLE(_l_c) ,* FUNNY_MANGLE(_l_n);
+  static uint8_t * FUNNY_MANGLE(_l_e) , * FUNNY_MANGLE(_l_e2);
+ #define EXPAND(x) (x)+((x)<<16)+((x)<<32) +((x)<<48)
+-static mmx_t _mmTHRESH1;
+-static mmx_t _mmTHRESH2;
++static uint64_t  __attribute__((used)) __attribute__ ((__aligned__ (8)))  FUNNY_MANGLE(_mmTHRESH1) ;
++static uint64_t  __attribute__((used)) __attribute__ ((__aligned__ (8)))  FUNNY_MANGLE(_mmTHRESH2) ;
+ 
+-#define COMPUTE_MMX \
+-punpcklbw_r2r(mm5,mm0);  /*c  expand 4 bytes -> 4 word */ \
+-punpcklbw_r2r(mm5,mm1);  /*p*/ \
+-punpcklbw_r2r(mm5,mm2); /* n*/ \
+-movq_r2r(mm0,mm3);		/* mm3 also c*/ \
+-psubw_r2r(mm1,mm0) ; /* mm0=mm0-mm1 =  c-p*/ \
+-psubw_r2r(mm2,mm3) ; /* mm3=mm3-mm2 =  c-n*/ \
+-psraw_i2r(1,mm0); /* to protect from overflow*/ \
+-psraw_i2r(1,mm3);\
+-pmullw_r2r(mm0,mm3); /* mm3=(c-p)*(c-n) / 4;*/ \
+-movq_r2r(mm3,mm0) ; /* mm0 also c-p*c-n */ \
+-pcmpgtw_r2r(mm4,mm3); /* keep only > size*/ \
+-pcmpgtw_r2r(mm6,mm0); /* keep only > size*/ \
+-packsswb_r2r(mm5,mm0); \
+-packsswb_r2r(mm5,mm3);
+ 
++#define COMPUTE_MMX \
++__asm__ __volatile__(\
++"punpcklbw %%mm5,%%mm0\n\t" \
++"punpcklbw %%mm5,%%mm1\n\t" \
++"punpcklbw %%mm5,%%mm2\n\t" \
++"movq      %%mm0,%%mm3\n\t" \
++"psubw     %%mm1,%%mm0\n\t" \
++"psubw     %%mm2,%%mm3\n\t" \
++"psraw     $1,%%mm0\n\t" \
++"psraw     $1,%%mm3\n\t" \
++"pmullw    %%mm0,%%mm3\n\t" \
++"movq      %%mm3,%%mm0\n\t" \
++"pcmpgtw   %%mm4,%%mm3\n\t" \
++"pcmpgtw   %%mm6,%%mm0\n\t" \
++"packsswb  %%mm5,%%mm0\n\t" \
++"packsswb  %%mm5,%%mm3\n\t" \
++::)
+ #endif
+ 
+ void ADMVideoFields::hasMotion_C(uint8_t *p,uint8_t *c,
+@@ -90,8 +90,8 @@ void ADMVideoFields::hasMotion_MMX(uint8_t *p,uint8_t *c,
+ {
+ 
+ 
+-			 	_mmTHRESH1.uq=EXPAND((uint64_t ) ((_param->motion_trigger*_param->motion_trigger)>>2) );
+-				_mmTHRESH2.uq=EXPAND((uint64_t ) ((_param->blend_trigger*_param->blend_trigger)>>2) );
++            _mmTHRESH1=EXPAND((uint64_t ) ((_param->motion_trigger*_param->motion_trigger)>>2) );
++            _mmTHRESH2=EXPAND((uint64_t ) ((_param->blend_trigger*_param->blend_trigger)>>2) );
+ 
+ 			_l_h=_info.height-2;
+ 			_l_w=_info.width>>2;
+@@ -102,10 +102,11 @@ void ADMVideoFields::hasMotion_MMX(uint8_t *p,uint8_t *c,
+ 			_l_e=e;
+ 			_l_e2=e2;
+ //			printf("\n MMX \n");
+-
+-			pxor_r2r(mm5,mm5);
+-			movq_m2r(_mmTHRESH1,mm4);
+-			movq_m2r(_mmTHRESH2,mm6);
++             __asm__ __volatile__ (
++			"pxor %%mm5,%%mm5\n\t"
++			"movq "Mangle(_mmTHRESH1)",%%mm4\n\t"
++            "movq "Mangle(_mmTHRESH2)",%%mm6\n\t"
++            ::);
+ 			myDeintASM();
+ }
+ #if !defined(DEBUG_DEINT)
+@@ -149,7 +150,7 @@ void myDeintASM(void)
+                             :
+                             : "eax", "ecx","edx","esi"
+                             );
+-	   emms();
++            __asm__ __volatile__ ("emms");
+ 
+ }
+ #else

Modified: ChangeLog
===================================================================
--- ChangeLog	2010-06-08 16:04:57 UTC (rev 82109)
+++ ChangeLog	2010-06-08 16:07:54 UTC (rev 82110)
@@ -1,3 +1,9 @@
+2010-06-08  Ionut Biru <ibiru at archlinux.org>
+
+	* avidemux 2.5.3-2
+	* rebuild x264 20100607
+	* added 2.5.3_field_asm_fix.diff to fix building with gcc 4,5
+
 2010-05-25  Ionut Biru <ibiru at archlinux.org>
 
 	* avidemux 2.5.3-1

Modified: PKGBUILD
===================================================================
--- PKGBUILD	2010-06-08 16:04:57 UTC (rev 82109)
+++ PKGBUILD	2010-06-08 16:07:54 UTC (rev 82110)
@@ -5,17 +5,20 @@
 pkgbase=avidemux
 pkgname=('avidemux-cli' 'avidemux-gtk' 'avidemux-qt')
 pkgver=2.5.3
-pkgrel=1
+pkgrel=2
 arch=('i686' 'x86_64')
 license=('GPL')
 url="http://fixounet.free.fr/avidemux/"
 makedepends=('cmake' 'libxslt' 'gtk2' 'qt' 'jack' 'esound' 'libvorbis' 'sdl' 'libxv'
              'alsa-lib' 'lame' 'xvidcore' 'faad2' 'faac' 'x264' 'libsamplerate' 'opencore-amr' 'yasm')
-source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz)
-md5sums=('5a688029895b66b65ca86b7c85a03ee3')
+source=(http://downloads.sourceforge.net/avidemux/avidemux_${pkgver}.tar.gz
+	2.5.3_field_asm_fix.diff)
+md5sums=('5a688029895b66b65ca86b7c85a03ee3'
+         '7eaae393f6c0890a68d382f32925e07d')
 
 build() {
   cd "${srcdir}/${pkgbase}_${pkgver}"
+  patch -Np1 -i "${srcdir}/2.5.3_field_asm_fix.diff" || return 1
   mkdir build
   cd build
   cmake -D CMAKE_INSTALL_PREFIX=/usr -D CMAKE_BUILD_TYPE=Release -D CMAKE_SKIP_RPATH=ON -D GTK=1 -D QT4=1 .. || return 1



More information about the arch-commits mailing list