Check for too many MCU blocks in source image
This commit is contained in:
parent
87c302a878
commit
b1b314cdfc
18
ssdv.c
18
ssdv.c
|
@ -689,13 +689,21 @@ static char ssdv_have_marker_data(ssdv_t *s)
|
||||||
/* Calculate number of MCU blocks in this image */
|
/* Calculate number of MCU blocks in this image */
|
||||||
switch(s->mcu_mode)
|
switch(s->mcu_mode)
|
||||||
{
|
{
|
||||||
case 0: s->mcu_count = (s->width >> 4) * (s->height >> 4); break;
|
case 0: l = (s->width >> 4) * (s->height >> 4); break;
|
||||||
case 1: s->mcu_count = (s->width >> 4) * (s->height >> 3); break;
|
case 1: l = (s->width >> 4) * (s->height >> 3); break;
|
||||||
case 2: s->mcu_count = (s->width >> 3) * (s->height >> 4); break;
|
case 2: l = (s->width >> 3) * (s->height >> 4); break;
|
||||||
case 3: s->mcu_count = (s->width >> 3) * (s->height >> 3); break;
|
case 3: l = (s->width >> 3) * (s->height >> 3); break;
|
||||||
}
|
}
|
||||||
|
|
||||||
fprintf(stderr, "MCU blocks: %i\n", s->mcu_count);
|
fprintf(stderr, "MCU blocks: %i\n", l);
|
||||||
|
|
||||||
|
if(l > 0xFFFF)
|
||||||
|
{
|
||||||
|
fprintf(stderr, "Error: Maximum number of MCU blocks is 65535\n");
|
||||||
|
return(SSDV_ERROR);
|
||||||
|
}
|
||||||
|
|
||||||
|
s->mcu_count = l;
|
||||||
|
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue