Closed iamyellow closed 9 years ago
armv7s should be no problem at least from the GStreamer side (but also not too useful). arm64 will need some more changes. Known so far is libffi but there's probably more
As Apple is soon requiring 64-bit apps this becomes more important: https://developer.apple.com/news/?id=10202014a
I'm doing a testbuild with arm64 now to see what kind of fallout there is
:+1:
Fixed all build failures in cerbero, was fairly straightforward to support ARM64. Just some assembly optimizations need to be ported, e.g. in libvpx.
Where are we on this?
It builds but I have no idea if it works. @superdump was going to test that
I tested a build with cerbero git master and everything compiled. Where everything is GStreamer. We still need to get all the OpenWebRTC extra bits building on all platforms and then also test ARM64 with that.
Did you test if it also worked for something?
Nope. Didn't get to that as I didn't have anything ready to test. :)
Oh I give you something later :)
If that something were avfvideosrc ! vtenc_h264 ! vtdec ! glimagesink that would be bonus points. ;)
Or just use gst-launch-remote. Then you can test everything :)
Any luck with that? Otherwise you can also just use any of the tutorials from here: http://cgit.freedesktop.org/~slomo/gst-sdk-tutorials/tree/gst-sdk/tutorials/xcode%20iOS
All this just needs arm64 to be added to the architectures in the project file.
Haven't had time to sit at the computer yet. Perhaps tomorrow.
I am trying the gst-launch-remote iOS app. I changed the architectures from armv7 to arm64, just to be sure that it was only using arm64. videotestsrc ! autovideosink works. I'm now going to play around some more. :smiley:
Perfect, I assume it basically works then... and that we have no weird linking errors hidden in some plugins (as gst-launch-remote links in basically every single plugin).
If you find any problems with vtdec/vtenc_h264 or something please collect them, but they are probably unrelated to arm64 :)
Is there a way to nuke all existing pipelines and start over without killing the app?
When you set a new pipeline it will set the current one to NULL state and unref it immediately
Ah, nice!
vtenc_h264/vtdec looks like it needs some tweaks for low-latency real-time use, but otherwise works fine. :grinning:
👍
Any progress on the 64-bit?
Not more than a bit more testing and some changes to vtenc_h264 to reduce the encoding latency. GStreamer works fine though.
Great work guys..waiting for 64bit :)
Me to @Tonku, cannot move to WKWebView
in Bowser since it is unstable on 32 bit: https://github.com/EricssonResearch/bowser/issues/1
is 64bit working now?
Thanks
I believe so. I am literally building everything from current cerbero as I write in order to test all the example apps. That will include testing apps using 64-bit on an iPhone 6 Plus. We have identified some bits and pieces that will still need further assembly optimisation specifically for ARM64 but there should be C fallback code if absolutely necessary but we're also working to avoid unnecessary software processing.
There are still problems for apps that want to use the JavaScript bridge, such as Bowser and other hybrid apps: https://github.com/EricssonResearch/openwebrtc/issues/177
Thanks for the update, sadly my app is a hybrid app which uses javascript bridge, so it will not work in 64bit right?
Not yet but it will! We are working on it. Watch the other issue I linked to for progress. In the meantime you can develop using 32-bit only. Look at the sample apps if you're unsure of how the build settings should be set up.
Most likely not, you can try though, maybe you're lucky and don't run into that specific problem. We're looking into that problem.
Thanks. Will try building using Cerebro, hopefully it will build. :)
There was a crash bug in JavaScriptCore on 64-bit that is fixed by updating libffi. However, updating libffi breaks the libffi build for 32-bit arm, at least for iOS. See https://github.com/atgreen/libffi/issues/181
libffi now works with JavaScriptCore on both 32-bit and 64-bit. Use cerbero and it works.
hey! thanks for this great effort! is there any chance to compile for architectures > armv7 for iOS?