Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[iOS] arm64 | Kodi missing inputstream.ffmpegdirect #153

Open
jakub-antos opened this issue Nov 18, 2021 · 37 comments
Open

[iOS] arm64 | Kodi missing inputstream.ffmpegdirect #153

jakub-antos opened this issue Nov 18, 2021 · 37 comments

Comments

@jakub-antos
Copy link

Is there any inputstream.ffmpegdirect addon for iOS version?
I've tried install all from https://mirrors.kodi.tv/addons/matrix/ but with no luck.

@phunkyfish
Copy link
Collaborator

phunkyfish commented Nov 18, 2021

On iOS it should be shipped with kodi. So you just enable the addon as opposed to installing it.

On iOS binary addons must be signed so this is why they come with it.

@jakub-antos
Copy link
Author

Thanks for your reply.
I have jailbroken devices so don't need to sign debs, there is no inputstream.ffmpegdirect addon shipped with KODI for iOS even in Kodi repos. No matter if this a iPad mini 5(arm64e), iPhone 12 Pro (arm64e) or iPhone X (arm64).

so there is no option tu use catchup option in PVR IPTV Simple Client, due to lack of inputstream.ffmpegdirect.

@phunkyfish
Copy link
Collaborator

Where are you looking for the addon in kodi?

@jakub-antos
Copy link
Author

jakub-antos commented Nov 20, 2021

Install from repository - > Services or by Search I've got only InputStream Adaptive. 18.0, 19.0, 19.3, even Nexus didn't have inputstream.ffmpegdirect for iOS devices. Manually download from https://mirrors.kodi.tv/addons/ any *ffmpegdirect.zip won't install. So I think there is no ffmpegdirect for iOS. Up to 19.0 there was no problem before because there was no catchup.

@phunkyfish
Copy link
Collaborator

It was only released in Matrix so would never have been there in 18.X. Let me have a look. There must be a problem with the build.

@phunkyfish
Copy link
Collaborator

@fuzzard @kambala-decapitator @AlwinEsch how can we check if this is building correctly when we do a kodi release?

@phunkyfish
Copy link
Collaborator

I created a test PR and it built both the ios and tvos zips: https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.ffmpegdirect/detail/PR-154/1/artifacts

Can you try it?

@jakub-antos
Copy link
Author

Thank You, now works like a charm. 19.3 manually install zip.

@jakub-antos
Copy link
Author

Too fast, addon install succesfully but not work after use in IPTV. I can't reinstall it coz Simple TV client and ffmpeg are part of KODI.

Error:
Add-on couldn't be loaded.
An unknown error has occured.

when I try to use catchup.
Clear TV cache and restart kodi won't fix this. I'm gonna try fresh install of Kodi with plugin and set all data.

@kambala-decapitator
Copy link

@LifelessLife you might still need to do a fake sign on the binary. Please also check the error message in debug log.

@sy6sy2 do you know how to add binary addons "on the fly" on JB devices properly?

@fuzzard @kambala-decapitator @AlwinEsch how can we check if this is building correctly when we do a kodi release?

@phunkyfish no idea, sorry. Probably first build manually Kodi+this addon to verify.

@jakub-antos
Copy link
Author

