On 03/11/2016 21:35, Andreas Cadhalpun wrote: > On 03.11.2016 09:36, Luca Barbato wrote: >> On 02/11/2016 21:34, Andreas Cadhalpun wrote: >>> Tested with qemu on ppc32be and ppc64be. >> >> How did you configure it? > > I used qemu-ppc64-static for ppc64be and > 'export QEMU_CPU=7400_v2.9; qemu-ppc-static' for ppc32be. > > On 03.11.2016 10:21, Luca Barbato wrote: >> On 02/11/2016 21:34, Andreas Cadhalpun wrote: >> >>> @@ -67,10 +67,10 @@ static void get_pixels_altivec(int16_t *restrict block, >>> const uint8_t *pixels, >>> ptrdiff_t line_size) >>> { >> >> The patch makes sense only if line_size is not a multiple of 16 and >> normally AVFrames have their linesizes multiple of 32 ... > > Yes, but this limitation is not documented and the C variant of the > function doesn't have it (there's an extra get_pixels_8_c function), > so it's a bug in the altivec implementation.
Not really. A larger number of functions implemented assume a certain alignment (currently the 32-alignment is just because we do not have larger vectors) and would break quite horribly without it and a fallback would be quite slower. > I guess the following FFmpeg commit makes a difference for the tests: > fb6b6b5 tests/checkasm/pixblockdsp: Test 8 byte aligned positions > > 6051bb3 libavcodec/dnxhdenc: add edge emulate for dnxhr > [...] > + uvlinesize = 8; > [...] > + pdsp->get_pixels(ctx->blocks[2], ptr_u, uvlinesize); > The emu edge should have a linesize of 32 and you won't slow down that function I guess, I'd appreciate the edge emu code anyway. lu _______________________________________________ libav-devel mailing list libav-devel@libav.org https://lists.libav.org/mailman/listinfo/libav-devel