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

Reply via email to