On 14 May 2014 21:12, James Yu <[email protected]> wrote:

>
>
> On Wednesday, May 14, 2014, Janne Grunau <[email protected]> wrote:
>
>> On 2014-05-13 23:25:12 +0800, [email protected] wrote:
>> > From: James Yu <[email protected]>
>> >
>> > Using NEON intrinsics to support ARMv7 and ARMv8 simultaneously.
>> > Rewrite ARMv7 assembly to intinsics version.
>>
>> Thanks for the patch. We prefer asm over intrinsics especially for
>> functions
>> with existing ARMv7 NEON asm.
>> For new functions intrinsics have the advantage that they can be shared
>> between AArch64 and ARMv7. That is reason enough to support intrinsics.
>>
>> Rewrite neon asm to neon intrinsics is a way to port and optimize libs to
> aarch64. However it has some performance problem we already know.
>
>
>
>> > Toolchain:
>> > armv7: gcc-linaro-arm-linux-gnueabihf-4.8-2014.01_linux
>> > armv8: gcc-linaro-aarch64-linux-gnu-4.8-2013.10_linux
>>
>> clang 3.4 on AArch64 seems to fail over its own arm_neon.h header
>>
>> I didn't try to build by clang.
>
>
>> > [RFC] Currently, libavcodec had a aarch64 dir includes all related
>> > assembly code. However, I put this file under libavcodec/arm dir first,
>> > since this > support ARMv7 and ARMv8 simultaneously. And RFC how could
>> we
>> > port and optimize libav to aarch64.
>> >
>> > Add libavcodec/arm/mpegvideo_neon.c.
>>
>> That conflicts with the existing libavcodec/arm/mpegvideo_neon.S since
>> both
>> result in the object file libavcodec/arm/mpegvideo_neon.o
>>
>> Yes, I know. But if we rebuild all, it should build .c file.  Anyway I
> just put there first and wait for comments, thanks. How about put in
> libavcodec/aarch64? Since it support aarch64.
>
>
>> I think a cleaner solution would be to put the shared intrinsics code in
>> another directory, libavcodec/neon for example. I have a working patch for
>> that including configure checks we need for arm_neon.h.
>>
>> > Signed-off-by: James Yu <[email protected]>
>> > ---
>> >  libavcodec/aarch64/Makefile     |    1 +
>> >  libavcodec/arm/mpegvideo_neon.c |  127
>> +++++++++++++++++++++++++++++++++++++++
>> >  2 files changed, 128 insertions(+)
>> >  create mode 100644 libavcodec/arm/mpegvideo_neon.c
>>
>> It looks like you sent the wrong patch. The added function are not called
>> nor assigned to function pointers.
>>
>> Hmm, this is strange. I'm sure it was called when I decode a mpeg4 file.
>
>
>> The function is not bit exact to the arm asm. fate-vsynth1-mpeg4 fails for
>> example after fixing the setup.
>>
>> I will take a look on this. Thanks.
>
> Hi,

I found this fails even in master branch. Could you help check? Thanks

commit 7e90133f6420b1c53652f972b9561600822881ee
Author: Janne Grunau <[email protected]>
Date:   Wed May 14 00:05:27 2014 +0200

    build: do not append $(FFLIBS-) to $(FFLIBS) if $(NAME) is not defined

    Avoids including disabled library Makefiles.

.....
TEST    vsynth1-mpeg4
--- ./tests/ref/vsynth/vsynth1-mpeg4 2014-05-13 12:17:43.000000000 +0000
+++ tests/data/fate/vsynth1-mpeg4 2014-05-15 00:12:50.220000001 +0000
@@ -1,4 +0,0 @@
-dc927acd770e19a97456ecbd4d786938 *tests/data/fate/vsynth1-mpeg4.mp4
-540180 tests/data/fate/vsynth1-mpeg4.mp4
-8828a375448dc5c2215163ba70656f89
*tests/data/fate/vsynth1-mpeg4.out.rawvideo
-stddev:    7.97 PSNR: 30.10 MAXDIFF:  105 bytes:  7603200/  7603200
make: *** [fate-vsynth1-mpeg4] Error 127

-James


-James
>
>
>
>> Janne
>> _______________________________________________
>> libav-devel mailing list
>> [email protected]
>> https://lists.libav.org/mailman/listinfo/libav-devel
>>
>
>
> --
> ...Please excuse the terse message sent from my mobile...
>
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to