@ -98,6 +98,7 @@ static inline int get_block(GetBitContext *gb, DCTELEM *block, uint8_t *scan,
*/
int rtjpeg_decode_frame_yuv420 ( RTJpegContext * c , AVFrame * f ,
uint8_t * buf , int buf_size ) {
DECLARE_ALIGNED_16 ( DCTELEM , block [ 64 ] ) ;
GetBitContext gb ;
int w = c - > w / 16 , h = c - > h / 16 ;
int x , y ;
@ -106,23 +107,23 @@ int rtjpeg_decode_frame_yuv420(RTJpegContext *c, AVFrame *f,
init_get_bits ( & gb , buf , buf_size * 8 ) ;
for ( y = 0 ; y < h ; y + + ) {
for ( x = 0 ; x < w ; x + + ) {
if ( get_block ( & gb , c - > block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y1 , f - > linesize [ 0 ] , c - > block ) ;
if ( get_block ( & gb , block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y1 , f - > linesize [ 0 ] , block ) ;
y1 + = 8 ;
if ( get_block ( & gb , c - > block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y1 , f - > linesize [ 0 ] , c - > block ) ;
if ( get_block ( & gb , block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y1 , f - > linesize [ 0 ] , block ) ;
y1 + = 8 ;
if ( get_block ( & gb , c - > block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y2 , f - > linesize [ 0 ] , c - > block ) ;
if ( get_block ( & gb , block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y2 , f - > linesize [ 0 ] , block ) ;
y2 + = 8 ;
if ( get_block ( & gb , c - > block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y2 , f - > linesize [ 0 ] , c - > block ) ;
if ( get_block ( & gb , block , c - > scan , c - > lquant ) )
c - > dsp - > idct_put ( y2 , f - > linesize [ 0 ] , block ) ;
y2 + = 8 ;
if ( get_block ( & gb , c - > block , c - > scan , c - > cquant ) )
c - > dsp - > idct_put ( u , f - > linesize [ 1 ] , c - > block ) ;
if ( get_block ( & gb , block , c - > scan , c - > cquant ) )
c - > dsp - > idct_put ( u , f - > linesize [ 1 ] , block ) ;
u + = 8 ;
if ( get_block ( & gb , c - > block , c - > scan , c - > cquant ) )
c - > dsp - > idct_put ( v , f - > linesize [ 2 ] , c - > block ) ;
if ( get_block ( & gb , block , c - > scan , c - > cquant ) )
c - > dsp - > idct_put ( v , f - > linesize [ 2 ] , block ) ;
v + = 8 ;
}
y1 + = 2 * 8 * ( f - > linesize [ 0 ] - w ) ;