[SCM] FFmpeg packaging branch, master, updated. debian/0.5+svn20090420-2-17-gc8d8dad

Andres Mejia mcitadel at gmail.com
Wed May 13 07:20:20 UTC 2009


On Wednesday 13 May 2009 01:44:17 Reinhard Tartler wrote:
> ceros-guest at users.alioth.debian.org writes:
> > The following commit has been merged in the master branch:
> > commit 1768760e24c881dcf232cf9c45488fcf913c4806
> > Author: Andres Mejia <mcitadel at gmail.com>
> > Date:   Tue May 12 23:35:16 2009 -0400
> >
> >     Add comment to 900_doxyfile patch.
> >     Add fpic patches but don't enable them for quilt.
>
> again, 2 commits would have been better.
>
> > diff --git a/debian/patches/900_doxyfile b/debian/patches/900_doxyfile
> > index b224e19..04a2b74 100644
> > --- a/debian/patches/900_doxyfile
> > +++ b/debian/patches/900_doxyfile
> > @@ -1,7 +1,7 @@
> > -Index: ffmpeg-0.svn20080626/Doxyfile
> > -===================================================================
> > ---- ffmpeg-0.svn20080626.orig/Doxyfile	2008-06-26 15:36:33.000000000
> > +0100 -+++ ffmpeg-0.svn20080626/Doxyfile	2008-06-26 15:37:40.000000000
> > +0100 +Exclude some directories we use for packaging.
> > +========================================================================
> >== +--- a/Doxyfile
> > ++++ b/Doxyfile
> >  @@ -359,7 +359,7 @@
> >   # excluded from the INPUT source files. This way you can easily exclude
> > a # subdirectory from a directory tree whose root is specified with the
> > INPUT tag.
>
> terse, but ok.
>
> > diff --git a/debian/patches/fpic-ftbfs-fix.patch
> > b/debian/patches/fpic-ftbfs-fix.patch new file mode 100644
> > index 0000000..70b654d
> > --- /dev/null
> > +++ b/debian/patches/fpic-ftbfs-fix.patch
> > @@ -0,0 +1,261 @@
> > +This patch fixes FTBFS issue when using -fPIC.
>
> this misses links to the discussion of this patch. Has this been
> discussed upstream? Have you benchmarked its effects? And most
> importantly, what does the patch do? I see that it changes some lines,
> but please explain in english what the intend of this patch actually is.
>
> moreover this is really a huge patch and should really be split in
> smaller hunks so that they can be more easily reviewed.

OK. In the meanwhile, you can rest assured I won't apply them to any uploads. :)