might help
2021-11-20 13:49:01.089 T:12175642 INFO <general>: Creating InputStream 2021-11-20 13:49:01.089 T:12175642 DEBUG <general>: ADDON: Dll Initializing - Inputstream FFmpeg Direct 2021-11-20 13:49:01.089 T:12175642 DEBUG <general>: SECTION:LoadDLL(/var/mobile/Library/Preferences/Kodi/addons/inputstream.ffmpegdirect/inputstream.ffmpegdirect.19.0.1.dylib) 2021-11-20 13:49:01.090 T:12175642 DEBUG <general>: Loading: /var/mobile/Library/Preferences/Kodi/addons/inputstream.ffmpegdirect/inputstream.ffmpegdirect.19.0.1.dylib 2021-11-20 13:49:01.091 T:12175642 ERROR <general>: Unable to load /var/mobile/Library/Preferences/Kodi/addons/inputstream.ffmpegdirect/inputstream.ffmpegdirect.19.0.1.dylib, reason: dlopen(/var/mobile/Library/Preferences/Kodi/addons/inputstream.ffmpegdirect/inputstream.ffmpegdirect.19.0.1.dylib, 1): no suitable image found. Did find: /var/mobile/Library/Preferences/Kodi/addons/inputstream.ffmpegdirect/inputstream.ffmpegdirect.19.0.1.dylib: file system sandbox blocked mmap() of '/var/mobile/Library/Preferences/Kodi/addons/inputstream.ffmpegdirect/inputstream.ffmpegdirect.19.0.1.dylib' 2021-11-20 13:49:01.094 T:12175367 DEBUG <general>: Loading settings for pvr://guide/0105/2021-11-19 16:00:00.epg 2021-11-20 13:49:01.105 T:12173337 DEBUG <general>: CPlayerGUIInfo::InitCurrentItem(pvr://guide/0105/2021-11-19 16:00:00.epg)

I've just wait for new nightlies build, hope you guys fix this issue.

@phunkyfish
Copy link
Collaborator

@LifelessLife can you check something. But you may need a fresh install.

It should not be under services. It should be under Addons->My Addons-> VideoPlayer Inputstream or Install from repo->Install from Repository-> VideoPlayer Inputstream

Please provide screenshots for both of these locations.

@jakub-antos
Copy link
Author

jakub-antos commented Nov 20, 2021

Second open of fresh installed Kodi + delete all "kodi" named files from root directory of / + iCleaner (jb claner tool)
There is no inputstream.ffmpegdirect addon :)
Kodi 19.3-0 installed from official repo by Cydia
https://www.icloud.com/sharedalbum/#B0vGrq0zwG3w8El

Installed from deb from nightlies or stable release is the same.

@kambala-decapitator
Copy link

file system sandbox blocked mmap()

I think this is something that should be solved on your (JB) side, escape the sandbox or something

@jakub-antos
Copy link
Author

jakub-antos commented Nov 20, 2021

"I figured out this recently, as there is some sandbox restrictions in iOS, tasks that requiring mmap may needs additional codesign entitlements: com.apple.private.security.container-required, get-task-allow and dynamic-codesigning. Also, dylibs and executables required to be installed under /usr but not /usr/local (/usr/local are blocked to use mmap by sandbox). For embedding to iOS apps may also requires com.apple.security.cs.allow-jit entitlement."

source

@fuzzard
Copy link

fuzzard commented Nov 20, 2021

Jenkins doesnt build ffmpegdirect for iOS for some unknown reason

Eg. https://jenkins.kodi.tv/job/IOS-ARM64/17208/

@sy6sy2
Copy link
Member

sy6sy2 commented Nov 20, 2021

@sy6sy2 do you know how to add binary addons "on the fly" on JB devices properly?

I never tried but I guess you simply need to copy the add-on folder structure in your add on folder then use ldid directly on the device to fake sign all the binaries embedded in the addon.

@phunkyfish
Copy link
Collaborator

phunkyfish commented Nov 20, 2021

Jenkins doesnt build ffmpegdirect for iOS for some unknown reason

Eg. https://jenkins.kodi.tv/job/IOS-ARM64/17208/

Weird, cause if I kick off a build with only this add-on it works.

https://jenkins.kodi.tv/view/Apple/job/IOS-ARM64/17223/

@kambala-decapitator
Copy link

Jenkins doesnt build ffmpegdirect for iOS for some unknown reason

Eg. https://jenkins.kodi.tv/job/IOS-ARM64/17208/

if I read the log right, this is the actual error:

