Fixes playback of http://samples.mplayerhq.hu/game-formats/la-san/rebelassault2/01P01.SAN
Signed-off-by: Reimar Döffinger <reimar.doeffin...@gmx.de> --- libavcodec/sanm.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/libavcodec/sanm.c b/libavcodec/sanm.c index 2eb7e44..ce3c868 100644 --- a/libavcodec/sanm.c +++ b/libavcodec/sanm.c @@ -283,6 +283,7 @@ typedef struct SANMVideoContext { unsigned int rle_buf_size; int rotate_code; + int prev_codec; long npixels, buf_size; @@ -1129,9 +1130,14 @@ static int process_frame_obj(SANMVideoContext *ctx) switch (codec) { case 1: case 3: + // codec 37 operates on a separate "stream", fixes 01P01.SAN + if (ctx->prev_codec == 37) memcpy(ctx->frm1, ctx->frm0, ctx->frm0_size); + ctx->prev_codec = codec; return old_codec1(ctx, top, left, w, h); break; case 37: + if (ctx->prev_codec == 1) FFSWAP(uint16_t*, ctx->frm0, ctx->frm1); + ctx->prev_codec = codec; return old_codec37(ctx, top, left, w, h); break; case 47: -- 2.7.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel