apportable / openal-soft Goto Github PK
View Code? Open in Web Editor NEWLicense: GNU Lesser General Public License v3.0
License: GNU Lesser General Public License v3.0
This is an OpenAL-soft shared library for Android. Features: * builds for Froyo or later * builds as a shared library * back-end for AudioTrack or OpenSLES * Fixed-point (default) or floating-point math for mixing Created with: android create project --target android-8 --name openal_soft --path openal-soft --activity openal_soft --package com.apportable.openal_soft Fork of OpenAL-soft in jni/OpenAL Build with: cd jni ndk-build
Hello. I have checked out openal soft and I am attempting to build it. My current process is I have a gradle build and I am attempting to add openal-soft to my build with
ant.importBuild '../openal-soft/build.xml'
This fails with
Caused by: /Users/mcc/work/h/oculus/lovrapp-temp-git2/deps/openal-soft/build.xml:83: Cannot find /Developer/android-sdk/tools/ant/build.xml imported from /Users/mcc/work/h/oculus/lovrapp-temp-git2/deps/openal-soft/build.xml
Checking Google, I find many people reporting that build.xml has in fact now been removed from the Android SDK, and you have to build with an older SDK if you need that SDK build.xml file. But I cannot downgrade my SDK so this is not an option. I do not understand the details but this appears to be no longer a supported build method.
How should I proceed?
Also: Is this project still supported? Does apportable still exist?
The compiler warns about this, it seems like a real issue:
[armeabi-v7a] Compile thumb : openal <= mixer.c
/home/bram/src/openal-soft/jni/OpenAL/Alc/mixer.c: In function 'Mix_ALfp_6_point32':
/home/bram/src/openal-soft/jni/OpenAL/Alc/mixer.c:226:55: warning: iteration 3u invokes undefined behavior [-Waggressive-loop-optimizations]
DrySend[i][c] = Source->Params.DryGains[i][c];
^
/home/bram/src/openal-soft/jni/OpenAL/Alc/mixer.c:359:1: note: in expansion of macro 'DECL_TEMPLATE'
DECL_TEMPLATE(ALfp, 6, point32)
^
/home/bram/src/openal-soft/jni/OpenAL/Alc/mixer.c:223:5: note: containing loop
for(i = 0;i < Channels;i++)
^
/home/bram/src/openal-soft/jni/OpenAL/Alc/mixer.c:359:1: note: in expansion of macro 'DECL_TEMPLATE'
DECL_TEMPLATE(ALfp, 6, point32)
^
/home/bram/src/openal-soft/jni/OpenAL/Alc/mixer.c: In function 'Mix_ALfp_6_lerp32':
...
I have working code that uses openal-soft.
Everything is just fine on armeabi-v7a builds.
But when I build for arm64_v8a, I see SIGSEGV in alSourcePlay.
F/libc ( 4570): Fatal signal 11 (SIGSEGV), code 1, fault addr 0xf6db8b3d0bd82f in tid 4585 (Thread-1410)
F/DEBUG ( 497): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
F/DEBUG ( 497): Build fingerprint: 'Huawei/JDN/hwjdn:6.0.1/HuaweiMediaPad/JDN-W09C233B007:user/release-keys'
F/DEBUG ( 497): Revision: '0'
F/DEBUG ( 497): ABI: 'arm64'
F/DEBUG ( 497): pid: 4570, tid: 4585, name: Thread-1410 >>> org.stolk.coo <<<
F/DEBUG ( 497): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xf6db8b3d0bd82f
F/DEBUG ( 497): x0 00000055be87c650 x1 00000000be87c650 x2 0000000000000000 x3 0000007f99ef0450
F/DEBUG ( 497): x4 0000000000000000 x5 0000000000004005 x6 0000000000000000 x7 0000007f82fee304
F/DEBUG ( 497): x8 bdf6db8b3d0bd82f x9 bdf6db8b3d0bd82f x10 0000000000000000 x11 0000000000000004
F/DEBUG ( 497): x12 00000000be87c650 x13 0000000000000000 x14 0000000000000001 x15 0000007f9f39eaf8
F/DEBUG ( 497): x16 0000007f821ed5d0 x17 0000007f82083a24 x18 0000000000004005 x19 00000055beebd910
F/DEBUG ( 497): x20 0000007f99eef5c4 x21 0000000000000001 x22 0000007f82144148 x23 0000007f8214415a
F/DEBUG ( 497): x24 00000000be87c650 x25 0000000000000000 x26 0000007f821f1790 x27 0000000000001014
F/DEBUG ( 497): x28 0000000000001013 x29 0000007f99eef5b0 x30 0000007f820817c4
F/DEBUG ( 497): sp 0000007f99eef560 pc 0000007f82081934 pstate 0000000080000000
F/DEBUG ( 497):
F/DEBUG ( 497): backtrace:
F/DEBUG ( 497): #00 pc 000000000019c934 /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (alSourcePlayv+536)
F/DEBUG ( 497): #01 pc 000000000019c6f8 /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (alSourcePlay+44)
F/DEBUG ( 497): #02 pc 00000000000a5f6c /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (_ZN5MoVis9MusicPlayEPKc+508)
F/DEBUG ( 497): #03 pc 00000000000a0d24 /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (_ZN5MoVis13ParseSimEventEPKcPK3Wld+1276)
F/DEBUG ( 497): #04 pc 000000000009f7f0 /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (_ZN5MoVis10RecvEventsEPK3Wld+148)
F/DEBUG ( 497): #05 pc 000000000009f1a0 /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (_ZN5MoVis6UpdateEfifPK3Wld+672)
F/DEBUG ( 497): #06 pc 000000000009c3bc /data/app/org.stolk.coo-2/lib/arm64/libcoo.so (android_main+1708)
F/DEBUG ( 497): #07 pc 0000000000091958 /data/app/org.stolk.coo-2/lib/arm64/libcoo.so
F/DEBUG ( 497): #08 pc 0000000000067614 /system/lib64/libc.so (_ZL15__pthread_startPv+52)
F/DEBUG ( 497): #09 pc 000000000001c684 /system/lib64/libc.so (__start_thread+16)
F/DEBUG ( 497):
F/DEBUG ( 497): Tombstone written to: /data/tombstones/tombstone_04
Excuse me
I want get second play of the time buffer
I wrote this code.
float offset;
alGetSourcef(source, AL_SEC_OFFSET, &offset);
return offset;
But, I was not able to do so.
I was able to get in this code.
float offset;
alGetSourcef(source, AL_BYTE_OFFSET, &offset);
ALint bufferID, frequency, bitsPerSample, channels;
alGetSourcei(source, AL_BUFFER, &bufferID);
alGetBufferi(bufferID, AL_FREQUENCY, &frequency);
alGetBufferi(bufferID, AL_CHANNELS, &channels);
alGetBufferi(bufferID, AL_BITS, &bitsPerSample);
return ((double)offset)/(frequency_channels_(bitsPerSample/8));
Why do could not be?
I would appreciate your favor.
When building with clang:
/home/bram/src/openal-soft/jni/OpenAL/Alc/opensles.c:239:24: warning: multiple unsequenced modifications to 'bufferIndex'
[-Wunsequenced]
bufferIndex = (++bufferIndex) % bufferCount;
~ ^
/home/bram/src/openal-soft/jni/OpenAL/Alc/opensles.c:368:20: warning: multiple unsequenced modifications to 'bufferIndex'
[-Wunsequenced]
bufferIndex = (++bufferIndex) % bufferCount;
A more straightforward:
bufferIndex = ( bufferIndex+1) % bufferCount;
...should be used.
bram
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.