AprilAndFriends / theoraplayer

A multi-threaded C++ library that plays video files supporting multiple codecs across platforms. Easy to use, fast, responsive, abstract interface and minimal dependencies, you'll soon be wondering how you lived without it! ;) Audio and Video interfaces are completely abstracted so the library can be used anywhere, regardless of what you use to display video frames and play audio samples (eg. OpenGL / OpenAL, Direct3D / DirectSound?, SDL / SDL_mixer, X11 / alsa ...) The library can pre-cache video frames and decoded audio samples for maximum efficiency and smooth playback, even on single-cpu systems. Currently, the library supports Theora on Windows, Mac, iOS, Linux, Android, WinRT and Windows Phone. H.264 is supported on Mac and iOS.
BSD 3-Clause "New" or "Revised" License
84 stars 43 forks source link

ARM64 Support for Android #13

Open sirasi opened 7 years ago

sirasi commented 7 years ago

Hi,

is it planned to support ARM64 for android in the future? Or is it already possible, i did not see it...

kspes commented 7 years ago

not in the near future. but the code is 64bit-safe. you can just compile it for arm64 if you want. but you won't get arm assembly optimizations.

sirasi commented 7 years ago

Really? Is it that easy? What do i have to change to make it working? would be great!

borisblizzard commented 7 years ago

Hello,

Actually this isn't quite correct. Our ASM optimizations work only on 32-bit CPUs. Somebody recently contacted me directly about ARM64v8 support and we came to the conclusion that we'd need updated ASM code for 64-bit support.

kspes commented 1 year ago

Update on this question, I got arm64 NEON optimizations working on iOS and MacOS (arm64) using code from this repo: https://github.com/linnaea/theora/tree/master

This user rewrote arm specific code using llvm intrinsics, which are usable on both 32 and 64 bit archs. I suspect I'll have success porting to android as well. Hope it helps!