Posts: 4
Joined: Jun 2011
Reputation:
0
Hi,
I have an iOS developer account, so I can build and load xbmc to my iPhone 4 and iPad without jailbreak them. But when I tried to decode some H 264 stream, I got this error.
VideoToolBox decoder not available. Use : sysctl -w security.mac.proc_enforce=0; sysctl -w security.mac.vnode_enforce=0
But to run sysctl, I need to jailbreak my devices. Is it possible to use enable VideoToolbox on iOS device without jailbreak?
Thanks!
Posts: 1,623
Joined: Sep 2007
Reputation:
27
keith
Team-Kodi Member
Posts: 1,623
Nope, but if you figure out how, let us know.
IIRC, someone got it working once, but since then nobody has been able too.
Posts: 16,946
Joined: Feb 2011
Reputation:
256
Since all apps run as user "mobile" i think you are not allowed to call sysctl. Maybe there is some trick to lift the access rights somehow but i think there is no go...
AppleTV4/iPhone/iPod/iPad: HowTo find debug logs and everything else which the devs like so much:
click here
HowTo setup NFS for Kodi:
NFS (wiki)
HowTo configure avahi (zeroconf):
Avahi_Zeroconf (wiki)
READ THE IOS FAQ!:
iOS FAQ (wiki)
Posts: 25
Joined: Apr 2011
Reputation:
0
ascl_
Junior Member
Posts: 25
Ah that's a good point, mobile may not have enough permissions. I really need to spin a build of XBMC and play around with it.
Posts: 4
Joined: Jun 2011
Reputation:
0
I tried use sysctlbyname to change these two values, but it didn't work.
Maybe there is some other value can be changed by sysctl, or some key-value in the entitilement can turn on the videotoolbox?
Posts: 11,582
Joined: Feb 2008
Reputation:
84
davilla
Retired-Team-XBMC Developer
Posts: 11,582
write access to security.mac.proc_enforce and security.mac.vnode_enforce were removed at the kernel level in 4.3+
Posts: 25
Joined: Apr 2011
Reputation:
0
ascl_
Junior Member
Posts: 25
Thanks for the definitive answer.
Posts: 11,582
Joined: Feb 2008
Reputation:
84
davilla
Retired-Team-XBMC Developer
Posts: 11,582
2011-06-19, 19:07
(This post was last modified: 2011-06-19, 19:10 by davilla.)
MediaPlayer is outside the normal iphone app sandbox and has either a) sandbox profile or b) entitlements that enable iokit comm.
Under the ATV2, the offending call is;
"sandboxd[300]: Lowtide(276) deny iokit-open AppleVXD375UserClient"
That's sandboxd catching our attempt to use VideoToolBox. VideoToolBox is opening an iokit connection to AppleVXD375UserClient. VXD is the decoder.
EDIT: The 'normal' way to use MediaPlayer is with Apple's MediaPlayer class. Pass it an URL and it handled fetch, demux, decode and display. All this is handled by MediaPlayer and your ios more or less gets out of the way. Since we want to handle fetch, demux and display, this class will not help as it only handles the container formats that Apple's MediaPlayer knows about.
Posts: 4
Joined: Jun 2011
Reputation:
0
Hi Davilla, do you mean when I use the mediaplayer framework. It is not a normal library call, it actually invoke another process to play the media?
My problem with mediaplayer is that it doesn't seem to support realtime streaming. It only handle http.