/** @internal @This processes control commands on a dejitter pipe. * * @param upipe description structure of the pipe * @param command type of command to process * @param args arguments of the command * @return an error code */ static int upipe_dejitter_control(struct upipe *upipe, int command, va_list args) { switch (command) { case UPIPE_REGISTER_REQUEST: { struct urequest *request = va_arg(args, struct urequest *); return upipe_dejitter_alloc_output_proxy(upipe, request); } case UPIPE_UNREGISTER_REQUEST: { struct urequest *request = va_arg(args, struct urequest *); return upipe_dejitter_free_output_proxy(upipe, request); } case UPIPE_GET_FLOW_DEF: { struct uref **p = va_arg(args, struct uref **); return upipe_dejitter_get_flow_def(upipe, p); } case UPIPE_SET_FLOW_DEF: { struct uref *flow_def = va_arg(args, struct uref *); return upipe_dejitter_set_flow_def(upipe, flow_def); } case UPIPE_GET_OUTPUT: { struct upipe **p = va_arg(args, struct upipe **); return upipe_dejitter_get_output(upipe, p); } case UPIPE_SET_OUTPUT: { struct upipe *output = va_arg(args, struct upipe *); return upipe_dejitter_set_output(upipe, output); } default: return UBASE_ERR_UNHANDLED; } }
/** @internal @This processes control commands on a dejitter pipe. * * @param upipe description structure of the pipe * @param command type of command to process * @param args arguments of the command * @return an error code */ static int upipe_dejitter_control(struct upipe *upipe, int command, va_list args) { UBASE_HANDLED_RETURN(upipe_dejitter_control_output(upipe, command, args)); switch (command) { case UPIPE_SET_FLOW_DEF: { struct uref *flow_def = va_arg(args, struct uref *); return upipe_dejitter_set_flow_def(upipe, flow_def); } default: return UBASE_ERR_UNHANDLED; } }