Ticket #6649: patch-dnxhdenc.diff
| File patch-dnxhdenc.diff, 2.2 KB (added by , 9 years ago) |
|---|
-
libavcodec/dnxhdenc.c
751 751 ptr_y = &ctx->edge_buf_y[0]; 752 752 ptr_u = &ctx->edge_buf_uv[0][0]; 753 753 ptr_v = &ctx->edge_buf_uv[1][0]; 754 } else if (ctx->bit_depth == 10 && vdsp->emulated_edge_mc && ((mb_x << 3) + 8> ctx->m.avctx->width ||755 (mb_y << 3) + 8> ctx->m.avctx->height)) {756 int y_w = ctx->m.avctx->width - (mb_x << 3);757 int y_h = ctx->m.avctx->height - (mb_y << 3);754 } else if (ctx->bit_depth == 10 && vdsp->emulated_edge_mc && ((mb_x << 4) + 16 > ctx->m.avctx->width || 755 (mb_y << 4) + 16 > ctx->m.avctx->height)) { 756 int y_w = ctx->m.avctx->width - (mb_x << 4); 757 int y_h = ctx->m.avctx->height - (mb_y << 4); 758 758 int uv_w = ctx->is_444 ? y_w : (y_w + 1) / 2; 759 759 int uv_h = y_h; 760 linesize = 16;761 uvlinesize = 8 + 8* ctx->is_444;760 linesize = 32; 761 uvlinesize = 16 + 16 * ctx->is_444; 762 762 763 763 vdsp->emulated_edge_mc(&ctx->edge_buf_y[0], ptr_y, 764 764 linesize, ctx->m.linesize, … … 773 773 uvlinesize / 2, 16, 774 774 0, 0, uv_w, uv_h); 775 775 776 dct_y_offset = bw * linesize ;777 dct_uv_offset = bw * uvlinesize ;776 dct_y_offset = bw * linesize / 2; 777 dct_uv_offset = bw * uvlinesize / 2; 778 778 ptr_y = &ctx->edge_buf_y[0]; 779 779 ptr_u = &ctx->edge_buf_uv[0][0]; 780 780 ptr_v = &ctx->edge_buf_uv[1][0]; -
libavcodec/dnxhdenc.h
75 75 int intra_quant_bias; 76 76 77 77 DECLARE_ALIGNED(16, int16_t, blocks)[12][64]; 78 DECLARE_ALIGNED(16, uint8_t, edge_buf_y)[ 256];79 DECLARE_ALIGNED(16, uint8_t, edge_buf_uv)[2][ 256];78 DECLARE_ALIGNED(16, uint8_t, edge_buf_y)[512]; // has to hold 16x16 uint16 when depth=10 79 DECLARE_ALIGNED(16, uint8_t, edge_buf_uv)[2][512]; // has to hold 16x16 uint16_t when depth=10 80 80 81 81 int (*qmatrix_c) [64]; 82 82 int (*qmatrix_l) [64];
