diff --git a/gst/deinterlace/tvtime-dist.c b/gst/deinterlace/tvtime-dist.c index a278f750c4..3cd2ba28d8 100644 --- a/gst/deinterlace/tvtime-dist.c +++ b/gst/deinterlace/tvtime-dist.c @@ -326,12 +326,13 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_vfir"); @@ -380,11 +381,14 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, ORC_VAR_D1, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; @@ -394,7 +398,7 @@ deinterlace_line_vfir (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, ex->arrays[ORC_VAR_S4] = (void *) s4; ex->arrays[ORC_VAR_S5] = (void *) s5; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -469,12 +473,13 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_linear"); @@ -487,18 +492,21 @@ deinterlace_line_linear (guint8 * ORC_RESTRICT d1, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; ex->arrays[ORC_VAR_S1] = (void *) s1; ex->arrays[ORC_VAR_S2] = (void *) s2; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -639,12 +647,13 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_linear_blend"); @@ -679,11 +688,14 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, ORC_VAR_D1, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; @@ -691,7 +703,7 @@ deinterlace_line_linear_blend (guint8 * ORC_RESTRICT d1, ex->arrays[ORC_VAR_S2] = (void *) s2; ex->arrays[ORC_VAR_S3] = (void *) s3; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -922,12 +934,13 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "deinterlace_line_greedy"); @@ -1000,11 +1013,14 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; @@ -1014,7 +1030,7 @@ deinterlace_line_greedy (orc_uint8 * ORC_RESTRICT d1, ex->arrays[ORC_VAR_S4] = (void *) s4; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif diff --git a/gst/videobox/gstvideoboxorc-dist.c b/gst/videobox/gstvideoboxorc-dist.c index eb75624548..11c8d8fd87 100644 --- a/gst/videobox/gstvideoboxorc-dist.c +++ b/gst/videobox/gstvideoboxorc-dist.c @@ -182,12 +182,13 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "video_box_orc_splat_u32"); @@ -199,17 +200,20 @@ video_box_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif diff --git a/gst/videomixer/blendorc-dist.c b/gst/videomixer/blendorc-dist.c index c84229290b..5aa006d4f6 100644 --- a/gst/videomixer/blendorc-dist.c +++ b/gst/videomixer/blendorc-dist.c @@ -194,12 +194,13 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "video_mixer_orc_splat_u32"); @@ -211,17 +212,20 @@ video_mixer_orc_splat_u32 (guint32 * ORC_RESTRICT d1, int p1, int n) ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -286,12 +290,13 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_name (p, "video_mixer_orc_memcpy_u32"); @@ -303,17 +308,20 @@ video_mixer_orc_memcpy_u32 (guint32 * ORC_RESTRICT d1, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ex->arrays[ORC_VAR_D1] = d1; ex->arrays[ORC_VAR_S1] = (void *) s1; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -439,12 +447,13 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_2d (p); @@ -475,11 +484,14 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ORC_EXECUTOR_M (ex) = m; @@ -489,7 +501,7 @@ video_mixer_orc_blend_u8 (guint8 * ORC_RESTRICT d1, int d1_stride, ex->params[ORC_VAR_S1] = s1_stride; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -743,12 +755,13 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_2d (p); @@ -803,11 +816,14 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ORC_EXECUTOR_M (ex) = m; @@ -817,7 +833,7 @@ video_mixer_orc_blend_argb (guint8 * ORC_RESTRICT d1, int d1_stride, ex->params[ORC_VAR_S1] = s1_stride; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -1077,12 +1093,13 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_2d (p); @@ -1141,11 +1158,14 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ORC_EXECUTOR_M (ex) = m; @@ -1155,7 +1175,7 @@ video_mixer_orc_blend_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, ex->params[ORC_VAR_S1] = s1_stride; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -1563,12 +1583,13 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_2d (p); @@ -1653,11 +1674,14 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ORC_EXECUTOR_M (ex) = m; @@ -1667,7 +1691,7 @@ video_mixer_orc_overlay_argb (guint8 * ORC_RESTRICT d1, int d1_stride, ex->params[ORC_VAR_S1] = s1_stride; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif @@ -2087,12 +2111,13 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, { OrcExecutor _ex, *ex = &_ex; static volatile int p_inited = 0; - static OrcProgram *p = 0; + static OrcCode *c = 0; void (*func) (OrcExecutor *); if (!p_inited) { orc_once_mutex_lock (); if (!p_inited) { + OrcProgram *p; p = orc_program_new (); orc_program_set_2d (p); @@ -2183,11 +2208,14 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, ORC_VAR_D1); orc_program_compile (p); + c = orc_program_take_code (p); + orc_program_free (p); } p_inited = TRUE; orc_once_mutex_unlock (); } - ex->program = p; + ex->arrays[ORC_VAR_A2] = c; + ex->program = 0; ex->n = n; ORC_EXECUTOR_M (ex) = m; @@ -2197,7 +2225,7 @@ video_mixer_orc_overlay_bgra (guint8 * ORC_RESTRICT d1, int d1_stride, ex->params[ORC_VAR_S1] = s1_stride; ex->params[ORC_VAR_P1] = p1; - func = p->code_exec; + func = c->exec; func (ex); } #endif