mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-11-21 10:55:51 +02:00
Fix decoding of VMDs representing sprites (Last Dynasty, Woodruff).
Fixes issue 101 Originally committed as revision 10552 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
c1f3c63058
commit
ac14047927
@ -68,6 +68,7 @@ typedef struct VmdVideoContext {
|
||||
unsigned char *unpack_buffer;
|
||||
int unpack_buffer_size;
|
||||
|
||||
int x_off, y_off;
|
||||
} VmdVideoContext;
|
||||
|
||||
#define QUEUE_SIZE 0x1000
|
||||
@ -207,6 +208,15 @@ static void vmd_decode(VmdVideoContext *s)
|
||||
frame_width = AV_RL16(&s->buf[10]) - frame_x + 1;
|
||||
frame_height = AV_RL16(&s->buf[12]) - frame_y + 1;
|
||||
|
||||
if ((frame_width == s->avctx->width && frame_height == s->avctx->height) &&
|
||||
(frame_x || frame_y)) {
|
||||
|
||||
s->x_off = frame_x;
|
||||
s->y_off = frame_y;
|
||||
}
|
||||
frame_x -= s->x_off;
|
||||
frame_y -= s->y_off;
|
||||
|
||||
/* if only a certain region will be updated, copy the entire previous
|
||||
* frame before the decode */
|
||||
if (frame_x || frame_y || (frame_width != s->avctx->width) ||
|
||||
|
Loading…
Reference in New Issue
Block a user