Last commit master branch: Undefined symbols (iOS and tvOS)

iOS, iPad, iPhone, tvOS specific usage questions
soullessff
Blank Cone
Blank Cone
Posts: 16
Joined: 18 Nov 2013 18:40

Last commit master branch: Undefined symbols (iOS and tvOS)

Postby soullessff » 23 Aug 2016 02:17

Hello,

I was using old DynamicTVVLCKit compilation for my tvOS project. I re-compile the last commit in master branch. When I add the new DynamicTVVLCKit, it works in simulator but I have problems with the device (AppleTV). I get:

Code: Select all

Undefined symbols for architecture arm64: "_merge16_arm64_neon", referenced from: _Open in libStaticTVLibvlc.a(libdeinterlace_plugin_la-deinterlace.o) "_merge8_arm64_neon", referenced from: _Open in libStaticTVLibvlc.a(libdeinterlace_plugin_la-deinterlace.o) ld: symbol(s) not found for architecture arm64 clang: error: linker command failed with exit code 1 (use -v to see invocation)
The same problem in iOS.

Thanks!

ssbmaccom
Cone that earned his stripes
Cone that earned his stripes
Posts: 184
Joined: 26 Nov 2015 15:21
Operating System: Mac OS, iOS, tvOS

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby ssbmaccom » 29 Aug 2016 19:56

+1
I also have this issue since the last commit of Aug. 16th.

I found the references in
vlc/modules/video_filter/deinterlace/deinterlace.c:705: p_sys->pf_merge = pixel_size == 1 ? merge8_arm64_neon : merge16_arm64_neon;

The missing symbols are located in vlc/modules/video_filter/deinterlace/merge_arm64.S
The object file is even part of libTVVLCKit.a, when building it with "Archive" in Xcode. The object is there and the symbol is defined.

Code: Select all

EsBit:VLCKit ssb$ nm libTVVLCKit.a | grep merge8_arm64 U _merge8_arm64_neon 0000000000000000 T merge8_arm64_neon EsBit:VLCKit ssb$ nm -anm libTVVLCKit.a | grep merge16_arm64 (undefined) external _merge16_arm64_neon 0000000000000078 (__TEXT,__text) external [no dead strip] merge16_arm64_neon
So the symbol is external and no dead strip. However - my App also complains about this as you mentioned.

No clue, maybe it is not exported...

soullessff
Blank Cone
Blank Cone
Posts: 16
Joined: 18 Nov 2013 18:40

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby soullessff » 30 Aug 2016 15:57

ssbmaccom I tried the last nightlies builds and the same happens except the compilation:

