if (!is_interlaced) {
src_stride = stride >> 1;
- src += y * src_stride + x;
+ src += y * src_stride + x;
box_height = FFMIN(height - y, dst_height);
} else {
src_stride = stride; /* 2 lines stride */
- src += y * src_stride * 2 + x;
- box_height = FFMIN(height - y * 2, dst_height);
+ src += y * src_stride + x;
+ box_height = FFMIN(height/2 - y, dst_height);
if (!is_top_field)
- src += src_stride;
+ src += stride >> 1;
}
for (i = 0; i < box_height; ++i) {
alpha_stride = pic->linesize[3];
if (!is_interlaced) {
- dest_y = pic->data[0] + (mb_y << 4) * luma_stride + (mb_x << 5);
- dest_u = pic->data[1] + (mb_y << 4) * chroma_stride + (mb_x << (5 - ctx->is_422));
- dest_v = pic->data[2] + (mb_y << 4) * chroma_stride + (mb_x << (5 - ctx->is_422));
+ dest_y = pic->data[0] + (mb_y << 4) * luma_stride + (mb_x << 5);
+ dest_u = pic->data[1] + (mb_y << 4) * chroma_stride + (mb_x << (5 - ctx->is_422));
+ dest_v = pic->data[2] + (mb_y << 4) * chroma_stride + (mb_x << (5 - ctx->is_422));
} else {
dest_y = pic->data[0] + (mb_y << 4) * luma_stride * 2 + (mb_x << 5);
dest_u = pic->data[1] + (mb_y << 4) * chroma_stride * 2 + (mb_x << (5 - ctx->is_422));
*qp);
} else {
if (!is_interlaced) {
- calc_plane_dct(fdsp, dest_y, blocks_y, luma_stride, mb_count, 0, 0);
- calc_plane_dct(fdsp, dest_u, blocks_u, chroma_stride, mb_count, 1, ctx->is_422);
- calc_plane_dct(fdsp, dest_v, blocks_v, chroma_stride, mb_count, 1, ctx->is_422);
+ calc_plane_dct(fdsp, dest_y, blocks_y, luma_stride, mb_count, 0, 0);
+ calc_plane_dct(fdsp, dest_u, blocks_u, chroma_stride, mb_count, 1, ctx->is_422);
+ calc_plane_dct(fdsp, dest_v, blocks_v, chroma_stride, mb_count, 1, ctx->is_422);
} else {
calc_plane_dct(fdsp, dest_y, blocks_y, luma_stride * 2, mb_count, 0, 0);
calc_plane_dct(fdsp, dest_u, blocks_u, chroma_stride * 2, mb_count, 1, ctx->is_422);
picture_height = avctx->height / 2;
}
mb_height = (picture_height + 15) >> 4;
- unsafe_mb_height_limit = mb_height * 2;
+ unsafe_mb_height_limit = mb_height;
}
for (i = av_log2(DEFAULT_SLICE_MB_WIDTH); i >= 0; --i) {
if (ctx->is_interlaced) {
ctx->scantable = ff_prores_interlaced_scan;
} else {
- ctx->scantable = ff_prores_progressive_scan;
+ ctx->scantable = ff_prores_progressive_scan;
}
if (avctx->width & 0x1) {