>
> > +========================================================================
> >== +--- a/libavcodec/x86/dsputil_mmx.c
> > ++++ b/libavcodec/x86/dsputil_mmx.c
> > +@@ -695,14 +695,14 @@
> > +         "punpckhdq %%mm1, %%mm1         \n\t"
> > +         "movd  %%mm1, %3                \n\t"
> > +
> > +-        : "=m" (*(uint32_t*)(dst + 0*dst_stride)),
> > +-          "=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))
> > ++        : "=r" (*(uint32_t*)(dst + 0*dst_stride)),
> > ++          "=r" (*(uint32_t*)(dst + 1*dst_stride)),
> > ++          "=r" (*(uint32_t*)(dst + 2*dst_stride)),
> > ++          "=r" (*(uint32_t*)(dst + 3*dst_stride))
> > ++        :  "r" (*(uint32_t*)(src + 0*src_stride)),
> > ++           "r" (*(uint32_t*)(src + 1*src_stride)),
> > ++           "r" (*(uint32_t*)(src + 2*src_stride)),
> > ++           "r" (*(uint32_t*)(src + 3*src_stride))
> > +     );
> > + }
> > +
> > +--- a/libavcodec/x86/h264dsp_mmx.c
> > ++++ b/libavcodec/x86/h264dsp_mmx.c
> > +@@ -943,8 +943,8 @@
> > + \
> > +     __asm__ volatile(\
> > +         "pxor %%mm7, %%mm7          \n\t"\
> > +-        "movq %5, %%mm4             \n\t"\
> > +-        "movq %6, %%mm5             \n\t"\
> > ++        "movq ff_pw_5, %%mm4        \n\t"\
> > ++        "movq ff_pw_16, %%mm5       \n\t"\
> > +         "1:                         \n\t"\
> > +         "movd  -1(%0), %%mm1        \n\t"\
> > +         "movd    (%0), %%mm2        \n\t"\
> > +@@ -974,17 +974,15 @@
> > +         "decl %2                    \n\t"\
> > +         " jnz 1b                    \n\t"\
> > +         : "+a"(src), "+c"(dst), "+g"(h)\
> > +-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride),
> > "m"(ff_pw_5), "m"(ff_pw_16)\ +-        : "memory"\
> > ++        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
> > +     );\
> > + }\
> > + static av_noinline void OPNAME ## h264_qpel4_h_lowpass_l2_ ##
> > MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int
> > src2Stride){\ +     int h=4;\
> > +     __asm__ volatile(\
> > +-        "pxor %%mm7, %%mm7          \n\t"\
> > +-        "movq %0, %%mm4             \n\t"\
> > +-        "movq %1, %%mm5             \n\t"\
> > +-        :: "m"(ff_pw_5), "m"(ff_pw_16)\
> > ++        "pxor %mm7, %mm7          \n\t"\
> > ++        "movq ff_pw_5, %mm4        \n\t"\
> > ++        "movq ff_pw_16, %mm5       \n\t"\
> > +     );\
> > +     do{\
> > +     __asm__ volatile(\
> > +@@ -1117,7 +1115,7 @@
> > +     int h=8;\
> > +     __asm__ volatile(\
> > +         "pxor %%mm7, %%mm7          \n\t"\
> > +-        "movq %5, %%mm6             \n\t"\
> > ++        "movq ff_pw_5, %%mm6        \n\t"\
> > +         "1:                         \n\t"\
> > +         "movq    (%0), %%mm0        \n\t"\
> > +         "movq   1(%0), %%mm2        \n\t"\
> > +@@ -1151,7 +1149,7 @@
> > +         "punpcklbw %%mm7, %%mm5     \n\t"\
> > +         "paddw %%mm3, %%mm2         \n\t"\
> > +         "paddw %%mm5, %%mm4         \n\t"\
> > +-        "movq %6, %%mm5             \n\t"\
> > ++        "movq ff_pw_16, %%mm5       \n\t"\
> > +         "paddw %%mm5, %%mm2         \n\t"\
> > +         "paddw %%mm5, %%mm4         \n\t"\
> > +         "paddw %%mm2, %%mm0         \n\t"\
> > +@@ -1165,17 +1163,15 @@
> > +         "decl %2                    \n\t"\
> > +         " jnz 1b                    \n\t"\
> > +         : "+a"(src), "+c"(dst), "+g"(h)\
> > +-        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride),
> > "m"(ff_pw_5), "m"(ff_pw_16)\ +-        : "memory"\
> > ++        : "d"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
> > +     );\
> > + }\
> > + \
> > + static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ##
> > MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int
> > src2Stride){\ +     int h=8;\
> > +     __asm__ volatile(\
> > +-        "pxor %%mm7, %%mm7          \n\t"\
> > +-        "movq %0, %%mm6             \n\t"\
> > +-        :: "m"(ff_pw_5)\
> > ++        "pxor %mm7, %mm7          \n\t"\
> > ++        "movq ff_pw_5, %mm6        \n\t"\
> > +     );\
> > +     do{\
> > +     __asm__ volatile(\
> > +@@ -1211,7 +1207,7 @@
> > +         "punpcklbw %%mm7, %%mm5     \n\t"\
> > +         "paddw %%mm3, %%mm2         \n\t"\
> > +         "paddw %%mm5, %%mm4         \n\t"\
> > +-        "movq %5, %%mm5             \n\t"\
> > ++        "movq ff_pw_16, %%mm5       \n\t"\
> > +         "paddw %%mm5, %%mm2         \n\t"\
> > +         "paddw %%mm5, %%mm4         \n\t"\
> > +         "paddw %%mm2, %%mm0         \n\t"\
> > +@@ -1226,9 +1222,7 @@
> > +         "add %4, %1                 \n\t"\
> > +         "add %3, %2                 \n\t"\
> > +         : "+a"(src), "+c"(dst), "+d"(src2)\
> > +-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
> > +-          "m"(ff_pw_16)\
> > +-        : "memory"\
> > ++        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
> > +     );\
> > +     }while(--h);\
> > + }\
> > +@@ -1494,8 +1488,8 @@
> > +     int h=16;\
> > +     __asm__ volatile(\
> > +         "pxor %%xmm15, %%xmm15      \n\t"\
> > +-        "movdqa %6, %%xmm14         \n\t"\
> > +-        "movdqa %7, %%xmm13         \n\t"\
> > ++        "movdqa ff_pw_5, %%xmm14    \n\t"\
> > ++        "movdqa ff_pw_16, %%xmm13   \n\t"\
> > +         "1:                         \n\t"\
> > +         "lddqu    3(%0), %%xmm1     \n\t"\
> > +         "lddqu   -5(%0), %%xmm7     \n\t"\
> > +@@ -1549,9 +1543,7 @@
> > +         "decl %3                    \n\t"\
> > +         "jg 1b                      \n\t"\
> > +         : "+a"(src), "+c"(dst), "+d"(src2), "+g"(h)\
> > +-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
> > +-          "m"(ff_pw_5), "m"(ff_pw_16)\
> > +-        : "memory"\
> > ++        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
> > +     );\
> > + }
> > + #else // ARCH_X86_64
> > +@@ -1571,9 +1563,8 @@
> > + static av_noinline void OPNAME ## h264_qpel8_h_lowpass_l2_ ##
> > MMX(uint8_t *dst, uint8_t *src, uint8_t *src2, int dstStride, int
> > src2Stride){\ +     int h=8;\
> > +     __asm__ volatile(\
> > +-        "pxor %%xmm7, %%xmm7        \n\t"\
> > +-        "movdqa %0, %%xmm6          \n\t"\
> > +-        :: "m"(ff_pw_5)\
> > ++        "pxor %xmm7, %xmm7        \n\t"\
> > ++        "movdqa ff_pw_5, %xmm6     \n\t"\
> > +     );\
> > +     do{\
> > +     __asm__ volatile(\
> > +@@ -1596,7 +1587,7 @@
> > +         "psllw   $2,     %%xmm2     \n\t"\
> > +         "movq    (%2),   %%xmm3     \n\t"\
> > +         "psubw   %%xmm1, %%xmm2     \n\t"\
> > +-        "paddw   %5,     %%xmm5     \n\t"\
> > ++        "paddw   ff_pw_16,%%xmm5    \n\t"\
> > +         "pmullw  %%xmm6, %%xmm2     \n\t"\
> > +         "paddw   %%xmm5, %%xmm2     \n\t"\
> > +         "psraw   $5,     %%xmm2     \n\t"\
> > +@@ -1607,9 +1598,7 @@
> > +         "add %4, %1                 \n\t"\
> > +         "add %3, %2                 \n\t"\
> > +         : "+a"(src), "+c"(dst), "+d"(src2)\
> > +-        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride),\
> > +-          "m"(ff_pw_16)\
> > +-        : "memory"\
> > ++        : "D"((x86_reg)src2Stride), "S"((x86_reg)dstStride)\
> > +     );\
> > +     }while(--h);\
> > + }\
> > +@@ -1619,7 +1608,7 @@
> > +     int h=8;\
> > +     __asm__ volatile(\
> > +         "pxor %%xmm7, %%xmm7        \n\t"\
> > +-        "movdqa %5, %%xmm6          \n\t"\
> > ++        "movdqa ff_pw_5, %%xmm6     \n\t"\
> > +         "1:                         \n\t"\
> > +         "lddqu   -5(%0), %%xmm1     \n\t"\
> > +         "movdqa  %%xmm1, %%xmm0     \n\t"\
> > +@@ -1639,7 +1628,7 @@
> > +         "paddw   %%xmm4, %%xmm1     \n\t"\
> > +         "psllw   $2,     %%xmm2     \n\t"\
> > +         "psubw   %%xmm1, %%xmm2     \n\t"\
> > +-        "paddw   %6,     %%xmm5     \n\t"\
> > ++        "paddw   ff_pw_16, %%xmm5   \n\t"\
> > +         "pmullw  %%xmm6, %%xmm2     \n\t"\
> > +         "paddw   %%xmm5, %%xmm2     \n\t"\
> > +         "psraw   $5,     %%xmm2     \n\t"\
> > +@@ -1650,9 +1639,7 @@
> > +         "decl %2                    \n\t"\
> > +         " jnz 1b                    \n\t"\
> > +         : "+a"(src), "+c"(dst), "+g"(h)\
> > +-        : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride),\
> > +-          "m"(ff_pw_5), "m"(ff_pw_16)\
> > +-        : "memory"\
> > ++        : "D"((x86_reg)srcStride), "S"((x86_reg)dstStride)\
> > +     );\
> > + }\
> > + static void OPNAME ## h264_qpel16_h_lowpass_ ## MMX(uint8_t *dst,
> > uint8_t *src, int dstStride, int srcStride){\ +---
> > a/libavcodec/x86/flacdsp_mmx.c
> > ++++ b/libavcodec/x86/flacdsp_mmx.c
> > +@@ -89,12 +89,12 @@
> > +                 "movsd    "MANGLE(ff_pd_1)", %%xmm1 \n\t"
> > +                 "movsd    "MANGLE(ff_pd_1)", %%xmm2 \n\t"
> > +                 "1:                                 \n\t"
> > +-                "movapd   (%4,%0), %%xmm3           \n\t"
> > +-                "movupd -8(%5,%0), %%xmm4           \n\t"
> > +-                "movapd   (%5,%0), %%xmm5           \n\t"
> > ++                "movapd   (%2,%0), %%xmm3           \n\t"
> > ++                "movupd -8(%3,%0), %%xmm4           \n\t"
> > ++                "movapd   (%3,%0), %%xmm5           \n\t"
> > +                 "mulpd     %%xmm3, %%xmm4           \n\t"
> > +                 "mulpd     %%xmm3, %%xmm5           \n\t"
> > +-                "mulpd -16(%5,%0), %%xmm3           \n\t"
> > ++                "mulpd -16(%3,%0), %%xmm3           \n\t"
> > +                 "addpd     %%xmm4, %%xmm1           \n\t"
> > +                 "addpd     %%xmm5, %%xmm0           \n\t"
> > +                 "addpd     %%xmm3, %%xmm2           \n\t"
> > +@@ -107,9 +107,9 @@
> > +                 "addsd     %%xmm4, %%xmm1           \n\t"
> > +                 "addsd     %%xmm5, %%xmm2           \n\t"
> > +                 "movsd     %%xmm0, %1               \n\t"
> > +-                "movsd     %%xmm1, %2               \n\t"
> > +-                "movsd     %%xmm2, %3               \n\t"
> > +-                :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1]),
> > "=m"(autoc[j+2]) ++                "movsd     %%xmm1, 8%1              
> > \n\t"
> > ++                "movsd     %%xmm2, 16%1               \n\t"
> > ++                :"+&r"(i), "=m"(autoc[j])
> > +                 :"r"(data1+len), "r"(data1+len-j)
> > +             );
> > +         } else {
> > +@@ -117,10 +117,10 @@
> > +                 "movsd    "MANGLE(ff_pd_1)", %%xmm0 \n\t"
> > +                 "movsd    "MANGLE(ff_pd_1)", %%xmm1 \n\t"
> > +                 "1:                                 \n\t"
> > +-                "movapd   (%3,%0), %%xmm3           \n\t"
> > +-                "movupd -8(%4,%0), %%xmm4           \n\t"
> > ++                "movapd   (%2,%0), %%xmm3           \n\t"
> > ++                "movupd -8(%3,%0), %%xmm4           \n\t"
> > +                 "mulpd     %%xmm3, %%xmm4           \n\t"
> > +-                "mulpd    (%4,%0), %%xmm3           \n\t"
> > ++                "mulpd    (%3,%0), %%xmm3           \n\t"
> > +                 "addpd     %%xmm4, %%xmm1           \n\t"
> > +                 "addpd     %%xmm3, %%xmm0           \n\t"
> > +                 "add       $16,    %0               \n\t"
> > +@@ -130,8 +130,8 @@
> > +                 "addsd     %%xmm3, %%xmm0           \n\t"
> > +                 "addsd     %%xmm4, %%xmm1           \n\t"
> > +                 "movsd     %%xmm0, %1               \n\t"
> > +-                "movsd     %%xmm1, %2               \n\t"
> > +-                :"+&r"(i), "=m"(autoc[j]), "=m"(autoc[j+1])
> > ++                "movsd     %%xmm1, 8%1               \n\t"
> > ++                :"+&r"(i), "=m"(autoc[j])
> > +                 :"r"(data1+len), "r"(data1+len-j)
> > +             );
> > +         }
> > diff --git a/debian/patches/fpic-libpostproc-fix.patch
> > b/debian/patches/fpic-libpostproc-fix.patch new file mode 100644
> > index 0000000..7fa9d91
> > --- /dev/null
> > +++ b/debian/patches/fpic-libpostproc-fix.patch
> > @@ -0,0 +1,314 @@
> > +This patch resolves all non-PIC issues from the libpostproc library.
> > +========================================================================
> >== +--- a/libpostproc/postprocess_template.c
> > ++++ b/libpostproc/postprocess_template.c
> > +@@ -369,16 +369,16 @@
> > + // FIXME rounding
> > +     __asm__ volatile(
> > +         "pxor %%mm7, %%mm7                      \n\t" // 0
> > +-        "movq "MANGLE(b80)", %%mm6              \n\t" //
> > MIN_SIGNED_BYTE ++        "movq %2, %%mm6                         \n\t"
> > // MIN_SIGNED_BYTE +         "leal (%0, %1), %%"REG_a"              
> > \n\t"
> > +         "leal (%%"REG_a", %1, 4), %%"REG_c"     \n\t"
> > + //      0       1       2       3       4       5       6       7      
> > 8       9 + //      %0      eax     eax+%1  eax+2%1 %0+4%1  ecx    
> > ecx+%1  ecx+2%1 %0+8%1  ecx+4%1 +-        "movq "MANGLE(pQPb)", %%mm0    
> >         \n\t" // QP,..., QP ++        "movq %3, %%mm0                    
> >     \n\t" // QP,..., QP +         "movq %%mm0, %%mm1                     
> > \n\t" // QP,..., QP +-        "paddusb "MANGLE(b02)", %%mm0          
> > \n\t"
> > ++        "paddusb %4, %%mm0                      \n\t"
> > +         "psrlw $2, %%mm0                        \n\t"
> > +-        "pand "MANGLE(b3F)", %%mm0              \n\t" // QP/4,..., QP/4
> > ++        "pand %5, %%mm0                         \n\t" // QP/4,..., QP/4
> > +         "paddusb %%mm1, %%mm0                   \n\t" // QP*1.25 ...
> > +         "movq (%0, %1, 4), %%mm2                \n\t" // line 4
> > +         "movq (%%"REG_c"), %%mm3                \n\t" // line 5
> > +@@ -407,8 +407,8 @@
> > +
> > +         "paddb %%mm6, %%mm5                     \n\t"
> > +         "psrlw $2, %%mm5                        \n\t"
> > +-        "pand "MANGLE(b3F)", %%mm5              \n\t"
> > +-        "psubb "MANGLE(b20)", %%mm5             \n\t" // (l5-l4)/8
> > ++        "pand %5, %%mm5                         \n\t"
> > ++        "psubb %6, %%mm5                        \n\t" // (l5-l4)/8
> > +
> > +         "movq (%%"REG_a", %1, 2), %%mm2         \n\t"
> > +         "paddb %%mm6, %%mm2                     \n\t" // line 3 + 0x80
> > +@@ -423,7 +423,8 @@
> > +         "movq %%mm2, (%%"REG_c", %1)            \n\t"
> > +
> > +         :
> > +-        : "r" (src), "r" ((x86_reg)stride)
> > ++        : "r" (src), "r" ((x86_reg)stride), "m"(b80), "m"(pQPb),
> > "m"(b02), ++          "m"(b3f), "m"(b20)
> > +         : "%"REG_a, "%"REG_c
> > +     );
> > + #else //HAVE_MMX2 || HAVE_AMD3DNOW
> > +@@ -496,7 +497,7 @@
> > +         "paddusb %%mm0, %%mm0                   \n\t"
> > +         "psubusb %%mm0, %%mm4                   \n\t"
> > +         "pcmpeqb %%mm7, %%mm4                   \n\t" // d <= QP ? -1 :
> > 0 +-        "psubusb "MANGLE(b01)", %%mm3           \n\t"
> > ++        "psubusb %3, %%mm3                      \n\t"
> > +         "pand %%mm4, %%mm3                      \n\t" // d <= QP ? d :
> > 0 +
> > +         PAVGB(%%mm7, %%mm3)                           // d/2
> > +@@ -545,7 +546,7 @@
> > +         "movq %%mm0, (%%"REG_c", %1, 2)         \n\t" // line 7
> > +
> > +         :
> > +-        : "r" (src), "r" ((x86_reg)stride), "m" (co->pQPb)
> > ++        : "r" (src), "r" ((x86_reg)stride), "m" (co->pQPb), "m"(b01)
> > +         : "%"REG_a, "%"REG_c
> > +     );
> > + #else //HAVE_MMX2 || HAVE_AMD3DNOW
> > +@@ -675,17 +676,17 @@
> > +
> > +         PMINUB(%%mm2, %%mm1, %%mm4)                   //
> > MIN(|lenergy|,|renergy|)/8 +         "movq %2, %%mm4                     
> >    \n\t" // QP //FIXME QP+1 ? +-        "paddusb "MANGLE(b01)", %%mm4    
> >       \n\t"
> > ++        "paddusb %5, %%mm4                      \n\t"
> > +         "pcmpgtb %%mm3, %%mm4                   \n\t" // |menergy|/8 <
> > QP +         "psubusb %%mm1, %%mm3                   \n\t" //
> > d=|menergy|/8-MIN(|lenergy|,|renergy|)/8 +         "pand %%mm4, %%mm3    
> >                  \n\t"
> > +
> > +         "movq %%mm3, %%mm1                      \n\t"
> > +-//        "psubusb "MANGLE(b01)", %%mm3           \n\t"
> > ++//        "psubusb %5, %%mm3                    \n\t"
> > +         PAVGB(%%mm7, %%mm3)
> > +         PAVGB(%%mm7, %%mm3)
> > +         "paddusb %%mm1, %%mm3                   \n\t"
> > +-//        "paddusb "MANGLE(b01)", %%mm3           \n\t"
> > ++//        "paddusb %5, %%mm3                    \n\t"
> > +
> > +         "movq (%%"REG_a", %1, 2), %%mm6         \n\t" //l3
> > +         "movq (%0, %1, 4), %%mm5                \n\t" //l4
> > +@@ -698,7 +699,7 @@
> > +         "pand %%mm0, %%mm3                      \n\t"
> > +         PMINUB(%%mm5, %%mm3, %%mm0)
> > +
> > +-        "psubusb "MANGLE(b01)", %%mm3           \n\t"
> > ++        "psubusb %5, %%mm3                      \n\t"
> > +         PAVGB(%%mm7, %%mm3)
> > +
> > +         "movq (%%"REG_a", %1, 2), %%mm0         \n\t"
> > +@@ -730,7 +731,7 @@
> > +         "movq (%%"REG_a", %1), %%mm3            \n\t" // l2
> > +         "pxor %%mm6, %%mm2                      \n\t" // -l5-1
> > +         "movq %%mm2, %%mm5                      \n\t" // -l5-1
> > +-        "movq "MANGLE(b80)", %%mm4              \n\t" // 128
> > ++        "movq %3, %%mm4                         \n\t" // 128
> > +         "lea (%%"REG_a", %1, 4), %%"REG_c"      \n\t"
> > +         PAVGB(%%mm3, %%mm2)                           // (l2-l5+256)/2
> > +         PAVGB(%%mm0, %%mm4)                           // ~(l4-l3)/4 +
> > 128 +@@ -742,7 +743,7 @@
> > +         "pxor %%mm6, %%mm2                      \n\t" // -l1-1
> > +         PAVGB(%%mm3, %%mm2)                           // (l2-l1+256)/2
> > +         PAVGB((%0), %%mm1)                            // (l0-l3+256)/2
> > +-        "movq "MANGLE(b80)", %%mm3              \n\t" // 128
> > ++        "movq %3, %%mm3                        \n\t" // 128
> > +         PAVGB(%%mm2, %%mm3)                           // ~(l2-l1)/4 +
> > 128 +         PAVGB(%%mm1, %%mm3)                           // ~(l0-l3)/4
> > +(l2-l1)/8 + 128 +         PAVGB(%%mm2, %%mm3)                          
> > // ~(l0-l3)/8 +5(l2-l1)/16 + 128 +@@ -752,14 +753,14 @@
> > +         "movq (%%"REG_c", %1, 2), %%mm1         \n\t" // l7
> > +         "pxor %%mm6, %%mm1                      \n\t" // -l7-1
> > +         PAVGB((%0, %1, 4), %%mm1)                     // (l4-l7+256)/2
> > +-        "movq "MANGLE(b80)", %%mm2              \n\t" // 128
> > ++        "movq %3, %%mm2                        \n\t" // 128
> > +         PAVGB(%%mm5, %%mm2)                           // ~(l6-l5)/4 +
> > 128 +         PAVGB(%%mm1, %%mm2)                           // ~(l4-l7)/4
> > +(l6-l5)/8 + 128 +         PAVGB(%%mm5, %%mm2)                          
> > // ~(l4-l7)/8 +5(l6-l5)/16 + 128 + // mm0=128-q, mm2=renergy/16 + 128,
> > mm3=lenergy/16 + 128, mm4= menergy/16 + 128 +
> > +-        "movq "MANGLE(b00)", %%mm1              \n\t" // 0
> > +-        "movq "MANGLE(b00)", %%mm5              \n\t" // 0
> > ++        "movq %4, %%mm1                         \n\t" // 0
> > ++        "movq %4, %%mm5                         \n\t" // 0
> > +         "psubb %%mm2, %%mm1                     \n\t" // 128 -
> > renergy/16 +         "psubb %%mm3, %%mm5                     \n\t" // 128
> > - lenergy/16 +         PMAXUB(%%mm1, %%mm2)                          //
> > 128 + |renergy/16| +@@ -768,7 +769,7 @@
> > +
> > + // mm0=128-q, mm3=128 + MIN(|lenergy|,|renergy|)/16, mm4= menergy/16 +
> > 128 +
> > +-        "movq "MANGLE(b00)", %%mm7              \n\t" // 0
> > ++        "movq %4, %%mm7                         \n\t" // 0
> > +         "movq %2, %%mm2                         \n\t" // QP
> > +         PAVGB(%%mm6, %%mm2)                           // 128 + QP/2
> > +         "psubb %%mm6, %%mm2                     \n\t"
> > +@@ -782,13 +783,13 @@
> > + // mm0=128-q, mm1= SIGN(menergy), mm2= |menergy|/16 < QP/2, mm4= d/16
> > +
> > +         "movq %%mm4, %%mm3                      \n\t" // d
> > +-        "psubusb "MANGLE(b01)", %%mm4           \n\t"
> > ++        "psubusb %5, %%mm4                      \n\t"
> > +         PAVGB(%%mm7, %%mm4)                           // d/32
> > +         PAVGB(%%mm7, %%mm4)                           // (d + 32)/64
> > +         "paddb %%mm3, %%mm4                     \n\t" // 5d/64
> > +         "pand %%mm2, %%mm4                      \n\t"
> > +
> > +-        "movq "MANGLE(b80)", %%mm5              \n\t" // 128
> > ++        "movq %3, %%mm5                         \n\t" // 128
> > +         "psubb %%mm0, %%mm5                     \n\t" // q
> > +         "paddsb %%mm6, %%mm5                    \n\t" // fix bad
> > rounding +         "pcmpgtb %%mm5, %%mm7                   \n\t" //
> > SIGN(q) +@@ -810,7 +811,8 @@
> > +         "movq %%mm2, (%0, %1, 4)                \n\t"
> > +
> > +         :
> > +-        : "r" (src), "r" ((x86_reg)stride), "m" (c->pQPb)
> > ++        : "r" (src), "r" ((x86_reg)stride), "m" (c->pQPb), "m"(b80),
> > ++          "m"(b00), "m"(b01)
> > +         : "%"REG_a, "%"REG_c
> > +     );
> > +
> > +@@ -1045,10 +1047,10 @@
> > +         "psubusw %%mm1, %%mm5                   \n\t" // ld
> > +
> > +
> > +-        "movq "MANGLE(w05)", %%mm2              \n\t" // 5
> > ++        "movq %3, %%mm2                         \n\t" // 5
> > +         "pmullw %%mm2, %%mm4                    \n\t"
> > +         "pmullw %%mm2, %%mm5                    \n\t"
> > +-        "movq "MANGLE(w20)", %%mm2              \n\t" // 32
> > ++        "movq %4, %%mm2                         \n\t" // 32
> > +         "paddw %%mm2, %%mm4                     \n\t"
> > +         "paddw %%mm2, %%mm5                     \n\t"
> > +         "psrlw $6, %%mm4                        \n\t"
> > +@@ -1098,7 +1100,7 @@
> > +         "movq %%mm0, (%0, %1)                   \n\t"
> > +
> > +         : "+r" (src)
> > +-        : "r" ((x86_reg)stride), "m" (c->pQPb)
> > ++        : "r" ((x86_reg)stride), "m" (c->pQPb), "m"(w05), "m"(w20)
> > +         : "%"REG_a, "%"REG_c
> > +     );
> > + #else //HAVE_MMX2 || HAVE_AMD3DNOW
> > +@@ -1237,7 +1239,7 @@
> > +         "movq %%mm6, %%mm0                      \n\t" // max
> > +         "psubb %%mm7, %%mm6                     \n\t" // max - min
> > +         "movd %%mm6, %%ecx                      \n\t"
> > +-        "cmpb "MANGLE(deringThreshold)", %%cl   \n\t"
> > ++        "cmpb %4, %%cl                          \n\t"
> > +         " jb 1f                                 \n\t"
> > +         "lea -24(%%"REG_SP"), %%"REG_c"         \n\t"
> > +         "and "ALIGN_MASK", %%"REG_c"            \n\t"
> > +@@ -1264,9 +1266,9 @@
> > +         "psubusb %%mm7, %%mm0                   \n\t"
> > +         "psubusb %%mm7, %%mm2                   \n\t"
> > +         "psubusb %%mm7, %%mm3                   \n\t"
> > +-        "pcmpeqb "MANGLE(b00)", %%mm0           \n\t" // L10 > a ? 0 :
> > -1 +-        "pcmpeqb "MANGLE(b00)", %%mm2           \n\t" // L20 > a ? 0
> > : -1 +-        "pcmpeqb "MANGLE(b00)", %%mm3           \n\t" // L00 > a ?
> > 0 : -1 ++        "pcmpeqb %5, %%mm0                      \n\t" // L10 > a
> > ? 0 : -1 ++        "pcmpeqb %5, %%mm2                      \n\t" // L20 >
> > a ? 0 : -1 ++        "pcmpeqb %5, %%mm3                      \n\t" // L00
> > > a ? 0 : -1 +         "paddb %%mm2, %%mm0                     \n\t"
> > +         "paddb %%mm3, %%mm0                     \n\t"
> > +
> > +@@ -1287,9 +1289,9 @@
> > +         "psubusb %%mm7, %%mm2                   \n\t"
> > +         "psubusb %%mm7, %%mm4                   \n\t"
> > +         "psubusb %%mm7, %%mm5                   \n\t"
> > +-        "pcmpeqb "MANGLE(b00)", %%mm2           \n\t" // L11 > a ? 0 :
> > -1 +-        "pcmpeqb "MANGLE(b00)", %%mm4           \n\t" // L21 > a ? 0
> > : -1 +-        "pcmpeqb "MANGLE(b00)", %%mm5           \n\t" // L01 > a ?
> > 0 : -1 ++        "pcmpeqb %5, %%mm2                      \n\t" // L11 > a
> > ? 0 : -1 ++        "pcmpeqb %5, %%mm4                      \n\t" // L21 >
> > a ? 0 : -1 ++        "pcmpeqb %5, %%mm5                      \n\t" // L01
> > > a ? 0 : -1 +         "paddb %%mm4, %%mm2                     \n\t"
> > +         "paddb %%mm5, %%mm2                     \n\t"
> > + // 0, 2, 3, 1
> > +@@ -1314,7 +1316,7 @@
> > +         "psubusb " #lx ", " #t1 "               \n\t"\
> > +         "psubusb " #lx ", " #t0 "               \n\t"\
> > +         "psubusb " #lx ", " #sx "               \n\t"\
> > +-        "movq "MANGLE(b00)", " #lx "            \n\t"\
> > ++        "movq %5, " #lx "                       \n\t"\
> > +         "pcmpeqb " #lx ", " #t1 "               \n\t" /* src[-1] > a ?
> > 0 : -1*/\ +         "pcmpeqb " #lx ", " #t0 "               \n\t" /*
> > src[+1] > a ? 0 : -1*/\ +         "pcmpeqb " #lx ", " #sx "              
> > \n\t" /* src[0]  > a ? 0 : -1*/\ +@@ -1330,8 +1332,8 @@
> > +         PMINUB(t1, pplx, t0)\
> > +         "paddb " #sx ", " #ppsx "               \n\t"\
> > +         "paddb " #psx ", " #ppsx "              \n\t"\
> > +-        "#paddb "MANGLE(b02)", " #ppsx "        \n\t"\
> > +-        "pand "MANGLE(b08)", " #ppsx "          \n\t"\
> > ++        "#paddb %6, " #ppsx "                   \n\t"\
> > ++        "pand %7, " #ppsx "                     \n\t"\
> > +         "pcmpeqb " #lx ", " #ppsx "             \n\t"\
> > +         "pand " #ppsx ", " #pplx "              \n\t"\
> > +         "pandn " #dst ", " #ppsx "              \n\t"\
> > +@@ -1367,7 +1369,8 @@
> > + DERING_CORE((%0, %1, 8)    ,(%%REGd, %1,
> > 4),%%mm2,%%mm4,%%mm0,%%mm3,%%mm5,%%mm1,%%mm6,%%mm7) +
> > +         "1:                        \n\t"
> > +-        : : "r" (src), "r" ((x86_reg)stride), "m" (c->pQPb),
> > "m"(c->pQPb2) ++        : : "r" (src), "r" ((x86_reg)stride), "m"
> > (c->pQPb), "m"(c->pQPb2), ++            "m"(deringThreshold), "m"(b00),
> > "m"(b02), "m"(b08) +         : "%"REG_a, "%"REG_d, "%"REG_c
> > +     );
> > + #else //HAVE_MMX2 || HAVE_AMD3DNOW
> > +@@ -2227,7 +2230,7 @@
> > + #else //L1_DIFF
> > + #if defined (FAST_L2_DIFF)
> > +         "pcmpeqb %%mm7, %%mm7                   \n\t"
> > +-        "movq "MANGLE(b80)", %%mm6              \n\t"
> > ++        "movq %4, %%mm6                         \n\t"
> > +         "pxor %%mm0, %%mm0                      \n\t"
> > + #define REAL_L2_DIFF_CORE(a, b)\
> > +         "movq " #a ", %%mm5                     \n\t"\
> > +@@ -2476,7 +2479,8 @@
> > +
> > +         "4:                                     \n\t"
> > +
> > +-        :: "r" (src), "r" (tempBlurred), "r"((x86_reg)stride), "m"
> > (tempBlurredPast) ++        :: "r" (src), "r" (tempBlurred),
> > "r"((x86_reg)stride), ++           "m" (tempBlurredPast), "m"(b80)
> > +         : "%"REG_a, "%"REG_d, "%"REG_c, "memory"
> > +     );
> > + #else //HAVE_MMX2 || HAVE_AMD3DNOW
> > +@@ -2730,8 +2734,8 @@
> > +             "movq %%mm6, %%mm1                      \n\t"
> > +             "psllw $2, %%mm0                        \n\t"
> > +             "psllw $2, %%mm1                        \n\t"
> > +-            "paddw "MANGLE(w04)", %%mm0             \n\t"
> > +-            "paddw "MANGLE(w04)", %%mm1             \n\t"
> > ++            "paddw %5, %%mm0                        \n\t"
> > ++            "paddw %5, %%mm1                        \n\t"
> > +
> > + #define NEXT\
> > +             "movq (%0), %%mm2                       \n\t"\
> > +@@ -2820,7 +2824,7 @@
> > +             "mov %4, %0                             \n\t" //FIXME
> > +
> > +             : "+&r"(src)
> > +-            : "r" ((x86_reg)step), "m" (c->pQPb), "r"(sums), "g"(src)
> > ++            : "r" ((x86_reg)step), "m" (c->pQPb), "r"(sums), "g"(src),
> > "m"(w04) +         );
> > +
> > +         src+= step; // src points to begin of the 8x8 Block
> > +@@ -3037,10 +3041,10 @@
> > +             "psubusw %%mm1, %%mm5                   \n\t" // ld
> > +
> > +
> > +-            "movq "MANGLE(w05)", %%mm2              \n\t" // 5
> > ++            "movq %4, %%mm2                         \n\t" // 5
> > +             "pmullw %%mm2, %%mm4                    \n\t"
> > +             "pmullw %%mm2, %%mm5                    \n\t"
> > +-            "movq "MANGLE(w20)", %%mm2              \n\t" // 32
> > ++            "movq %5, %%mm2                         \n\t" // 32
> > +             "paddw %%mm2, %%mm4                     \n\t"
> > +             "paddw %%mm2, %%mm5                     \n\t"
> > +             "psrlw $6, %%mm4                        \n\t"
> > +@@ -3092,7 +3096,8 @@
> > +             "movq %%mm0, (%0, %1)                   \n\t"
> > +
> > +             : "+r" (temp_src)
> > +-            : "r" ((x86_reg)step), "m" (c->pQPb), "m"(eq_mask)
> > ++            : "r" ((x86_reg)step), "m" (c->pQPb), "m"(eq_mask),
> > "m"(w05), ++              "m"(w20)
> > +             : "%"REG_a, "%"REG_c
> > +         );
> > +     }
> > diff --git a/debian/patches/fpic-libswscale-fix.patch
> > b/debian/patches/fpic-libswscale-fix.patch new file mode 100644
> > index 0000000..1144176
> > --- /dev/null
> > +++ b/debian/patches/fpic-libswscale-fix.patch
> > @@ -0,0 +1,577 @@
> > +This patch is currently being worked on to resolve all non-PIC issues
> > with +the libswscale library.
> > +========================================================================
> >== +--- a/libswscale/rgb2rgb_template.c
> > ++++ b/libswscale/rgb2rgb_template.c
> > +@@ -1424,9 +1424,12 @@
> > +     __asm__ volatile (
> > +     "test             %%"REG_a", %%"REG_a"          \n\t"
> > +     "jns                     2f                     \n\t"
> > +-    "movq     "MANGLE(mask24r)", %%mm5              \n\t"
> > +-    "movq     "MANGLE(mask24g)", %%mm6              \n\t"
> > +-    "movq     "MANGLE(mask24b)", %%mm7              \n\t"
> > ++    "movq                    %0, %%mm5              \n\t"
> > ++    "movq                    %1, %%mm6              \n\t"
> > ++    "movq                    %2, %%mm7              \n\t"
> > ++    : : "m"(mask24r), "m"(mask24g), "m"(mask24b)
> > ++    );
> > ++    __asm__ volatile (
> > +     ASMALIGN(4)
> > +     "1:                                             \n\t"
> > +     PREFETCH" 32(%1, %%"REG_a")                     \n\t"
> > +@@ -2147,8 +2150,8 @@
> > +         {
> > +             __asm__ volatile(
> > +             "mov                        %2, %%"REG_a"   \n\t"
> > +-            "movq  "MANGLE(ff_bgr2YCoeff)", %%mm6       \n\t"
> > +-            "movq       "MANGLE(ff_w1111)", %%mm5       \n\t"
> > ++            "movq                       %3, %%mm6       \n\t"
> > ++            "movq                       %4, %%mm5       \n\t"
> > +             "pxor                    %%mm7, %%mm7       \n\t"
> > +             "lea (%%"REG_a", %%"REG_a", 2), %%"REG_d"   \n\t"
> > +             ASMALIGN(4)
> > +@@ -2206,12 +2209,13 @@
> > +             "psraw                      $7, %%mm4       \n\t"
> > +
> > +             "packuswb                %%mm4, %%mm0       \n\t"
> > +-            "paddusb "MANGLE(ff_bgr2YOffset)", %%mm0    \n\t"
> > ++            "paddusb                    %5, %%mm0       \n\t"
> > +
> > +             MOVNTQ"                  %%mm0, (%1, %%"REG_a") \n\t"
> > +             "add                        $8,      %%"REG_a"  \n\t"
> > +             " js                        1b                  \n\t"
> > +-            : : "r" (src+width*3), "r" (ydst+width), "g" (-width)
> > ++            : : "r" (src+width*3), "r" (ydst+width), "g" (-width),
> > ++                "m"(ff_bgr2YCoeff), "m"(ff_w1111), "m"(ff_bgr2YOffset)
> > +             : "%"REG_a, "%"REG_d
> > +             );
> > +             ydst += lumStride;
> > +@@ -2220,8 +2224,8 @@
> > +         src -= srcStride*2;
> > +         __asm__ volatile(
> > +         "mov                        %4, %%"REG_a"   \n\t"
> > +-        "movq       "MANGLE(ff_w1111)", %%mm5       \n\t"
> > +-        "movq  "MANGLE(ff_bgr2UCoeff)", %%mm6       \n\t"
> > ++        "movq                       %5, %%mm5       \n\t"
> > ++        "movq                       %6, %%mm6       \n\t"
> > +         "pxor                    %%mm7, %%mm7       \n\t"
> > +         "lea (%%"REG_a", %%"REG_a", 2), %%"REG_d"   \n\t"
> > +         "add                 %%"REG_d", %%"REG_d"   \n\t"
> > +@@ -2270,8 +2274,8 @@
> > +         "psrlw                      $2, %%mm0       \n\t"
> > +         "psrlw                      $2, %%mm2       \n\t"
> > + #endif
> > +-        "movq  "MANGLE(ff_bgr2VCoeff)", %%mm1       \n\t"
> > +-        "movq  "MANGLE(ff_bgr2VCoeff)", %%mm3       \n\t"
> > ++        "movq                       %7, %%mm1       \n\t"
> > ++        "movq                       %7, %%mm3       \n\t"
> > +
> > +         "pmaddwd                 %%mm0, %%mm1       \n\t"
> > +         "pmaddwd                 %%mm2, %%mm3       \n\t"
> > +@@ -2328,12 +2332,12 @@
> > +         "paddw                   %%mm1, %%mm5       \n\t"
> > +         "paddw                   %%mm3, %%mm2       \n\t"
> > +         "paddw                   %%mm5, %%mm2       \n\t"
> > +-        "movq       "MANGLE(ff_w1111)", %%mm5       \n\t"
> > ++        "movq                       %5, %%mm5       \n\t"
> > +         "psrlw                      $2, %%mm4       \n\t"
> > +         "psrlw                      $2, %%mm2       \n\t"
> > + #endif
> > +-        "movq  "MANGLE(ff_bgr2VCoeff)", %%mm1       \n\t"
> > +-        "movq  "MANGLE(ff_bgr2VCoeff)", %%mm3       \n\t"
> > ++        "movq                       %7, %%mm1       \n\t"
> > ++        "movq                       %7, %%mm3       \n\t"
> > +
> > +         "pmaddwd                 %%mm4, %%mm1       \n\t"
> > +         "pmaddwd                 %%mm2, %%mm3       \n\t"
> > +@@ -2357,13 +2361,16 @@
> > +         "punpckldq               %%mm4, %%mm0           \n\t"
> > +         "punpckhdq               %%mm4, %%mm1           \n\t"
> > +         "packsswb                %%mm1, %%mm0           \n\t"
> > +-        "paddb "MANGLE(ff_bgr2UVOffset)", %%mm0         \n\t"
> > ++        "paddb                      %8, %%mm0           \n\t"
> > +         "movd                    %%mm0, (%2, %%"REG_a") \n\t"
> > +         "punpckhdq               %%mm0, %%mm0           \n\t"
> > +         "movd                    %%mm0, (%3, %%"REG_a") \n\t"
> > +         "add                        $4, %%"REG_a"       \n\t"
> > +         " js                        1b                  \n\t"
> > +-        : : "r" (src+chromWidth*6), "r" (src+srcStride+chromWidth*6),
> > "r" (udst+chromWidth), "r" (vdst+chromWidth), "g" (-chromWidth) ++       
> > : : "r" (src+chromWidth*6), "r" (src+srcStride+chromWidth*6), ++         
> >   "r" (udst+chromWidth), "r" (vdst+chromWidth), "g" (-chromWidth), ++    
> >        "m"(ff_w1111), "m"(ff_bgr2UCoeff), "m"(ff_bgr2VCoeff), ++         
> >   "m"(ff_bgr2UVOffset)
> > +         : "%"REG_a, "%"REG_d
> > +         );
> > +
> > +--- a/libswscale/rgb2rgb.c
> > ++++ b/libswscale/rgb2rgb.c
> > +@@ -123,6 +123,18 @@
> > + DECLARE_ASM_CONST(8, uint64_t, red_15mask)   = 0x00007c0000007c00ULL;
> > + DECLARE_ASM_CONST(8, uint64_t, green_15mask) = 0x000003e0000003e0ULL;
> > + DECLARE_ASM_CONST(8, uint64_t, blue_15mask)  = 0x0000001f0000001fULL;
> > ++
> > ++// Some constants from swscale.c that are used here
> > ++extern const uint64_t __attribute__((visibility("hidden")))
> > ff_bgr2YCoeff; ++extern const uint64_t
> > __attribute__((visibility("hidden"))) ff_bgr2UCoeff; ++extern const
> > uint64_t __attribute__((visibility("hidden"))) ff_bgr2VCoeff; ++extern
> > const uint64_t __attribute__((visibility("hidden"))) ff_bgr2YOffset;
> > ++extern const uint64_t __attribute__((visibility("hidden")))
> > ff_bgr2UVOffset; ++extern const uint64_t
> > __attribute__((visibility("hidden"))) ff_w1111; ++extern const uint64_t
> > __attribute__((visibility("hidden"))) ff_M24A; ++extern const uint64_t
> > __attribute__((visibility("hidden"))) ff_M24B; ++extern const uint64_t
> > __attribute__((visibility("hidden"))) ff_M24C; ++
> > + #endif /* ARCH_X86 */
> > +
> > + #define RGB2YUV_SHIFT 8
> > +--- a/libswscale/swscale_template.c
> > ++++ b/libswscale/swscale_template.c
> > +@@ -669,9 +669,9 @@
> > + #define WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) 
> > REAL_WRITEBGR32(dst, dstw, index, b, g, r, a, q0, q2, q3, t) +
> > + #define REAL_WRITERGB16(dst, dstw, index) \
> > +-    "pand "MANGLE(bF8)", %%mm2  \n\t" /* B */\
> > +-    "pand "MANGLE(bFC)", %%mm4  \n\t" /* G */\
> > +-    "pand "MANGLE(bF8)", %%mm5  \n\t" /* R */\
> > ++    "pand            %6, %%mm2  \n\t" /* B */\
> > ++    "pand            %7, %%mm4  \n\t" /* G */\
> > ++    "pand            %6, %%mm5  \n\t" /* R */\
> > +     "psrlq           $3, %%mm2  \n\t"\
> > + \
> > +     "movq         %%mm2, %%mm1  \n\t"\
> > +@@ -695,11 +695,18 @@
> > +     "cmp        "#dstw", "#index"   \n\t"\
> > +     " jb             1b             \n\t"
> > + #define WRITERGB16(dst, dstw, index)  REAL_WRITERGB16(dst, dstw, index)
> > ++#define WRITERGB16_END                 \
> > ++    :: "r" (&c->redDither),                   \
> > ++        "m" (dummy), "m" (dummy), "m" (dummy),\
> > ++        "r" (dest), "m" (dstW), "m" (bF8),    \
> > ++        "m" (bFC)                             \
> > ++    : "%"REG_a, "%"REG_d, "%"REG_S            \
> > ++    );
> > +
> > + #define REAL_WRITERGB15(dst, dstw, index) \
> > +-    "pand "MANGLE(bF8)", %%mm2  \n\t" /* B */\
> > +-    "pand "MANGLE(bF8)", %%mm4  \n\t" /* G */\
> > +-    "pand "MANGLE(bF8)", %%mm5  \n\t" /* R */\
> > ++    "pand            %6, %%mm2  \n\t" /* B */\
> > ++    "pand            %6, %%mm4  \n\t" /* G */\
> > ++    "pand            %6, %%mm5  \n\t" /* R */\
> > +     "psrlq           $3, %%mm2  \n\t"\
> > +     "psrlq           $1, %%mm5  \n\t"\
> > + \
> > +@@ -724,6 +731,12 @@
> > +     "cmp        "#dstw", "#index"   \n\t"\
> > +     " jb             1b             \n\t"
> > + #define WRITERGB15(dst, dstw, index)  REAL_WRITERGB15(dst, dstw, index)
> > ++#define WRITERGB15_END                 \
> > ++    :: "r" (&c->redDither),                   \
> > ++        "m" (dummy), "m" (dummy), "m" (dummy),\
> > ++        "r" (dest), "m" (dstW), "m" (bF8)     \
> > ++    : "%"REG_a, "%"REG_d, "%"REG_S            \
> > ++    );
> > +
> > + #define WRITEBGR24OLD(dst, dstw, index) \
> > +     /* mm2=B, %%mm4=G, %%mm5=R, %%mm7=0 */\
> > +@@ -1063,7 +1076,7 @@
> > + #endif
> > +
> > +                 WRITERGB15(%4, %5, %%REGa)
> > +-                YSCALEYUV2PACKEDX_END
> > ++                WRITERGB15_END
> > +                 return;
> > +             case PIX_FMT_RGB565:
> > +                 YSCALEYUV2PACKEDX_ACCURATE
> > +@@ -1077,7 +1090,7 @@
> > + #endif
> > +
> > +                 WRITERGB16(%4, %5, %%REGa)
> > +-                YSCALEYUV2PACKEDX_END
> > ++                WRITERGB16_END
> > +                 return;
> > +             case PIX_FMT_YUYV422:
> > +                 YSCALEYUV2PACKEDX_ACCURATE
> > +@@ -1127,7 +1140,7 @@
> > + #endif
> > +
> > +                 WRITERGB15(%4, %5, %%REGa)
> > +-                YSCALEYUV2PACKEDX_END
> > ++                WRITERGB15_END
> > +                 return;
> > +             case PIX_FMT_RGB565:
> > +                 YSCALEYUV2PACKEDX
> > +@@ -1141,7 +1154,7 @@
> > + #endif
> > +
> > +                 WRITERGB16(%4, %5, %%REGa)
> > +-                YSCALEYUV2PACKEDX_END
> > ++                WRITERGB16_END
> > +                 return;
> > +             case PIX_FMT_YUYV422:
> > +                 YSCALEYUV2PACKEDX
> > +@@ -1238,7 +1251,7 @@
> > +                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
> > +
> > +                 :: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1),
> > "m" (dest), +-                "a" (&c->redDither)
> > ++                "a" (&c->redDither), "m" (bF8)
> > +                 );
> > +                 return;
> > +             case PIX_FMT_RGB565:
> > +@@ -1259,7 +1272,7 @@
> > +                 "pop %%"REG_BP"                         \n\t"
> > +                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
> > +                 :: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1),
> > "m" (dest), +-                "a" (&c->redDither)
> > ++                "a" (&c->redDither), "m" (bF8), "m" (bFC)
> > +                 );
> > +                 return;
> > +             case PIX_FMT_YUYV422:
> > +@@ -1354,7 +1367,7 @@
> > +                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
> > +
> > +                 :: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1),
> > "m" (dest), +-                "a" (&c->redDither)
> > ++                "a" (&c->redDither), "m" (bF8)
> > +                 );
> > +                 return;
> > +             case PIX_FMT_RGB565:
> > +@@ -1376,7 +1389,7 @@
> > +                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
> > +
> > +                 :: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1),
> > "m" (dest), +-                "a" (&c->redDither)
> > ++                "a" (&c->redDither), "m" (bF8), "m" (bFC)
> > +                 );
> > +                 return;
> > +             case PIX_FMT_YUYV422:
> > +@@ -1447,7 +1460,7 @@
> > +                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
> > +
> > +                 :: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1),
> > "m" (dest), +-                "a" (&c->redDither)
> > ++                "a" (&c->redDither), "m" (bF8)
> > +                 );
> > +                 return;
> > +             case PIX_FMT_RGB565:
> > +@@ -1469,7 +1482,7 @@
> > +                 "mov "ESP_OFFSET"(%5), %%"REG_b"        \n\t"
> > +
> > +                 :: "c" (buf0), "d" (buf1), "S" (uvbuf0), "D" (uvbuf1),
> > "m" (dest), +-                "a" (&c->redDither)
> > ++                "a" (&c->redDither), "m" (bF8), "m" (bFC)
> > +                 );
> > +                 return;
> > +             case PIX_FMT_YUYV422:
> > +@@ -1504,7 +1517,7 @@
> > + {
> > + #if HAVE_MMX
> > +     __asm__ volatile(
> > +-    "movq "MANGLE(bm01010101)", %%mm2           \n\t"
> > ++    "movq                   %3, %%mm2           \n\t"
> > +     "mov                    %0, %%"REG_a"       \n\t"
> > +     "1:                                         \n\t"
> > +     "movq    (%1, %%"REG_a",2), %%mm0           \n\t"
> > +@@ -1515,7 +1528,7 @@
> > +     "movq                %%mm0, (%2, %%"REG_a") \n\t"
> > +     "add                    $8, %%"REG_a"       \n\t"
> > +     " js                    1b                  \n\t"
> > +-    : : "g" (-width), "r" (src+width*2), "r" (dst+width)
> > ++    : : "g" (-width), "r" (src+width*2), "r" (dst+width),
> > "m"(bm01010101) +     : "%"REG_a
> > +     );
> > + #else
> > +@@ -1529,7 +1542,7 @@
> > + {
> > + #if HAVE_MMX
> > +     __asm__ volatile(
> > +-    "movq "MANGLE(bm01010101)", %%mm4           \n\t"
> > ++    "movq                   %4, %%mm4           \n\t"
> > +     "mov                    %0, %%"REG_a"       \n\t"
> > +     "1:                                         \n\t"
> > +     "movq    (%1, %%"REG_a",4), %%mm0           \n\t"
> > +@@ -1546,7 +1559,8 @@
> > +     "movd                %%mm1, (%2, %%"REG_a") \n\t"
> > +     "add                    $4, %%"REG_a"       \n\t"
> > +     " js                    1b                  \n\t"
> > +-    : : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r"
> > (dstV+width) ++    : : "g" (-width), "r" (src1+width*4), "r"
> > (dstU+width), "r" (dstV+width), ++        "m"(bm01010101)
> > +     : "%"REG_a
> > +     );
> > + #else
> > +@@ -1590,7 +1604,7 @@
> > + {
> > + #if HAVE_MMX
> > +     __asm__ volatile(
> > +-    "movq "MANGLE(bm01010101)", %%mm4           \n\t"
> > ++    "movq                   %4, %%mm4           \n\t"
> > +     "mov                    %0, %%"REG_a"       \n\t"
> > +     "1:                                         \n\t"
> > +     "movq    (%1, %%"REG_a",4), %%mm0           \n\t"
> > +@@ -1607,7 +1621,8 @@
> > +     "movd                %%mm1, (%2, %%"REG_a") \n\t"
> > +     "add                    $4, %%"REG_a"       \n\t"
> > +     " js                    1b                  \n\t"
> > +-    : : "g" (-width), "r" (src1+width*4), "r" (dstU+width), "r"
> > (dstV+width) ++    : : "g" (-width), "r" (src1+width*4), "r"
> > (dstU+width), "r" (dstV+width), ++        "m"(bm01010101)
> > +     : "%"REG_a
> > +     );
> > + #else
> > +@@ -1688,20 +1703,20 @@
> > +
> > +     if(srcFormat == PIX_FMT_BGR24){
> > +         __asm__ volatile(
> > +-            "movq  "MANGLE(ff_bgr24toY1Coeff)", %%mm5       \n\t"
> > +-            "movq  "MANGLE(ff_bgr24toY2Coeff)", %%mm6       \n\t"
> > +-            :
> > ++            "movq  %0, %%mm5       \n\t"
> > ++            "movq  %1, %%mm6       \n\t"
> > ++            : : "m"(ff_bgr24toY1Coeff), "m"(ff_bgr24toY2Coeff)
> > +         );
> > +     }else{
> > +         __asm__ volatile(
> > +-            "movq  "MANGLE(ff_rgb24toY1Coeff)", %%mm5       \n\t"
> > +-            "movq  "MANGLE(ff_rgb24toY2Coeff)", %%mm6       \n\t"
> > +-            :
> > ++            "movq  %0, %%mm5       \n\t"
> > ++            "movq  %1, %%mm6       \n\t"
> > ++            : : "m"(ff_rgb24toY1Coeff), "m"(ff_rgb24toY2Coeff)
> > +         );
> > +     }
> > +
> > +     __asm__ volatile(
> > +-        "movq  "MANGLE(ff_bgr24toYOffset)", %%mm4   \n\t"
> > ++        "movq                       %3, %%mm4       \n\t"
> > +         "mov                        %2, %%"REG_a"   \n\t"
> > +         "pxor                    %%mm7, %%mm7       \n\t"
> > +         "1:                                         \n\t"
> > +@@ -1731,7 +1746,7 @@
> > +         "add                        $4, %%"REG_a"   \n\t"
> > +         " js                        1b              \n\t"
> > +     : "+r" (src)
> > +-    : "r" (dst+width), "g" (-width)
> > ++    : "r" (dst+width), "g" (-width), "m"(ff_bgr24toYOffset)
> > +     : "%"REG_a
> > +     );
> > + }
> > +@@ -1771,7 +1786,7 @@
> > +         "paddd                   %%mm3, %%mm1       \n\t"
> > +         "paddd                   %%mm5, %%mm4       \n\t"
> > +
> > +-        "movq "MANGLE(ff_bgr24toUVOffset)", %%mm3       \n\t"
> > ++        "movq                       %4, %%mm3       \n\t"
> > +         "paddd                   %%mm3, %%mm0       \n\t"
> > +         "paddd                   %%mm3, %%mm2       \n\t"
> > +         "paddd                   %%mm3, %%mm1       \n\t"
> > +@@ -1789,7 +1804,8 @@
> > +         "add                        $4, %%"REG_a"   \n\t"
> > +         " js                        1b              \n\t"
> > +     : "+r" (src)
> > +-    : "r" (dstU+width), "r" (dstV+width), "g" (-width),
> > "m"(ff_bgr24toUV[srcFormat == PIX_FMT_RGB24][0]) ++    : "r"
> > (dstU+width), "r" (dstV+width), "g" (-width),
> > ++      "m"(ff_bgr24toUV[srcFormat == PIX_FMT_RGB24][0]),
> > "m"(ff_bgr24toUVOffset) +     : "%"REG_a
> > +     );
> > + }
> > +--- a/libswscale/yuv2rgb_template.c
> > ++++ b/libswscale/yuv2rgb_template.c
> > +@@ -74,7 +74,7 @@
> > + \
> > +     /* convert the luma part */\
> > +     "movq %%mm6, %%mm7;" /* Copy 8 Y Y7 Y6 Y5 Y4 Y3 Y2 Y1 Y0 */\
> > +-    "pand "MANGLE(mmx_00ffw)", %%mm6;" /* get Y even 00 Y6 00 Y4 00 Y2
> > 00 Y0 */\ ++    "pand    %9, %%mm6;" /* get Y even 00 Y6 00 Y4 00 Y2 00
> > Y0 */\ + \
> > +     "psrlw $8, %%mm7;" /* get Y odd 00 Y7 00 Y5 00 Y3 00 Y1 */\
> > + \
> > +@@ -158,21 +158,63 @@
> > +         PREFETCH" 64(%2) \n\t"                                         
> >    \ +         */                                                        
> >         \ +
> > +-#define YUV2RGB_ENDLOOP(depth) \
> > ++#define YUV2RGB16_ENDLOOP(depth) \
> > +         "add $"AV_STRINGIFY(depth*8)", %1    \n\t" \
> > +         "add                       $4, %0    \n\t" \
> > +         " js                       1b        \n\t" \
> > + \
> > +         : "+r" (index), "+r" (image) \
> > +-        : "r" (pu - index), "r" (pv - index), "r"(&c->redDither), "r"
> > (py - 2*index) \ ++        : "r" (pu - index), "r" (pv - index),
> > "r"(&c->redDither), "r" (py - 2*index), \ ++          "m"(mmx_redmask),
> > "m"(mmx_grnmask), "m"(dummy), "m"(mmx_00ffw) \ +         ); \
> > +     } \
> > +     __asm__ volatile (EMMS); \
> > +     return srcSliceH; \
> > +
> > ++#define YUV2RGB15_ENDLOOP(depth) \
> > ++        "add $"AV_STRINGIFY(depth*8)", %1    \n\t" \
> > ++        "add                       $4, %0    \n\t" \
> > ++        " js                       1b        \n\t" \
> > ++\
> > ++        : "+r" (index), "+r" (image) \
> > ++        : "r" (pu - index), "r" (pv - index), "r"(&c->redDither), "r"
> > (py - 2*index), \ ++          "m"(mmx_redmask), "m"(dummy), "m"(dummy),
> > "m"(mmx_00ffw) \ ++        ); \
> > ++    } \
> > ++    __asm__ volatile (EMMS); \
> > ++    return srcSliceH; \
> > ++
> > ++#define YUV2RGB24_ENDLOOP(depth) \
> > ++        "add $"AV_STRINGIFY(depth*8)", %1    \n\t" \
> > ++        "add                       $4, %0    \n\t" \
> > ++        " js                       1b        \n\t" \
> > ++\
> > ++        : "+r" (index), "+r" (image) \
> > ++        : "r" (pu - index), "r" (pv - index), "r"(&c->redDither), "r"
> > (py - 2*index), \ ++          "m"(ff_M24A), "m"(ff_M24C), "m"(ff_M24B),
> > "m"(mmx_00ffw) \ ++        ); \
> > ++    } \
> > ++    __asm__ volatile (EMMS); \
> > ++    return srcSliceH; \
> > ++
> > ++#define YUV2RGB32_ENDLOOP(depth) \
> > ++        "add $"AV_STRINGIFY(depth*8)", %1    \n\t" \
> > ++        "add                       $4, %0    \n\t" \
> > ++        " js                       1b        \n\t" \
> > ++\
> > ++        : "+r" (index), "+r" (image) \
> > ++        : "r" (pu - index), "r" (pv - index), "r"(&c->redDither), "r"
> > (py - 2*index), \ ++          "m"(dummy), "m"(dummy), "m"(dummy),
> > "m"(mmx_00ffw) \ ++        ); \
> > ++    } \
> > ++    __asm__ volatile (EMMS); \
> > ++    return srcSliceH; \
> > ++
> > ++
> > + static inline int RENAME(yuv420_rgb16)(SwsContext *c, uint8_t* src[],
> > int srcStride[], int srcSliceY, +                                       
> > int srcSliceH, uint8_t* dst[], int dstStride[]){ +     int y, h_size;
> > ++    long dummy=0;
> > +
> > +     YUV422_UNSHIFT
> > +     YUV2RGB_LOOP(2)
> > +@@ -190,9 +232,9 @@
> > +         "paddusb "RED_DITHER"(%4), %%mm1;"
> > + #endif
> > +         /* mask unneeded bits off */
> > +-        "pand "MANGLE(mmx_redmask)", %%mm0;" /* b7b6b5b4 b3_0_0_0
> > b7b6b5b4 b3_0_0_0 */ +-        "pand "MANGLE(mmx_grnmask)", %%mm2;" /*
> > g7g6g5g4 g3g2_0_0 g7g6g5g4 g3g2_0_0 */ +-        "pand
> > "MANGLE(mmx_redmask)", %%mm1;" /* r7r6r5r4 r3_0_0_0 r7r6r5r4 r3_0_0_0 */
> > ++        "pand    %6, %%mm0;" /* b7b6b5b4 b3_0_0_0 b7b6b5b4 b3_0_0_0 */
> > ++        "pand    %7, %%mm2;" /* g7g6g5g4 g3g2_0_0 g7g6g5g4 g3g2_0_0 */
> > ++        "pand    %6, %%mm1;" /* r7r6r5r4 r3_0_0_0 r7r6r5r4 r3_0_0_0 */
> > +
> > +         "psrlw   $3, %%mm0;" /* 0_0_0_b7 b6b5b4b3 0_0_0_b7 b6b5b4b3 */
> > +         "pxor %%mm4, %%mm4;" /* zero mm4 */
> > +@@ -222,12 +264,13 @@
> > +
> > +         MOVNTQ "   %%mm5, 8 (%1);" /* store pixel 4-7 */
> > +
> > +-    YUV2RGB_ENDLOOP(2)
> > ++    YUV2RGB16_ENDLOOP(2)
> > + }
> > +
> > + static inline int RENAME(yuv420_rgb15)(SwsContext *c, uint8_t* src[],
> > int srcStride[], int srcSliceY, +                                       
> > int srcSliceH, uint8_t* dst[], int dstStride[]){ +     int y, h_size;
> > ++    long dummy=0;
> > +
> > +     YUV422_UNSHIFT
> > +     YUV2RGB_LOOP(2)
> > +@@ -246,9 +289,9 @@
> > + #endif
> > +
> > +         /* mask unneeded bits off */
> > +-        "pand "MANGLE(mmx_redmask)", %%mm0;" /* b7b6b5b4 b3_0_0_0
> > b7b6b5b4 b3_0_0_0 */ +-        "pand "MANGLE(mmx_redmask)", %%mm2;" /*
> > g7g6g5g4 g3_0_0_0 g7g6g5g4 g3_0_0_0 */ +-        "pand
> > "MANGLE(mmx_redmask)", %%mm1;" /* r7r6r5r4 r3_0_0_0 r7r6r5r4 r3_0_0_0 */
> > ++        "pand    %6, %%mm0;" /* b7b6b5b4 b3_0_0_0 b7b6b5b4 b3_0_0_0 */
> > ++        "pand    %6, %%mm2;" /* g7g6g5g4 g3_0_0_0 g7g6g5g4 g3_0_0_0 */
> > ++        "pand    %6, %%mm1;" /* r7r6r5r4 r3_0_0_0 r7r6r5r4 r3_0_0_0 */
> > +
> > +         "psrlw   $3, %%mm0;" /* 0_0_0_b7 b6b5b4b3 0_0_0_b7 b6b5b4b3 */
> > +         "psrlw   $1, %%mm1;" /* 0_r7r6r5  r4r3_0_0 0_r7r6r5 r4r3_0_0 */
> > +@@ -279,12 +322,13 @@
> > +
> > +         MOVNTQ " %%mm5, 8 (%1);" /* store pixel 4-7 */
> > +
> > +-    YUV2RGB_ENDLOOP(2)
> > ++    YUV2RGB15_ENDLOOP(2)
> > + }
> > +
> > + static inline int RENAME(yuv420_rgb24)(SwsContext *c, uint8_t* src[],
> > int srcStride[], int srcSliceY, +                                       
> > int srcSliceH, uint8_t* dst[], int dstStride[]){ +     int y, h_size;
> > ++    long dummy=0;
> > +
> > +     YUV422_UNSHIFT
> > +     YUV2RGB_LOOP(3)
> > +@@ -293,8 +337,8 @@
> > +         YUV2RGB
> > +         /* mm0=B, %%mm2=G, %%mm1=R */
> > + #if HAVE_MMX2
> > +-        "movq "MANGLE(ff_M24A)", %%mm4     \n\t"
> > +-        "movq "MANGLE(ff_M24C)", %%mm7     \n\t"
> > ++        "movq      %6, %%mm4            \n\t"
> > ++        "movq      %7, %%mm7            \n\t"
> > +         "pshufw $0x50, %%mm0, %%mm5     \n\t" /* B3 B2 B3 B2  B1 B0 B1
> > B0 */ +         "pshufw $0x50, %%mm2, %%mm3     \n\t" /* G3 G2 G3 G2  G1
> > G0 G1 G0 */ +         "pshufw $0x00, %%mm1, %%mm6     \n\t" /* R1 R0 R1
> > R0  R1 R0 R1 R0 */ +@@ -313,7 +357,7 @@
> > +         "pshufw $0x55, %%mm2, %%mm3     \n\t" /* G4 G3 G4 G3  G4 G3 G4
> > G3 */ +         "pshufw $0xA5, %%mm1, %%mm6     \n\t" /* R5 R4 R5 R4  R3
> > R2 R3 R2 */ +
> > +-        "pand "MANGLE(ff_M24B)", %%mm5     \n\t" /* B5       B4       
> > B3    */ ++        "pand             %8, %%mm5     \n\t" /* B5       B4  
> >      B3    */ +         "pand          %%mm7, %%mm3     \n\t" /*       G4
> >        G3       */ +         "pand          %%mm4, %%mm6     \n\t" /*   
> > R4        R3       R2 */ +
> > +@@ -328,7 +372,7 @@
> > +
> > +         "pand          %%mm7, %%mm5     \n\t" /*       B7        B6    
> >   */ +         "pand          %%mm4, %%mm3     \n\t" /*    G7        G6  
> >     G5 */ +-        "pand "MANGLE(ff_M24B)", %%mm6     \n\t" /* R7      
> > R6        R5    */ ++        "pand             %8, %%mm6     \n\t" /* R7 
> >      R6        R5    */ +         "movd 4 (%3, %0), %%mm1;" /* Load 4 Cr
> > 00 00 00 00 v3 v2 v1 v0 */ + \
> > +         "por          %%mm5, %%mm3      \n\t"
> > +@@ -393,7 +437,7 @@
> > +         "pxor      %%mm4, %%mm4     \n\t"
> > + #endif
> > +
> > +-    YUV2RGB_ENDLOOP(3)
> > ++    YUV2RGB24_ENDLOOP(3)
> > + }
> > +
> > + #define RGB_PLANAR2PACKED32                                            
> > \ +@@ -440,6 +484,7 @@
> > + static inline int RENAME(yuv420_rgb32)(SwsContext *c, uint8_t* src[],
> > int srcStride[], int srcSliceY, +                                       
> > int srcSliceH, uint8_t* dst[], int dstStride[]){ +     int y, h_size;
> > ++    long dummy=0;
> > +
> > +     YUV422_UNSHIFT
> > +     YUV2RGB_LOOP(4)
> > +@@ -449,5 +494,5 @@
> > +         "pcmpeqd   %%mm3, %%mm3;"   /* fill mm3 */
> > +         RGB_PLANAR2PACKED32
> > +
> > +-    YUV2RGB_ENDLOOP(4)
> > ++    YUV2RGB32_ENDLOOP(4)
> > + }
> > +--- a/libswscale/yuv2rgb.c
> > ++++ b/libswscale/yuv2rgb.c
> > +@@ -47,6 +47,10 @@
> > + DECLARE_ASM_CONST(8, uint64_t, mmx_redmask) = 0xf8f8f8f8f8f8f8f8ULL;
> > + DECLARE_ASM_CONST(8, uint64_t, mmx_grnmask) = 0xfcfcfcfcfcfcfcfcULL;
> > +
> > ++extern const uint64_t __attribute__((visibility("hidden"))) ff_M24A;
> > ++extern const uint64_t __attribute__((visibility("hidden"))) ff_M24B;
> > ++extern const uint64_t __attribute__((visibility("hidden"))) ff_M24C;
> > ++
> > + //MMX versions
> > + #undef RENAME
> > + #undef HAVE_MMX2
> > diff --git a/debian/patches/i386-fpic-workaround.patch
> > b/debian/patches/i386-fpic-workaround.patch new file mode 100644
> > index 0000000..30ea952
> > --- /dev/null
> > +++ b/debian/patches/i386-fpic-workaround.patch
> > @@ -0,0 +1,21 @@
> > +Workaround to get ffmpeg packages built with i386 using -fPIC.
> > +This disables -fPIC for the problematic files.
> > +========================================================================
> >== +--- a/Makefile
> > ++++ b/Makefile
> > +@@ -83,6 +83,15 @@
> > +
> > + VHOOKCFLAGS += $(filter-out -mdynamic-no-pic,$(CFLAGS))
> > +
> > ++# Disable use of -fPIC on problematic files for i386
> > ++ifeq (,$(findstring i386 i486 i586 i686,$(shell uname -m)))
> > ++I386CFLAGS += $(filter-out -fPIC -DPIC,$(CFLAGS))
> > ++libavcodec/x86/dsputil_mmx.o: libavcodec/x86/dsputil_mmx.c
> > ++	$(CC) $(I386CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
> > ++libavcodec/x86/flacdsp_mmx.o: libavcodec/x86/flacdsp_mmx.c
> > ++	$(CC) $(I386CFLAGS) $(LIBOBJFLAGS) -c -o $@ $<
> > ++endif
> > ++
> > + BASEHOOKS = fish null watermark
> > + ALLHOOKS = $(BASEHOOKS) drawtext imlib2 ppm
> > + ALLHOOKS_SRCS = $(addprefix vhook/, $(addsuffix .c, $(ALLHOOKS)))
> > diff --git a/debian/patches/series b/debian/patches/series
> > index 2e7230a..afe47da 100644
> > --- a/debian/patches/series
> > +++ b/debian/patches/series
> > @@ -1 +1,4 @@
> >  900_doxyfile
> > +# fpic-ftbfs-fix.patch
> > +# fpic-libpostproc-fix.patch
> > +# fpic-libswscale-fix.patch

-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 197 bytes
Desc: This is a digitally signed message part.
URL: <http://lists.alioth.debian.org/pipermail/pkg-multimedia-maintainers/attachments/20090513/e9c482de/attachment-0001.pgp>


More information about the pkg-multimedia-maintainers mailing list