summaryrefslogtreecommitdiffstats
path: root/audio/filter/af_lavcac3enc.c
diff options
context:
space:
mode:
authorwm4 <wm4@nowhere>2016-06-23 12:07:05 +0200
committerwm4 <wm4@nowhere>2016-06-23 12:07:05 +0200
commit5c74da4503d4c4bf317acec57aa40ce02d5d75ce (patch)
tree5f8ef63771a7a759fa773a2edf0e95ebf1c028c4 /audio/filter/af_lavcac3enc.c
parentc071c30bcd7fa92fa9250093b18514edf25586b2 (diff)
downloadmpv-5c74da4503d4c4bf317acec57aa40ce02d5d75ce.tar.bz2
mpv-5c74da4503d4c4bf317acec57aa40ce02d5d75ce.tar.xz
af_lavcac3enc: implement flushing on seek
There's a lot of data that could have been buffered, and which has to be discarded.
Diffstat (limited to 'audio/filter/af_lavcac3enc.c')
-rw-r--r--audio/filter/af_lavcac3enc.c7
1 files changed, 7 insertions, 0 deletions
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;
}