|
|
|
@@ -747,8 +747,7 @@ static int apng_encode_frame(AVCodecContext *avctx, const AVFrame *pict, |
|
|
|
|
|
|
|
// Do disposal |
|
|
|
if (last_fctl_chunk.dispose_op != APNG_DISPOSE_OP_PREVIOUS) { |
|
|
|
memcpy(diffFrame->data[0], s->last_frame->data[0], |
|
|
|
s->last_frame->linesize[0] * s->last_frame->height); |
|
|
|
av_frame_copy(diffFrame, s->last_frame); |
|
|
|
|
|
|
|
if (last_fctl_chunk.dispose_op == APNG_DISPOSE_OP_BACKGROUND) { |
|
|
|
for (y = last_fctl_chunk.y_offset; y < last_fctl_chunk.y_offset + last_fctl_chunk.height; ++y) { |
|
|
|
@@ -760,8 +759,7 @@ static int apng_encode_frame(AVCodecContext *avctx, const AVFrame *pict, |
|
|
|
if (!s->prev_frame) |
|
|
|
continue; |
|
|
|
|
|
|
|
memcpy(diffFrame->data[0], s->prev_frame->data[0], |
|
|
|
s->prev_frame->linesize[0] * s->prev_frame->height); |
|
|
|
av_frame_copy(diffFrame, s->prev_frame); |
|
|
|
} |
|
|
|
|
|
|
|
// Do inverse blending |
|
|
|
@@ -923,8 +921,7 @@ static int encode_apng(AVCodecContext *avctx, AVPacket *pkt, |
|
|
|
} |
|
|
|
|
|
|
|
// Do disposal, but not blending |
|
|
|
memcpy(s->prev_frame->data[0], s->last_frame->data[0], |
|
|
|
s->last_frame->linesize[0] * s->last_frame->height); |
|
|
|
av_frame_copy(s->prev_frame, s->last_frame); |
|
|
|
if (s->last_frame_fctl.dispose_op == APNG_DISPOSE_OP_BACKGROUND) { |
|
|
|
uint32_t y; |
|
|
|
uint8_t bpp = (s->bits_per_pixel + 7) >> 3; |
|
|
|
|