X-Git-Url: https://git.sesse.net/?a=blobdiff_plain;f=libavcodec%2Fpngdec.c;h=b8011fea59108961aa98f58d4ecbadc4e5b3504f;hb=033144c0d13c6e83e128f1cd5e1d460be94bace0;hp=60c49758f101589dfed879626136bb846610f82c;hpb=f14fc55969d8662a7572ea5a3bc2fb151ea0d2ed;p=ffmpeg diff --git a/libavcodec/pngdec.c b/libavcodec/pngdec.c index 60c49758f10..b8011fea591 100644 --- a/libavcodec/pngdec.c +++ b/libavcodec/pngdec.c @@ -851,13 +851,13 @@ static int decode_fctl_chunk(AVCodecContext *avctx, PNGDecContext *s, cur_w > s->width - x_offset|| cur_h > s->height - y_offset) return AVERROR_INVALIDDATA; - if (sequence_number == 0 && s->dispose_op == APNG_DISPOSE_OP_PREVIOUS) { + if (sequence_number == 0 && dispose_op == APNG_DISPOSE_OP_PREVIOUS) { // No previous frame to revert to for the first frame // Spec says to just treat it as a APNG_DISPOSE_OP_BACKGROUND - s->dispose_op = APNG_DISPOSE_OP_BACKGROUND; + dispose_op = APNG_DISPOSE_OP_BACKGROUND; } - if (s->dispose_op == APNG_BLEND_OP_OVER && !s->has_trns && ( + if (blend_op == APNG_BLEND_OP_OVER && !s->has_trns && ( avctx->pix_fmt == AV_PIX_FMT_RGB24 || avctx->pix_fmt == AV_PIX_FMT_RGB48BE || avctx->pix_fmt == AV_PIX_FMT_PAL8 || @@ -865,8 +865,8 @@ static int decode_fctl_chunk(AVCodecContext *avctx, PNGDecContext *s, avctx->pix_fmt == AV_PIX_FMT_GRAY16BE || avctx->pix_fmt == AV_PIX_FMT_MONOBLACK )) { - // APNG_DISPOSE_OP_OVER is the same as APNG_DISPOSE_OP_SOURCE when there is no alpha channel - s->dispose_op = APNG_BLEND_OP_SOURCE; + // APNG_BLEND_OP_OVER is the same as APNG_BLEND_OP_SOURCE when there is no alpha channel + blend_op = APNG_BLEND_OP_SOURCE; } s->cur_w = cur_w; @@ -1283,6 +1283,7 @@ static int update_thread_context(AVCodecContext *dst, const AVCodecContext *src) pdst->cur_h = psrc->cur_h; pdst->x_offset = psrc->x_offset; pdst->y_offset = psrc->y_offset; + pdst->has_trns = psrc->has_trns; pdst->dispose_op = psrc->dispose_op;