ld: warning: ignoring file ../src/.libs/libzvbi.a, file was built for archive which is not the architecture being linked (arm64): ../src/.libs/libzvbi.a
ld: warning: ignoring file ../src/.libs/libzvbi.a, file was built for archive which is not the architecture being linked (arm64): ../src/.libs/libzvbi.a
Undefined symbols for architecture arm64:
  "_vbi_caption_unicode", referenced from:
      _unicode in ntsc-cc.o
  "_vbi_capture_parameters", referenced from:
      _main in ntsc-cc.o
  "_vbi_capture_read", referenced from:
      _main in ntsc-cc.o
  "_vbi_capture_v4l2_new", referenced from:
      _main in ntsc-cc.o
  "_vbi_capture_v4l_new", referenced from:
      _main in ntsc-cc.o
  "_vbi_fputs_iconv_ucs2", referenced from:
      _CCdecode in ntsc-cc.o
  "_vbi_locale_codeset", referenced from:
      _CCdecode in ntsc-cc.o
  "_vbi_strlen_ucs2", referenced from:
      _CCdecode in ntsc-cc.o
      _append_char in ntsc-cc.o
      _append_control_seq in ntsc-cc.o
      _append_special_char in ntsc-cc.o
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[10]: *** [zvbi-ntsc-cc] Error 1

however, I saw that for Nexus it builds without issues sometimes (the build is already gone), although the only change between branches is weblate.

@phunkyfish
Copy link
Collaborator

Very strange. @AlwinEsch any ideas? I think you got libzvbi building in the first place.

@AlwinEsch
Copy link
Member

Really strange, no ideas, looked over Jenkins his build log and not found why.

Only maybe about here: https://github.com/xbmc/inputstream.ffmpegdirect/blob/Nexus/depends/common/libzvbi/CMakeLists.txt#L7
There it set a included path by use of CPPFLAGS on a "C" passed code.

@phunkyfish
Copy link
Collaborator

phunkyfish commented Dec 9, 2021

Hmmm, so somewhere is overwriting the value on build with addons. But not on individual addon builds.

@mrbaseball43
Copy link

Did anyone ever figure this one out?

@phunkyfish
Copy link
Collaborator

Did anyone ever figure this one out?

Not yet unfortunately

@john-clark
Copy link

Nvidia Shield running arm64 nightly is also missing,

@phunkyfish
Copy link
Collaborator

@tresrrr
Copy link

tresrrr commented Aug 17, 2022

Something is still wrong, because in the last build on Jenkins at 17 ago. 2022 3:00:33 shows build errors on inputstream.ffmpegdirect make

Undefined symbols for architecture arm64:
  "_uncompress", referenced from:
      LibRaw::deflate_dng_load_raw() in libraw_r.a(fp_dng.o)
ld: symbol(s) not found for architecture arm64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
make[7]: *** [imagedecoder.raw.20.1.0.dylib] Error 1
make[6]: *** [CMakeFiles/imagedecoder.raw.dir/all] Error 2
make[5]: *** [all] Error 2
make[4]: *** [imagedecoder.raw-prefix/src/imagedecoder.raw-stamp/imagedecoder.raw-build] Error 2
make[3]: *** [CMakeFiles/imagedecoder.raw.dir/all] Error 2
make[2]: *** [CMakeFiles/imagedecoder.raw.dir/rule] Error 2
make[1]: *** [imagedecoder.raw] Error 2
(...)
make[2]: *** [CMakeFiles/inputstream.ffmpegdirect.dir/rule] Error 2
make[1]: *** [inputstream.ffmpegdirect] Error 2

@phunkyfish can you take a look please?

@phunkyfish
Copy link
Collaborator

Hmm, that PR looks to be for android, my mistake. Maybe #195 is not complete, but I don’t see how it could be the problem.

The issue is that TVOS builds on the addon project just not as part of the Jenkins tvos build of Kodi with addons.

@AlwinEsch @fuzzard any ideas what is happening here?

@tresrrr
Copy link

tresrrr commented Aug 18, 2022

I'm trying to compile separately the inputstream.ffmpegdirect with macos12.5 and xCode13.4.1 installed, and I can't "./configure" it.
The ./configure with arguments --host=aarch64-apple-darwin --with-platform=tvos --with-sdk=13 always fails with:

