orc: Update pregenerated files

Fixes -Wtype-limits on gstbayer.orc when emulating convuuslw.

Regenerated Orc files use OrcOnce, which increases the minimum version to 0.4.34.

See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/212 (ORC_MIN)

See https://gitlab.freedesktop.org/gstreamer/orc/-/merge_requests/238 (AVX2 convussql)

See 8a86d51753 (OrcOnce)

Part-of: <https://gitlab.freedesktop.org/gstreamer/gstreamer/-/merge_requests/9067>
This commit is contained in:
L. E. Segovia 2025-05-23 16:02:43 -03:00 committed by GStreamer Marge Bot
parent 00dfff821a
commit 7b8d4c0974
34 changed files with 14948 additions and 16760 deletions

View File

@ -173,7 +173,7 @@ endif
orc_option = get_option('orc') orc_option = get_option('orc')
# There is a check below to keep this in sync with subprojects/gst-plugins-base/meson.build # There is a check below to keep this in sync with subprojects/gst-plugins-base/meson.build
orc_req = '>= 0.4.24' orc_req = '>= 0.4.34'
orc_source_option = get_option('orc-source') orc_source_option = get_option('orc-source')
orc_subproject = disabler() orc_subproject = disabler()
if orc_option.allowed() if orc_option.allowed()

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -186,6 +189,7 @@ void bayer8to16_orc_reorder (guint8 * ORC_RESTRICT d1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -221,6 +225,8 @@ void bayer8to16_orc_reorder (guint8 * ORC_RESTRICT d1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -375,13 +381,11 @@ bayer_orc_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1,
guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n) guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -414,8 +418,8 @@ bayer_orc_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1,
orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S1, orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
ORC_VAR_C1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1, orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "avgub", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5, orc_program_append_2 (p, "avgub", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5,
@ -431,9 +435,7 @@ bayer_orc_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -611,13 +613,11 @@ bayer_orc_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s1, int n) const guint8 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -646,16 +646,16 @@ bayer_orc_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
orc_program_add_temporary (p, 1, "t4"); orc_program_add_temporary (p, 1, "t4");
orc_program_add_temporary (p, 1, "t5"); orc_program_add_temporary (p, 1, "t5");
orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
ORC_VAR_C1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "select1wb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1, orc_program_append_2 (p, "splitwb", 0, ORC_VAR_T4, ORC_VAR_T3, ORC_VAR_S1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "loadoffw", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C2,
ORC_VAR_C2, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T5, ORC_VAR_T1, orc_program_append_2 (p, "select0wb", 0, ORC_VAR_T5, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "avgub", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5, orc_program_append_2 (p, "avgub", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T5, orc_program_append_2 (p, "mergebw", 0, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_T5,
@ -669,9 +669,7 @@ bayer_orc_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -969,13 +967,11 @@ bayer_orc_merge_bg_bgra (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1037,9 +1033,7 @@ bayer_orc_merge_bg_bgra (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1341,13 +1335,11 @@ bayer_orc_merge_gr_bgra (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1409,9 +1401,7 @@ bayer_orc_merge_gr_bgra (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1713,13 +1703,11 @@ bayer_orc_merge_bg_abgr (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1781,9 +1769,7 @@ bayer_orc_merge_bg_abgr (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2085,13 +2071,11 @@ bayer_orc_merge_gr_abgr (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2153,9 +2137,7 @@ bayer_orc_merge_gr_abgr (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2457,13 +2439,11 @@ bayer_orc_merge_bg_rgba (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2525,9 +2505,7 @@ bayer_orc_merge_bg_rgba (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2829,13 +2807,11 @@ bayer_orc_merge_gr_rgba (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2897,9 +2873,7 @@ bayer_orc_merge_gr_rgba (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3201,13 +3175,11 @@ bayer_orc_merge_bg_argb (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3269,9 +3241,7 @@ bayer_orc_merge_bg_argb (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3573,13 +3543,11 @@ bayer_orc_merge_gr_argb (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3641,9 +3609,7 @@ bayer_orc_merge_gr_argb (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3809,13 +3775,11 @@ bayer16_orc_horiz_upsample_le (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n) guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3829,13 +3793,11 @@ bayer16_orc_horiz_upsample_le (guint16 * ORC_RESTRICT d1,
35, 195, 1, 33, 35, 2, 0, 35, 195, 1, 33, 35, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_bayer16_orc_horiz_upsample_le);
_backup_bayer16_orc_horiz_upsample_le);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "bayer16_orc_horiz_upsample_le"); orc_program_set_name (p, "bayer16_orc_horiz_upsample_le");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_bayer16_orc_horiz_upsample_le);
_backup_bayer16_orc_horiz_upsample_le);
orc_program_add_destination (p, 4, "d1"); orc_program_add_destination (p, 4, "d1");
orc_program_add_destination (p, 4, "d2"); orc_program_add_destination (p, 4, "d2");
orc_program_add_source (p, 4, "s1"); orc_program_add_source (p, 4, "s1");
@ -3848,8 +3810,8 @@ bayer16_orc_horiz_upsample_le (guint16 * ORC_RESTRICT d1,
orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S1, orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T3, ORC_VAR_T2, ORC_VAR_S1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "loadoffl", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "loadoffl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
ORC_VAR_C1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1, orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "avguw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5, orc_program_append_2 (p, "avguw", 0, ORC_VAR_T5, ORC_VAR_T3, ORC_VAR_T5,
@ -3865,9 +3827,7 @@ bayer16_orc_horiz_upsample_le (guint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -4053,13 +4013,11 @@ bayer16_orc_horiz_upsample_be (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n) guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -4074,13 +4032,11 @@ bayer16_orc_horiz_upsample_be (guint16 * ORC_RESTRICT d1,
35, 2, 0, 35, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_bayer16_orc_horiz_upsample_be);
_backup_bayer16_orc_horiz_upsample_be);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "bayer16_orc_horiz_upsample_be"); orc_program_set_name (p, "bayer16_orc_horiz_upsample_be");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_bayer16_orc_horiz_upsample_be);
_backup_bayer16_orc_horiz_upsample_be);
orc_program_add_destination (p, 4, "d1"); orc_program_add_destination (p, 4, "d1");
orc_program_add_destination (p, 4, "d2"); orc_program_add_destination (p, 4, "d2");
orc_program_add_source (p, 4, "s1"); orc_program_add_source (p, 4, "s1");
@ -4097,8 +4053,8 @@ bayer16_orc_horiz_upsample_be (guint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1, orc_program_append_2 (p, "swapw", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "loadoffl", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "loadoffl", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_C1,
ORC_VAR_C1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1, orc_program_append_2 (p, "splitlw", 0, ORC_VAR_T5, ORC_VAR_T4, ORC_VAR_T1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "swapw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_D1, orc_program_append_2 (p, "swapw", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_D1,
@ -4118,9 +4074,7 @@ bayer16_orc_horiz_upsample_be (guint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -4410,13 +4364,11 @@ bayer16_orc_merge_bg_bgra (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -4474,9 +4426,7 @@ bayer16_orc_merge_bg_bgra (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -4771,13 +4721,11 @@ bayer16_orc_merge_gr_bgra (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -4835,9 +4783,7 @@ bayer16_orc_merge_gr_bgra (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -5132,13 +5078,11 @@ bayer16_orc_merge_bg_abgr (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -5196,9 +5140,7 @@ bayer16_orc_merge_bg_abgr (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -5493,13 +5435,11 @@ bayer16_orc_merge_gr_abgr (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -5557,9 +5497,7 @@ bayer16_orc_merge_gr_abgr (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -5854,13 +5792,11 @@ bayer16_orc_merge_bg_rgba (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -5918,9 +5854,7 @@ bayer16_orc_merge_bg_rgba (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -6215,13 +6149,11 @@ bayer16_orc_merge_gr_rgba (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -6279,9 +6211,7 @@ bayer16_orc_merge_gr_rgba (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -6576,13 +6506,11 @@ bayer16_orc_merge_bg_argb (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -6640,9 +6568,7 @@ bayer16_orc_merge_bg_argb (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -6937,13 +6863,11 @@ bayer16_orc_merge_gr_argb (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n) const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -7001,9 +6925,7 @@ bayer16_orc_merge_gr_argb (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -7072,8 +6994,8 @@ bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1,
var40.x2[0] = ((orc_uint32) var39.x2[0]) >> p1; var40.x2[0] = ((orc_uint32) var39.x2[0]) >> p1;
var40.x2[1] = ((orc_uint32) var39.x2[1]) >> p1; var40.x2[1] = ((orc_uint32) var39.x2[1]) >> p1;
/* 4: convuuslw */ /* 4: convuuslw */
var41.x2[0] = ORC_CLAMP_UW ((orc_uint32) var40.x2[0]); var41.x2[0] = ORC_MIN ((orc_uint32) var40.x2[0], ORC_UW_MAX);
var41.x2[1] = ORC_CLAMP_UW ((orc_uint32) var40.x2[1]); var41.x2[1] = ORC_MIN ((orc_uint32) var40.x2[1], ORC_UW_MAX);
/* 5: loadl */ /* 5: loadl */
var37 = ptr5[i]; var37 = ptr5[i];
/* 6: muluwl */ /* 6: muluwl */
@ -7087,8 +7009,8 @@ bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1,
var43.x2[0] = ((orc_uint32) var42.x2[0]) >> p1; var43.x2[0] = ((orc_uint32) var42.x2[0]) >> p1;
var43.x2[1] = ((orc_uint32) var42.x2[1]) >> p1; var43.x2[1] = ((orc_uint32) var42.x2[1]) >> p1;
/* 8: convuuslw */ /* 8: convuuslw */
var44.x2[0] = ORC_CLAMP_UW ((orc_uint32) var43.x2[0]); var44.x2[0] = ORC_MIN ((orc_uint32) var43.x2[0], ORC_UW_MAX);
var44.x2[1] = ORC_CLAMP_UW ((orc_uint32) var43.x2[1]); var44.x2[1] = ORC_MIN ((orc_uint32) var43.x2[1], ORC_UW_MAX);
/* 9: mergelq */ /* 9: mergelq */
{ {
orc_union64 _dest; orc_union64 _dest;
@ -7148,8 +7070,8 @@ _backup_bayer16to16_orc_reorder (OrcExecutor * ORC_RESTRICT ex)
var40.x2[0] = ((orc_uint32) var39.x2[0]) >> ex->params[24]; var40.x2[0] = ((orc_uint32) var39.x2[0]) >> ex->params[24];
var40.x2[1] = ((orc_uint32) var39.x2[1]) >> ex->params[24]; var40.x2[1] = ((orc_uint32) var39.x2[1]) >> ex->params[24];
/* 4: convuuslw */ /* 4: convuuslw */
var41.x2[0] = ORC_CLAMP_UW ((orc_uint32) var40.x2[0]); var41.x2[0] = ORC_MIN ((orc_uint32) var40.x2[0], ORC_UW_MAX);
var41.x2[1] = ORC_CLAMP_UW ((orc_uint32) var40.x2[1]); var41.x2[1] = ORC_MIN ((orc_uint32) var40.x2[1], ORC_UW_MAX);
/* 5: loadl */ /* 5: loadl */
var37 = ptr5[i]; var37 = ptr5[i];
/* 6: muluwl */ /* 6: muluwl */
@ -7163,8 +7085,8 @@ _backup_bayer16to16_orc_reorder (OrcExecutor * ORC_RESTRICT ex)
var43.x2[0] = ((orc_uint32) var42.x2[0]) >> ex->params[24]; var43.x2[0] = ((orc_uint32) var42.x2[0]) >> ex->params[24];
var43.x2[1] = ((orc_uint32) var42.x2[1]) >> ex->params[24]; var43.x2[1] = ((orc_uint32) var42.x2[1]) >> ex->params[24];
/* 8: convuuslw */ /* 8: convuuslw */
var44.x2[0] = ORC_CLAMP_UW ((orc_uint32) var43.x2[0]); var44.x2[0] = ORC_MIN ((orc_uint32) var43.x2[0], ORC_UW_MAX);
var44.x2[1] = ORC_CLAMP_UW ((orc_uint32) var43.x2[1]); var44.x2[1] = ORC_MIN ((orc_uint32) var43.x2[1], ORC_UW_MAX);
/* 9: mergelq */ /* 9: mergelq */
{ {
orc_union64 _dest; orc_union64 _dest;
@ -7184,13 +7106,11 @@ bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -7221,14 +7141,14 @@ bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrul", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1, orc_program_append_2 (p, "shrul", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convuuslw", 1, ORC_VAR_T1, ORC_VAR_T3, orc_program_append_2 (p, "convuuslw", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "muluwl", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_C1, orc_program_append_2 (p, "muluwl", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrul", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1, orc_program_append_2 (p, "shrul", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convuuslw", 1, ORC_VAR_T2, ORC_VAR_T3, orc_program_append_2 (p, "convuuslw", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -7236,9 +7156,7 @@ bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -7367,13 +7285,11 @@ bayer16to8_orc_reorder (guint8 * ORC_RESTRICT d1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -7400,12 +7316,12 @@ bayer16to8_orc_reorder (guint8 * ORC_RESTRICT d1,
orc_program_append_2 (p, "shruw", 1, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_P1, orc_program_append_2 (p, "shruw", 1, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convuuswb", 1, ORC_VAR_T1, ORC_VAR_T3, orc_program_append_2 (p, "convuuswb", 1, ORC_VAR_T1, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shruw", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_P1, orc_program_append_2 (p, "shruw", 1, ORC_VAR_T3, ORC_VAR_S2, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convuuswb", 1, ORC_VAR_T2, ORC_VAR_T3, orc_program_append_2 (p, "convuuswb", 1, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, orc_program_append_2 (p, "mergewl", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -7413,9 +7329,7 @@ bayer16to8_orc_reorder (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -7496,13 +7410,11 @@ bayer8to16_orc_reorder (guint8 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, int n) const guint32 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -7527,9 +7439,7 @@ bayer8to16_orc_reorder (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -6,8 +6,7 @@
#include <glib.h> #include <glib.h>
#ifdef __cplusplus #ifdef __cplusplus
extern "C" extern "C" {
{
#endif #endif
@ -16,70 +15,55 @@ extern "C"
#define _ORC_INTEGER_TYPEDEFS_ #define _ORC_INTEGER_TYPEDEFS_
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#include <stdint.h> #include <stdint.h>
typedef int8_t orc_int8; typedef int8_t orc_int8;
typedef int16_t orc_int16; typedef int16_t orc_int16;
typedef int32_t orc_int32; typedef int32_t orc_int32;
typedef int64_t orc_int64; typedef int64_t orc_int64;
typedef uint8_t orc_uint8; typedef uint8_t orc_uint8;
typedef uint16_t orc_uint16; typedef uint16_t orc_uint16;
typedef uint32_t orc_uint32; typedef uint32_t orc_uint32;
typedef uint64_t orc_uint64; typedef uint64_t orc_uint64;
#define ORC_UINT64_C(x) UINT64_C(x) #define ORC_UINT64_C(x) UINT64_C(x)
#elif defined(_MSC_VER) #elif defined(_MSC_VER)
typedef signed __int8 orc_int8; typedef signed __int8 orc_int8;
typedef signed __int16 orc_int16; typedef signed __int16 orc_int16;
typedef signed __int32 orc_int32; typedef signed __int32 orc_int32;
typedef signed __int64 orc_int64; typedef signed __int64 orc_int64;
typedef unsigned __int8 orc_uint8; typedef unsigned __int8 orc_uint8;
typedef unsigned __int16 orc_uint16; typedef unsigned __int16 orc_uint16;
typedef unsigned __int32 orc_uint32; typedef unsigned __int32 orc_uint32;
typedef unsigned __int64 orc_uint64; typedef unsigned __int64 orc_uint64;
#define ORC_UINT64_C(x) (x##Ui64) #define ORC_UINT64_C(x) (x##Ui64)
#define inline __inline #define inline __inline
#else #else
#include <limits.h> #include <limits.h>
typedef signed char orc_int8; typedef signed char orc_int8;
typedef short orc_int16; typedef short orc_int16;
typedef int orc_int32; typedef int orc_int32;
typedef unsigned char orc_uint8; typedef unsigned char orc_uint8;
typedef unsigned short orc_uint16; typedef unsigned short orc_uint16;
typedef unsigned int orc_uint32; typedef unsigned int orc_uint32;
#if INT_MAX == LONG_MAX #if INT_MAX == LONG_MAX
typedef long long orc_int64; typedef long long orc_int64;
typedef unsigned long long orc_uint64; typedef unsigned long long orc_uint64;
#define ORC_UINT64_C(x) (x##ULL) #define ORC_UINT64_C(x) (x##ULL)
#else #else
typedef long orc_int64; typedef long orc_int64;
typedef unsigned long orc_uint64; typedef unsigned long orc_uint64;
#define ORC_UINT64_C(x) (x##UL) #define ORC_UINT64_C(x) (x##UL)
#endif #endif
#endif #endif
typedef union typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
{ typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
orc_int16 i; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
orc_int8 x2[2];
} orc_union16;
typedef union
{
orc_int32 i;
float f;
orc_int16 x2[2];
orc_int8 x4[4];
} orc_union32;
typedef union
{
orc_int64 i;
double f;
orc_int32 x2[2];
float x2f[2];
orc_int16 x4[4];
} orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -97,95 +81,31 @@ extern "C"
#endif #endif
#endif #endif
void bayer_orc_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1, void bayer_orc_horiz_upsample_unaligned (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n); void bayer_orc_horiz_upsample (guint8 * ORC_RESTRICT d1, guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n);
void bayer_orc_horiz_upsample (guint8 * ORC_RESTRICT d1, void bayer_orc_merge_bg_bgra (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
guint8 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, int n); void bayer_orc_merge_gr_bgra (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_bg_bgra (guint8 * ORC_RESTRICT d1, void bayer_orc_merge_bg_abgr (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, void bayer_orc_merge_gr_abgr (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, void bayer_orc_merge_bg_rgba (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); void bayer_orc_merge_gr_rgba (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_gr_bgra (guint8 * ORC_RESTRICT d1, void bayer_orc_merge_bg_argb (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, void bayer_orc_merge_gr_argb (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, void bayer16_orc_horiz_upsample_le (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n);
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); void bayer16_orc_horiz_upsample_be (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n);
void bayer_orc_merge_bg_abgr (guint8 * ORC_RESTRICT d1, void bayer16_orc_merge_bg_bgra (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, void bayer16_orc_merge_gr_bgra (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, void bayer16_orc_merge_bg_abgr (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); void bayer16_orc_merge_gr_abgr (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_gr_abgr (guint8 * ORC_RESTRICT d1, void bayer16_orc_merge_bg_rgba (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, void bayer16_orc_merge_gr_rgba (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, void bayer16_orc_merge_bg_argb (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n); void bayer16_orc_merge_gr_argb (guint16 * ORC_RESTRICT d1, guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_bg_rgba (guint8 * ORC_RESTRICT d1, void bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, const guint32 * ORC_RESTRICT s2, int p1, int n);
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, void bayer16to8_orc_reorder (guint8 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, const guint32 * ORC_RESTRICT s2, int p1, int n);
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4, void bayer8to16_orc_reorder (guint8 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1, int n);
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_gr_rgba (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_bg_argb (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer_orc_merge_gr_argb (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2,
const guint8 * ORC_RESTRICT s3, const guint8 * ORC_RESTRICT s4,
const guint8 * ORC_RESTRICT s5, const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_horiz_upsample_le (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n);
void bayer16_orc_horiz_upsample_be (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint16 * ORC_RESTRICT s1, int n);
void bayer16_orc_merge_bg_bgra (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_gr_bgra (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_bg_abgr (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_gr_abgr (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_bg_rgba (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_gr_rgba (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_bg_argb (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16_orc_merge_gr_argb (guint16 * ORC_RESTRICT d1,
guint16 * ORC_RESTRICT d2, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s2, const guint8 * ORC_RESTRICT s3,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5,
const guint8 * ORC_RESTRICT s6, int n);
void bayer16to16_orc_reorder (guint8 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, const guint32 * ORC_RESTRICT s2, int p1,
int n);
void bayer16to8_orc_reorder (guint8 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, const guint32 * ORC_RESTRICT s2, int p1,
int n);
void bayer8to16_orc_reorder (guint8 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, int n);
#ifdef __cplusplus #ifdef __cplusplus
} }
#endif #endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -114,6 +117,7 @@ void fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 *
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -149,6 +153,8 @@ void fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 *
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -270,20 +276,17 @@ fieldanalysis_orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
int p1, int n) int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115, 1, 9, 44, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116, 95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116, 121,
121,
95, 115, 97, 100, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 118, 12, 95, 115, 97, 100, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 118, 12,
1, 1, 12, 1, 1, 13, 4, 16, 4, 20, 2, 20, 2, 20, 4, 20, 1, 1, 12, 1, 1, 13, 4, 16, 4, 20, 2, 20, 2, 20, 4, 20,
4, 150, 32, 4, 150, 33, 5, 98, 32, 32, 33, 69, 32, 32, 154, 34, 4, 150, 32, 4, 150, 33, 5, 98, 32, 32, 33, 69, 32, 32, 154, 34,
@ -327,9 +330,7 @@ fieldanalysis_orc_same_parity_sad_planar_yuv (guint32 * ORC_RESTRICT a1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -453,22 +454,18 @@ fieldanalysis_orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
int p1, int n) int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115, 1, 9, 44, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116, 95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116, 121,
121, 95, 115, 115, 100, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 118, 12,
95, 115, 115, 100, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 118,
12,
1, 1, 12, 1, 1, 13, 4, 16, 4, 20, 2, 20, 2, 20, 4, 20, 1, 1, 12, 1, 1, 13, 4, 16, 4, 20, 2, 20, 2, 20, 4, 20,
4, 150, 32, 4, 150, 33, 5, 98, 32, 32, 33, 176, 34, 32, 32, 111, 4, 150, 32, 4, 150, 33, 5, 98, 32, 32, 33, 176, 34, 32, 32, 111,
35, 34, 24, 106, 34, 34, 35, 181, 12, 34, 2, 0, 35, 34, 24, 106, 34, 34, 35, 181, 12, 34, 2, 0,
@ -509,9 +506,7 @@ fieldanalysis_orc_same_parity_ssd_planar_yuv (guint32 * ORC_RESTRICT a1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -745,20 +740,17 @@ fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
int p1, int n) int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 46, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115, 1, 9, 46, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116, 95, 111, 114, 99, 95, 115, 97, 109, 101, 95, 112, 97, 114, 105, 116, 121,
121,
95, 51, 95, 116, 97, 112, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117, 95, 51, 95, 116, 97, 112, 95, 112, 108, 97, 110, 97, 114, 95, 121, 117,
118, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 118, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 1,
12, 1, 1, 13, 4, 14, 2, 2, 0, 0, 0, 16, 4, 20, 2, 20, 12, 1, 1, 13, 4, 14, 2, 2, 0, 0, 0, 16, 4, 20, 2, 20,
@ -773,8 +765,7 @@ fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
_backup_fieldanalysis_orc_same_parity_3_tap_planar_yuv); _backup_fieldanalysis_orc_same_parity_3_tap_planar_yuv);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, orc_program_set_name (p, "fieldanalysis_orc_same_parity_3_tap_planar_yuv");
"fieldanalysis_orc_same_parity_3_tap_planar_yuv");
orc_program_set_backup_function (p, orc_program_set_backup_function (p,
_backup_fieldanalysis_orc_same_parity_3_tap_planar_yuv); _backup_fieldanalysis_orc_same_parity_3_tap_planar_yuv);
orc_program_add_source (p, 1, "s1"); orc_program_add_source (p, 1, "s1");
@ -836,9 +827,7 @@ fieldanalysis_orc_same_parity_3_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1072,20 +1061,17 @@ fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
const orc_uint8 * ORC_RESTRICT s5, int p1, int n) const orc_uint8 * ORC_RESTRICT s5, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 50, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115, 1, 9, 50, 102, 105, 101, 108, 100, 97, 110, 97, 108, 121, 115, 105, 115,
95, 111, 114, 99, 95, 111, 112, 112, 111, 115, 105, 116, 101, 95, 112, 95, 111, 114, 99, 95, 111, 112, 112, 111, 115, 105, 116, 101, 95, 112, 97,
97,
114, 105, 116, 121, 95, 53, 95, 116, 97, 112, 95, 112, 108, 97, 110, 97, 114, 105, 116, 121, 95, 53, 95, 116, 97, 112, 95, 112, 108, 97, 110, 97,
114, 95, 121, 117, 118, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1, 114, 95, 121, 117, 118, 12, 1, 1, 12, 1, 1, 12, 1, 1, 12, 1,
1, 12, 1, 1, 13, 4, 14, 2, 2, 0, 0, 0, 14, 2, 3, 0, 1, 12, 1, 1, 13, 4, 14, 2, 2, 0, 0, 0, 14, 2, 3, 0,
@ -1161,9 +1147,7 @@ fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT a1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstfieldanalysisorc.orc */ /* autogenerated from gstfieldanalysisorc.orc */
#ifndef _GSTFIELDANALYSISORC_H_ #pragma once
#define _GSTFIELDANALYSISORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -89,5 +90,3 @@ void fieldanalysis_orc_opposite_parity_5_tap_planar_yuv (guint32 * ORC_RESTRICT
} }
#endif #endif
#endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -100,6 +103,7 @@ void gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -135,6 +139,8 @@ void gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -391,13 +397,11 @@ gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
int p1, int n) int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -453,9 +457,7 @@ gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstgaudieffectsorc.orc */ /* autogenerated from gstgaudieffectsorc.orc */
#ifndef _GSTGAUDIEFFECTSORC_H_ #pragma once
#define _GSTGAUDIEFFECTSORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -86,5 +87,3 @@ void gaudi_orc_burn (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
} }
#endif #endif
#endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -101,6 +104,7 @@ void orc_sad_nxm_u8 (orc_uint32 * ORC_RESTRICT a1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -136,6 +140,8 @@ void orc_sad_nxm_u8 (orc_uint32 * ORC_RESTRICT a1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -219,13 +225,11 @@ orc_sad_nxm_u8 (orc_uint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1,
int m) int m)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -245,16 +249,14 @@ orc_sad_nxm_u8 (orc_uint32 * ORC_RESTRICT a1, const orc_uint8 * ORC_RESTRICT s1,
orc_program_add_source (p, 1, "s2"); orc_program_add_source (p, 1, "s2");
orc_program_add_accumulator (p, 4, "a1"); orc_program_add_accumulator (p, 4, "a1");
orc_program_append_2 (p, "accsadubl", 0, ORC_VAR_A1, ORC_VAR_S1, orc_program_append_2 (p, "accsadubl", 0, ORC_VAR_A1, ORC_VAR_S1, ORC_VAR_S2,
ORC_VAR_S2, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -55,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif

View File

@ -18,7 +18,7 @@ gst_version_is_stable = gst_version_minor.is_even()
gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90 gst_version_is_dev = gst_version_minor.is_odd() and gst_version_micro < 90
glib_req = '>= 2.64.0' glib_req = '>= 2.64.0'
orc_req = '>= 0.4.17' orc_req = '>= 0.4.34'
if gst_version_is_stable if gst_version_is_stable
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor) gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)

View File

@ -1,8 +1,7 @@
/* autogenerated from gstaudiopack.orc */ /* autogenerated from gstaudiopack.orc */
#ifndef _GSTAUDIOPACK_H_ #pragma once
#define _GSTAUDIOPACK_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -135,5 +136,3 @@ void audio_orc_double_to_s32 (gint32 * ORC_RESTRICT d1, const gdouble * ORC_REST
} }
#endif #endif
#endif

View File

@ -55,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -138,6 +141,7 @@ void adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -173,6 +177,8 @@ void adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -245,13 +251,11 @@ adder_orc_add_s32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -276,9 +280,7 @@ adder_orc_add_s32 (gint32 * ORC_RESTRICT d1, const gint32 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -357,13 +359,11 @@ adder_orc_add_s16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -388,9 +388,7 @@ adder_orc_add_s16 (gint16 * ORC_RESTRICT d1, const gint16 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -467,13 +465,11 @@ void
adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n) adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -497,9 +493,7 @@ adder_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -582,13 +576,11 @@ adder_orc_add_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -613,9 +605,7 @@ adder_orc_add_u32 (guint32 * ORC_RESTRICT d1, const guint32 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -694,13 +684,11 @@ adder_orc_add_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -725,9 +713,7 @@ adder_orc_add_u16 (guint16 * ORC_RESTRICT d1, const guint16 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -806,13 +792,11 @@ adder_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -836,9 +820,7 @@ adder_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -931,13 +913,11 @@ void
adder_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1, int n) adder_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -962,9 +942,7 @@ adder_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1059,13 +1037,11 @@ adder_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1090,9 +1066,7 @@ adder_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1203,13 +1177,11 @@ void
adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n) adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1239,8 +1211,8 @@ adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1248,9 +1220,7 @@ adder_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1335,13 +1305,11 @@ void
adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n) adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1366,16 +1334,14 @@ adder_orc_volume_s8 (gint8 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1486,13 +1452,11 @@ void
adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n) adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1522,8 +1486,8 @@ adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1531,9 +1495,7 @@ adder_orc_volume_u16 (guint16 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1618,13 +1580,11 @@ void
adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n) adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1649,16 +1609,14 @@ adder_orc_volume_s16 (gint16 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1769,13 +1727,11 @@ void
adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1805,8 +1761,8 @@ adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorl", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1814,9 +1770,7 @@ adder_orc_volume_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1901,13 +1855,11 @@ void
adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n) adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1932,16 +1884,14 @@ adder_orc_volume_s32 (gint32 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2030,13 +1980,11 @@ void
adder_orc_volume_f32 (float *ORC_RESTRICT d1, float p1, int n) adder_orc_volume_f32 (float *ORC_RESTRICT d1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2061,9 +2009,7 @@ adder_orc_volume_f32 (float *ORC_RESTRICT d1, float p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2133,7 +2079,7 @@ _backup_adder_orc_volume_f64 (OrcExecutor * ORC_RESTRICT ex)
/* 1: loadpq */ /* 1: loadpq */
var33.i = var33.i =
(ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 + (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
(ORC_VAR_T1 - ORC_VAR_P1)]) << 32); (ORC_N_PARAMS)]) << 32);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
/* 0: loadq */ /* 0: loadq */
@ -2158,13 +2104,11 @@ void
adder_orc_volume_f64 (double *ORC_RESTRICT d1, double p1, int n) adder_orc_volume_f64 (double *ORC_RESTRICT d1, double p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2189,9 +2133,7 @@ adder_orc_volume_f64 (double *ORC_RESTRICT d1, double p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2325,13 +2267,11 @@ adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s1, int p1, int n) const guint8 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2362,8 +2302,8 @@ adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
@ -2373,9 +2313,7 @@ adder_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2479,13 +2417,11 @@ adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
int p1, int n) int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2512,8 +2448,8 @@ adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addssb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addssb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -2521,9 +2457,7 @@ adder_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2653,13 +2587,11 @@ adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
const guint16 * ORC_RESTRICT s1, int p1, int n) const guint16 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2690,8 +2622,8 @@ adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addusw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
@ -2701,9 +2633,7 @@ adder_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2807,13 +2737,11 @@ adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, int p1, int n) const gint16 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2840,8 +2768,8 @@ adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addssw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addssw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -2849,9 +2777,7 @@ adder_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2985,13 +2911,11 @@ adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, int p1, int n) const guint32 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3023,8 +2947,8 @@ adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addusl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
@ -3034,9 +2958,7 @@ adder_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3140,13 +3062,11 @@ adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
const gint32 * ORC_RESTRICT s1, int p1, int n) const gint32 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3174,8 +3094,8 @@ adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addssl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addssl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -3183,9 +3103,7 @@ adder_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3309,13 +3227,11 @@ adder_orc_add_volume_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
float p1, int n) float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3344,9 +3260,7 @@ adder_orc_add_volume_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3438,7 +3352,7 @@ _backup_adder_orc_add_volume_f64 (OrcExecutor * ORC_RESTRICT ex)
/* 1: loadpq */ /* 1: loadpq */
var34.i = var34.i =
(ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 + (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
(ORC_VAR_T1 - ORC_VAR_P1)]) << 32); (ORC_N_PARAMS)]) << 32);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
/* 0: loadq */ /* 0: loadq */
@ -3476,13 +3390,11 @@ adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
const double *ORC_RESTRICT s1, double p1, int n) const double *ORC_RESTRICT s1, double p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3511,9 +3423,7 @@ adder_orc_add_volume_f64 (double *ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstadderorc.orc */ /* autogenerated from gstadderorc.orc */
#ifndef _GSTADDERORC_H_ #pragma once
#define _GSTADDERORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -109,5 +110,3 @@ void adder_orc_add_volume_f64 (double * ORC_RESTRICT d1, const double * ORC_REST
} }
#endif #endif
#endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -131,6 +134,7 @@ void audiomixer_orc_add_volume_f64 (double *ORC_RESTRICT d1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -166,6 +170,8 @@ void audiomixer_orc_add_volume_f64 (double *ORC_RESTRICT d1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -238,13 +244,11 @@ audiomixer_orc_add_s32 (gint32 * ORC_RESTRICT d1,
const gint32 * ORC_RESTRICT s1, int n) const gint32 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -269,9 +273,7 @@ audiomixer_orc_add_s32 (gint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -350,13 +352,11 @@ audiomixer_orc_add_s16 (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, int n) const gint16 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -381,9 +381,7 @@ audiomixer_orc_add_s16 (gint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -462,13 +460,11 @@ audiomixer_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -493,9 +489,7 @@ audiomixer_orc_add_s8 (gint8 * ORC_RESTRICT d1, const gint8 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -578,13 +572,11 @@ audiomixer_orc_add_u32 (guint32 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, int n) const guint32 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -609,9 +601,7 @@ audiomixer_orc_add_u32 (guint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -690,13 +680,11 @@ audiomixer_orc_add_u16 (guint16 * ORC_RESTRICT d1,
const guint16 * ORC_RESTRICT s1, int n) const guint16 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -721,9 +709,7 @@ audiomixer_orc_add_u16 (guint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -802,13 +788,11 @@ audiomixer_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -833,9 +817,7 @@ audiomixer_orc_add_u8 (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -930,13 +912,11 @@ audiomixer_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -961,9 +941,7 @@ audiomixer_orc_add_f32 (float *ORC_RESTRICT d1, const float *ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1058,13 +1036,11 @@ audiomixer_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
int n) int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1089,9 +1065,7 @@ audiomixer_orc_add_f64 (double *ORC_RESTRICT d1, const double *ORC_RESTRICT s1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1202,13 +1176,11 @@ void
audiomixer_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n) audiomixer_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1238,8 +1210,8 @@ audiomixer_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1247,9 +1219,7 @@ audiomixer_orc_volume_u8 (guint8 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1378,13 +1348,11 @@ audiomixer_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s1, int p1, int n) const guint8 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1416,8 +1384,8 @@ audiomixer_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorb", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addusb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
@ -1427,9 +1395,7 @@ audiomixer_orc_add_volume_u8 (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1533,13 +1499,11 @@ audiomixer_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1,
const gint8 * ORC_RESTRICT s1, int p1, int n) const gint8 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1567,8 +1531,8 @@ audiomixer_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addssb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addssb", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1576,9 +1540,7 @@ audiomixer_orc_add_volume_s8 (gint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1708,13 +1670,11 @@ audiomixer_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
const guint16 * ORC_RESTRICT s1, int p1, int n) const guint16 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1727,13 +1687,11 @@ audiomixer_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
0, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_u16);
_backup_audiomixer_orc_add_volume_u16);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "audiomixer_orc_add_volume_u16"); orc_program_set_name (p, "audiomixer_orc_add_volume_u16");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_u16);
_backup_audiomixer_orc_add_volume_u16);
orc_program_add_destination (p, 2, "d1"); orc_program_add_destination (p, 2, "d1");
orc_program_add_source (p, 2, "s1"); orc_program_add_source (p, 2, "s1");
orc_program_add_constant (p, 2, 0x00008000, "c1"); orc_program_add_constant (p, 2, 0x00008000, "c1");
@ -1748,8 +1706,8 @@ audiomixer_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addusw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
@ -1759,9 +1717,7 @@ audiomixer_orc_add_volume_u16 (guint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1865,13 +1821,11 @@ audiomixer_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, int p1, int n) const gint16 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1883,13 +1837,11 @@ audiomixer_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
33, 2, 0, 33, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_s16);
_backup_audiomixer_orc_add_volume_s16);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "audiomixer_orc_add_volume_s16"); orc_program_set_name (p, "audiomixer_orc_add_volume_s16");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_s16);
_backup_audiomixer_orc_add_volume_s16);
orc_program_add_destination (p, 2, "d1"); orc_program_add_destination (p, 2, "d1");
orc_program_add_source (p, 2, "s1"); orc_program_add_source (p, 2, "s1");
orc_program_add_constant (p, 4, 0x0000000b, "c1"); orc_program_add_constant (p, 4, 0x0000000b, "c1");
@ -1901,8 +1853,8 @@ audiomixer_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addssw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addssw", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1910,9 +1862,7 @@ audiomixer_orc_add_volume_s16 (gint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2046,13 +1996,11 @@ audiomixer_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, int p1, int n) const guint32 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2065,13 +2013,11 @@ audiomixer_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
0, 0, 33, 2, 0, 0, 0, 33, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_u32);
_backup_audiomixer_orc_add_volume_u32);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "audiomixer_orc_add_volume_u32"); orc_program_set_name (p, "audiomixer_orc_add_volume_u32");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_u32);
_backup_audiomixer_orc_add_volume_u32);
orc_program_add_destination (p, 4, "d1"); orc_program_add_destination (p, 4, "d1");
orc_program_add_source (p, 4, "s1"); orc_program_add_source (p, 4, "s1");
orc_program_add_constant (p, 4, 0x80000000, "c1"); orc_program_add_constant (p, 4, 0x80000000, "c1");
@ -2086,8 +2032,8 @@ audiomixer_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "xorl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addusl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
@ -2097,9 +2043,7 @@ audiomixer_orc_add_volume_u32 (guint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2203,13 +2147,11 @@ audiomixer_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
const gint32 * ORC_RESTRICT s1, int p1, int n) const gint32 * ORC_RESTRICT s1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2221,13 +2163,11 @@ audiomixer_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
32, 104, 0, 0, 33, 2, 0, 32, 104, 0, 0, 33, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_s32);
_backup_audiomixer_orc_add_volume_s32);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "audiomixer_orc_add_volume_s32"); orc_program_set_name (p, "audiomixer_orc_add_volume_s32");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_s32);
_backup_audiomixer_orc_add_volume_s32);
orc_program_add_destination (p, 4, "d1"); orc_program_add_destination (p, 4, "d1");
orc_program_add_source (p, 4, "s1"); orc_program_add_source (p, 4, "s1");
orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1"); orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1");
@ -2239,8 +2179,8 @@ audiomixer_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addssl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "addssl", 0, ORC_VAR_D1, ORC_VAR_D1, ORC_VAR_T2,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -2248,9 +2188,7 @@ audiomixer_orc_add_volume_s32 (gint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2374,13 +2312,11 @@ audiomixer_orc_add_volume_f32 (float *ORC_RESTRICT d1,
const float *ORC_RESTRICT s1, float p1, int n) const float *ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2391,13 +2327,11 @@ audiomixer_orc_add_volume_f32 (float *ORC_RESTRICT d1,
0, 32, 2, 0, 0, 32, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_f32);
_backup_audiomixer_orc_add_volume_f32);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "audiomixer_orc_add_volume_f32"); orc_program_set_name (p, "audiomixer_orc_add_volume_f32");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_f32);
_backup_audiomixer_orc_add_volume_f32);
orc_program_add_destination (p, 4, "d1"); orc_program_add_destination (p, 4, "d1");
orc_program_add_source (p, 4, "s1"); orc_program_add_source (p, 4, "s1");
orc_program_add_parameter_float (p, 4, "p1"); orc_program_add_parameter_float (p, 4, "p1");
@ -2412,9 +2346,7 @@ audiomixer_orc_add_volume_f32 (float *ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2506,7 +2438,7 @@ _backup_audiomixer_orc_add_volume_f64 (OrcExecutor * ORC_RESTRICT ex)
/* 1: loadpq */ /* 1: loadpq */
var34.i = var34.i =
(ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 + (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
(ORC_VAR_T1 - ORC_VAR_P1)]) << 32); (ORC_N_PARAMS)]) << 32);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
/* 0: loadq */ /* 0: loadq */
@ -2544,13 +2476,11 @@ audiomixer_orc_add_volume_f64 (double *ORC_RESTRICT d1,
const double *ORC_RESTRICT s1, double p1, int n) const double *ORC_RESTRICT s1, double p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2561,13 +2491,11 @@ audiomixer_orc_add_volume_f64 (double *ORC_RESTRICT d1,
0, 32, 2, 0, 0, 32, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_f64);
_backup_audiomixer_orc_add_volume_f64);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "audiomixer_orc_add_volume_f64"); orc_program_set_name (p, "audiomixer_orc_add_volume_f64");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_audiomixer_orc_add_volume_f64);
_backup_audiomixer_orc_add_volume_f64);
orc_program_add_destination (p, 8, "d1"); orc_program_add_destination (p, 8, "d1");
orc_program_add_source (p, 8, "s1"); orc_program_add_source (p, 8, "s1");
orc_program_add_parameter_double (p, 8, "p1"); orc_program_add_parameter_double (p, 8, "p1");
@ -2582,9 +2510,7 @@ audiomixer_orc_add_volume_f64 (double *ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstaudiomixerorc.orc */ /* autogenerated from gstaudiomixerorc.orc */
#ifndef _GSTAUDIOMIXERORC_H_ #pragma once
#define _GSTAUDIOMIXERORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -102,5 +103,3 @@ void audiomixer_orc_add_volume_f64 (double * ORC_RESTRICT d1, const double * ORC
} }
#endif #endif
#endif

View File

@ -55,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -99,6 +102,7 @@ void video_test_src_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n);
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -134,6 +138,8 @@ void video_test_src_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n);
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -188,13 +194,11 @@ void
video_test_src_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n) video_test_src_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -219,9 +223,7 @@ video_test_src_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstvideotestsrcorc.orc */ /* autogenerated from gstvideotestsrcorc.orc */
#ifndef _GSTVIDEOTESTSRCORC_H_ #pragma once
#define _GSTVIDEOTESTSRCORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -86,5 +87,3 @@ void video_test_src_orc_splat_u32 (guint8 * ORC_RESTRICT d1, int p1, int n);
} }
#endif #endif
#endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -126,6 +129,7 @@ void volume_orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -161,6 +165,8 @@ void volume_orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -220,7 +226,7 @@ _backup_volume_orc_scalarmultiply_f64_ns (OrcExecutor * ORC_RESTRICT ex)
/* 1: loadpq */ /* 1: loadpq */
var33.i = var33.i =
(ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 + (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
(ORC_VAR_T1 - ORC_VAR_P1)]) << 32); (ORC_N_PARAMS)]) << 32);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
/* 0: loadq */ /* 0: loadq */
@ -245,20 +251,17 @@ void
volume_orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n) volume_orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99, 1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99,
97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 54, 97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 54, 52,
52,
95, 110, 115, 11, 8, 8, 18, 8, 214, 0, 0, 24, 2, 0, 95, 110, 115, 11, 8, 8, 18, 8, 214, 0, 0, 24, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
@ -279,9 +282,7 @@ volume_orc_scalarmultiply_f64_ns (double *ORC_RESTRICT d1, double p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -375,20 +376,17 @@ void
volume_orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n) volume_orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99, 1, 9, 32, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 115, 99,
97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 51, 97, 108, 97, 114, 109, 117, 108, 116, 105, 112, 108, 121, 95, 102, 51, 50,
50,
95, 110, 115, 11, 4, 4, 17, 4, 202, 0, 0, 24, 2, 0, 95, 110, 115, 11, 4, 4, 17, 4, 202, 0, 0, 24, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
@ -409,9 +407,7 @@ volume_orc_scalarmultiply_f32_ns (float *ORC_RESTRICT d1, float p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -500,13 +496,11 @@ void
volume_orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n) volume_orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -538,9 +532,7 @@ volume_orc_process_int32 (gint32 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -625,13 +617,11 @@ void
volume_orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n) volume_orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -642,13 +632,11 @@ volume_orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
20, 8, 178, 32, 0, 24, 147, 32, 32, 16, 170, 0, 32, 2, 0, 20, 8, 178, 32, 0, 24, 147, 32, 32, 16, 170, 0, 32, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_volume_orc_process_int32_clamp);
_backup_volume_orc_process_int32_clamp);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "volume_orc_process_int32_clamp"); orc_program_set_name (p, "volume_orc_process_int32_clamp");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_volume_orc_process_int32_clamp);
_backup_volume_orc_process_int32_clamp);
orc_program_add_destination (p, 4, "d1"); orc_program_add_destination (p, 4, "d1");
orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1"); orc_program_add_constant_int64 (p, 8, 0x000000000000001bULL, "c1");
orc_program_add_parameter (p, 4, "p1"); orc_program_add_parameter (p, 4, "p1");
@ -658,16 +646,14 @@ volume_orc_process_int32_clamp (gint32 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsq", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convsssql", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -752,13 +738,11 @@ void
volume_orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n) volume_orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -790,9 +774,7 @@ volume_orc_process_int16 (gint16 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -877,13 +859,11 @@ void
volume_orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n) volume_orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -894,13 +874,11 @@ volume_orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
0, 24, 125, 32, 32, 16, 165, 0, 32, 2, 0, 0, 24, 125, 32, 32, 16, 165, 0, 32, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_volume_orc_process_int16_clamp);
_backup_volume_orc_process_int16_clamp);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "volume_orc_process_int16_clamp"); orc_program_set_name (p, "volume_orc_process_int16_clamp");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_volume_orc_process_int16_clamp);
_backup_volume_orc_process_int16_clamp);
orc_program_add_destination (p, 2, "d1"); orc_program_add_destination (p, 2, "d1");
orc_program_add_constant (p, 4, 0x0000000b, "c1"); orc_program_add_constant (p, 4, 0x0000000b, "c1");
orc_program_add_parameter (p, 2, "p1"); orc_program_add_parameter (p, 2, "p1");
@ -910,16 +888,14 @@ volume_orc_process_int16_clamp (gint16 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1004,13 +980,11 @@ void
volume_orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n) volume_orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1042,9 +1016,7 @@ volume_orc_process_int8 (gint8 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1129,31 +1101,26 @@ void
volume_orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n) volume_orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 29, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114, 1, 9, 29, 118, 111, 108, 117, 109, 101, 95, 111, 114, 99, 95, 112, 114,
111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 95, 99, 108, 97, 109, 111, 99, 101, 115, 115, 95, 105, 110, 116, 56, 95, 99, 108, 97, 109, 112,
112,
11, 1, 1, 14, 2, 3, 0, 0, 0, 16, 1, 20, 2, 174, 32, 0, 11, 1, 1, 14, 2, 3, 0, 0, 0, 16, 1, 20, 2, 174, 32, 0,
24, 94, 32, 32, 16, 159, 0, 32, 2, 0, 24, 94, 32, 32, 16, 159, 0, 32, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_volume_orc_process_int8_clamp);
_backup_volume_orc_process_int8_clamp);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "volume_orc_process_int8_clamp"); orc_program_set_name (p, "volume_orc_process_int8_clamp");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_volume_orc_process_int8_clamp);
_backup_volume_orc_process_int8_clamp);
orc_program_add_destination (p, 1, "d1"); orc_program_add_destination (p, 1, "d1");
orc_program_add_constant (p, 2, 0x00000003, "c1"); orc_program_add_constant (p, 2, 0x00000003, "c1");
orc_program_add_parameter (p, 1, "p1"); orc_program_add_parameter (p, 1, "p1");
@ -1163,16 +1130,14 @@ volume_orc_process_int8_clamp (gint8 * ORC_RESTRICT d1, int p1, int n)
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1226,7 +1191,7 @@ _backup_volume_orc_memset_f64 (OrcExecutor * ORC_RESTRICT ex)
/* 0: loadpq */ /* 0: loadpq */
var32.i = var32.i =
(ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 + (ex->params[24] & 0xffffffff) | ((orc_uint64) (ex->params[24 +
(ORC_VAR_T1 - ORC_VAR_P1)]) << 32); (ORC_N_PARAMS)]) << 32);
for (i = 0; i < n; i++) { for (i = 0; i < n; i++) {
/* 1: copyq */ /* 1: copyq */
@ -1241,13 +1206,11 @@ void
volume_orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n) volume_orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1272,9 +1235,7 @@ volume_orc_memset_f64 (gdouble * ORC_RESTRICT d1, double p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1324,7 +1285,7 @@ volume_orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
/* 0: loadl */ /* 0: loadl */
var33 = ptr4[i]; var33 = ptr4[i];
/* 1: convld */ /* 1: convld */
var37.f = var33.i; var37.f = (double) var33.i;
/* 3: subd */ /* 3: subd */
{ {
orc_union64 _src1; orc_union64 _src1;
@ -1382,7 +1343,7 @@ _backup_volume_orc_prepare_volumes (OrcExecutor * ORC_RESTRICT ex)
/* 0: loadl */ /* 0: loadl */
var33 = ptr4[i]; var33 = ptr4[i];
/* 1: convld */ /* 1: convld */
var37.f = var33.i; var37.f = (double) var33.i;
/* 3: subd */ /* 3: subd */
{ {
orc_union64 _src1; orc_union64 _src1;
@ -1416,13 +1377,11 @@ volume_orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
const gboolean * ORC_RESTRICT s1, int n) const gboolean * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1454,9 +1413,7 @@ volume_orc_prepare_volumes (gdouble * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1551,13 +1508,11 @@ volume_orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1586,9 +1541,7 @@ volume_orc_process_controlled_f64_1ch (gdouble * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1701,13 +1654,11 @@ volume_orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1739,9 +1690,7 @@ volume_orc_process_controlled_f32_1ch (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1888,13 +1837,11 @@ volume_orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1930,9 +1877,7 @@ volume_orc_process_controlled_f32_2ch (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1970,7 +1915,7 @@ volume_orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
/* 0: loadl */ /* 0: loadl */
var33 = ptr0[i]; var33 = ptr0[i];
/* 1: convld */ /* 1: convld */
var36.f = var33.i; var36.f = (double) var33.i;
/* 2: loadq */ /* 2: loadq */
var34 = ptr4[i]; var34 = ptr4[i];
/* 3: muld */ /* 3: muld */
@ -1986,7 +1931,7 @@ volume_orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
/* 4: convdl */ /* 4: convdl */
{ {
int tmp; int tmp;
tmp = var37.f; tmp = (int) var37.f;
if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000))) if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000)))
tmp = 0x7fffffff; tmp = 0x7fffffff;
var35.i = tmp; var35.i = tmp;
@ -2019,7 +1964,7 @@ _backup_volume_orc_process_controlled_int32_1ch (OrcExecutor * ORC_RESTRICT ex)
/* 0: loadl */ /* 0: loadl */
var33 = ptr0[i]; var33 = ptr0[i];
/* 1: convld */ /* 1: convld */
var36.f = var33.i; var36.f = (double) var33.i;
/* 2: loadq */ /* 2: loadq */
var34 = ptr4[i]; var34 = ptr4[i];
/* 3: muld */ /* 3: muld */
@ -2035,7 +1980,7 @@ _backup_volume_orc_process_controlled_int32_1ch (OrcExecutor * ORC_RESTRICT ex)
/* 4: convdl */ /* 4: convdl */
{ {
int tmp; int tmp;
tmp = var37.f; tmp = (int) var37.f;
if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000))) if (tmp == 0x80000000 && !(var37.i & ORC_UINT64_C (0x8000000000000000)))
tmp = 0x7fffffff; tmp = 0x7fffffff;
var35.i = tmp; var35.i = tmp;
@ -2051,13 +1996,11 @@ volume_orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2091,9 +2034,7 @@ volume_orc_process_controlled_int32_1ch (gint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2136,7 +2077,7 @@ volume_orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
/* 1: convswl */ /* 1: convswl */
var37.i = var34.i; var37.i = var34.i;
/* 2: convlf */ /* 2: convlf */
var38.f = var37.i; var38.f = (float) var37.i;
/* 3: loadq */ /* 3: loadq */
var35 = ptr4[i]; var35 = ptr4[i];
/* 4: convdf */ /* 4: convdf */
@ -2200,7 +2141,7 @@ _backup_volume_orc_process_controlled_int16_1ch (OrcExecutor * ORC_RESTRICT ex)
/* 1: convswl */ /* 1: convswl */
var37.i = var34.i; var37.i = var34.i;
/* 2: convlf */ /* 2: convlf */
var38.f = var37.i; var38.f = (float) var37.i;
/* 3: loadq */ /* 3: loadq */
var35 = ptr4[i]; var35 = ptr4[i];
/* 4: convdf */ /* 4: convdf */
@ -2242,13 +2183,11 @@ volume_orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2283,16 +2222,14 @@ volume_orc_process_controlled_int16_1ch (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2337,8 +2274,8 @@ volume_orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
var38.x2[0] = var35.x2[0]; var38.x2[0] = var35.x2[0];
var38.x2[1] = var35.x2[1]; var38.x2[1] = var35.x2[1];
/* 2: convlf */ /* 2: convlf */
var39.x2f[0] = var38.x2[0]; var39.x2f[0] = (float) var38.x2[0];
var39.x2f[1] = var38.x2[1]; var39.x2f[1] = (float) var38.x2[1];
/* 3: loadq */ /* 3: loadq */
var36 = ptr4[i]; var36 = ptr4[i];
/* 4: convdf */ /* 4: convdf */
@ -2428,8 +2365,8 @@ _backup_volume_orc_process_controlled_int16_2ch (OrcExecutor * ORC_RESTRICT ex)
var38.x2[0] = var35.x2[0]; var38.x2[0] = var35.x2[0];
var38.x2[1] = var35.x2[1]; var38.x2[1] = var35.x2[1];
/* 2: convlf */ /* 2: convlf */
var39.x2f[0] = var38.x2[0]; var39.x2f[0] = (float) var38.x2[0];
var39.x2f[1] = var38.x2[1]; var39.x2f[1] = (float) var38.x2[1];
/* 3: loadq */ /* 3: loadq */
var36 = ptr4[i]; var36 = ptr4[i];
/* 4: convdf */ /* 4: convdf */
@ -2495,13 +2432,11 @@ volume_orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2540,16 +2475,14 @@ volume_orc_process_controlled_int16_2ch (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T3, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T3, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2596,7 +2529,7 @@ volume_orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
/* 2: convswl */ /* 2: convswl */
var39.i = var38.i; var39.i = var38.i;
/* 3: convlf */ /* 3: convlf */
var40.f = var39.i; var40.f = (float) var39.i;
/* 4: loadq */ /* 4: loadq */
var36 = ptr4[i]; var36 = ptr4[i];
/* 5: convdf */ /* 5: convdf */
@ -2666,7 +2599,7 @@ _backup_volume_orc_process_controlled_int8_1ch (OrcExecutor * ORC_RESTRICT ex)
/* 2: convswl */ /* 2: convswl */
var39.i = var38.i; var39.i = var38.i;
/* 3: convlf */ /* 3: convlf */
var40.f = var39.i; var40.f = (float) var39.i;
/* 4: loadq */ /* 4: loadq */
var36 = ptr4[i]; var36 = ptr4[i];
/* 5: convdf */ /* 5: convdf */
@ -2710,13 +2643,11 @@ volume_orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -2757,16 +2688,14 @@ volume_orc_process_controlled_int8_1ch (gint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convlw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1, orc_program_append_2 (p, "convlw", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2816,8 +2745,8 @@ volume_orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
var39.x2[0] = var38.x2[0]; var39.x2[0] = var38.x2[0];
var39.x2[1] = var38.x2[1]; var39.x2[1] = var38.x2[1];
/* 3: convlf */ /* 3: convlf */
var40.x2f[0] = var39.x2[0]; var40.x2f[0] = (float) var39.x2[0];
var40.x2f[1] = var39.x2[1]; var40.x2f[1] = (float) var39.x2[1];
/* 4: loadq */ /* 4: loadq */
var36 = ptr4[i]; var36 = ptr4[i];
/* 5: convdf */ /* 5: convdf */
@ -2915,8 +2844,8 @@ _backup_volume_orc_process_controlled_int8_2ch (OrcExecutor * ORC_RESTRICT ex)
var39.x2[0] = var38.x2[0]; var39.x2[0] = var38.x2[0];
var39.x2[1] = var38.x2[1]; var39.x2[1] = var38.x2[1];
/* 3: convlf */ /* 3: convlf */
var40.x2f[0] = var39.x2[0]; var40.x2f[0] = (float) var39.x2[0];
var40.x2f[1] = var39.x2[1]; var40.x2f[1] = (float) var39.x2[1];
/* 4: loadq */ /* 4: loadq */
var36 = ptr4[i]; var36 = ptr4[i];
/* 5: convdf */ /* 5: convdf */
@ -2985,13 +2914,11 @@ volume_orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
const gdouble * ORC_RESTRICT s1, int n) const gdouble * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -3035,16 +2962,14 @@ volume_orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convlw", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1, orc_program_append_2 (p, "convlw", 1, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssswb", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssswb", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstvolumeorc.orc */ /* autogenerated from gstvolumeorc.orc */
#ifndef _GSTVOLUMEORC_H_ #pragma once
#define _GSTVOLUMEORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -103,5 +104,3 @@ void volume_orc_process_controlled_int8_2ch (gint8 * ORC_RESTRICT d1, const gdou
} }
#endif #endif
#endif

View File

@ -28,7 +28,7 @@ else
endif endif
glib_req = '>= 2.64.0' glib_req = '>= 2.64.0'
orc_req = '>= 0.4.24' orc_req = '>= 0.4.34'
if gst_version_is_stable if gst_version_is_stable
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor) gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -134,6 +137,7 @@ void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -169,6 +173,8 @@ void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -251,20 +257,17 @@ audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, int n) const gint16 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 4, 4, 12, 2, 2, 54, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 4, 4, 12, 2, 2,
195, 0, 4, 4, 2, 0, 195, 0, 4, 4, 2, 0,
}; };
@ -286,9 +289,7 @@ audiopanoramam_orc_process_s16_ch1_none (gint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -377,20 +378,17 @@ audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, int n) const gfloat * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 8, 8, 12, 4, 4, 50, 95, 99, 104, 49, 95, 110, 111, 110, 101, 11, 8, 8, 12, 4, 4,
194, 0, 4, 4, 2, 0, 194, 0, 4, 4, 2, 0,
}; };
@ -412,9 +410,7 @@ audiopanoramam_orc_process_f32_ch1_none (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -489,20 +485,17 @@ audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, int n) const gint16 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 4, 4, 12, 4, 4, 54, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 4, 4, 12, 4, 4,
21, 1, 79, 0, 4, 2, 0, 21, 1, 79, 0, 4, 2, 0,
}; };
@ -524,9 +517,7 @@ audiopanoramam_orc_process_s16_ch2_none (gint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -601,20 +592,17 @@ audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, int n) const gfloat * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 39, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 8, 8, 12, 8, 8, 50, 95, 99, 104, 50, 95, 110, 111, 110, 101, 11, 8, 8, 12, 8, 8,
21, 1, 112, 0, 4, 2, 0, 21, 1, 112, 0, 4, 2, 0,
}; };
@ -636,9 +624,7 @@ audiopanoramam_orc_process_f32_ch2_none (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -687,7 +673,7 @@ audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
/* 1: convswl */ /* 1: convswl */
var39.i = var35.i; var39.i = var35.i;
/* 2: convlf */ /* 2: convlf */
var40.f = var39.i; var40.f = (float) var39.i;
/* 4: mulf */ /* 4: mulf */
{ {
orc_union32 _src1; orc_union32 _src1;
@ -772,7 +758,7 @@ _backup_audiopanoramam_orc_process_s16_ch1_psy (OrcExecutor * ORC_RESTRICT ex)
/* 1: convswl */ /* 1: convswl */
var39.i = var35.i; var39.i = var35.i;
/* 2: convlf */ /* 2: convlf */
var40.f = var39.i; var40.f = (float) var39.i;
/* 4: mulf */ /* 4: mulf */
{ {
orc_union32 _src1; orc_union32 _src1;
@ -829,20 +815,17 @@ audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 49, 95, 112, 115, 121, 11, 4, 4, 12, 2, 2, 17, 54, 95, 99, 104, 49, 95, 112, 115, 121, 11, 4, 4, 12, 2, 2, 17,
4, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 211, 33, 33, 202, 4, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 211, 33, 33, 202,
34, 33, 25, 202, 33, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 34, 33, 25, 202, 33, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
@ -876,16 +859,14 @@ audiopanoramam_orc_process_s16_ch1_psy (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1040,20 +1021,17 @@ audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 38, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 49, 95, 112, 115, 121, 11, 8, 8, 12, 4, 4, 17, 50, 95, 99, 104, 49, 95, 112, 115, 121, 11, 8, 8, 12, 4, 4, 17,
4, 17, 4, 20, 4, 20, 4, 202, 33, 4, 25, 202, 32, 4, 24, 194, 4, 17, 4, 20, 4, 20, 4, 202, 33, 4, 25, 202, 32, 4, 24, 194,
0, 32, 33, 2, 0, 0, 32, 33, 2, 0,
@ -1084,9 +1062,7 @@ audiopanoramam_orc_process_f32_ch1_psy (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1149,8 +1125,8 @@ audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
var40.x2[0] = var36.x2[0]; var40.x2[0] = var36.x2[0];
var40.x2[1] = var36.x2[1]; var40.x2[1] = var36.x2[1];
/* 2: convlf */ /* 2: convlf */
var41.x2f[0] = var40.x2[0]; var41.x2f[0] = (float) var40.x2[0];
var41.x2f[1] = var40.x2[1]; var41.x2f[1] = (float) var40.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -1262,8 +1238,8 @@ _backup_audiopanoramam_orc_process_s16_ch2_psy_right (OrcExecutor *
var40.x2[0] = var36.x2[0]; var40.x2[0] = var36.x2[0];
var40.x2[1] = var36.x2[1]; var40.x2[1] = var36.x2[1];
/* 2: convlf */ /* 2: convlf */
var41.x2f[0] = var40.x2[0]; var41.x2f[0] = (float) var40.x2[0];
var41.x2f[1] = var40.x2[1]; var41.x2f[1] = (float) var40.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -1342,20 +1318,17 @@ audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11, 54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20,
4, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 4, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34,
@ -1383,10 +1356,10 @@ audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T2, ORC_VAR_P2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
@ -1397,16 +1370,14 @@ audiopanoramam_orc_process_s16_ch2_psy_right (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1469,8 +1440,8 @@ audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
var40.x2[0] = var36.x2[0]; var40.x2[0] = var36.x2[0];
var40.x2[1] = var36.x2[1]; var40.x2[1] = var36.x2[1];
/* 2: convlf */ /* 2: convlf */
var41.x2f[0] = var40.x2[0]; var41.x2f[0] = (float) var40.x2[0];
var41.x2f[1] = var40.x2[1]; var41.x2f[1] = (float) var40.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -1582,8 +1553,8 @@ _backup_audiopanoramam_orc_process_s16_ch2_psy_left (OrcExecutor *
var40.x2[0] = var36.x2[0]; var40.x2[0] = var36.x2[0];
var40.x2[1] = var36.x2[1]; var40.x2[1] = var36.x2[1];
/* 2: convlf */ /* 2: convlf */
var41.x2f[0] = var40.x2[0]; var41.x2f[0] = (float) var40.x2[0];
var41.x2f[1] = var40.x2[1]; var41.x2f[1] = (float) var40.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -1662,20 +1633,17 @@ audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, float p2, int n) const gint16 * ORC_RESTRICT s1, float p1, float p2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 4, 54, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 4,
4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4, 4, 12, 4, 4, 17, 4, 17, 4, 20, 8, 20, 4, 20, 4, 20, 4,
21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 35, 32, 21, 1, 153, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 35, 32,
@ -1703,10 +1671,10 @@ audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T4, ORC_VAR_T1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T4, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T4, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P2, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T4, ORC_VAR_T4, ORC_VAR_P2,
@ -1717,16 +1685,14 @@ audiopanoramam_orc_process_s16_ch2_psy_left (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1932,20 +1898,17 @@ audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11, 50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 114, 105, 103, 104, 116, 11,
8, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 8, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192,
32, 4, 193, 33, 4, 202, 34, 32, 25, 202, 32, 32, 24, 200, 33, 34, 32, 4, 193, 33, 4, 202, 34, 32, 25, 202, 32, 32, 24, 200, 33, 34,
@ -1967,10 +1930,10 @@ audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
orc_program_add_temporary (p, 4, "t2"); orc_program_add_temporary (p, 4, "t2");
orc_program_add_temporary (p, 4, "t3"); orc_program_add_temporary (p, 4, "t3");
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P2, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_P2,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
@ -1984,9 +1947,7 @@ audiopanoramam_orc_process_f32_ch2_psy_right (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2192,20 +2153,17 @@ audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, float p2, int n) const gfloat * ORC_RESTRICT s1, float p1, float p2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 8, 50, 95, 99, 104, 50, 95, 112, 115, 121, 95, 108, 101, 102, 116, 11, 8,
8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 32, 8, 12, 8, 8, 17, 4, 17, 4, 20, 4, 20, 4, 20, 4, 192, 32,
4, 193, 34, 4, 202, 33, 34, 24, 202, 34, 34, 25, 200, 32, 33, 32, 4, 193, 34, 4, 202, 33, 34, 24, 202, 34, 34, 25, 200, 32, 33, 32,
@ -2227,10 +2185,10 @@ audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
orc_program_add_temporary (p, 4, "t2"); orc_program_add_temporary (p, 4, "t2");
orc_program_add_temporary (p, 4, "t3"); orc_program_add_temporary (p, 4, "t3");
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_S1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T3, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P2, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P2,
@ -2244,9 +2202,7 @@ audiopanoramam_orc_process_f32_ch2_psy_left (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2301,7 +2257,7 @@ audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
/* 1: convswl */ /* 1: convswl */
var38.i = var35.i; var38.i = var35.i;
/* 2: convlf */ /* 2: convlf */
var39.f = var38.i; var39.f = (float) var38.i;
/* 4: mulf */ /* 4: mulf */
{ {
orc_union32 _src1; orc_union32 _src1;
@ -2373,7 +2329,7 @@ _backup_audiopanoramam_orc_process_s16_ch1_sim_right (OrcExecutor *
/* 1: convswl */ /* 1: convswl */
var38.i = var35.i; var38.i = var35.i;
/* 2: convlf */ /* 2: convlf */
var39.f = var38.i; var39.f = (float) var38.i;
/* 4: mulf */ /* 4: mulf */
{ {
orc_union32 _src1; orc_union32 _src1;
@ -2420,20 +2376,17 @@ audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, int n) const gint16 * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, 54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
4, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4, 4, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 33, 4,
211, 33, 33, 202, 34, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 211, 33, 33, 202, 34, 33, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32,
@ -2464,16 +2417,14 @@ audiopanoramam_orc_process_s16_ch1_sim_right (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2523,7 +2474,7 @@ audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
/* 1: convswl */ /* 1: convswl */
var38.i = var35.i; var38.i = var35.i;
/* 2: convlf */ /* 2: convlf */
var39.f = var38.i; var39.f = (float) var38.i;
/* 4: mulf */ /* 4: mulf */
{ {
orc_union32 _src1; orc_union32 _src1;
@ -2595,7 +2546,7 @@ _backup_audiopanoramam_orc_process_s16_ch1_sim_left (OrcExecutor *
/* 1: convswl */ /* 1: convswl */
var38.i = var35.i; var38.i = var35.i;
/* 2: convlf */ /* 2: convlf */
var39.f = var38.i; var39.f = (float) var38.i;
/* 4: mulf */ /* 4: mulf */
{ {
orc_union32 _src1; orc_union32 _src1;
@ -2642,20 +2593,17 @@ audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, int n) const gint16 * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4, 54, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 34, 4, 211, 4, 12, 2, 2, 17, 4, 20, 8, 20, 4, 20, 4, 153, 34, 4, 211,
34, 34, 202, 33, 34, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21, 34, 34, 202, 33, 34, 24, 194, 32, 33, 34, 21, 1, 210, 32, 32, 21,
@ -2686,16 +2634,14 @@ audiopanoramam_orc_process_s16_ch1_sim_left (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -2748,8 +2694,8 @@ audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
var38.x2[0] = var35.x2[0]; var38.x2[0] = var35.x2[0];
var38.x2[1] = var35.x2[1]; var38.x2[1] = var35.x2[1];
/* 2: convlf */ /* 2: convlf */
var39.x2f[0] = var38.x2[0]; var39.x2f[0] = (float) var38.x2[0];
var39.x2f[1] = var38.x2[1]; var39.x2f[1] = (float) var38.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -2836,8 +2782,8 @@ _backup_audiopanoramam_orc_process_s16_ch2_sim_right (OrcExecutor *
var38.x2[0] = var35.x2[0]; var38.x2[0] = var35.x2[0];
var38.x2[1] = var35.x2[1]; var38.x2[1] = var35.x2[1];
/* 2: convlf */ /* 2: convlf */
var39.x2f[0] = var38.x2[0]; var39.x2f[0] = (float) var38.x2[0];
var39.x2f[1] = var38.x2[1]; var39.x2f[1] = (float) var38.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -2896,20 +2842,17 @@ audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, int n) const gint16 * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, 54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
4, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 4, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153,
32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 34, 34, 32, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 34, 34,
@ -2935,26 +2878,24 @@ audiopanoramam_orc_process_s16_ch2_sim_right (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T3, ORC_VAR_T3, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3007,8 +2948,8 @@ audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
var38.x2[0] = var35.x2[0]; var38.x2[0] = var35.x2[0];
var38.x2[1] = var35.x2[1]; var38.x2[1] = var35.x2[1];
/* 2: convlf */ /* 2: convlf */
var39.x2f[0] = var38.x2[0]; var39.x2f[0] = (float) var38.x2[0];
var39.x2f[1] = var38.x2[1]; var39.x2f[1] = (float) var38.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -3095,8 +3036,8 @@ _backup_audiopanoramam_orc_process_s16_ch2_sim_left (OrcExecutor *
var38.x2[0] = var35.x2[0]; var38.x2[0] = var35.x2[0];
var38.x2[1] = var35.x2[1]; var38.x2[1] = var35.x2[1];
/* 2: convlf */ /* 2: convlf */
var39.x2f[0] = var38.x2[0]; var39.x2f[0] = (float) var38.x2[0];
var39.x2f[1] = var38.x2[1]; var39.x2f[1] = (float) var38.x2[1];
/* 3: select0ql */ /* 3: select0ql */
{ {
orc_union64 _src; orc_union64 _src;
@ -3155,20 +3096,17 @@ audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
const gint16 * ORC_RESTRICT s1, float p1, int n) const gint16 * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 115, 49,
49,
54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4, 54, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 4,
4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 32, 4, 12, 4, 4, 17, 4, 20, 8, 20, 4, 20, 4, 21, 1, 153, 32,
4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 33, 33, 24, 4, 21, 1, 211, 32, 32, 192, 33, 32, 193, 34, 32, 202, 33, 33, 24,
@ -3194,26 +3132,24 @@ audiopanoramam_orc_process_s16_ch2_sim_left (gint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convlf", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T2, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T3, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3, orc_program_append_2 (p, "mergelq", 0, ORC_VAR_T1, ORC_VAR_T2, ORC_VAR_T3,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1, orc_program_append_2 (p, "convfl", 1, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convssslw", 1, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3342,20 +3278,17 @@ audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, int n) const gfloat * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, 50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
8, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 112, 32, 4, 202, 33, 8, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 112, 32, 4, 202, 33,
4, 24, 194, 0, 32, 33, 2, 0, 4, 24, 194, 0, 32, 33, 2, 0,
@ -3385,9 +3318,7 @@ audiopanoramam_orc_process_f32_ch1_sim_right (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3516,20 +3447,17 @@ audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, int n) const gfloat * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8, 50, 95, 99, 104, 49, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 202, 32, 4, 24, 112, 33, 8, 12, 4, 4, 17, 4, 20, 4, 20, 4, 202, 32, 4, 24, 112, 33,
4, 194, 0, 32, 33, 2, 0, 4, 194, 0, 32, 33, 2, 0,
@ -3559,9 +3487,7 @@ audiopanoramam_orc_process_f32_ch1_sim_left (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3712,20 +3638,17 @@ audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, int n) const gfloat * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 44, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11, 50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 114, 105, 103, 104, 116, 11,
8, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 8, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33,
4, 202, 33, 33, 24, 194, 0, 32, 33, 2, 0, 4, 202, 33, 33, 24, 194, 0, 32, 33, 2, 0,
@ -3744,10 +3667,10 @@ audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
orc_program_add_temporary (p, 4, "t1"); orc_program_add_temporary (p, 4, "t1");
orc_program_add_temporary (p, 4, "t2"); orc_program_add_temporary (p, 4, "t2");
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
@ -3757,9 +3680,7 @@ audiopanoramam_orc_process_f32_ch2_sim_right (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -3910,20 +3831,17 @@ audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
const gfloat * ORC_RESTRICT s1, float p1, int n) const gfloat * ORC_RESTRICT s1, float p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97, 1, 9, 43, 97, 117, 100, 105, 111, 112, 97, 110, 111, 114, 97, 109, 97,
109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 109, 95, 111, 114, 99, 95, 112, 114, 111, 99, 101, 115, 115, 95, 102, 51,
51,
50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8, 50, 95, 99, 104, 50, 95, 115, 105, 109, 95, 108, 101, 102, 116, 11, 8,
8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 4, 8, 12, 8, 8, 17, 4, 20, 4, 20, 4, 192, 32, 4, 193, 33, 4,
202, 32, 32, 24, 194, 0, 32, 33, 2, 0, 202, 32, 32, 24, 194, 0, 32, 33, 2, 0,
@ -3942,10 +3860,10 @@ audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
orc_program_add_temporary (p, 4, "t1"); orc_program_add_temporary (p, 4, "t1");
orc_program_add_temporary (p, 4, "t2"); orc_program_add_temporary (p, 4, "t2");
orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, orc_program_append_2 (p, "select0ql", 0, ORC_VAR_T1, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, orc_program_append_2 (p, "select1ql", 0, ORC_VAR_T2, ORC_VAR_S1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1, orc_program_append_2 (p, "mulf", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_P1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2, orc_program_append_2 (p, "mergelq", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_T2,
@ -3955,9 +3873,7 @@ audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from audiopanoramaorc.orc */ /* autogenerated from audiopanoramaorc.orc */
#ifndef _AUDIOPANORAMAORC_H_ #pragma once
#define _AUDIOPANORAMAORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -103,5 +104,3 @@ void audiopanoramam_orc_process_f32_ch2_sim_left (gfloat * ORC_RESTRICT d1, cons
} }
#endif #endif
#endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -117,6 +120,7 @@ void deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -152,6 +156,8 @@ void deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -352,13 +358,11 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, int n) const guint8 * ORC_RESTRICT s4, const guint8 * ORC_RESTRICT s5, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -418,16 +422,14 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -640,20 +642,17 @@ deinterlace_line_vfir_16bits (guint16 * ORC_RESTRICT d1,
const guint16 * ORC_RESTRICT s5, int n) const guint16 * ORC_RESTRICT s5, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 28, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108, 1, 9, 28, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
105, 110, 101, 95, 118, 102, 105, 114, 95, 49, 54, 98, 105, 116, 115, 105, 110, 101, 95, 118, 102, 105, 114, 95, 49, 54, 98, 105, 116, 115, 11,
11,
2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2, 2, 12, 2,
2, 14, 4, 2, 0, 0, 0, 14, 4, 1, 0, 0, 0, 14, 4, 4, 2, 14, 4, 2, 0, 0, 0, 14, 4, 1, 0, 0, 0, 14, 4, 4,
0, 0, 0, 14, 4, 3, 0, 0, 0, 20, 4, 20, 4, 20, 4, 154, 0, 0, 0, 14, 4, 3, 0, 0, 0, 20, 4, 20, 4, 20, 4, 154,
@ -708,16 +707,14 @@ deinterlace_line_vfir_16bits (guint16 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4, orc_program_append_2 (p, "shrsl", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C4,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "convsuslw", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -804,13 +801,11 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n) const guint8 * ORC_RESTRICT s1, const guint8 * ORC_RESTRICT s2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -836,9 +831,7 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -922,31 +915,26 @@ deinterlace_line_linear_16bits (guint16 * ORC_RESTRICT d1,
const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n) const guint16 * ORC_RESTRICT s1, const guint16 * ORC_RESTRICT s2, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 9, 30, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108, 1, 9, 30, 100, 101, 105, 110, 116, 101, 114, 108, 97, 99, 101, 95, 108,
105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 95, 49, 54, 98, 105, 105, 110, 101, 95, 108, 105, 110, 101, 97, 114, 95, 49, 54, 98, 105, 116,
116,
115, 11, 2, 2, 12, 2, 2, 12, 2, 2, 76, 0, 4, 5, 2, 0, 115, 11, 2, 2, 12, 2, 2, 12, 2, 2, 76, 0, 4, 5, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_deinterlace_line_linear_16bits);
_backup_deinterlace_line_linear_16bits);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "deinterlace_line_linear_16bits"); orc_program_set_name (p, "deinterlace_line_linear_16bits");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_deinterlace_line_linear_16bits);
_backup_deinterlace_line_linear_16bits);
orc_program_add_destination (p, 2, "d1"); orc_program_add_destination (p, 2, "d1");
orc_program_add_source (p, 2, "s1"); orc_program_add_source (p, 2, "s1");
orc_program_add_source (p, 2, "s2"); orc_program_add_source (p, 2, "s2");
@ -958,9 +946,7 @@ deinterlace_line_linear_16bits (guint16 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1118,13 +1104,11 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
const guint8 * ORC_RESTRICT s3, int n) const guint8 * ORC_RESTRICT s3, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1138,13 +1122,11 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
16, 94, 32, 32, 16, 160, 0, 32, 2, 0, 16, 94, 32, 32, 16, 160, 0, 32, 2, 0,
}; };
p = orc_program_new_from_static_bytecode (bc); p = orc_program_new_from_static_bytecode (bc);
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_deinterlace_line_linear_blend);
_backup_deinterlace_line_linear_blend);
#else #else
p = orc_program_new (); p = orc_program_new ();
orc_program_set_name (p, "deinterlace_line_linear_blend"); orc_program_set_name (p, "deinterlace_line_linear_blend");
orc_program_set_backup_function (p, orc_program_set_backup_function (p, _backup_deinterlace_line_linear_blend);
_backup_deinterlace_line_linear_blend);
orc_program_add_destination (p, 1, "d1"); orc_program_add_destination (p, 1, "d1");
orc_program_add_source (p, 1, "s1"); orc_program_add_source (p, 1, "s1");
orc_program_add_source (p, 1, "s2"); orc_program_add_source (p, 1, "s2");
@ -1170,16 +1152,14 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1, orc_program_append_2 (p, "shrsw", 0, ORC_VAR_T1, ORC_VAR_T1, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1416,13 +1396,11 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
int p1, int n) int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1503,12 +1481,12 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "minub", 0, ORC_VAR_T11, ORC_VAR_T4, ORC_VAR_T3, orc_program_append_2 (p, "minub", 0, ORC_VAR_T11, ORC_VAR_T4, ORC_VAR_T3,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "addusb", 0, ORC_VAR_T12, ORC_VAR_T12, orc_program_append_2 (p, "addusb", 0, ORC_VAR_T12, ORC_VAR_T12, ORC_VAR_P1,
ORC_VAR_P1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "subusb", 0, ORC_VAR_T11, ORC_VAR_T11, orc_program_append_2 (p, "subusb", 0, ORC_VAR_T11, ORC_VAR_T11, ORC_VAR_P1,
ORC_VAR_P1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "minub", 0, ORC_VAR_T10, ORC_VAR_T10, orc_program_append_2 (p, "minub", 0, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T12,
ORC_VAR_T12, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "maxub", 0, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_T11, orc_program_append_2 (p, "maxub", 0, ORC_VAR_D1, ORC_VAR_T10, ORC_VAR_T11,
ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
@ -1516,9 +1494,7 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -55,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -99,6 +102,7 @@ void video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -134,6 +138,8 @@ void video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -194,13 +200,11 @@ void
video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -225,9 +229,7 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from gstvideoboxorc.orc */ /* autogenerated from gstvideoboxorc.orc */
#ifndef _GSTVIDEOBOXORC_H_ #pragma once
#define _GSTVIDEOBOXORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -86,5 +87,3 @@ void video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n);
} }
#endif #endif
#endif

View File

@ -67,6 +67,7 @@ typedef union
orc_int32 x2[2]; orc_int32 x2[2];
float x2f[2]; float x2f[2];
orc_int16 x4[4]; orc_int16 x4[4];
orc_int8 x8[8];
} orc_union64; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
@ -74,6 +75,8 @@ typedef union
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -111,6 +114,7 @@ void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
/* begin Orc C target preamble */ /* begin Orc C target preamble */
#include <math.h>
#define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x))) #define ORC_CLAMP(x,a,b) ((x)<(a) ? (a) : ((x)>(b) ? (b) : (x)))
#define ORC_ABS(a) ((a)<0 ? -(a) : (a)) #define ORC_ABS(a) ((a)<0 ? -(a) : (a))
#define ORC_MIN(a,b) ((a)<(b) ? (a) : (b)) #define ORC_MIN(a,b) ((a)<(b) ? (a) : (b))
@ -146,6 +150,8 @@ void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -206,13 +212,11 @@ void
video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -237,9 +241,7 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n)
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -312,13 +314,11 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
const guint32 * ORC_RESTRICT s1, int n) const guint32 * ORC_RESTRICT s1, int n)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -343,9 +343,7 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -479,13 +477,11 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -524,16 +520,14 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1, orc_program_append_2 (p, "shruw", 0, ORC_VAR_T2, ORC_VAR_T2, ORC_VAR_C1,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, orc_program_append_2 (p, "convsuswb", 0, ORC_VAR_D1, ORC_VAR_T2, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
#endif #endif
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -647,18 +641,10 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff; var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff; var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
/* 13: div255w */ /* 13: div255w */
var53.x4[0] = var53.x4[0] = (((orc_uint16) var52.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) + var53.x4[1] = (((orc_uint16) var52.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8; var53.x4[2] = (((orc_uint16) var52.x4[2]) * 0x8081u) >> 23;
var53.x4[1] = var53.x4[3] = (((orc_uint16) var52.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
(((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
var53.x4[2] =
((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
(((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
var53.x4[3] =
((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
(((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
/* 14: addw */ /* 14: addw */
var54.x4[0] = var50.x4[0] + var53.x4[0]; var54.x4[0] = var50.x4[0] + var53.x4[0];
var54.x4[1] = var50.x4[1] + var53.x4[1]; var54.x4[1] = var50.x4[1] + var53.x4[1];
@ -773,18 +759,10 @@ _backup_video_mixer_orc_blend_argb (OrcExecutor * ORC_RESTRICT ex)
var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff; var52.x4[2] = (var51.x4[2] * var47.x4[2]) & 0xffff;
var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff; var52.x4[3] = (var51.x4[3] * var47.x4[3]) & 0xffff;
/* 13: div255w */ /* 13: div255w */
var53.x4[0] = var53.x4[0] = (((orc_uint16) var52.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var52.x4[0] + 128)) + var53.x4[1] = (((orc_uint16) var52.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var52.x4[0] + 128)) >> 8))) >> 8; var53.x4[2] = (((orc_uint16) var52.x4[2]) * 0x8081u) >> 23;
var53.x4[1] = var53.x4[3] = (((orc_uint16) var52.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var52.x4[1] + 128)) +
(((orc_uint16) (var52.x4[1] + 128)) >> 8))) >> 8;
var53.x4[2] =
((orc_uint16) (((orc_uint16) (var52.x4[2] + 128)) +
(((orc_uint16) (var52.x4[2] + 128)) >> 8))) >> 8;
var53.x4[3] =
((orc_uint16) (((orc_uint16) (var52.x4[3] + 128)) +
(((orc_uint16) (var52.x4[3] + 128)) >> 8))) >> 8;
/* 14: addw */ /* 14: addw */
var54.x4[0] = var50.x4[0] + var53.x4[0]; var54.x4[0] = var50.x4[0] + var53.x4[0];
var54.x4[1] = var50.x4[1] + var53.x4[1]; var54.x4[1] = var50.x4[1] + var53.x4[1];
@ -809,13 +787,11 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -889,9 +865,7 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1008,18 +982,10 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff; var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff;
var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff; var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff;
/* 14: div255w */ /* 14: div255w */
var55.x4[0] = var55.x4[0] = (((orc_uint16) var54.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var54.x4[0] + 128)) + var55.x4[1] = (((orc_uint16) var54.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var54.x4[0] + 128)) >> 8))) >> 8; var55.x4[2] = (((orc_uint16) var54.x4[2]) * 0x8081u) >> 23;
var55.x4[1] = var55.x4[3] = (((orc_uint16) var54.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var54.x4[1] + 128)) +
(((orc_uint16) (var54.x4[1] + 128)) >> 8))) >> 8;
var55.x4[2] =
((orc_uint16) (((orc_uint16) (var54.x4[2] + 128)) +
(((orc_uint16) (var54.x4[2] + 128)) >> 8))) >> 8;
var55.x4[3] =
((orc_uint16) (((orc_uint16) (var54.x4[3] + 128)) +
(((orc_uint16) (var54.x4[3] + 128)) >> 8))) >> 8;
/* 15: addw */ /* 15: addw */
var56.x4[0] = var52.x4[0] + var55.x4[0]; var56.x4[0] = var52.x4[0] + var55.x4[0];
var56.x4[1] = var52.x4[1] + var55.x4[1]; var56.x4[1] = var52.x4[1] + var55.x4[1];
@ -1137,18 +1103,10 @@ _backup_video_mixer_orc_blend_bgra (OrcExecutor * ORC_RESTRICT ex)
var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff; var54.x4[2] = (var53.x4[2] * var49.x4[2]) & 0xffff;
var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff; var54.x4[3] = (var53.x4[3] * var49.x4[3]) & 0xffff;
/* 14: div255w */ /* 14: div255w */
var55.x4[0] = var55.x4[0] = (((orc_uint16) var54.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var54.x4[0] + 128)) + var55.x4[1] = (((orc_uint16) var54.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var54.x4[0] + 128)) >> 8))) >> 8; var55.x4[2] = (((orc_uint16) var54.x4[2]) * 0x8081u) >> 23;
var55.x4[1] = var55.x4[3] = (((orc_uint16) var54.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var54.x4[1] + 128)) +
(((orc_uint16) (var54.x4[1] + 128)) >> 8))) >> 8;
var55.x4[2] =
((orc_uint16) (((orc_uint16) (var54.x4[2] + 128)) +
(((orc_uint16) (var54.x4[2] + 128)) >> 8))) >> 8;
var55.x4[3] =
((orc_uint16) (((orc_uint16) (var54.x4[3] + 128)) +
(((orc_uint16) (var54.x4[3] + 128)) >> 8))) >> 8;
/* 15: addw */ /* 15: addw */
var56.x4[0] = var52.x4[0] + var55.x4[0]; var56.x4[0] = var52.x4[0] + var55.x4[0];
var56.x4[1] = var52.x4[1] + var55.x4[1]; var56.x4[1] = var52.x4[1] + var55.x4[1];
@ -1173,13 +1131,11 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
@ -1258,9 +1214,7 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1415,18 +1369,10 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff; var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff; var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
/* 19: div255w */ /* 19: div255w */
var62.x4[0] = var62.x4[0] = (((orc_uint16) var61.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) + var62.x4[1] = (((orc_uint16) var61.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8; var62.x4[2] = (((orc_uint16) var61.x4[2]) * 0x8081u) >> 23;
var62.x4[1] = var62.x4[3] = (((orc_uint16) var61.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
(((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
var62.x4[2] =
((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
(((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
var62.x4[3] =
((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
(((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
/* 20: convubw */ /* 20: convubw */
var63.x4[0] = (orc_uint8) var56.x4[0]; var63.x4[0] = (orc_uint8) var56.x4[0];
var63.x4[1] = (orc_uint8) var56.x4[1]; var63.x4[1] = (orc_uint8) var56.x4[1];
@ -1623,18 +1569,10 @@ _backup_video_mixer_orc_overlay_argb (OrcExecutor * ORC_RESTRICT ex)
var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff; var61.x4[2] = (var60.x4[2] * var55.x4[2]) & 0xffff;
var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff; var61.x4[3] = (var60.x4[3] * var55.x4[3]) & 0xffff;
/* 19: div255w */ /* 19: div255w */
var62.x4[0] = var62.x4[0] = (((orc_uint16) var61.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var61.x4[0] + 128)) + var62.x4[1] = (((orc_uint16) var61.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var61.x4[0] + 128)) >> 8))) >> 8; var62.x4[2] = (((orc_uint16) var61.x4[2]) * 0x8081u) >> 23;
var62.x4[1] = var62.x4[3] = (((orc_uint16) var61.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var61.x4[1] + 128)) +
(((orc_uint16) (var61.x4[1] + 128)) >> 8))) >> 8;
var62.x4[2] =
((orc_uint16) (((orc_uint16) (var61.x4[2] + 128)) +
(((orc_uint16) (var61.x4[2] + 128)) >> 8))) >> 8;
var62.x4[3] =
((orc_uint16) (((orc_uint16) (var61.x4[3] + 128)) +
(((orc_uint16) (var61.x4[3] + 128)) >> 8))) >> 8;
/* 20: convubw */ /* 20: convubw */
var63.x4[0] = (orc_uint8) var56.x4[0]; var63.x4[0] = (orc_uint8) var56.x4[0];
var63.x4[1] = (orc_uint8) var56.x4[1]; var63.x4[1] = (orc_uint8) var56.x4[1];
@ -1700,20 +1638,17 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103, 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 97, 114, 103, 98,
98,
11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0, 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 255, 0,
0, 0, 14, 4, 0, 255, 255, 255, 14, 2, 8, 0, 0, 0, 16, 2, 0, 0, 14, 4, 0, 255, 255, 255, 14, 2, 8, 0, 0, 0, 16, 2,
20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8, 20, 4, 20, 2, 20, 1, 20, 8, 20, 8, 20, 8, 20, 4, 20, 8,
@ -1816,9 +1751,7 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;
@ -1979,18 +1912,10 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff; var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff; var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
/* 21: div255w */ /* 21: div255w */
var65.x4[0] = var65.x4[0] = (((orc_uint16) var64.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) + var65.x4[1] = (((orc_uint16) var64.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8; var65.x4[2] = (((orc_uint16) var64.x4[2]) * 0x8081u) >> 23;
var65.x4[1] = var65.x4[3] = (((orc_uint16) var64.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
(((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
var65.x4[2] =
((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
(((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
var65.x4[3] =
((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
(((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
/* 22: convubw */ /* 22: convubw */
var66.x4[0] = (orc_uint8) var58.x4[0]; var66.x4[0] = (orc_uint8) var58.x4[0];
var66.x4[1] = (orc_uint8) var58.x4[1]; var66.x4[1] = (orc_uint8) var58.x4[1];
@ -2193,18 +2118,10 @@ _backup_video_mixer_orc_overlay_bgra (OrcExecutor * ORC_RESTRICT ex)
var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff; var64.x4[2] = (var63.x4[2] * var57.x4[2]) & 0xffff;
var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff; var64.x4[3] = (var63.x4[3] * var57.x4[3]) & 0xffff;
/* 21: div255w */ /* 21: div255w */
var65.x4[0] = var65.x4[0] = (((orc_uint16) var64.x4[0]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var64.x4[0] + 128)) + var65.x4[1] = (((orc_uint16) var64.x4[1]) * 0x8081u) >> 23;
(((orc_uint16) (var64.x4[0] + 128)) >> 8))) >> 8; var65.x4[2] = (((orc_uint16) var64.x4[2]) * 0x8081u) >> 23;
var65.x4[1] = var65.x4[3] = (((orc_uint16) var64.x4[3]) * 0x8081u) >> 23;
((orc_uint16) (((orc_uint16) (var64.x4[1] + 128)) +
(((orc_uint16) (var64.x4[1] + 128)) >> 8))) >> 8;
var65.x4[2] =
((orc_uint16) (((orc_uint16) (var64.x4[2] + 128)) +
(((orc_uint16) (var64.x4[2] + 128)) >> 8))) >> 8;
var65.x4[3] =
((orc_uint16) (((orc_uint16) (var64.x4[3] + 128)) +
(((orc_uint16) (var64.x4[3] + 128)) >> 8))) >> 8;
/* 22: convubw */ /* 22: convubw */
var66.x4[0] = (orc_uint8) var58.x4[0]; var66.x4[0] = (orc_uint8) var58.x4[0];
var66.x4[1] = (orc_uint8) var58.x4[1]; var66.x4[1] = (orc_uint8) var58.x4[1];
@ -2270,20 +2187,17 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m) const guint8 * ORC_RESTRICT s1, int s1_stride, int p1, int n, int m)
{ {
OrcExecutor _ex, *ex = &_ex; OrcExecutor _ex, *ex = &_ex;
static volatile int p_inited = 0; static OrcOnce once = ORC_ONCE_INIT;
static OrcCode *c = 0; OrcCode *c;
void (*func) (OrcExecutor *); OrcExecutorFunc func = NULL;
if (!p_inited) { if (!orc_once_enter (&once, (void **) &c)) {
orc_once_mutex_lock ();
if (!p_inited) {
OrcProgram *p; OrcProgram *p;
#if 1 #if 1
static const orc_uint8 bc[] = { static const orc_uint8 bc[] = {
1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95, 1, 7, 9, 28, 118, 105, 100, 101, 111, 95, 109, 105, 120, 101, 114, 95,
111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114, 111, 114, 99, 95, 111, 118, 101, 114, 108, 97, 121, 95, 98, 103, 114, 97,
97,
11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0, 11, 4, 4, 12, 4, 4, 14, 4, 255, 255, 255, 255, 14, 4, 0, 0,
0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 2, 0, 255, 14, 4, 255, 255, 255, 0, 14, 4, 24, 0, 0, 0, 14, 2,
8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8, 8, 0, 0, 0, 16, 2, 20, 4, 20, 4, 20, 2, 20, 1, 20, 8,
@ -2340,8 +2254,8 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "shruw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C5, orc_program_append_2 (p, "shruw", 2, ORC_VAR_T5, ORC_VAR_T5, ORC_VAR_C5,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1, orc_program_append_2 (p, "convubw", 2, ORC_VAR_T10, ORC_VAR_T1, ORC_VAR_D1,
ORC_VAR_D1, ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T5, orc_program_append_2 (p, "mullw", 2, ORC_VAR_T10, ORC_VAR_T10, ORC_VAR_T5,
ORC_VAR_D1); ORC_VAR_D1);
orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T8, ORC_VAR_C1, ORC_VAR_D1, orc_program_append_2 (p, "loadpl", 0, ORC_VAR_T8, ORC_VAR_C1, ORC_VAR_D1,
@ -2393,9 +2307,7 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride,
orc_program_compile (p); orc_program_compile (p);
c = orc_program_take_code (p); c = orc_program_take_code (p);
orc_program_free (p); orc_program_free (p);
} orc_once_leave (&once, c);
p_inited = TRUE;
orc_once_mutex_unlock ();
} }
ex->arrays[ORC_VAR_A2] = c; ex->arrays[ORC_VAR_A2] = c;
ex->program = 0; ex->program = 0;

View File

@ -1,8 +1,7 @@
/* autogenerated from videomixerorc.orc */ /* autogenerated from videomixerorc.orc */
#ifndef _VIDEOMIXERORC_H_ #pragma once
#define _VIDEOMIXERORC_H_
#include <glib.h> #include <glib.h>
@ -56,13 +55,15 @@ typedef unsigned long orc_uint64;
#endif #endif
typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16; typedef union { orc_int16 i; orc_int8 x2[2]; } orc_union16;
typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32; typedef union { orc_int32 i; float f; orc_int16 x2[2]; orc_int8 x4[4]; } orc_union32;
typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; } orc_union64; typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 x4[4]; orc_int8 x8[8]; } orc_union64;
#endif #endif
#ifndef ORC_RESTRICT #ifndef ORC_RESTRICT
#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L #if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L
#define ORC_RESTRICT restrict #define ORC_RESTRICT restrict
#elif defined(__GNUC__) && __GNUC__ >= 4 #elif defined(__GNUC__) && __GNUC__ >= 4
#define ORC_RESTRICT __restrict__ #define ORC_RESTRICT __restrict__
#elif defined(_MSC_VER)
#define ORC_RESTRICT __restrict
#else #else
#define ORC_RESTRICT #define ORC_RESTRICT
#endif #endif
@ -92,5 +93,3 @@ void video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, cons
} }
#endif #endif
#endif

View File

@ -23,7 +23,7 @@ if have_cxx
endif endif
glib_req = '>= 2.64.0' glib_req = '>= 2.64.0'
orc_req = '>= 0.4.17' orc_req = '>= 0.4.34'
if gst_version_is_stable if gst_version_is_stable
gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor) gst_req = '>= @0@.@1@.0'.format(gst_version_major, gst_version_minor)