|
|
|
@ -1221,25 +1221,25 @@ static int ljpeg_decode_yuv_scan(MJpegDecodeContext *s, int predictor, |
|
|
|
|
|| v * mb_y + y >= s->height) { |
|
|
|
|
// Nothing to do
|
|
|
|
|
} else if (bits<=8) { |
|
|
|
|
ptr = s->picture_ptr->data[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap
|
|
|
|
|
if(y==0 && toprow){ |
|
|
|
|
if(x==0 && leftcol){ |
|
|
|
|
pred= 1 << (bits - 1); |
|
|
|
|
}else{ |
|
|
|
|
pred= ptr[-1]; |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
if(x==0 && leftcol){ |
|
|
|
|
pred= ptr[-linesize]; |
|
|
|
|
ptr = s->picture_ptr->data[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap
|
|
|
|
|
if(y==0 && toprow){ |
|
|
|
|
if(x==0 && leftcol){ |
|
|
|
|
pred= 1 << (bits - 1); |
|
|
|
|
}else{ |
|
|
|
|
pred= ptr[-1]; |
|
|
|
|
} |
|
|
|
|
}else{ |
|
|
|
|
PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor); |
|
|
|
|
if(x==0 && leftcol){ |
|
|
|
|
pred= ptr[-linesize]; |
|
|
|
|
}else{ |
|
|
|
|
PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (s->interlaced && s->bottom_field) |
|
|
|
|
ptr += linesize >> 1; |
|
|
|
|
pred &= mask; |
|
|
|
|
*ptr= pred + ((unsigned)dc << point_transform); |
|
|
|
|
if (s->interlaced && s->bottom_field) |
|
|
|
|
ptr += linesize >> 1; |
|
|
|
|
pred &= mask; |
|
|
|
|
*ptr= pred + ((unsigned)dc << point_transform); |
|
|
|
|
}else{ |
|
|
|
|
ptr16 = (uint16_t*)(s->picture_ptr->data[c] + 2*(linesize * (v * mb_y + y)) + 2*(h * mb_x + x)); //FIXME optimize this crap
|
|
|
|
|
if(y==0 && toprow){ |
|
|
|
|