(...)
checking whether the compiler supports GNU C++... no
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ accepts -g... yes
checking for /Library/Developer/CommandLineTools/usr/bin/clang++ option to enable C++11 features... none needed
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ supports C++17 features with -std=c++17... no
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ supports C++17 features with +std=c++17... no
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ supports C++17 features with -h std=c++17... no
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ supports C++17 features with -std=c++1z... no
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ supports C++17 features with +std=c++1z... no
checking whether /Library/Developer/CommandLineTools/usr/bin/clang++ supports C++17 features with -h std=c++1z... no
configure: error: *** A compiler with support for C++17 language features is required.

Is there something to do before or some arguments to apply for build from macos?

@kambala-decapitator
Copy link

kambala-decapitator commented Aug 18, 2022

@tresrrr to build for any other platform than macOS, you must use full Xcode installation, not just Xcode Command Line Tools. if you already have it, you can point to it with sudo xcode-select -s /path/to/Xcode/ or export DEVELOPER_DIR=/path/to/Xcode/

--with-sdk=13

please drop this parameter

@U5MANKHAL1D
Copy link

I solved it. Extract the kodi deb in Filza. Copy ffmpegdirect (from jenkins having .dylib) folder into Kodi addon folder. Repack to Deb using Filza and install

@v4mp1
Copy link

v4mp1 commented Sep 3, 2023

Inputstream.ffmpegdirect is still missing in kodi v19-v21 for tvOS.

Please fix?

I fixed it by installing the zip from jenkins on my jailbroken Apple TV.

Open Kodi and Install Addons from zip (navigate to the folder where you downloaded the zip, I downloaded it to:
/private/var/mobile/Downloads) and install it.


I made a IPA including ffmpegdirect, before you can install it with XCode you have to sign it with iOS App Signer and your own profile you created in XCode. After that Kodi runs without jailbreak.
https://drive.google.com/file/d/1uAHL2P1iXS-uAt3-HjYhoHDixmT7toCY

@phunkyfish
Copy link
Collaborator

For the Omega version we have some dependency updates which hopefully will resolve the kodi build issues. Should be merged in the next week or two.

@v4mp1
Copy link

v4mp1 commented Sep 5, 2023

I noticed a bug? maybe you can have a look (when Kodi not installed as DEB but installed as IPA over XCode):
When installed as DEB everything is working as it should.

All of the addons not create any files (the folders are empty) on the following path on tvOS IDK if it is the same on iOS.
Path: /private/var/mobile/Containers/Data/Application/7CCC3A74-75EA-432C-B625-DF3795D9149A/Library/Caches/Kodi/userdata/addon_data

After I copied all files from jailbroken deb Kodi install into Xcode IPA Kodi install:
'/var/mobile/Library/Preferences/Kodi/userdata/addon_data/*' ->
'/private/var/mobile/Containers/Data/Application/7CCC3A74-75EA-432C-B625-DF3795D9149A/Library/Caches/Kodi/userdata/addon_data'

And set owner 'mobile' and group 'mobile' recursive on the following folder:
/private/var/mobile/Containers/Data/Application/7CCC3A74-75EA-432C-B625-DF3795D9149A

Everyhting worked now on the non jailbreak Xcode IPA Kodi install.

@iAdam1n
Copy link

iAdam1n commented Nov 19, 2023

@v4mp1 Hey, great work on these. Would you be able to make one for Kodi 20.2? I tried doing it myself but for some reason it fails to install when doing this. Your build worked perfectly but I need to use 20.2 and not 21.0.

@PalmTamino
Copy link

For the Omega version we have some dependency updates which hopefully will resolve the kodi build issues. Should be merged in the next week or two.

Its been 2 months, still the same issues?

@phunkyfish
Copy link
Collaborator

phunkyfish commented Dec 14, 2023

It will take as long as it takes. The PR is here if you like to follow along (#241). Once the author has time to revisit the PR it will get merged.

The PR requires a rebase against some recent change prior to being merged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

14 participants