From 8a35b0101a703718e52a3b12c8a8777572b9f150 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Sebastian=20Dr=C3=B6ge?= Date: Sat, 2 Aug 2008 18:48:17 +0000 Subject: [PATCH] gst/deinterlace2/: Use oil_memcpy() instead of memcpy() as it's faster for the sizes that are usually used here. Original commit message from CVS: * gst/deinterlace2/gstdeinterlace2.c: (gst_deinterlace_simple_method_interpolate_scanline), (gst_deinterlace_simple_method_copy_scanline), (gst_deinterlace_simple_method_deinterlace_frame): * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy): * gst/deinterlace2/tvtime/greedyh.c: (deinterlace_frame_di_greedyh): * gst/deinterlace2/tvtime/scalerbob.c: (deinterlace_scanline_scaler_bob): * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy): * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave), (copy_scanline): * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave), (copy_scanline): * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave), (copy_scanline): Use oil_memcpy() instead of memcpy() as it's faster for the sizes that are usually used here. --- ChangeLog | 21 +++++++++++++++++++++ gst/deinterlace2/gstdeinterlace2.c | 10 +++++----- gst/deinterlace2/tvtime/greedy.c | 10 +++++----- gst/deinterlace2/tvtime/greedyh.c | 10 +++++----- gst/deinterlace2/tvtime/scalerbob.c | 2 +- gst/deinterlace2/tvtime/tomsmocomp.c | 2 +- gst/deinterlace2/tvtime/weave.c | 4 ++-- gst/deinterlace2/tvtime/weavebff.c | 6 +++--- gst/deinterlace2/tvtime/weavetff.c | 6 +++--- 9 files changed, 46 insertions(+), 25 deletions(-) diff --git a/ChangeLog b/ChangeLog index ad74212421..61268f393c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,24 @@ +2008-08-02 Sebastian Dröge + + * gst/deinterlace2/gstdeinterlace2.c: + (gst_deinterlace_simple_method_interpolate_scanline), + (gst_deinterlace_simple_method_copy_scanline), + (gst_deinterlace_simple_method_deinterlace_frame): + * gst/deinterlace2/tvtime/greedy.c: (deinterlace_frame_di_greedy): + * gst/deinterlace2/tvtime/greedyh.c: + (deinterlace_frame_di_greedyh): + * gst/deinterlace2/tvtime/scalerbob.c: + (deinterlace_scanline_scaler_bob): + * gst/deinterlace2/tvtime/tomsmocomp.c: (Fieldcopy): + * gst/deinterlace2/tvtime/weave.c: (deinterlace_scanline_weave), + (copy_scanline): + * gst/deinterlace2/tvtime/weavebff.c: (deinterlace_scanline_weave), + (copy_scanline): + * gst/deinterlace2/tvtime/weavetff.c: (deinterlace_scanline_weave), + (copy_scanline): + Use oil_memcpy() instead of memcpy() as it's faster for the sizes that + are usually used here. + 2008-08-02 Sebastian Dröge * gst/deinterlace2/Makefile.am: diff --git a/gst/deinterlace2/gstdeinterlace2.c b/gst/deinterlace2/gstdeinterlace2.c index 28abdaba82..fd9ed99e7c 100644 --- a/gst/deinterlace2/gstdeinterlace2.c +++ b/gst/deinterlace2/gstdeinterlace2.c @@ -98,7 +98,7 @@ gst_deinterlace_simple_method_interpolate_scanline (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->m1, parent->line_length); + oil_memcpy (out, scanlines->m1, parent->line_length); } static void @@ -106,7 +106,7 @@ gst_deinterlace_simple_method_copy_scanline (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->m0, parent->line_length); + oil_memcpy (out, scanlines->m0, parent->line_length); } static void @@ -137,11 +137,11 @@ gst_deinterlace_simple_method_deinterlace_frame (GstDeinterlaceMethod * self, if (cur_field_flags == PICTURE_INTERLACED_BOTTOM) { /* double the first scanline of the bottom field */ - memcpy (out, field0, parent->line_length); + oil_memcpy (out, field0, parent->line_length); out += parent->output_stride; } - memcpy (out, field0, parent->line_length); + oil_memcpy (out, field0, parent->line_length); out += parent->output_stride; for (line = 2; line <= parent->field_height; line++) { @@ -226,7 +226,7 @@ gst_deinterlace_simple_method_deinterlace_frame (GstDeinterlaceMethod * self, if (cur_field_flags == PICTURE_INTERLACED_TOP) { /* double the last scanline of the top field */ - memcpy (out, field0, parent->line_length); + oil_memcpy (out, field0, parent->line_length); } } diff --git a/gst/deinterlace2/tvtime/greedy.c b/gst/deinterlace2/tvtime/greedy.c index e432465710..e3b247371a 100644 --- a/gst/deinterlace2/tvtime/greedy.c +++ b/gst/deinterlace2/tvtime/greedy.c @@ -365,7 +365,7 @@ deinterlace_frame_di_greedy (GstDeinterlaceMethod * d_method, GST_BUFFER_DATA (object->field_history[object->history_count - 3].buf); // copy first even line - memcpy (Dest, L1, object->line_length); + oil_memcpy (Dest, L1, object->line_length); Dest += object->output_stride; } else { InfoIsOdd = 0; @@ -378,18 +378,18 @@ deinterlace_frame_di_greedy (GstDeinterlaceMethod * d_method, Pitch; // copy first even line - memcpy (Dest, GST_BUFFER_DATA (object->field_history[0].buf), + oil_memcpy (Dest, GST_BUFFER_DATA (object->field_history[0].buf), object->line_length); Dest += object->output_stride; // then first odd line - memcpy (Dest, L1, object->line_length); + oil_memcpy (Dest, L1, object->line_length); Dest += object->output_stride; } for (Line = 0; Line < (object->field_height - 1); ++Line) { klass->scanline (self, L2, L1, L3, L2P, Dest, object->line_length); Dest += object->output_stride; - memcpy (Dest, L3, object->line_length); + oil_memcpy (Dest, L3, object->line_length); Dest += object->output_stride; L1 += Pitch; @@ -399,7 +399,7 @@ deinterlace_frame_di_greedy (GstDeinterlaceMethod * d_method, } if (InfoIsOdd) { - memcpy (Dest, L2, object->line_length); + oil_memcpy (Dest, L2, object->line_length); } } diff --git a/gst/deinterlace2/tvtime/greedyh.c b/gst/deinterlace2/tvtime/greedyh.c index 73b572fa08..619a94554a 100644 --- a/gst/deinterlace2/tvtime/greedyh.c +++ b/gst/deinterlace2/tvtime/greedyh.c @@ -266,7 +266,7 @@ deinterlace_frame_di_greedyh (GstDeinterlaceMethod * d_method, GST_BUFFER_DATA (object->field_history[object->history_count - 3].buf); // copy first even line - memcpy (Dest, L1, object->line_length); + oil_memcpy (Dest, L1, object->line_length); Dest += object->output_stride; } else { InfoIsOdd = 0; @@ -279,18 +279,18 @@ deinterlace_frame_di_greedyh (GstDeinterlaceMethod * d_method, Pitch; // copy first even line - memcpy (Dest, GST_BUFFER_DATA (object->field_history[0].buf), + oil_memcpy (Dest, GST_BUFFER_DATA (object->field_history[0].buf), object->line_length); Dest += object->output_stride; // then first odd line - memcpy (Dest, L1, object->line_length); + oil_memcpy (Dest, L1, object->line_length); Dest += object->output_stride; } for (Line = 0; Line < (object->field_height - 1); ++Line) { klass->scanline (self, L1, L2, L3, L2P, Dest, object->line_length); Dest += object->output_stride; - memcpy (Dest, L3, object->line_length); + oil_memcpy (Dest, L3, object->line_length); Dest += object->output_stride; L1 += Pitch; @@ -300,7 +300,7 @@ deinterlace_frame_di_greedyh (GstDeinterlaceMethod * d_method, } if (InfoIsOdd) { - memcpy (Dest, L2, object->line_length); + oil_memcpy (Dest, L2, object->line_length); } } diff --git a/gst/deinterlace2/tvtime/scalerbob.c b/gst/deinterlace2/tvtime/scalerbob.c index 5443b5fe9c..b2546e23f7 100644 --- a/gst/deinterlace2/tvtime/scalerbob.c +++ b/gst/deinterlace2/tvtime/scalerbob.c @@ -46,7 +46,7 @@ deinterlace_scanline_scaler_bob (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->t0, parent->line_length); + oil_memcpy (out, scanlines->t0, parent->line_length); } G_DEFINE_TYPE (GstDeinterlaceMethodScalerBob, gst_deinterlace_method_scaler_bob, diff --git a/gst/deinterlace2/tvtime/tomsmocomp.c b/gst/deinterlace2/tvtime/tomsmocomp.c index 3e2fb541c8..c27d4874ce 100644 --- a/gst/deinterlace2/tvtime/tomsmocomp.c +++ b/gst/deinterlace2/tvtime/tomsmocomp.c @@ -65,7 +65,7 @@ Fieldcopy (void *dest, const void *src, size_t count, int i; for (i = 0; i < rows; i++) { - memcpy (pDest, pSrc, count); + oil_memcpy (pDest, pSrc, count); pSrc += src_pitch; pDest += dst_pitch; } diff --git a/gst/deinterlace2/tvtime/weave.c b/gst/deinterlace2/tvtime/weave.c index b74dcae8be..da0c79a1d1 100644 --- a/gst/deinterlace2/tvtime/weave.c +++ b/gst/deinterlace2/tvtime/weave.c @@ -47,14 +47,14 @@ deinterlace_scanline_weave (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->m1, parent->line_length); + oil_memcpy (out, scanlines->m1, parent->line_length); } static void copy_scanline (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->m0, parent->line_length); + oil_memcpy (out, scanlines->m0, parent->line_length); } G_DEFINE_TYPE (GstDeinterlaceMethodWeave, gst_deinterlace_method_weave, diff --git a/gst/deinterlace2/tvtime/weavebff.c b/gst/deinterlace2/tvtime/weavebff.c index e96bcd3c1e..2da05bdc95 100644 --- a/gst/deinterlace2/tvtime/weavebff.c +++ b/gst/deinterlace2/tvtime/weavebff.c @@ -47,7 +47,7 @@ deinterlace_scanline_weave (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->m1, parent->line_length); + oil_memcpy (out, scanlines->m1, parent->line_length); } static void @@ -56,9 +56,9 @@ copy_scanline (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, { /* FIXME: original code used m2 and m0 but this looks really bad */ if (scanlines->bottom_field) { - memcpy (out, scanlines->bb2, parent->line_length); + oil_memcpy (out, scanlines->bb2, parent->line_length); } else { - memcpy (out, scanlines->bb0, parent->line_length); + oil_memcpy (out, scanlines->bb0, parent->line_length); } } diff --git a/gst/deinterlace2/tvtime/weavetff.c b/gst/deinterlace2/tvtime/weavetff.c index dec2bc577e..0b941a054a 100644 --- a/gst/deinterlace2/tvtime/weavetff.c +++ b/gst/deinterlace2/tvtime/weavetff.c @@ -47,7 +47,7 @@ deinterlace_scanline_weave (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, guint8 * out, GstDeinterlaceScanlineData * scanlines, gint width) { - memcpy (out, scanlines->m1, parent->line_length); + oil_memcpy (out, scanlines->m1, parent->line_length); } static void @@ -56,9 +56,9 @@ copy_scanline (GstDeinterlaceMethod * self, GstDeinterlace2 * parent, { /* FIXME: original code used m2 and m0 but this looks really bad */ if (scanlines->bottom_field) { - memcpy (out, scanlines->bb0, parent->line_length); + oil_memcpy (out, scanlines->bb0, parent->line_length); } else { - memcpy (out, scanlines->bb2, parent->line_length); + oil_memcpy (out, scanlines->bb2, parent->line_length); } }