From 72dedf790444dbbd093e10066e4a7e699689502c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sun, 13 Jul 2008 10:56:45 +0000 Subject: gst/deinterlace2/tvtime/greedyh.asm: Always use the C implementation if width is not a multiple of 4. The assembly op... Original commit message from CVS: * gst/deinterlace2/tvtime/greedyh.asm: Always use the C implementation if width is not a multiple of 4. The assembly optimized version only handle this and calling the C implementation for the remaining part doesn't work because it needs previous calculations. --- ChangeLog | 8 ++++++++ gst/deinterlace2/tvtime/greedyh.asm | 10 +++++----- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 25f0a935..00b69802 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2008-07-13 Sebastian Dröge + + * gst/deinterlace2/tvtime/greedyh.asm: + Always use the C implementation if width is not a multiple of 4. The + assembly optimized version only handle this and calling the C + implementation for the remaining part doesn't work because it needs + previous calculations. + 2008-07-13 Sebastian Dröge * gst/deinterlace2/tvtime/greedyh.asm: diff --git a/gst/deinterlace2/tvtime/greedyh.asm b/gst/deinterlace2/tvtime/greedyh.asm index 9272bc30..aa99e55f 100644 --- a/gst/deinterlace2/tvtime/greedyh.asm +++ b/gst/deinterlace2/tvtime/greedyh.asm @@ -48,6 +48,11 @@ FUNCT_NAME (GstDeinterlaceMethodGreedyH *self, uint8_t * L1, uint8_t * L2, uint8 int64_t QW256B; int64_t LastAvg = 0; //interp value from left qword + + // FIXME: Use C implementation if the width is not a multiple of 4 + // Do something more optimal later + if (size % 8 != 0) + greedyDScaler_C (self, L1, L2, L3, L2P, Dest, size); // Set up our two parms that are actually evaluated for each pixel i = self->max_comb; @@ -241,9 +246,4 @@ FUNCT_NAME (GstDeinterlaceMethodGreedyH *self, uint8_t * L1, uint8_t * L2, uint8 /* FIXME: breaks unless compiling with -mmmx "mm0", "mm1", "mm2", "mm3", "mm4", "mm5", "mm6", "mm7", */ "memory", "cc"); - - if (size % 8 != 0) { - int offset = GST_ROUND_DOWN_8 (size); - greedyDScaler_C (self, L1 + offset, L2 + offset, L3 + offset, L2P + offset, Dest + offset, size % 8); - } } -- cgit v1.2.1