From 5c74da4503d4c4bf317acec57aa40ce02d5d75ce Mon Sep 17 00:00:00 2001 From: wm4 Date: Thu, 23 Jun 2016 12:07:05 +0200 Subject: af_lavcac3enc: implement flushing on seek There's a lot of data that could have been buffered, and which has to be discarded. --- audio/filter/af_lavcac3enc.c | 7 +++++++ 1 file changed, 7 insertions(+) (limited to 'audio') diff --git a/audio/filter/af_lavcac3enc.c b/audio/filter/af_lavcac3enc.c index 5a5996f9bd..6eb71643dd 100644 --- a/audio/filter/af_lavcac3enc.c +++ b/audio/filter/af_lavcac3enc.c @@ -170,6 +170,13 @@ static int control(struct af_instance *af, int cmd, void *arg) s->input->samples = 0; return AF_OK; } + case AF_CONTROL_RESET: + if (avcodec_is_open(s->lavc_actx)) + avcodec_flush_buffers(s->lavc_actx); + talloc_free(s->pending); + s->pending = NULL; + s->input->samples = 0; + return AF_OK; } return AF_UNKNOWN; } -- cgit v1.2.3