summaryrefslogtreecommitdiffstats
path: root/libmpcodecs
diff options
context:
space:
mode:
Diffstat (limited to 'libmpcodecs')
-rw-r--r--libmpcodecs/dec_audio.c19
1 files changed, 10 insertions, 9 deletions
diff --git a/libmpcodecs/dec_audio.c b/libmpcodecs/dec_audio.c
index 2b8f6a1005..db010cfd2d 100644
--- a/libmpcodecs/dec_audio.c
+++ b/libmpcodecs/dec_audio.c
@@ -362,6 +362,15 @@ int init_audio_filters(sh_audio_t *sh_audio, int in_samplerate,
static int filter_n_bytes(sh_audio_t *sh, int len)
{
int error = 0;
+ // Filter
+ af_data_t filter_input = {
+ .audio = sh->a_buffer,
+ .len = len,
+ .rate = sh->samplerate,
+ .nch = sh->channels,
+ .format = sh->sample_format
+ };
+ af_data_t *filter_output;
assert(len-1 + sh->audio_out_minsize <= sh->a_buffer_size);
@@ -379,16 +388,8 @@ static int filter_n_bytes(sh_audio_t *sh, int len)
sh->a_buffer_len += ret;
}
- // Filter
- af_data_t filter_input = {
- .audio = sh->a_buffer,
- .len = len,
- .rate = sh->samplerate,
- .nch = sh->channels,
- .format = sh->sample_format
- };
af_fix_parameters(&filter_input);
- af_data_t *filter_output = af_play(sh->afilter, &filter_input);
+ filter_output = af_play(sh->afilter, &filter_input);
if (!filter_output)
return -1;
if (sh->a_out_buffer_size < sh->a_out_buffer_len + filter_output->len) {