[FFmpeg-devel] [PATCH] Fix function parameters for rgb48 to YV12 functions.

Ramiro Polla ramiro.polla
Wed Feb 24 04:49:13 CET 2010


On Tue, Feb 2, 2010 at 11:48 PM, Michael Niedermayer <michaelni at gmx.at> wrote:
> if theres no speed difference i dont mind int being used

Patch attached. It changes all uses of long meant for width, height
and stride to int. Besides renaming, it adds these chunks to
hcscale_fast():
@@ -2469,6 +2469,7 @@ static inline void
RENAME(hcscale_fast)(SwsContext *c, int16_t *dst,
         }
     } else {
 #endif /* COMPILE_TEMPLATE_MMX2 */
+        x86_reg dstWidth_reg = dstWidth;
         x86_reg xInc_shr16 = (x86_reg) (xInc >> 16);
         uint16_t xInc_mask = xInc & 0xffff;
         __asm__ volatile(
@@ -2497,9 +2498,9 @@ static inline void
RENAME(hcscale_fast)(SwsContext *c, int16_t *dst,
 /* GCC 3.3 makes MPlayer crash on IA-32 machines when using "g" operand here,
 which is needed to support GCC 4.0. */
 #if ARCH_X86_64 && AV_GCC_VERSION_AT_LEAST(3,4)
-            :: "m" (src1), "m" (dst), "g" (dstWidth), "m"
(xInc_shr16), "m" (xInc_mask),
+            :: "m" (src1), "m" (dst), "g" (dstWidth_reg), "m"
(xInc_shr16), "m" (xInc_mask),
 #else
-            :: "m" (src1), "m" (dst), "m" (dstWidth), "m"
(xInc_shr16), "m" (xInc_mask),
+            :: "m" (src1), "m" (dst), "m" (dstWidth_reg), "m"
(xInc_shr16), "m" (xInc_mask),
 #endif
             "r" (src2)
             : "%"REG_a, "%"REG_d, "%ecx", "%"REG_D, "%esi"

Tested on linux x86, x86_64, mingw32 x86, mingw-w64 x86_64, and ppc.
All both with and without gpl.

Ramiro Polla
-------------- next part --------------
A non-text attachment was scrubbed...
Name: use_int.diff
Type: text/x-diff
Size: 71698 bytes
Desc: not available
URL: <http://lists.mplayerhq.hu/pipermail/ffmpeg-devel/attachments/20100224/d3168f6e/attachment.diff>



More information about the ffmpeg-devel mailing list