diff options
Diffstat (limited to 'gst/videobox')
-rw-r--r-- | gst/videobox/gstvideoboxorc-dist.c | 23 | ||||
-rw-r--r-- | gst/videobox/gstvideoboxorc-dist.h | 13 |
2 files changed, 36 insertions, 0 deletions
diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c index 11c8d8fd8..15bbf1def 100644 --- a/gst/videobox/gstvideoboxorc-dist.c +++ b/gst/videobox/gstvideoboxorc-dist.c @@ -79,6 +79,19 @@ typedef union #endif #endif +#ifndef ORC_INTERNAL +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define ORC_INTERNAL __hidden +#elif defined (__GNUC__) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#else +#define ORC_INTERNAL +#endif +#endif + + #ifndef DISABLE_ORC #include <orc/orc.h> #endif @@ -190,6 +203,15 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) if (!p_inited) { OrcProgram *p; +#if 1 + static const orc_uint8 bc[] = { + 1, 9, 23, 118, 105, 100, 101, 111, 95, 98, 111, 120, 95, 111, 114, 99, + 95, 115, 112, 108, 97, 116, 95, 117, 51, 50, 11, 4, 4, 16, 4, 112, + 0, 24, 2, 0, + }; + p = orc_program_new_from_static_bytecode (bc); + orc_program_set_backup_function (p, _backup_video_box_orc_splat_u32); +#else p = orc_program_new (); orc_program_set_name (p, "video_box_orc_splat_u32"); orc_program_set_backup_function (p, _backup_video_box_orc_splat_u32); @@ -198,6 +220,7 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) orc_program_append_2 (p, "copyl", 0, ORC_VAR_D1, ORC_VAR_P1, ORC_VAR_D1, ORC_VAR_D1); +#endif orc_program_compile (p); c = orc_program_take_code (p); diff --git a/gst/videobox/gstvideoboxorc-dist.h b/gst/videobox/gstvideoboxorc-dist.h index 397d3a4ea..23c2d0bac 100644 --- a/gst/videobox/gstvideoboxorc-dist.h +++ b/gst/videobox/gstvideoboxorc-dist.h @@ -67,6 +67,19 @@ typedef union { orc_int64 i; double f; orc_int32 x2[2]; float x2f[2]; orc_int16 #define ORC_RESTRICT #endif #endif + +#ifndef ORC_INTERNAL +#if defined(__SUNPRO_C) && (__SUNPRO_C >= 0x590) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#elif defined(__SUNPRO_C) && (__SUNPRO_C >= 0x550) +#define ORC_INTERNAL __hidden +#elif defined (__GNUC__) +#define ORC_INTERNAL __attribute__((visibility("hidden"))) +#else +#define ORC_INTERNAL +#endif +#endif + void video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n); #ifdef __cplusplus |