diff options
author | wm4 <wm4@nowhere> | 2016-06-23 12:07:05 +0200 |
---|---|---|
committer | wm4 <wm4@nowhere> | 2016-06-23 12:07:05 +0200 |
commit | 5c74da4503d4c4bf317acec57aa40ce02d5d75ce (patch) | |
tree | 5f8ef63771a7a759fa773a2edf0e95ebf1c028c4 /audio/filter/af_lavcac3enc.c | |
parent | c071c30bcd7fa92fa9250093b18514edf25586b2 (diff) | |
download | mpv-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.c | 7 |
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; } |