Esempio n. 1
0
static void appsrc_need_data_cb(GstAppSrc *gas, guint length, gpointer user_data)
{
  appsrc *as = (appsrc*)user_data;

  caml_c_thread_register();
  caml_acquire_runtime_system();
  caml_callback(as->need_data_cb, Val_int(length));
  caml_release_runtime_system();
  caml_c_thread_unregister();
}
Esempio n. 2
0
static GstFlowReturn appsink_new_sample_cb(GstAppSink *gas, gpointer user_data)
{
  appsink *as = (appsink*)user_data;

  caml_c_thread_register();
  caml_acquire_runtime_system();
  caml_callback(as->new_sample_cb, Val_unit);
  caml_release_runtime_system();
  caml_c_thread_unregister();

  return GST_FLOW_OK;
}
Esempio n. 3
0
// Register the calling thread, so it can call miTLS.  Returns 1 for success, 0 for error.
int FFI_mitls_thread_register(void)
{
    return caml_c_thread_register();
}