|
|
|
@ -804,6 +804,7 @@ static int ljpeg_decode_yuv_scan(MJpegDecodeContext *s, int predictor, int point |
|
|
|
|
|
|
|
|
|
if (s->interlaced && s->bottom_field) |
|
|
|
|
ptr += linesize >> 1; |
|
|
|
|
pred &= (-1)<<(8-s->bits); |
|
|
|
|
*ptr= pred + (dc << point_transform); |
|
|
|
|
}else{ |
|
|
|
|
ptr16 = s->picture.data[c] + 2*(linesize * (v * mb_y + y)) + 2*(h * mb_x + x); //FIXME optimize this crap
|
|
|
|
@ -823,6 +824,7 @@ static int ljpeg_decode_yuv_scan(MJpegDecodeContext *s, int predictor, int point |
|
|
|
|
|
|
|
|
|
if (s->interlaced && s->bottom_field) |
|
|
|
|
ptr16 += linesize >> 1; |
|
|
|
|
pred &= (-1)<<(16-s->bits); |
|
|
|
|
*ptr16= pred + (dc << point_transform); |
|
|
|
|
} |
|
|
|
|
if (++x == h) { |
|
|
|
@ -856,11 +858,13 @@ static int ljpeg_decode_yuv_scan(MJpegDecodeContext *s, int predictor, int point |
|
|
|
|
ptr = s->picture.data[c] + (linesize * (v * mb_y + y)) + (h * mb_x + x); //FIXME optimize this crap
|
|
|
|
|
PREDICT(pred, ptr[-linesize-1], ptr[-linesize], ptr[-1], predictor); |
|
|
|
|
|
|
|
|
|
pred &= (-1)<<(8-s->bits); |
|
|
|
|
*ptr= pred + (dc << point_transform); |
|
|
|
|
}else{ |
|
|
|
|
ptr16 = s->picture.data[c] + 2*(linesize * (v * mb_y + y)) + 2*(h * mb_x + x); //FIXME optimize this crap
|
|
|
|
|
PREDICT(pred, ptr16[-linesize-1], ptr16[-linesize], ptr16[-1], predictor); |
|
|
|
|
|
|
|
|
|
pred &= (-1)<<(16-s->bits); |
|
|
|
|
*ptr16= pred + (dc << point_transform); |
|
|
|
|
} |
|
|
|
|
if (++x == h) { |
|
|
|
|