Commit 2cb6cfed authored by David Schleef's avatar David Schleef

goom: liboil to orc conversion

parent 9ff3ef0c
...@@ -37,8 +37,8 @@ libgstgoom_la_SOURCES = \ ...@@ -37,8 +37,8 @@ libgstgoom_la_SOURCES = \
goom_tools.h goom_tools.h goom_config.h \ goom_tools.h goom_tools.h goom_config.h \
$(ARCH_FILES) $(ARCH_FILES)
libgstgoom_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) $(LIBOIL_CFLAGS) $(ARCH_CFLAGS) libgstgoom_la_CFLAGS = $(GST_PLUGINS_BASE_CFLAGS) $(GST_BASE_CFLAGS) $(GST_CFLAGS) $(GOOM_FILTER_CFLAGS) $(ARCH_CFLAGS) $(ORC_CFLAGS)
libgstgoom_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(LIBOIL_LIBS) libgstgoom_la_LIBADD = $(GST_BASE_LIBS) $(GST_LIBS) $(LIBM) $(ORC_LIBS)
libgstgoom_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS) libgstgoom_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
libgstgoom_la_LIBTOOLFLAGS = --tag=disable-static libgstgoom_la_LIBTOOLFLAGS = --tag=disable-static
......
...@@ -4,7 +4,7 @@ http://ios.free.fr/?page=projet&quoi=1 ...@@ -4,7 +4,7 @@ http://ios.free.fr/?page=projet&quoi=1
Like the original library so is the Goom plugin available under the LGPL license Like the original library so is the Goom plugin available under the LGPL license
This is based on goom2k4 with changes to plugin_info.c and mmx.h to use liboil for CPU This is based on goom2k4 with changes to plugin_info.c and mmx.h to use Orc for CPU
detection and GStreamer-specific ifdef's for architecture detection. detection and GStreamer-specific ifdef's for architecture detection.
These files are not in use right now: These files are not in use right now:
......
...@@ -43,8 +43,6 @@ ...@@ -43,8 +43,6 @@
#include <gst/video/video.h> #include <gst/video/video.h>
#include "goom.h" #include "goom.h"
#include <liboil/liboil.h>
GST_DEBUG_CATEGORY (goom_debug); GST_DEBUG_CATEGORY (goom_debug);
#define GST_CAT_DEFAULT goom_debug #define GST_CAT_DEFAULT goom_debug
...@@ -587,8 +585,6 @@ plugin_init (GstPlugin * plugin) ...@@ -587,8 +585,6 @@ plugin_init (GstPlugin * plugin)
{ {
GST_DEBUG_CATEGORY_INIT (goom_debug, "goom", 0, "goom visualisation element"); GST_DEBUG_CATEGORY_INIT (goom_debug, "goom", 0, "goom visualisation element");
oil_init ();
return gst_element_register (plugin, "goom", GST_RANK_NONE, GST_TYPE_GOOM); return gst_element_register (plugin, "goom", GST_RANK_NONE, GST_TYPE_GOOM);
} }
......
...@@ -29,6 +29,9 @@ ...@@ -29,6 +29,9 @@
#include "drawmethods.h" #include "drawmethods.h"
#include <math.h> #include <math.h>
#include <stdio.h> #include <stdio.h>
#ifdef HAVE_ORC
#include <orc/orc.h>
#endif
#if defined (HAVE_CPU_PPC64) || defined (HAVE_CPU_PPC) #if defined (HAVE_CPU_PPC64) || defined (HAVE_CPU_PPC)
...@@ -43,9 +46,6 @@ ...@@ -43,9 +46,6 @@
#include "mmx.h" #include "mmx.h"
#endif /* HAVE_MMX */ #endif /* HAVE_MMX */
#include <liboil/liboil.h>
#include <liboil/liboilfunction.h>
#include <liboil/liboilcpu.h>
GST_DEBUG_CATEGORY_EXTERN (goom_debug); GST_DEBUG_CATEGORY_EXTERN (goom_debug);
#define GST_CAT_DEFAULT goom_debug #define GST_CAT_DEFAULT goom_debug
...@@ -53,25 +53,30 @@ GST_DEBUG_CATEGORY_EXTERN (goom_debug); ...@@ -53,25 +53,30 @@ GST_DEBUG_CATEGORY_EXTERN (goom_debug);
static void static void
setOptimizedMethods (PluginInfo * p) setOptimizedMethods (PluginInfo * p)
{ {
#ifdef HAVE_ORC
unsigned int cpuFlavour = oil_cpu_get_flags (); unsigned int cpuFlavour =
orc_target_get_default_flags (orc_target_get_by_name ("mmx"));
#else
unsigned int cpuFlavour = 0;
#endif
/* set default methods */ /* set default methods */
p->methods.draw_line = draw_line; p->methods.draw_line = draw_line;
p->methods.zoom_filter = zoom_filter_c; p->methods.zoom_filter = zoom_filter_c;
/* p->methods.create_output_with_brightness = create_output_with_brightness;*/ /* p->methods.create_output_with_brightness = create_output_with_brightness;*/
GST_INFO ("liboil cpu flags: 0x%08x", cpuFlavour); GST_INFO ("orc cpu flags: 0x%08x", cpuFlavour);
/* FIXME: what about HAVE_CPU_X86_64 ? */ /* FIXME: what about HAVE_CPU_X86_64 ? */
#ifdef HAVE_CPU_I386 #ifdef HAVE_CPU_I386
#ifdef HAVE_MMX #ifdef HAVE_MMX
#ifdef HAVE_ORC
GST_INFO ("have an x86"); GST_INFO ("have an x86");
if (cpuFlavour & OIL_IMPL_FLAG_MMXEXT) { if (cpuFlavour & ORC_TARGET_MMX_MMXEXT) {
GST_INFO ("Extended MMX detected. Using the fastest methods!"); GST_INFO ("Extended MMX detected. Using the fastest methods!");
p->methods.draw_line = draw_line_xmmx; p->methods.draw_line = draw_line_xmmx;
p->methods.zoom_filter = zoom_filter_xmmx; p->methods.zoom_filter = zoom_filter_xmmx;
} else if (cpuFlavour & OIL_IMPL_FLAG_MMX) { } else if (cpuFlavour & ORC_TARGET_MMX_MMX) {
GST_INFO ("MMX detected. Using fast methods!"); GST_INFO ("MMX detected. Using fast methods!");
p->methods.draw_line = draw_line_mmx; p->methods.draw_line = draw_line_mmx;
p->methods.zoom_filter = zoom_filter_mmx; p->methods.zoom_filter = zoom_filter_mmx;
...@@ -79,6 +84,7 @@ setOptimizedMethods (PluginInfo * p) ...@@ -79,6 +84,7 @@ setOptimizedMethods (PluginInfo * p)
GST_INFO ("Too bad ! No SIMD optimization available for your CPU."); GST_INFO ("Too bad ! No SIMD optimization available for your CPU.");
} }
#endif #endif
#endif
#endif /* HAVE_CPU_I386 */ #endif /* HAVE_CPU_I386 */
/* disable all PPC stuff until someone finds out what to use here instead of /* disable all PPC stuff until someone finds out what to use here instead of
...@@ -92,7 +98,7 @@ setOptimizedMethods (PluginInfo * p) ...@@ -92,7 +98,7 @@ setOptimizedMethods (PluginInfo * p)
#endif /* HAVE_CPU_PPC64 */ #endif /* HAVE_CPU_PPC64 */
#ifdef HAVE_CPU_PPC #ifdef HAVE_CPU_PPC
if ((cpuFlavour & OIL_IMPL_FLAG_ALTIVEC) != 0) { if ((cpuFlavour & ORC_TARGET_ALTIVEC_ALTIVEC) != 0) {
/* p->methods.create_output_with_brightness = ppc_brightness_G4; */ /* p->methods.create_output_with_brightness = ppc_brightness_G4; */
p->methods.zoom_filter = ppc_zoom_G4; p->methods.zoom_filter = ppc_zoom_G4;
} else { } else {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment