inputstream.ffmpegdirect icon indicating copy to clipboard operation
inputstream.ffmpegdirect copied to clipboard

[iOS] arm64 | Kodi missing inputstream.ffmpegdirect

Open jakub-antos opened this issue 3 years ago • 37 comments

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.

jakub-antos avatar Nov 18 '21 19:11 jakub-antos

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.

phunkyfish avatar Nov 18 '21 23:11 phunkyfish

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.

jakub-antos avatar Nov 20 '21 11:11 jakub-antos

Where are you looking for the addon in kodi?

phunkyfish avatar Nov 20 '21 11:11 phunkyfish

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.

jakub-antos avatar Nov 20 '21 11:11 jakub-antos

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 avatar Nov 20 '21 11:11 phunkyfish

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

phunkyfish avatar Nov 20 '21 12:11 phunkyfish

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?

phunkyfish avatar Nov 20 '21 12:11 phunkyfish

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

jakub-antos avatar Nov 20 '21 12:11 jakub-antos

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.

jakub-antos avatar Nov 20 '21 12:11 jakub-antos

@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.

kambala-decapitator avatar Nov 20 '21 12:11 kambala-decapitator

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.

jakub-antos avatar Nov 20 '21 12:11 jakub-antos

@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.

phunkyfish avatar Nov 20 '21 13:11 phunkyfish

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.

jakub-antos avatar Nov 20 '21 13:11 jakub-antos

file system sandbox blocked mmap()

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

kambala-decapitator avatar Nov 20 '21 14:11 kambala-decapitator

"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

jakub-antos avatar Nov 20 '21 14:11 jakub-antos

Jenkins doesnt build ffmpegdirect for iOS for some unknown reason

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

fuzzard avatar Nov 20 '21 20:11 fuzzard

@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.

sy6sy2 avatar Nov 20 '21 22:11 sy6sy2

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/

phunkyfish avatar Nov 20 '21 22:11 phunkyfish

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.

kambala-decapitator avatar Nov 21 '21 17:11 kambala-decapitator

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

phunkyfish avatar Nov 21 '21 19:11 phunkyfish

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.

AlwinEsch avatar Nov 21 '21 22:11 AlwinEsch

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

phunkyfish avatar Dec 09 '21 07:12 phunkyfish

Did anyone ever figure this one out?

mrbaseball43 avatar Apr 24 '22 12:04 mrbaseball43

Did anyone ever figure this one out?

Not yet unfortunately

phunkyfish avatar Apr 24 '22 13:04 phunkyfish

Nvidia Shield running arm64 nightly is also missing,

john-clark avatar May 04 '22 02:05 john-clark

There is a fix here: https://github.com/xbmc/inputstream.ffmpegdirect/pull/175

you can download a testbuild here: https://jenkins.kodi.tv/blue/organizations/jenkins/xbmc%2Finputstream.ffmpegdirect/detail/PR-175/2/artifacts

phunkyfish avatar May 04 '22 06:05 phunkyfish

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?

tresrrr avatar Aug 17 '22 18:08 tresrrr

Hmm, that PR looks to be for android, my mistake. Maybe https://github.com/xbmc/inputstream.ffmpegdirect/pull/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?

phunkyfish avatar Aug 17 '22 20:08 phunkyfish

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?

tresrrr avatar Aug 18 '22 10:08 tresrrr

@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

kambala-decapitator avatar Aug 18 '22 10:08 kambala-decapitator