void compositor_init_audiosource(GF_Compositor *compositor, GF_Node *node) { AudioSourceStack *st; GF_SAFEALLOC(st, AudioSourceStack); gf_sc_audio_setup(&st->input, compositor, node); st->time_handle.UpdateTimeNode = audiosource_update_time; st->time_handle.udta = node; gf_node_set_private(node, st); gf_node_set_callback_function(node, audiosource_traverse); gf_sc_register_time_node(compositor, &st->time_handle); }
void compositor_init_svg_audio(GF_Compositor *compositor, GF_Node *node, Bool slaved_timing) { SVG_audio_stack *stack; GF_SAFEALLOC(stack, SVG_audio_stack) gf_sc_audio_setup(&stack->input, compositor, node); /*force first processing of xlink-href*/ gf_node_dirty_set(node, GF_SG_SVG_XLINK_HREF_DIRTY, GF_FALSE); if (!slaved_timing) gf_smil_set_evaluation_callback(node, svg_audio_smil_evaluate); gf_node_set_private(node, stack); gf_node_set_callback_function(node, svg_traverse_audio); }