summaryrefslogtreecommitdiffstats
path: root/audio
diff options
context:
space:
mode:
Diffstat (limited to 'audio')
-rw-r--r--audio/filter/af.c2
-rw-r--r--audio/filter/af_lavrresample.c6
2 files changed, 5 insertions, 3 deletions
diff --git a/audio/filter/af.c b/audio/filter/af.c
index cfe4b401df..edee4bef65 100644
--- a/audio/filter/af.c
+++ b/audio/filter/af.c
@@ -697,8 +697,6 @@ struct mp_audio *af_play(struct af_stream *s, struct mp_audio *data)
struct af_instance *af = s->first;
// Iterate through all filters
do {
- if (data->len <= 0)
- break;
data = af->play(af, data);
af = af->next;
} while (af && data);
diff --git a/audio/filter/af_lavrresample.c b/audio/filter/af_lavrresample.c
index 46428e1f76..860e5a52d3 100644
--- a/audio/filter/af_lavrresample.c
+++ b/audio/filter/af_lavrresample.c
@@ -324,9 +324,13 @@ static struct mp_audio *play(struct af_instance *af, struct mp_audio *data)
reorder_channels(data->audio, s->reorder_in, data->bps, data->nch, in_samples);
#endif
- out_samples = avresample_convert(s->avrctx,
+ if (out_samples) {
+ out_samples = avresample_convert(s->avrctx,
(uint8_t **) &out->audio, out_size, out_samples,
(uint8_t **) &in->audio, in_size, in_samples);
+ if (out_samples < 0)
+ return NULL; // error
+ }
*data = *out;