コード例 #1
0
static y4m2_output *filter__hook(jd_var *stash, const char *name,
                                 y4m2_output *out) {
  (void)stash;
  jd_var *fp = jd_get_ks(&filters, name, 0);
  if (!fp)
    jd_throw("Unknown filter \"%s\"", name);

  filter *filt = filter__clone(jd_ptr(fp));
  filt->ctx = NULL;
  filt->out = out;
  jd_set_object(jd_unshift(stash, 1), filt, filter__free_cb);
  return y4m2_output_next(filter__callback, filt);
}
コード例 #2
0
ファイル: jd_test.c プロジェクト: AndyA/emitron
int jdt_throws(void (*func)(void *), void *ctx, const char *want, const char *msg, ...) {
  va_list ap;
  int rc = 0;

  scope {
    JD_VAR(caught);
    JD_SV(vwant, want);

    try {
      func(ctx);
    }
    catch(e) {
      jd_assign(caught, e);
    }

    va_start(ap, msg);
    rc = _is(jd_get_ks(caught, "message", 0), vwant, msg, ap);
    va_end(ap);
  }
  return rc;
}
コード例 #3
0
void filter_register(const char *name, filter *f) {
  jd_set_object(jd_get_ks(&filters, name, 1), filter__clone(f), jd_free);
}