mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-10 03:19:40 +00:00
a52dec: Use orc for CPU feature detection and don't check for liboil
This commit is contained in:
parent
20c3e5ba0c
commit
359260bd5b
3 changed files with 20 additions and 17 deletions
|
@ -152,12 +152,7 @@ dnl *** checks for dependency libraries ***
|
||||||
|
|
||||||
dnl GLib is required
|
dnl GLib is required
|
||||||
AG_GST_GLIB_CHECK([2.18])
|
AG_GST_GLIB_CHECK([2.18])
|
||||||
|
ORC_CHECK([0.4.5])
|
||||||
dnl liboil is required
|
|
||||||
PKG_CHECK_MODULES(LIBOIL, liboil-0.3 >= 0.3.14, HAVE_LIBOIL=yes, HAVE_LIBOIL=no)
|
|
||||||
if test "x$HAVE_LIBOIL" != "xyes"; then
|
|
||||||
AC_ERROR([liboil-0.3.14 or later is required])
|
|
||||||
fi
|
|
||||||
|
|
||||||
dnl checks for gstreamer
|
dnl checks for gstreamer
|
||||||
dnl uninstalled is selected preferentially -- see pkg-config(1)
|
dnl uninstalled is selected preferentially -- see pkg-config(1)
|
||||||
|
@ -542,3 +537,5 @@ sed \
|
||||||
AC_OUTPUT
|
AC_OUTPUT
|
||||||
|
|
||||||
AG_GST_OUTPUT_PLUGINS
|
AG_GST_OUTPUT_PLUGINS
|
||||||
|
|
||||||
|
ORC_OUTPUT
|
||||||
|
|
|
@ -4,12 +4,12 @@ libgsta52dec_la_SOURCES = gsta52dec.c
|
||||||
libgsta52dec_la_CFLAGS = \
|
libgsta52dec_la_CFLAGS = \
|
||||||
$(GST_PLUGINS_BASE_CFLAGS) \
|
$(GST_PLUGINS_BASE_CFLAGS) \
|
||||||
$(GST_CFLAGS) \
|
$(GST_CFLAGS) \
|
||||||
$(LIBOIL_CFLAGS) \
|
$(ORC_CFLAGS) \
|
||||||
$(A52DEC_CFLAGS)
|
$(A52DEC_CFLAGS)
|
||||||
libgsta52dec_la_LIBADD = \
|
libgsta52dec_la_LIBADD = \
|
||||||
$(GST_PLUGINS_BASE_LIBS) \
|
$(GST_PLUGINS_BASE_LIBS) \
|
||||||
-lgstaudio-$(GST_MAJORMINOR) \
|
-lgstaudio-$(GST_MAJORMINOR) \
|
||||||
$(LIBOIL_LIBS) \
|
$(ORC_LIBS) \
|
||||||
$(A52DEC_LIBS)
|
$(A52DEC_LIBS)
|
||||||
libgsta52dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
libgsta52dec_la_LDFLAGS = $(GST_PLUGIN_LDFLAGS)
|
||||||
libgsta52dec_la_LIBTOOLFLAGS = --tag=disable-static
|
libgsta52dec_la_LIBTOOLFLAGS = --tag=disable-static
|
||||||
|
|
|
@ -49,9 +49,9 @@
|
||||||
#include <a52dec/mm_accel.h>
|
#include <a52dec/mm_accel.h>
|
||||||
#include "gsta52dec.h"
|
#include "gsta52dec.h"
|
||||||
|
|
||||||
#include <liboil/liboil.h>
|
#if HAVE_ORC
|
||||||
#include <liboil/liboilcpu.h>
|
#include <orc/orc.h>
|
||||||
#include <liboil/liboilfunction.h>
|
#endif
|
||||||
|
|
||||||
#ifdef LIBA52_DOUBLE
|
#ifdef LIBA52_DOUBLE
|
||||||
#define SAMPLE_WIDTH 64
|
#define SAMPLE_WIDTH 64
|
||||||
|
@ -185,8 +185,6 @@ gst_a52dec_class_init (GstA52DecClass * klass)
|
||||||
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LFE,
|
g_object_class_install_property (G_OBJECT_CLASS (klass), ARG_LFE,
|
||||||
g_param_spec_boolean ("lfe", "LFE", "LFE", TRUE, G_PARAM_READWRITE));
|
g_param_spec_boolean ("lfe", "LFE", "LFE", TRUE, G_PARAM_READWRITE));
|
||||||
|
|
||||||
oil_init ();
|
|
||||||
|
|
||||||
/* If no CPU instruction based acceleration is available, end up using the
|
/* If no CPU instruction based acceleration is available, end up using the
|
||||||
* generic software djbfft based one when available in the used liba52 */
|
* generic software djbfft based one when available in the used liba52 */
|
||||||
#ifdef MM_ACCEL_DJBFFT
|
#ifdef MM_ACCEL_DJBFFT
|
||||||
|
@ -194,13 +192,21 @@ gst_a52dec_class_init (GstA52DecClass * klass)
|
||||||
#else
|
#else
|
||||||
klass->a52_cpuflags = 0;
|
klass->a52_cpuflags = 0;
|
||||||
#endif
|
#endif
|
||||||
cpuflags = oil_cpu_get_flags ();
|
|
||||||
if (cpuflags & OIL_IMPL_FLAG_MMX)
|
#if HAVE_ORC
|
||||||
|
cpuflags = orc_target_get_default_flags (orc_target_get_by_name ("mmx"));
|
||||||
|
|
||||||
|
if (cpuflags & ORC_TARGET_MMX_MMX)
|
||||||
klass->a52_cpuflags |= MM_ACCEL_X86_MMX;
|
klass->a52_cpuflags |= MM_ACCEL_X86_MMX;
|
||||||
if (cpuflags & OIL_IMPL_FLAG_3DNOW)
|
if (cpuflags & ORC_TARGET_MMX_3DNOW)
|
||||||
klass->a52_cpuflags |= MM_ACCEL_X86_3DNOW;
|
klass->a52_cpuflags |= MM_ACCEL_X86_3DNOW;
|
||||||
if (cpuflags & OIL_IMPL_FLAG_MMXEXT)
|
if (cpuflags & ORC_TARGET_MMX_MMXEXT)
|
||||||
klass->a52_cpuflags |= MM_ACCEL_X86_MMXEXT;
|
klass->a52_cpuflags |= MM_ACCEL_X86_MMXEXT;
|
||||||
|
#else
|
||||||
|
cpuflags = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
g_print ("%p\n", orc_target_get_by_name ("mmx"));
|
||||||
|
|
||||||
GST_LOG ("CPU flags: a52=%08x, liboil=%08x", klass->a52_cpuflags, cpuflags);
|
GST_LOG ("CPU flags: a52=%08x, liboil=%08x", klass->a52_cpuflags, cpuflags);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue