From a3adbedf9b631554a5d0332805ea81313e5bc76f Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Wed, 20 Feb 2013 02:40:50 +0100 Subject: cinepak: simplify Signed-off-by: Michael Niedermayer --- libavcodec/cinepak.c | 20 +++++++------------- 1 file changed, 7 insertions(+), 13 deletions(-) (limited to 'libavcodec') diff --git a/libavcodec/cinepak.c b/libavcodec/cinepak.c index a78e1f1d0b..a88469a146 100644 --- a/libavcodec/cinepak.c +++ b/libavcodec/cinepak.c @@ -121,11 +121,6 @@ static void cinepak_decode_codebook (cvid_codebook *codebook, *p++ = av_clip_uint8(g); *p++ = av_clip_uint8(b); } - } else { - /* this codebook type indicates either greyscale or - * palettized video, it is already stored as grey rgb24 - * which makes it robust even when the frame is considered - * to be rgb24 */ } } else { p += 12; @@ -189,16 +184,14 @@ static int cinepak_decode_vectors (CinepakContext *s, cvid_strip *strip, if (data >= eod) return AVERROR_INVALIDDATA; - p = strip->v1_codebook[*data++] + 6; + p = strip->v1_codebook[*data++]; if (s->palette_video) { - *(ip3+0) = *(ip3+1) = *(ip2+0) = *(ip2+1) = *p; - p += 3; /* ... + 9 */ - *(ip3+2) = *(ip3+3) = *(ip2+2) = *(ip2+3) = *p; - p -= 9; /* ... + 0 */ - *(ip1+0) = *(ip1+1) = *(ip0+0) = *(ip0+1) = *p; - p += 3; /* ... + 3 */ - *(ip1+2) = *(ip1+3) = *(ip0+2) = *(ip0+3) = *p; + ip3[0] = ip3[1] = ip2[0] = ip2[1] = p[6]; + ip3[2] = ip3[3] = ip2[2] = ip2[3] = p[9]; + ip1[0] = ip1[1] = ip0[0] = ip0[1] = p[0]; + ip1[2] = ip1[3] = ip0[2] = ip0[3] = p[3]; } else { + p += 6; memcpy(ip3 + 0, p, 3); memcpy(ip3 + 3, p, 3); memcpy(ip2 + 0, p, 3); memcpy(ip2 + 3, p, 3); p += 3; /* ... + 9 */ @@ -412,6 +405,7 @@ static av_cold int cinepak_decode_init(AVCodecContext *avctx) s->avctx = avctx; s->width = (avctx->width + 3) & ~3; s->height = (avctx->height + 3) & ~3; + s->sega_film_skip_bytes = -1; /* uninitialized state */ // check for paletted data -- cgit v1.2.3