lavc/pngdec: fix updating reference frames for APNG_DISPOSE_OP_BACKGROUND
They should be treated the same as APNG_DISPOSE_OP_NONE. Broken in 5663301560. Fixes #9184. (cherry picked from commit aa726eaed9848bcf6f615d2d9e6e5dd6174ad570) Signed-off-by: Anton Khirnov <anton@khirnov.net>
This commit is contained in:
parent
70405dd7e3
commit
e87e006121
@ -1644,7 +1644,7 @@ static int decode_frame_apng(AVCodecContext *avctx,
|
||||
if (!(avctx->active_thread_type & FF_THREAD_FRAME)) {
|
||||
if (s->dispose_op == APNG_DISPOSE_OP_PREVIOUS) {
|
||||
ff_thread_release_buffer(avctx, &s->picture);
|
||||
} else if (s->dispose_op == APNG_DISPOSE_OP_NONE) {
|
||||
} else {
|
||||
ff_thread_release_buffer(avctx, &s->last_picture);
|
||||
FFSWAP(ThreadFrame, s->picture, s->last_picture);
|
||||
}
|
||||
@ -1693,8 +1693,8 @@ static int update_thread_context(AVCodecContext *dst, const AVCodecContext *src)
|
||||
pdst->hdr_state |= psrc->hdr_state;
|
||||
}
|
||||
|
||||
src_frame = psrc->dispose_op == APNG_DISPOSE_OP_NONE ?
|
||||
&psrc->picture : &psrc->last_picture;
|
||||
src_frame = psrc->dispose_op == APNG_DISPOSE_OP_PREVIOUS ?
|
||||
&psrc->last_picture : &psrc->picture;
|
||||
|
||||
ff_thread_release_buffer(dst, &pdst->last_picture);
|
||||
if (src_frame && src_frame->f->data[0]) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user