summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--gst/deinterlace2/tvtime/greedyh.c8
2 files changed, 14 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b6fff094..9c7dec81 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
2008-07-04 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+ * gst/deinterlace2/tvtime/greedyh.c:
+ (deinterlace_frame_di_greedyh):
+ Only build the assembly optimized implementations on x86.
+
+2008-07-04 Sebastian Dröge <sebastian.droege@collabora.co.uk>
+
Patch by: Damien Lespiau <damien dot lespiau at gmail dot com>
* configure.ac:
diff --git a/gst/deinterlace2/tvtime/greedyh.c b/gst/deinterlace2/tvtime/greedyh.c
index 44f5c572..72f43781 100644
--- a/gst/deinterlace2/tvtime/greedyh.c
+++ b/gst/deinterlace2/tvtime/greedyh.c
@@ -182,6 +182,8 @@ greedyDScaler_C (uint8_t * L1, uint8_t * L2, uint8_t * L3, uint8_t * L2P,
}
}
+#ifdef HAVE_CPU_I386
+
#define IS_MMXEXT
#define SIMD_TYPE MMXEXT
#define FUNCT_NAME greedyDScaler_MMXEXT
@@ -206,6 +208,8 @@ greedyDScaler_C (uint8_t * L1, uint8_t * L2, uint8_t * L3, uint8_t * L2P,
#undef IS_MMX
#undef FUNCT_NAME
+#endif
+
static void
deinterlace_frame_di_greedyh (GstDeinterlace2 * object)
{
@@ -223,6 +227,7 @@ deinterlace_frame_di_greedyh (GstDeinterlace2 * object)
unsigned char *L2P; // ptr to prev Line2
unsigned char *Dest = GST_BUFFER_DATA (object->out_buf);
+#ifdef HAVE_CPU_I386
if (object->cpu_feature_flags & OIL_IMPL_FLAG_MMXEXT) {
func = greedyDScaler_MMXEXT;
} else if (object->cpu_feature_flags & OIL_IMPL_FLAG_3DNOW) {
@@ -232,6 +237,9 @@ deinterlace_frame_di_greedyh (GstDeinterlace2 * object)
} else {
func = greedyDScaler_C;
}
+#else
+ func = greedyDScaler_C;
+#endif
// copy first even line no matter what, and the first odd line if we're
// processing an EVEN field. (note diff from other deint rtns.)