Browse Source

automatically detect Cinepak data from Sega FILM/CPK files

Originally committed as revision 4525 to svn://svn.ffmpeg.org/ffmpeg/trunk
tags/v0.5
Mike Melanson 20 years ago
parent
commit
af9da83b0e
1 changed files with 10 additions and 1 deletions
  1. +10
    -1
      libavcodec/cinepak.c

+ 10
- 1
libavcodec/cinepak.c View File

@@ -316,13 +316,22 @@ static int cinepak_decode (CinepakContext *s)
uint8_t *eod = (s->data + s->size);
int i, result, strip_size, frame_flags, num_strips;
int y0 = 0;
int encoded_buf_size;
/* if true, Cinepak data is from a Sega FILM/CPK file */
int sega_film_data = 0;

if (s->size < 10)
return -1;

frame_flags = s->data[0];
num_strips = BE_16 (&s->data[8]);
s->data += 10;
encoded_buf_size = BE_16 (&s->data[2]);
if (encoded_buf_size != s->size)
sega_film_data = 1;
if (sega_film_data)
s->data += 12;
else
s->data += 10;

if (num_strips > MAX_STRIPS)
num_strips = MAX_STRIPS;


Loading…
Cancel
Save