Mercurial > libavcodec.hg
changeset 3715:cdaee53c5da1 libavcodec
replaces back some C code by dsp.put_pixels_tab[0][0] (revert r6231)
but this time ensure proper alignment using av_malloc instead of av_realloc
author | aurel |
---|---|
date | Wed, 13 Sep 2006 20:16:33 +0000 |
parents | 6c290e7de637 |
children | e583349b9720 |
files | vp56.c |
diffstat | 1 files changed, 7 insertions(+), 9 deletions(-) [+] |
line wrap: on
line diff
--- a/vp56.c Wed Sep 13 09:28:48 2006 +0000 +++ b/vp56.c Wed Sep 13 20:16:33 2006 +0000 @@ -358,14 +358,11 @@ src_block = s->edge_emu_buffer; src_offset = 2 + 2*stride; } else if (deblock_filtering) { - int i; - src_block = s->edge_emu_buffer; - src += s->block_offset[b] + (dy-2)*stride + (dx-2); - for (i=0; i<12; i++) { - memcpy(src_block, src, 12); - src_block += stride; - src += stride; - } + /* only need a 12x12 block, but there is no such dsp function, */ + /* so copy a 16x12 block */ + s->dsp.put_pixels_tab[0][0](s->edge_emu_buffer, + src + s->block_offset[b] + (dy-2)*stride + (dx-2), + stride, 12); src_block = s->edge_emu_buffer; src_offset = 2 + 2*stride; } else { @@ -483,7 +480,8 @@ (4*s->mb_width+6) * sizeof(*s->above_blocks)); s->macroblocks = av_realloc(s->macroblocks, s->mb_width*s->mb_height*sizeof(*s->macroblocks)); - s->edge_emu_buffer_alloc = av_realloc(s->edge_emu_buffer_alloc, 16*stride); + av_free(s->edge_emu_buffer_alloc); + s->edge_emu_buffer_alloc = av_malloc(16*stride); s->edge_emu_buffer = s->edge_emu_buffer_alloc; if (s->flip < 0) s->edge_emu_buffer += 15 * stride;