some useful warning
Originally committed as revision 1961 to svn://svn.ffmpeg.org/ffmpeg/trunk
This commit is contained in:
parent
fb059921da
commit
0b15bfe7cc
@ -406,33 +406,46 @@ static int ra288_decode_frame(AVCodecContext * avctx,
|
|||||||
int h=((short*)(avctx->extradata))[1];
|
int h=((short*)(avctx->extradata))[1];
|
||||||
int cfs=((short*)(avctx->extradata))[3]; /* coded frame size */
|
int cfs=((short*)(avctx->extradata))[3]; /* coded frame size */
|
||||||
int i,j;
|
int i,j;
|
||||||
if(buf_size<w*h) goto no_interleave;
|
if(buf_size<w*h)
|
||||||
|
{
|
||||||
|
fprintf(stderr,"ffra288: warning! Context was not interleaved [%d<%d]\n",buf_size,w*h);
|
||||||
|
goto no_interleave;
|
||||||
|
}
|
||||||
bp = buf;
|
bp = buf;
|
||||||
for (j = 0; j < h; j++)
|
for (j = 0; j < h; j++)
|
||||||
for (i = 0; i < h/2; i++)
|
for (i = 0; i < h/2; i++)
|
||||||
{
|
{
|
||||||
memcpy(&b[i*2*w+j*cfs], bp, cfs);
|
memcpy(&b[i*2*w+j*cfs], bp, cfs);
|
||||||
bp += cfs;
|
bp += cfs;
|
||||||
if(bp-buf>=buf_size) break;
|
if(bp-buf>buf_size)
|
||||||
|
{
|
||||||
|
fprintf(stderr,"ffra288: warning! Context was partly interleaved [%d<%d]\n",buf_size,w*h);
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
bret=bp-buf;
|
bret=bp-buf;
|
||||||
bp = b;
|
bp = b;
|
||||||
}
|
}
|
||||||
else { no_interleave: bret=buf_size; bp = buf; }
|
else
|
||||||
|
{
|
||||||
|
fprintf(stderr,"ffra288: warning! Context was not interleaved [%d<%d]\n",avctx->extradata_size,6);
|
||||||
|
no_interleave:
|
||||||
|
bret=buf_size;
|
||||||
|
bp = buf;
|
||||||
|
}
|
||||||
datao = data;
|
datao = data;
|
||||||
z=0;
|
z=0;
|
||||||
while(z<bret)
|
while(z<bret)
|
||||||
{
|
{
|
||||||
unpack(buffer,bp,32);
|
unpack(buffer,&bp[z],32);
|
||||||
for (x=0;x<32;x++)
|
for (x=0;x<32;x++)
|
||||||
{
|
{
|
||||||
glob->phasep=(glob->phase=x&7)*5;
|
glob->phasep=(glob->phase=x&7)*5;
|
||||||
decode(glob,buffer[x]);
|
decode(glob,buffer[x]);
|
||||||
for (y=0;y<5;y++) *(((int16_t *)data)++)=8*glob->output[glob->phasep+y];
|
for (y=0;y<5;*(((int16_t *)data)++)=8*glob->output[glob->phasep+(y++)]);
|
||||||
if (glob->phase==3) update(glob);
|
if (glob->phase==3) update(glob);
|
||||||
}
|
}
|
||||||
z+=32;
|
z+=32;
|
||||||
bp+=32;
|
|
||||||
}
|
}
|
||||||
*data_size = data - datao;
|
*data_size = data - datao;
|
||||||
return bret;
|
return bret;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user