Re: ANDROIDBUFFERQUEUE interface of OpenSL ES not present in the library binary

853 views
Skip to first unread message

David Turner

unread,
Nov 30, 2012, 11:03:12 AM11/30/12
to andro...@googlegroups.com
This looks like either a packaging or header bug, but it's a bit hard to tell right now.

From the platform sources in AOSP, it looks like SL_IID_ANDROIDBUFFERQUEUE was renamed to SL_IID_ANDROIDBUFFERQUEUESOURCE for Android 4.1
Something tells me that this API wasn't ready and should not be exposed by NDK headers.

I'd recommend filing a bug at b.android.com for this. Hopefully Glenn will be able to comment.

On Thu, Nov 29, 2012 at 1:06 PM, Roet Fuss <roet...@gmail.com> wrote:
Hi everyone,

I wanted to report here that even though the android OpenSL headers for platform-14 in the NDK contain the declaration for
the ANDROIDBUFFERQUEUESOURCE interface (SL_IID_ANDROIDBUFFERQUEUESOURCE), libOpenSL.so does not have it.
I am wondering whether this is an oversight by the Android system developers, because surely they can't add symbols to published headers if
they are not supported.

If I use it in a program, I get a link error

../jni/opensl_io3.c:104: undefined reference to `SL_IID_ANDROIDBUFFERQUEUESOURCE'

Then if I look at the symbols with nm, I get this:

00002000 B SL_IID_3DCOMMIT
00002004 B SL_IID_3DDOPPLER
00002008 B SL_IID_3DGROUPING
0000200c B SL_IID_3DLOCATION
00002010 B SL_IID_3DMACROSCOPIC
00002014 B SL_IID_3DSOURCE
00002018 B SL_IID_ANDROIDCONFIGURATION
0000201c B SL_IID_ANDROIDEFFECT
00002020 B SL_IID_ANDROIDEFFECTCAPABILITIES
00002024 B SL_IID_ANDROIDEFFECTSEND
00002028 B SL_IID_ANDROIDSIMPLEBUFFERQUEUE
0000202c B SL_IID_AUDIODECODERCAPABILITIES
00002030 B SL_IID_AUDIOENCODER
00002034 B SL_IID_AUDIOENCODERCAPABILITIES
00002038 B SL_IID_AUDIOIODEVICECAPABILITIES
0000203c B SL_IID_BASSBOOST
00002040 B SL_IID_BUFFERQUEUE
00002044 B SL_IID_DEVICEVOLUME
00002048 B SL_IID_DYNAMICINTERFACEMANAGEMENT
0000204c B SL_IID_DYNAMICSOURCE
00002050 B SL_IID_EFFECTSEND
00002054 B SL_IID_ENGINE
00002058 B SL_IID_ENGINECAPABILITIES
0000205c B SL_IID_ENVIRONMENTALREVERB
00002060 B SL_IID_EQUALIZER
00002064 B SL_IID_LED
00002068 B SL_IID_METADATAEXTRACTION
0000206c B SL_IID_METADATATRAVERSAL
00002070 B SL_IID_MIDIMESSAGE
00002074 B SL_IID_MIDIMUTESOLO
00002078 B SL_IID_MIDITEMPO
0000207c B SL_IID_MIDITIME
00002080 B SL_IID_MUTESOLO
00002084 B SL_IID_NULL
00002088 B SL_IID_OBJECT
0000208c B SL_IID_OUTPUTMIX
00002090 B SL_IID_PITCH
00002094 B SL_IID_PLAY
00002098 B SL_IID_PLAYBACKRATE
0000209c B SL_IID_PREFETCHSTATUS
000020a0 B SL_IID_PRESETREVERB
000020a4 B SL_IID_RATEPITCH
000020a8 B SL_IID_RECORD
000020ac B SL_IID_SEEK
000020b0 B SL_IID_THREADSYNC
000020b4 B SL_IID_VIBRA
000020b8 B SL_IID_VIRTUALIZER
000020bc B SL_IID_VISUALIZATION
000020c0 B SL_IID_VOLUME
00001f90 d _DYNAMIC
00002000 A __bss_start
00002000 A _edata
000020c4 A _end
00000a34 T slCreateEngine
00000a48 T slQueryNumSupportedEngineInterfaces
00000a5c T slQuerySupportedEngineInterfaces

=======
No Android Buffer Queue Source then.

Should I file a ticket on this, where?

Victor



--
You received this message because you are subscribed to the Google Groups "android-ndk" group.
To view this discussion on the web visit https://groups.google.com/d/msg/android-ndk/-/VToRQ9m-WmAJ.
To post to this group, send email to andro...@googlegroups.com.
To unsubscribe from this group, send email to android-ndk...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/android-ndk?hl=en.

Glenn Kasten

unread,
Nov 30, 2012, 11:33:51 AM11/30/12
to andro...@googlegroups.com
I have not been able to duplicate this yet ... I'm seeing the symbol in the files I'm looking at.

OP - did you find the symbol missing in the NDK version of the .so (e.g. $NDK/platforms/android-14/arch-arm/usr/lib/libOpenMAXAL.so or SLES.so), or in the on-device version of the .so (/system/lib/libOpenMAXAL.so or SLES.so)?  If NDK, please supply the NDK version number.  If on-device file, please supply the device name and platform version. Thanks!

Glenn Kasten

unread,
Dec 6, 2012, 1:45:47 PM12/6/12
to andro...@googlegroups.com
OK,  I see what you mean.  The symbol does appear to libOpenMAXAL.so but with an XA_ prefix.
For now try linking with libOpenMAXAL.so [in addition to libOpenSLES.so if needed], and use the XA_ prefix.
Interestingly the docs in $NDK/docs/openmaxal/index.html only mention the XA_IID_ANDROIDBUFFERQUEUESOURCE symbol.

On Sunday, December 2, 2012 9:35:29 AM UTC-8, Roet Fuss wrote:
I am not seeing this symbol in $NDK/platforms/android-14/arch-arm/usr/lib/libOpenSLES.so  (both r8b & r8c), OSX. The nm output above was from r8c. 

Victor

Mayank Agarwal

unread,
Dec 10, 2013, 9:21:54 PM12/10/13
to andro...@googlegroups.com
  
Hi,

i want to understand the type of processing OpenMax AL does on mpeg2 transportream before sending it to SOC.
Please guide me regarding this.

Regards
Mayank

Glenn Kasten

unread,
Dec 12, 2013, 11:49:54 AM12/12/13
to andro...@googlegroups.com
The implementation de-muxes the TS, decodes each elementary stream (video and audio), then renders it.

Please also see my 2013/11/20 post at "OpenMAX AL Player"
https://groups.google.com/forum/#!topic/android-ndk/XzJ_vOGiGPo
Reply all
Reply to author
Forward
0 new messages