[Bug 759286] videoconvert/videotestsrc get SIGSEGV on 1.6.0 when ORC enabled on ARM A9 platform

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Sun Dec 13 17:51:36 PST 2015


https://bugzilla.gnome.org/show_bug.cgi?id=759286

--- Comment #11 from Mingke Wang <mingke.wang at freescale.com> ---
void
video_orc_pack_Y (guint8 * ORC_RESTRICT d1, const guint8 * ORC_RESTRICT s1, int
n)
{
  OrcExecutor _ex, *ex = &_ex;
  static volatile int p_inited = 0;
  static OrcCode *c = 0;
  void (*func) (OrcExecutor *);

  if (!p_inited) {
    orc_once_mutex_lock ();
    if (!p_inited) {
      OrcProgram *p;

#if 1
      static const orc_uint8 bc[] = {
        1, 9, 16, 118, 105, 100, 101, 111, 95, 111, 114, 99, 95, 112, 97, 99, 
        107, 95, 89, 11, 1, 1, 12, 4, 4, 20, 2, 190, 32, 4, 189, 0, 
        32, 2, 0, 
      };
      p = orc_program_new_from_static_bytecode (bc);
      orc_program_set_backup_function (p, _backup_video_orc_pack_Y);
#else
      p = orc_program_new ();
      orc_program_set_name (p, "video_orc_pack_Y");
      orc_program_set_backup_function (p, _backup_video_orc_pack_Y);
      orc_program_add_destination (p, 1, "d1");
      orc_program_add_source (p, 4, "s1");
      orc_program_add_temporary (p, 2, "t1");

      orc_program_append_2 (p, "select0lw", 0, ORC_VAR_T1, ORC_VAR_S1,
ORC_VAR_D1, ORC_VAR_D1);
      orc_program_append_2 (p, "select1wb", 0, ORC_VAR_D1, ORC_VAR_T1,
ORC_VAR_D1, ORC_VAR_D1);
#endif

      orc_program_compile (p);
      c = orc_program_take_code (p);
      orc_program_free (p);
    }
    p_inited = TRUE;
    orc_once_mutex_unlock ();
  }
  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 = c->exec;
  func (ex);
}
#endif

that's the video_orc_pack_Y in tmp-orc.c and the line 1390 is "func (ex)",
the interest thing is that when I enable the ORC debugging by ORC_DEBUG=5, then
no crash (at least for 3 hours running, I didn't test longer)

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list