Moved patched ffmpeg ebuild from minerva to global overlay

git-svn-id: svn+ssh://svnintern.kmrc.de/projects/gentoo/iwm-overlay@5342 cbe59ace-07ea-0310-918e-868702b5370d
This commit is contained in:
2007-08-30 10:08:50 +00:00
parent e55ec468b7
commit a8c656f161
8 changed files with 1185 additions and 0 deletions
@@ -0,0 +1,3 @@
MD5 c6da417c0b6ce67aec96e75dcf0ee402 ffmpeg-0.4.9-p20070616.tar.bz2 2275972
RMD160 73d0334b85f0859bbfc40a4d9c27fb987b36ca25 ffmpeg-0.4.9-p20070616.tar.bz2 2275972
SHA256 bb15d2aee946ac6113928386f7385b15ffa4d9640e60830bd9868079bfb2da88 ffmpeg-0.4.9-p20070616.tar.bz2 2275972
@@ -0,0 +1,35 @@
Index: ffmpeg/libavcodec/cabac.h
===================================================================
--- ffmpeg.orig/libavcodec/cabac.h
+++ ffmpeg/libavcodec/cabac.h
@@ -376,7 +376,7 @@ static int av_always_inline get_cabac_in
#define BYTE "16"
#define BYTEEND "20"
#endif
-#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE)
+#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE) && !(defined(PIC) && defined(__GNUC__))
int bit;
#ifndef BRANCHLESS_CABAC_DECODER
@@ -680,7 +680,7 @@ static av_always_inline int get_cabac_by
//FIXME the x86 code from this file should be moved into i386/h264 or cabac something.c/h (note ill kill you if you move my code away from under my fingers before iam finished with it!)
//FIXME use some macros to avoid duplicatin get_cabac (cant be done yet as that would make optimization work hard)
-#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE)
+#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE) && !(defined(PIC) && defined(__GNUC__))
static int decode_significance_x86(CABACContext *c, int max_coeff, uint8_t *significant_coeff_ctx_base, int *index){
void *end= significant_coeff_ctx_base + max_coeff - 1;
int minusstart= -(int)significant_coeff_ctx_base;
Index: ffmpeg/libavcodec/h264.c
===================================================================
--- ffmpeg.orig/libavcodec/h264.c
+++ ffmpeg/libavcodec/h264.c
@@ -6111,7 +6111,7 @@ static int decode_cabac_residual( H264Co
index[coeff_count++] = last;\
}
const uint8_t *sig_off = significant_coeff_flag_offset_8x8[MB_FIELD];
-#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE)
+#if defined(ARCH_X86) && defined(CONFIG_7REGS) && defined(CONFIG_EBX_AVAILABLE) && !(defined(PIC) && defined(__GNUC__))
coeff_count= decode_significance_8x8_x86(CC, significant_coeff_ctx_base, index, sig_off);
} else {
coeff_count= decode_significance_x86(CC, max_coeff, significant_coeff_ctx_base, index);
@@ -0,0 +1,11 @@
--- ffmpeg/configure.orig 2007-01-29 15:24:05.000000000 +0100
+++ ffmpeg/configure 2007-01-29 15:37:23.000000000 +0100
@@ -2166,7 +2166,7 @@
cat <<EOF >$name.pc
prefix=$PREFIX
exec_prefix=\${prefix}
-libdir=\${exec_prefix}/lib
+libdir=\${exec_prefix}/GENTOOLIBDIR
includedir=\${prefix}/include
Name: $name
@@ -0,0 +1,40 @@
--- ffmpeg.orig/libavcodec/i386/dsputil_mmx.c 2006-03-04 07:50:27.000000000 +0100
+++ ffmpeg/libavcodec/i386/dsputil_mmx.c 2006-03-04 07:49:04.000000000 +0100
@@ -619,10 +619,22 @@
static inline void transpose4x4(uint8_t *dst, uint8_t *src, int dst_stride, int src_stride){
asm volatile( //FIXME could save 1 instruction if done as 8x4 ...
- "movd %4, %%mm0 \n\t"
- "movd %5, %%mm1 \n\t"
- "movd %6, %%mm2 \n\t"
- "movd %7, %%mm3 \n\t"
+ "movd %0, %%mm0 \n\t"
+ "movd %1, %%mm1 \n\t"
+ "movd %2, %%mm2 \n\t"
+
+ :
+ : "m" (*(uint32_t*)(src + 0*src_stride)),
+ "m" (*(uint32_t*)(src + 1*src_stride)),
+ "m" (*(uint32_t*)(src + 2*src_stride))
+ );
+ asm volatile( //FIXME could save 1 instruction if done as 8x4 ...
+ "movd %0, %%mm3 \n\t"
+
+ :
+ : "m" (*(uint32_t*)(src + 3*src_stride))
+ );
+ asm volatile( //FIXME could save 1 instruction if done as 8x4 ...
"punpcklbw %%mm1, %%mm0 \n\t"
"punpcklbw %%mm3, %%mm2 \n\t"
"movq %%mm0, %%mm1 \n\t"
@@ -639,10 +651,6 @@
"=m" (*(uint32_t*)(dst + 1*dst_stride)),
"=m" (*(uint32_t*)(dst + 2*dst_stride)),
"=m" (*(uint32_t*)(dst + 3*dst_stride))
- : "m" (*(uint32_t*)(src + 0*src_stride)),
- "m" (*(uint32_t*)(src + 1*src_stride)),
- "m" (*(uint32_t*)(src + 2*src_stride)),
- "m" (*(uint32_t*)(src + 3*src_stride))
);
}