diff options
Diffstat (limited to 'audio/filter/af_drc.c')
-rw-r--r-- | audio/filter/af_drc.c | 13 |
1 files changed, 4 insertions, 9 deletions
diff --git a/audio/filter/af_drc.c b/audio/filter/af_drc.c index ba1e10c0a7..e293f7f616 100644 --- a/audio/filter/af_drc.c +++ b/audio/filter/af_drc.c @@ -87,15 +87,10 @@ static int control(struct af_instance* af, int cmd, void* arg) // Sanity check if(!arg) return AF_ERROR; - af->data->rate = ((struct mp_audio*)arg)->rate; - af->data->nch = ((struct mp_audio*)arg)->nch; - - if(((struct mp_audio*)arg)->format == (AF_FORMAT_S16_NE)){ - af->data->format = AF_FORMAT_S16_NE; - af->data->bps = 2; - }else{ - af->data->format = AF_FORMAT_FLOAT_NE; - af->data->bps = 4; + mp_audio_copy_config(af->data, (struct mp_audio*)arg); + + if(((struct mp_audio*)arg)->format != (AF_FORMAT_S16_NE)){ + mp_audio_set_format(af->data, AF_FORMAT_FLOAT_NE); } return af_test_output(af,(struct mp_audio*)arg); case AF_CONTROL_COMMAND_LINE:{ |