lavf/img2dec: Use jpeg constants in jpeg_probe().

This commit is contained in:
Carl Eugen Hoyos 2016-03-06 22:28:22 +01:00
parent aebfbe5c13
commit e356487fda
1 changed files with 37 additions and 36 deletions

View File

@ -33,6 +33,7 @@
#include "avio_internal.h"
#include "internal.h"
#include "img2.h"
#include "libavcodec/mjpeg.h"
#if HAVE_GLOB
/* Locally define as 0 (bitwise-OR no-op) any missing glob options that
@ -687,7 +688,7 @@ static int j2k_probe(AVProbeData *p)
static int jpeg_probe(AVProbeData *p)
{
const uint8_t *b = p->buf;
int i, state = 0xD8;
int i, state = SOI;
if (AV_RB16(b) != 0xFFD8 ||
AV_RB32(b) == 0xFFD8FFF7)
@ -700,57 +701,57 @@ static int jpeg_probe(AVProbeData *p)
continue;
c = b[i + 1];
switch (c) {
case 0xD8:
case SOI:
return 0;
case 0xC0:
case 0xC1:
case 0xC2:
case 0xC3:
case 0xC5:
case 0xC6:
case 0xC7:
case SOF0:
case SOF1:
case SOF2:
case SOF3:
case SOF5:
case SOF6:
case SOF7:
i += AV_RB16(&b[i + 2]) + 1;
if (state != 0xD8)
if (state != SOI)
return 0;
state = 0xC0;
state = SOF0;
break;
case 0xDA:
case SOS:
i += AV_RB16(&b[i + 2]) + 1;
if (state != 0xC0 && state != 0xDA)
if (state != SOF0 && state != SOS)
return 0;
state = 0xDA;
state = SOS;
break;
case 0xD9:
if (state != 0xDA)
case EOI:
if (state != SOS)
return 0;
state = 0xD9;
state = EOI;
break;
case 0xE0:
case 0xE1:
case 0xE2:
case 0xE3:
case 0xE4:
case 0xE5:
case 0xE6:
case 0xE7:
case 0xE8:
case 0xE9:
case 0xEA:
case 0xEB:
case 0xEC:
case 0xED:
case 0xEE:
case 0xEF:
case APP0:
case APP1:
case APP2:
case APP3:
case APP4:
case APP5:
case APP6:
case APP7:
case APP8:
case APP9:
case APP10:
case APP11:
case APP12:
case APP13:
case APP14:
case APP15:
i += AV_RB16(&b[i + 2]) + 1;
break;
default:
if ( (c >= 0x02 && c <= 0xBF)
|| c == 0xC8)
if ( (c > TEM && c < SOF0)
|| c == JPG)
return 0;
}
}
if (state == 0xD9)
if (state == EOI)
return AVPROBE_SCORE_EXTENSION + 1;
return AVPROBE_SCORE_EXTENSION / 8;
}