TVVLCKit-3.0-pre-20160829-0853.zip 29-Aug-2016 09:05 408M (http://nightlies.videolan.org/build/tvO ... 9-0853.zip)

but I found lag in the playback so annoying :(

primarygvp thanks for your spam dude! :-/

fkuehne
Developer
Developer
Posts: 7264
Joined: 16 Mar 2004 19:37
VLC version: 0.4.6 - present
Operating System: Darwin
Location: Germany
Contact:

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby fkuehne » 12 Sep 2016 17:08

hey hey, this was just fixed.

Cheers
VideoLAN
Felix Paul Kühne
Medic. VLC developer for appleOS since before you were born.
Blog: https://www.feepk.net

ssbmaccom
Cone that earned his stripes
Cone that earned his stripes
Posts: 184
Joined: 26 Nov 2015 15:21
Operating System: Mac OS, iOS, tvOS

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby ssbmaccom » 12 Sep 2016 23:29

i trust you, that you tried to fix it. Unfortunately something else is broken now. Please see the build log below. And I started off with a fresh sandbox.

Code: Select all

libtool: compile: xcrun clang -DHAVE_CONFIG_H -I. -I.. -I../src -I../src -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator9.2.sdk -arch x86_64 -O3 -g -mtvos-version-min=9.0 -fembed-bitcode -arch x86_64 -mtvos-version-min=9.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator9.2.sdk -arch x86_64 -O3 -g -mtvos-version-min=9.0 -fembed-bitcode -I/Users/ssb/Projekte/ssb/AppleTV/VLCKit/MobileVLCKit/ImportedSources/vlc/contrib/AppleTV-x86_64-apple-darwin11-x86_64/include -I/Users/ssb/Projekte/ssb/AppleTV/VLCKit/MobileVLCKit/ImportedSources/vlc/contrib/AppleTV-x86_64-apple-darwin11-x86_64/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator9.2.sdk -arch x86_64 -O3 -g -mtvos-version-min=9.0 -fembed-bitcode -arch x86_64 -mtvos-version-min=9.0 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/AppleTVSimulator.platform/Developer/SDKs/AppleTVSimulator9.2.sdk -arch x86_64 -O3 -g -mtvos-version-min=9.0 -fembed-bitcode -I/Users/ssb/Projekte/ssb/AppleTV/VLCKit/MobileVLCKit/ImportedSources/vlc/contrib/AppleTV-x86_64-apple-darwin11-x86_64/include -g -O2 -fheinous-gnu-extensions -Wall -c dsa.c -fno-common -DPIC -o dsa.o arcfour-amd64.S:30:1: error: poly1305-avx2-amd64.S:unknown directive 44:1: error: .tyunknown directivep e _g.ctryyp_ea r_cgfcoruyr__paomldy6143,0@5f_uanmcdt6i4o_na vx^2 _init_ext,@function; ^ arcfour-amd64.S:104:1: error: unknown directive .size _gcry_arcfour_amd64,.L__gcry_poly1305-sse2-amd64.Sa:rcfo43u:r1_: amerror: d64unknown directive_ end-_gc.rtyy_paer c_fgocurry__apmodl6y41 30^5 _amd64_sse2_init_ext,@function; ^ poly1305-avx2-amd64.S:402:1: error: unknown directive .size _gcry_poly1305_amd64_avx2_init_ext,.-_gcry_poly1305_amd64_avx2_init_ext; ^ poly1305-sse2-amd64.S:284:1: error: unknown directive .sipoly1305-avx2-amd64.Sz:e407 :_1g: crerror: y_punknown directiveo ly1.3t0y5p_ea m_dg6c4r_ys_speo2l_yi1n3i0t5__eaxmtd,6.4-__agvcxr2y__bploolcyk1s3,0@5f_uanmcdt6i4o_ns;s e2^_ init_ext; ^ poly1305-sse2-amd64.S:289:1: error: unknown directive .type _gcry_poly1305_amd64_sse2_finish_ext,@function; ^ poly1305-sse2-amd64.S:435:1: error: unknown directive .size _gcry_poly1305_amd64_sse2_finish_ext,.-_gcry_poly1305_amd64_sse2_finish_ext; ^ poly1305-sse2-amd64.S:440:1: error: unknown directive .type _gcry_poly1305_amd64_sse2_blocks,@function; ^ poly1305-avx2-amd64.S:728:1: error: unknown directive .size _gcry_poly1305_amd64_avx2_blocks,.-_gcry_poly1305_amd64_avx2_blocks; ^ poly1305-avx2-amd64.S:733:1: error: unknown directive .type _gcry_poly1305_amd64_avx2_finish_ext,@function; ^ make[2]: *** [arcfour-amd64.lo] Error 1 make[2]: *** Waiting for unfinished jobs.... poly1305-avx2-amd64.S:960:1: error: unknown directive .size _gcry_poly1305_amd64_avx2_finish_ext,.-_gcry_poly1305_amd64_avx2_finish_ext; ^ poly1305-sse2-amd64.S:1041:1: error: unknown directive .size _gcry_poly1305_amd64_sse2_blocks,.-_gcry_poly1305_amd64_sse2_blocks; ^ make[2]: *** [poly1305-avx2-amd64.lo] Error 1 make[2]: *** [poly1305-sse2-amd64.lo] Error 1 des-amd64.S:195:1: error: unknown directive .type _gcry_3des_amd64_crypt_block,@function; ^ des-amd64.S:281:1: error: unknown directive .size _gcry_3des_amd64_crypt_block,.-_gcry_3des_amd64_crypt_block; ^ des-amd64.S:468:1: error: unknown directive .type _gcry_3des_amd64_crypt_blk3,@function; ^ des-amd64.S:538:1: error: unknown directive .size _gcry_3des_amd64_crypt_blk3,.-_gcry_3des_amd64_crypt_blk3; ^ des-amd64.S:542:1: error: unknown directive .type _gcry_3des_amd64_cbc_dec,@function; ^ des-amd64.S:614:1: error: unknown directive .size _gcry_3des_amd64_cbc_dec,.-_gcry_3des_amd64_cbc_dec; ^ des-amd64.S:618:1: error: unknown directive .type _gcry_3des_amd64_ctr_enc,@function; ^ des-amd64.S:692:1: error: unknown directive .size _gcry_3des_amd64_cbc_dec,.-_gcry_3des_amd64_cbc_dec; ^ des-amd64.S:696:1: error: unknown directive .type _gcry_3des_amd64_cfb_dec,@function; ^ des-amd64.S:767:1: error: unknown directive .size _gcry_3des_amd64_cfb_dec,.-_gcry_3des_amd64_cfb_dec; ^ make[2]: *** [des-amd64.lo] Error 1 make[1]: *** [install-recursive] Error 1 make: *** [.gcrypt] Error 2
At least, now nightlies are available and I will try these. Are they built with bitcode creation?

fkuehne
Developer
Developer
Posts: 7264
Joined: 16 Mar 2004 19:37
VLC version: 0.4.6 - present
Operating System: Darwin
Location: Germany
Contact:

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby fkuehne » 13 Sep 2016 09:55

This is a new issue completely unrelated to the previous one and only affects the x86_64 (aka simulator) slice of TVVLCKit. Looking into it right now.

Of course, our nightly builds include bitcode, but the latest available still exhibits the aforementioned linker issue.
VideoLAN
Felix Paul Kühne
Medic. VLC developer for appleOS since before you were born.
Blog: https://www.feepk.net

fkuehne
Developer
Developer
Posts: 7264
Joined: 16 Mar 2004 19:37
VLC version: 0.4.6 - present
Operating System: Darwin
Location: Germany
Contact:

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby fkuehne » 13 Sep 2016 11:28

The x86_64 assembly issue is fixed as well now.
VideoLAN
Felix Paul Kühne
Medic. VLC developer for appleOS since before you were born.
Blog: https://www.feepk.net

ssbmaccom
Cone that earned his stripes
Cone that earned his stripes
Posts: 184
Joined: 26 Nov 2015 15:21
Operating System: Mac OS, iOS, tvOS

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby ssbmaccom » 15 Sep 2016 19:21

Thanks a lot. I had to clean the VLC clone in my sandbox, but then it built fine.

Well, some deinterlacers now produce artefacts, but thats a different construction site.
And tracksinfo returns empty arrays... I check on my side...

Anyway - thanks for the ability to get the new build done - and yes the Sky HD issue also seems to be solved...

fkuehne
Developer
Developer
Posts: 7264
Joined: 16 Mar 2004 19:37
VLC version: 0.4.6 - present
Operating System: Darwin
Location: Germany
Contact:

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby fkuehne » 15 Sep 2016 19:23

Please file bug reports with screenshots regarding the deinterlacing issues. Those should only occur on device, not in the simulator, but it is indeed possible that we introduced a regression there.
VideoLAN
Felix Paul Kühne
Medic. VLC developer for appleOS since before you were born.
Blog: https://www.feepk.net

ssbmaccom
Cone that earned his stripes
Cone that earned his stripes
Posts: 184
Joined: 26 Nov 2015 15:21
Operating System: Mac OS, iOS, tvOS

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby ssbmaccom » 19 Sep 2016 14:25

OK, with the nightly I am currently using (waiting for tomorrows nightly then) I haven't seen the issue in Simulator. Not sure wether I tested on device with my local build or the nightly.

With madiaplayer.tracksinfo I was able to fix with using different options (0x01 instead of 0x06). Not sure why, but well.

Still progressive video streams (eg. Arte HD, 720p) are reported with the wrong frame rate and denominator. frame rate is 100, denominator is 1. I would expect denominator to be 2 so I get the correct 50 fps for progressive video. Well I can live with the wrong info - but it looks like libVLC is also misinterpreting the info. Even on progressive streams it uses a deinterlacer (by default "blend"), even there is nothing to deinterlace. Usually, libVLC is set to auto-enable deinterlacers, so it disables deinterlacing for progressive streams.

But maybe it is better to post that in a separate thread - and there had been one already... I have to search for this.

fkuehne
Developer
Developer
Posts: 7264
Joined: 16 Mar 2004 19:37
VLC version: 0.4.6 - present
Operating System: Darwin
Location: Germany
Contact:

Re: Last commit master branch: Undefined symbols (iOS and tvOS)

Postby fkuehne » 19 Sep 2016 14:38

What is your trac ticket number on this?
VideoLAN
Felix Paul Kühne
Medic. VLC developer for appleOS since before you were born.
Blog: https://www.feepk.net


Return to “VLC for iOS, iPadOS and Apple TV”

Who is online

Users browsing this forum: Google [Bot] and 10 guests