static int filter(struct af_instance *af, struct mp_audio *data) { af_drc_t *s = af->priv; if (!data) return 0; if (af_make_writeable(af, data) < 0) { talloc_free(data); return -1; } if(af->data->format == (AF_FORMAT_S16)) { if (s->method == 2) method2_int16(s, data); else method1_int16(s, data); } else if(af->data->format == (AF_FORMAT_FLOAT)) { if (s->method == 2) method2_float(s, data); else method1_float(s, data); } af_add_output_frame(af, data); return 0; }
static int filter_frame(struct af_instance *af, struct mp_audio *data) { if (!data) return 0; if (af_make_writeable(af, data) < 0) { talloc_free(data); return -1; } if (data->format == AF_FORMAT_FLOAT) { play_float(af->priv, data); } else { play_s16(af->priv, data); } af_add_output_frame(af, data); return 0; }