int kr_mixer_info_fr_ebml(kr_ebml *ebml, void *st) {
  int res;
  struct kr_mixer_info *actual;

  res = 0;

  if ((ebml == NULL) || (st == NULL)) {
    return -1;
  }

  actual = (struct kr_mixer_info *)st;

  res += kr_ebml2_unpack_element_uint32(ebml, NULL, &actual->period_size);
  res += kr_ebml2_unpack_element_uint32(ebml, NULL, &actual->sample_rate);
  res += kr_ebml2_unpack_element_uint32(ebml, NULL, &actual->inputs);
  res += kr_ebml2_unpack_element_uint32(ebml, NULL, &actual->buses);
  res += kr_ebml2_unpack_element_uint32(ebml, NULL, &actual->outputs);
  res += kr_ebml2_unpack_element_uint64(ebml, NULL, &actual->frames);
  res += kr_ebml2_unpack_element_uint64(ebml, NULL, &actual->timecode);
  res += kr_ebml2_unpack_element_string(ebml, NULL, actual->clock , sizeof(actual->clock));

  return res;
}
static void kr_ebml_to_compositor_rep (kr_ebml2_t *ebml, kr_compositor_t *kr_compositor_rep) {

  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->width);
  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->height);

  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->fps_numerator);
  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->fps_denominator);

  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->sprites);
  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->texts);
  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->vectors);
  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->inputs);
  kr_ebml2_unpack_element_uint32 (ebml, NULL, &kr_compositor_rep->outputs);
  kr_ebml2_unpack_element_uint64 (ebml, NULL, &kr_compositor_rep->frames);

  kr_ebml2_unpack_element_string (ebml, NULL, kr_compositor_rep->background_filename,
                                  sizeof(kr_compositor_rep->background_filename));
}