• Home
  • History
  • Annotate
  • only in /frameworks/wilhelm/tests/sandbox/
History log of /frameworks/wilhelm/tests/sandbox/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
e57c13397185f9ad0f162855e9a8ebeb0c94bfc4 24-May-2014 Andy Hung <hunga@google.com> Add float playback capability to OpenSL ES

Add SLAndroidDataFormat_PCM_EX to match OpenSLES 1.1 header file,
together with related SL_ANDROID_PCM_REPRESENTATION_* constants.
Use slesTest_playbq as the test application.

Change-Id: I04bcd170f5c517051a799bacf8f52da5f1353ad6
laybq.c
c323fec2a2639c0cf7463016d592d0eb0539657c 24-May-2014 Andy Hung <hunga@google.com> Add 24 bit and 32 bit playback capability to OpenSL ES

slesTest_playbq is the test application.

Change-Id: Iaa453471d2e9ff4e6b11ac5c68690993179fea2b
laybq.c
e047d27324083628b51bad0661a184f6cb96c56d 15-May-2014 Glenn Kasten <gkasten@google.com> Make slesTest_object work again

Change-Id: I92f125c700002fb0f705eade5ccc63445a878991
bject.c
f1a8dbbda361ce5e4ce96cc1586964d9e18a2a2f 20-Mar-2014 Glenn Kasten <gkasten@android.com> am a62c3572: Merge "Revert "For checkbuild, disable all Wilhelm tests in 64-bit""

* commit 'a62c3572e60ae0446632de15418a65089cccf551':
Revert "For checkbuild, disable all Wilhelm tests in 64-bit"
0266296b3a85561194cff36829dab4b02153d8f6 20-Mar-2014 Glenn Kasten <gkasten@android.com> Revert "For checkbuild, disable all Wilhelm tests in 64-bit"

This reverts commit 4a762c2b589568b7b4c1af4fe313d622a7b339c6.
ndroid.mk
1a90a1b28e1c842178c0dfbf6d6c90510d7390be 18-Mar-2014 Glenn Kasten <gkasten@android.com> am 297ca210: Merge "For checkbuild, disable all Wilhelm tests in 64-bit"

* commit '297ca210a54028452edc067e89956d8605d607b2':
For checkbuild, disable all Wilhelm tests in 64-bit
4a762c2b589568b7b4c1af4fe313d622a7b339c6 18-Mar-2014 Glenn Kasten <gkasten@android.com> For checkbuild, disable all Wilhelm tests in 64-bit

These depend on libOpenSLES.so or libOpenMAXAL.so,
which in turn depend on libstagefright.so, which is not 64-bit ready yet.

Change-Id: I7b29feb4fdac08edad6b839cf3f8161940fb1555
ndroid.mk
1dafaf975636480dd42c57ef2c3b806739325ef8 08-Mar-2014 Glenn Kasten <gkasten@google.com> Fix checkbuild

Change-Id: Ic05acbd53a8f0a2ded837c8999a5de51ccd6bb8a
laybq.c
01f8573bc2a850536b02855d483dfe130c050a2f 12-Mar-2013 Ashok Bhat <ashok.bhat@arm.com> AArch64: Minor changes related to 64-bit platform

Changes include
[x] Use %zu for size_t
[x] Use PRId64 to print 64-bit integer value
[x] Use uintptr_t for integer variable used to store address.

Change-Id: I69926cce76b0d645f1abccd584444197a5e40318
Signed-off-by: Marcus Oakland <marcus.oakland@arm.com>
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
ntbufq.c
aplay.c
8191551b15a58cf988ee3b21ebbb5a27c94e9653 06-Aug-2013 Glenn Kasten <gkasten@google.com> Merge "Fix build warnings"
3eaa329775fc522d8ea4acd4edc379eabf9ac332 12-Nov-2012 Glenn Kasten <gkasten@google.com> Fix build warnings

narrowing conversion of '-1' from 'int' to 'SLuint32 {aka unsigned int}' inside { } is ill-formed in C++11 [-Wnarrowing]
converting to non-pointer type 'pthread_t {aka long int}' from NULL [-Wconversion-null]
warning: 'currentRate' may be used uninitialized in this function [-Wmaybe-uninitialized]

Change-Id: I066260cc216ff9f15c787f65e3d3efbda8f8ef35
laybq.c
5e6f449b9126cfd53743c83d55c52f1f50aa450d 02-Aug-2013 Glenn Kasten <gkasten@google.com> liblog is needed now

Change-Id: Ie17be7ed6d1d8c67c8e5f5515e16dac9e2cae04a
ndroid.mk
3f73d418d3738c05fbb872644edc90765d1de00a 10-Apr-2013 Ying Wang <wangying@google.com> Add liblog

Bug: 8580410
Change-Id: Ie9f89a3b26d0070c73d061c2c2566dd703d7a137
ndroid.mk
ad6c970f500cf99dd1eb23b9f5b2360948db90e7 31-Oct-2012 Glenn Kasten <gkasten@google.com> Use libnbaio to avoid file I/O in audio callback

Bug: 7142834
Change-Id: I4f78f029ac6bfe27bea4dfe1f00812a2bdf8785d
ndroid.mk
laybq.c
456d8452cb6ceeda3b2134b9077f19ca0f4a1890 12-Nov-2012 Glenn Kasten <gkasten@google.com> static libsndfile requires dynamic libaudioutils

Change-Id: I6a8f28503fd2dcde7d195879bc23d185ae93f617
ndroid.mk
56847632bc2fd39a8fff68fa1e883f06310c876a 31-Oct-2012 Glenn Kasten <gkasten@google.com> Use tinysndfile

Change-Id: I6f94fed488662a93e778ea64b8e4861dce528f26
ndroid.mk
laybq.c
f8d147df8f6dba1bb5bb0ea4c09795ee827569ca 06-Apr-2012 Glenn Kasten <gkasten@google.com> playbq's use of playback rate interface optional

The playback rate interface is not supported for fast tracks,
so to enable testing of fast tracks using playbq,
only request the playback rate interface if it is actually needed.

Change-Id: I15e512e1e853dccc752ad59c727bb0ed2d651162
laybq.c
799d44ecb3f5591c19d186b9675f363699116c2d 25-Aug-2012 Jeff Brown <jeffbrown@google.com> Use new surface flinger API.

Change-Id: Iecd955817d2800e2d1da3187da8958aa261ce435
ativewindow.cpp
5321b3665e1a538cdcf894dea99d15c10b18ccf8 14-Mar-2012 Glenn Kasten <gkasten@google.com> Prepare to move system/media

Change-Id: Iac6dcfb72753e53e9a42b5feeaa2d6523f2395a4
ndroid.mk
treamSource/Android.mk
01e4a8ff63523bba5c8f919a72e0adb66daf4b98 26-Feb-2012 Mathias Agopian <mathias@google.com> cleanup includes

Change-Id: Ia98b76b2e0c49ee257e1f31c61c2d6f72a9fe894
ativewindow.cpp
701cf2a089c87ec5b8e5a953f637b250aee4a58a 05-Jan-2012 Glenn Kasten <gkasten@google.com> Minor improvements to test app

Continuous pitch bend.
Expand the help text for options.
Improve error recovery for invalid options.
Fix typo in error message.

Change-Id: I7724372a510cb3733d31feeaffb22fbfa13b328c
laybq.c
6cb52acc3e6fc1ef23b26d0bf9827f168bb8b71e 07-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "Fix line length"
68686bd0cb31f99f07ebc176176f8b51adf8d1d5 21-Jul-2011 Glenn Kasten <gkasten@google.com> Fix line length

And add explanation for -p# option of slesTest_recBuffQueue

Change-Id: I32a06caf633c6796e263a1beeec93513cd775096
treamSource/slesTestPlayStream.cpp
04a960c641a5885784f84382c0dabd6d34f70226 07-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "xaplay test additions"
b17edb96ba759cd1197bf13cd13e279ee144da60 30-Aug-2011 Glenn Kasten <gkasten@google.com> xaplay test additions

Allow playing a subset of input file.
Add format change test.
Call gComposerClient->dispose before exit.
Remove dead code related to re-initializing the engine.
Add position, seek, loop tests.
Force callback failures with -c option.
Don't enqueue EOS more than once.
Add STOPPED at end of xaplay.
Add temporary set play state to paused.
Added discontinuity test.
More stream information queries and printfs.
Shorter marker to make it easier to hit when looping.
Add explanation of command line options.

Change-Id: I5b425a52f9afc2c8f9083badb6de0773f711c6d9
ativewindow.cpp
ativewindow.h
aplay.c
c3b82a293ed06001ba6d50f111608160c6065ef2 18-Sep-2011 Glenn Kasten <gkasten@google.com> Final revisions for NDK API level 14

Rename ANDROID_MIME_MP2TS to XA_ANDROID_MIME_MP2TS and
ANDROID_MIME_AACADTS to SL_ANDROID_MIME_AACADTS and make public.
ANDROID_MIME_AACADTS_ANDROID_FRAMEWORK remains private.

Change-Id: Ie2cda273b6adb2db453aad188b28e64147f9e6b0
aplay.c
6be131483b1ae3fefd5adda17294a22cff4db806 03-Oct-2011 Glenn Kasten <gkasten@google.com> Fix typos in usage: requires local filename

Change-Id: I6061757f3919718fc2b4da9392e37ed2c795f8b5
treamSource/slesTestPlayStream.cpp
60ca9f9ef02f6e486c3338cb811f603dd7825c05 29-Aug-2011 Glenn Kasten <gkasten@google.com> Rename Android buffer queue GUID for future sink

This change will make it easier to have Android buffer queue as a sink in
the future. For backwards source code compatibility with beta developers,
retain the old name temporarily. As soon as they have switched to the
new name, we will remove the old name.

Details:
- rename XA_IID_ANDROIDBUFFERQUEUE to XA_IID_ANDROIDBUFFERQUEUESOURCE
- rename SL_IID_ANDROIDBUFFERQUEUE to SL_IID_ANDROIDBUFFERQUEUESOURCE
- rename MPH_ANDROIDBUFFERQUEUE to MPH_ANDROIDBUFFERQUEUESOURCE
- did not rename the data locators and interface struct,
as they can be shared across both source and sink
- did not rename the member field mAndroidBufferQueue in
CAudioPlayer / CMediaPlayer as that would be a huge change;
can do that later if necessary
- the SINK definition will be added later when needed

Change-Id: I36dc01050efb99d4d7802b2ca2b870f4d978ee21
treamSource/slesTestPlayStream.cpp
aplay.c
75290ff394698c53f35a21612c03b8ddd21fecf9 22-Aug-2011 Glenn Kasten <gkasten@google.com> xaplay command-line mediaplayer for MPEG-2 TS ABQ

Change-Id: Id5ea3f478f45d4fa4b86772593ae831d9eade952
ndroid.mk
ativewindow.cpp
ativewindow.h
aplay.c
ebca1a420c4ada9eff2e82f0100abaea95b48f24 11-Aug-2011 Glenn Kasten <gkasten@google.com> Test playbq: 8-bit and big-endian byte ordering

Change-Id: Ic34f35226fee07945925cad8cfbc10c756092fee
laybq.c
6807fa7d803d02725fcca4422ae08f6c8e6db725 08-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Add playback rate to buffer queue test player"
9a6c9db763121c3b11765c6c8cf935983c0385bf 03-Aug-2011 Glenn Kasten <gkasten@google.com> Add playback rate to buffer queue test player

Change-Id: I831290c1d70bbd66031f609a63549801b7c7f57b
laybq.c
8653e8eeb955814f49b3b9548e0b6d2931b0221b 24-Jul-2011 Glenn Kasten <gkasten@google.com> Fix race in reverb test

Was setting play state to PAUSED before enabling prefetch callbacks

Change-Id: Idc3d19d87799afe7e8314199c1317cf2cea2c449
everb.c
4076e5009bfe70bc06a78f5aafec77af6c03201d 02-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5108531 Report the correct API level

Use build macro PLATFORM_SDK_VERSION to automatically update the reported
value, however the test program will still need manual updates.

Change-Id: Iae044605db65021c7d1e9825aab80ab5d6b552a8
bject.c
0ab75a12c246f871771dc37b4ac0233cf7ee3f47 21-Jul-2011 Glenn Kasten <gkasten@google.com> pthread_signal instead of polling prefetch status

Also add looping for short files

Change-Id: Ia115ca5ff388a4824d56fad2ad34881479ab3f0d
everb.c
62e784b9b9146cd926077dd550507add3e2a95b0 21-Jul-2011 Glenn Kasten <gkasten@google.com> Merge "Use prefetch status to recover from URI errors"
d91db4c34bdffa3b6d3f9234c8f4f8506bc0aa2e 20-Jul-2011 Glenn Kasten <gkasten@google.com> Use prefetch status to recover from URI errors

Change-Id: I1afa4af018c372448a456824c78e3e1ab1c13b42
ultiplay.c
c6853892c94800e72c0bd676d5d2136d48cea76e 19-Jul-2011 Glenn Kasten <gkasten@google.com> Use the documented header filenames

Both Khronos and we say to use < > in our docs

Change-Id: Ibf1d2b83036582a605aa6b9043210c89a4eb0e1e
onfigbq.c
im.c
ual.c
ngine.c
ntbufq.c
onkey.c
ultiplay.c
ultithread.c
bject.c
utputmix.c
laybq.c
everb.c
rcsink.c
treamSource/slesTestPlayStream.cpp
rimime.c
a.c
58432eb9cea995c69b4f905e68b38c1b8216edeb 13-Jun-2011 Glenn Kasten <gkasten@google.com> Better defaults and fix warnings

Use better defaults for slesTestFeedback rxBufCount and channel count.
Fix build warnings.

Change-Id: Ieef4750cbc454029e61524cc8011a6c774088762
onfigbq.c
ual.c
ngine.c
etch.c
etch.h
ntbufq.c
ultithread.c
bject.c
utputmix.c
everb.c
treamSource/slesTestPlayStream.cpp
a.c
e31a69fcbe27894a597176d05a08e04c06092021 13-Apr-2011 Glenn Kasten <gkasten@google.com> Fix various bugs found with unit tests

ISeek::SetLoop was returning undefined status.
Khronos Bug 7614 - sizeof(long) != 32 bits on x86_64.
Fix bug in IID hashing due to the above.
Fix bug in GenericMediaPlayer::onLoop; was using mPlayer without checking for NULL.
Fix wrong API level in tests/sandbox/object.c.
Decrease log level from I to V in MediaPlayerNotificationClient::notify
and GenericPlayer::~GenericPlayer.
Fix memory leak in tests/sandbox/engine.c.
Comment out overly verbose log in tests/sandbox/streamSource/slesTestPlayStream.cpp.

Change-Id: I322fa9e19ee95ea1e18870a20f6a3c03b8f21208
ngine.c
bject.c
treamSource/slesTestPlayStream.cpp
2de28cc2b424a49a440e1d5893beb07086ab0ad7 17-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "Bug 4106199 Split libOpenSLES.so & libOpenMAXAL.so" into honeycomb-mr1
527f8ca99f2938d6569fc25dcf3256985a54dec6 16-Mar-2011 Glenn Kasten <gkasten@google.com> Bug 4106199 Split libOpenSLES.so & libOpenMAXAL.so

Change-Id: I718cf6bcfff51a6fb153928eb160a36b4ca9fc96
ndroid.mk
e9236d046fdb5cac0696c42e03443a2439188146 16-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Bug 3329759 clean logs, PTS should be unsigned

- Don't pollute logs.
- Save MPEG-2 PTS as an unsigned 64bit value, negative values are
invalid.

Change-Id: I51d427789dd1e42219a63c68159f2e28628f0448
treamSource/slesTestPlayStream.cpp
1c853a41d9d9886e60618a7c878ce3912f46bf3c 15-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Bug 3329759 callback mask for TS streaming

- declare a "buffer event" item key and the event mask matching
the OpenSL ES 1.1 buffer queue event mask
- added a buffer state field in AdvancedBufferHeader to keep
track of the lifecycle of a buffer in the queue
- in StreamPlayer, store a constant to be sent as the item
each time a buffer is dequeued because it's been processed
- fix bug in playStream test app where after clearing the
queue, the data was read to the last dequeued buffer address,
rather than at the beginning of the cache.

Change-Id: I07141c8a913dfedeb9fde41d80afbce794ab7379
treamSource/slesTestPlayStream.cpp
37dc2fccf3f122b79ebd554de209d0a3c94ae161 09-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Bug 3329759 Implement streamInformation and volume in OpenMAX AL

- Implement StreamInformation for video size notification.
- Implement the XAVolumeItf for volume control
- Fix bug in GUID -> MPH hash.
- Fixed typo in GenericPlayer::pause() log
- Do not signal a discontinuity automatically when the ABQ is
cleared because clearing the queue doesn't imply there will
be a discontinuity in the data (e.g. the same data that was
cleared could be reenqueued)
- In "native-media" test app: add test code to exercise the
XAVolumeItf functionality.

Change-Id: I9f69f8cacbdce51b6d96d60141ec1d0f645df991
treamSource/slesTestPlayStream.cpp
e7bfcdc183454ec959ff51342f0973cabba219b2 08-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Bug 3329759 Implement Clear() and GetState() for MPEG-2 TS

- implemented Clear() in AndroidBufferQueue
- declared and implemented GetState() in AndroidBufferQueue
- fixed typo in AudioPlayer_to_android.cpp that cause a "case"
to be compiled as a label (no unused label warning from
compiler)
- more test in sandbox/streamSource

Change-Id: If4eede16430cda943224bf950669cc105ac2f894
treamSource/slesTestPlayStream.cpp
70c49ae2867094072a4365423417ea452bf82231 07-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Bug 3329759 support commands in SLAndroidBufferQueueItf

Support for EOS, DISCONTINUITY, and DISCONTINUITY with
a PTS.

- in IAndroidBufferQueue structure, added buffer type
- modified AdvancedBufferHeader structure to have a buffer
type-specific structure that contains all the items for each
buffer
- added parsing of items when enqueueing a buffer
- enforce buffer size enqueue to be a multiple of MPEG-2 TS
block size for buffer of the corresponding types
- when enqueueing a buffer on an empty queue, implemented
an asynchronous notification on StreamPlayer to consume
the newly queued buffer. Verified this kicks off playback
after having starved the framework for buffers.
- report unknown duration when using AndroidBufferQueue

Change-Id: I9bde97a6c6ffca7d376b4963313b820b35f50a26
treamSource/slesTestPlayStream.cpp
d158d31a6bbb06426b71c3d097b7768bc3fb79a3 04-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Bug 3329759 TS streaming over SLAndroidBufferQueueItf

Modify the SLAndroidBufferQueueItf interface to offer a model
where buffers of data can be queued along with commands
(messages) when used for playback, or buffers of data can be
received along with metadata (messages)

changes:
- new callback and enqueue functions in SLAndroidBufferQueueItf
and XAAndroidBufferQueueItf.
- definition of a new struct, AdvancedBufferHeader, for
the buffers in the queue.
- decoupling of the "buffer available to be filled" from SF
and the call to the ABQ callback. Implemented in new
file AndroidBufferQueueSource.cpp
- source/sink checks and memory allocation when creating an
AudioPlayer or MediaPlayer that uses SLAndroidBufferQueueItf,
and verifying the data fed to the ABQ is declared as
SL_CONTAINERTYPE_MPEG_TS
- updated tests/native-media XA demo code, and
tests/sandbox/streamSource to use the new interface.

Change-Id: I48e44f346e718041d835fde51e349923fcc1f4b1
treamSource/slesTestPlayStream.cpp
04186529e0bcdfa543aa67013fb6d44bf4a1fbbe 25-Jan-2011 Glenn Kasten <gkasten@google.com> Add more test cases to reverb test

Change-Id: Ia0970ebd8e182a45157a6edbef762f2350605a9b
everb.c
262059f71a68edc5e510427c63f5f1623d3672a8 12-Jan-2011 Glenn Kasten <gkasten@google.com> Directory re-organization

Change-Id: I8e3f12a22e765d36ddefd87edf204735b25474f6
ndroid.mk
treamSource/Android.mk
e670554ea199eef745740eaccc176ff283b0cd10 12-Jan-2011 Glenn Kasten <gkasten@google.com> Ignore the pFormat in some cases per spec

Change-Id: Iac14c558fa7410a4b3de5c89f9e5d475404efcea
rcsink.c
1d081e49a10543018e1ae33792bd3d30504719ba 05-Jan-2011 Glenn Kasten <gkasten@google.com> Squashed commit of 9 cherry-picks from master

Android SDK level report is the highest available

Fix bug in seek torture test
This was found because we now do better checking of data locators.

Comment out and decrease log level for play state

Improve error handling and help message in test

Include data source or sink name in log messages

Bug 3326605: AudioRecorder uses wrong channel mask

Don't overwrite previous error in locator check

OpenSLESUT.h is not (yet) a supported header
so remove the symlink from the SLES/ directory

Shared engine between OpenSL ES and OpenMAX AL
ndroid.mk
ual.c
ngine.c
bject.c
utputmix.c
a.c
2daf9b3ede1268e0f89cff53898b7b10940d8de1 16-Dec-2010 Glenn Kasten <gkasten@google.com> Merge "Test bug fixes"
2246c698482ab6860906672229f0ae6d886e6302 16-Nov-2010 Glenn Kasten <gkasten@google.com> Test bug fixes

Preset reverb durationInMsec changed from 5000 to 10000.
NDK does not have an independent API level, so use the SDK's API level.
Removed a workaround for a bug which is now fixed in the implementation.
Fix uninitialized variable in test.

Change-Id: Ibaa4f1d2351e8f75290377cadc02ee2709bf720b
bject.c
rcsink.c
eae4df541ba1d46f65d37e959baf2127aa632c93 10-Dec-2010 Jean-Michel Trivi <jmtrivi@google.com> Start support for XAAndroidBufferQueueItf in OpenMAX AL

Added an Android OpenMAX AL header for the Android interfaces
Registered the AndroidBufferQueueItf as an explicit
interface on MediaPlayer.
Updated the Java+Native example to register a callback from
which OpenMAX AL can retrieve the data to play
Started unifying the player object used by OpenMAX AL and
OpenSL ES so they use a common class.

Change-Id: I73cec8c802f74767545c91278e5e73c8c7995218
treamSource/slesTestPlayStream.cpp
16ce39d96d41884c7b0d1676553ab8167baaab74 09-Dec-2010 Jean-Michel Trivi <jmtrivi@google.com> Add superclass for audio-video playback

Change-Id: Ie7f5cb9d789d41c605dc318bbb311aadabce2c96
treamSource/slesTestPlayStream.cpp
94a37e8117fb72790882dfb815f99e2365754c74 03-Dec-2010 Glenn Kasten <gkasten@google.com> Continue implementation of MediaPlayer object

Add CMediaPlayer.c for the various hooks.
Start implementing Play::SetPlayState for MediaPlayer.
CheckDataSource and Sink now takes a mask of allowed data locator types.
Data source and sink error logs now include the name of the source or sink.

Change-Id: I3702c977dd367a788ce78575e1e2891dafd2c983
a.c
aa2fafdac2711436e5fd8faf162d7087a515cb1c 02-Dec-2010 Jean-Michel Trivi <jmtrivi@google.com> StreamPlayer::onPrepare() should synchronously prepare its player

Change-Id: If8ec63e8b93dea2e1810046e05e692755e6a8887
StreamPlayer::onPrepare() should only return when its media player
is done preparing, so other player commands are processed from
the message queue when the player is ready to receive them.
treamSource/slesTestPlayStream.cpp
cb417262919560a715628f4317dc8a4de386f750 02-Dec-2010 Jean-Michel Trivi <jmtrivi@google.com> Asynchronous prepare() on StreamPlayer

Prepare the StreamPlayer object asynchronously.
Fixes the deadlock issue between the SLAndroidBufferQueue callback
registration and Enqueue() functions.

Change-Id: I76963233f658946db87d0aab6f225bc9e7c8210a
treamSource/slesTestPlayStream.cpp
be59fc5cfd9354d70d4b0e28bb2bca24a6ca6f22 01-Dec-2010 Jean-Michel Trivi <jmtrivi@google.com> More support for SLAndroidBufferQueueItf

Implement Enqueue()
Store "caller" interface to use in the AndroidBufferQueue
callback.
Update test app in sandbox to use the callback to read
from a file and enqueue buffers directly.

Change-Id: I68413731d311532b08f8f13577e3ca81c033fcd4
treamSource/slesTestPlayStream.cpp
8b8875067dd02b79361abb00c5d65b02a8ae72b0 01-Dec-2010 Glenn Kasten <gkasten@google.com> Start implementing CreateMediaPlayer

Add CMediaPlayer class.
Add IEngine_CreateMediaPlayer handler.
Add OpenMAX AL native display data locator and raw image data format.
Add OpenMAX AL I/O devices: camera and radio.

Change-Id: Ie99c09110ac9fdcd98bf0bfc487c6e3fcde58f19
a.c
fa62f9f2c20b446178c05e3e92407fe5dfdbf8a1 30-Nov-2010 Jean-Michel Trivi <jmtrivi@google.com> Support for the SLAndroidBufferQueueItf interface

Rename AndroidStreamSource to AndroidBufferQueue.
Add prototype for SLAndroidBufferQueue functions.
Update sandbox test app to use the new interface.

Change-Id: Ib82180c22e5cf0dd982b4a9bb132667cd2ac4dd7
treamSource/slesTestPlayStream.cpp
8db0b106cdce5f5216b1535492de7930ad738aed 29-Nov-2010 Glenn Kasten <gkasten@google.com> Continued work on OpenMAX AL engine APIs

Added xaCreateEngine as synonym for slCreateEngine,
but not yet reference counted to share same object with slCreateEngine.
Added the beginnings of a XA_IID_ENGINE engine interface
but still needs more work.
Added simple xa test app.
New extension: ANDROID_SDK_LEVEL_10 (not NDK per digit).
Split up sles.c:
- Move data source, sink, locator, format code to data.c
- Move global entry points to entry.c
- Collect all engine-related code into CEngine.c
- Collect all device-related code into devices.c

Change-Id: I9fdeed1e29f698869f409014a39401999ac84e5f
ndroid.mk
a.c
26043f06b7d6cb2f93a2f2e7846a4e59da722206 23-Nov-2010 Jean-Michel Trivi <jmtrivi@google.com> Control MediaPlayer instance from SL ES interfaces

Implement transport control on StreamPlayer.
Store the StreamPlayer in CAudioPlayer as an sp<>
In StreamPlayer: create a media player from the
mediaplayerservice, and implement the IStreamSource
interface to get data fromt the application
callback.
Note that the SLDataLocator_AndroidStreamer and
SLAndroidStreamSourceItf are very much in flux
at the moment.

Change-Id: I11035aafcefd59aad99d1fec9fd54a622e6d1e0f
treamSource/slesTestPlayStream.cpp
b0ab2dee391dd2cb257faeaba252ee6ecccc5f03 08-Nov-2010 Glenn Kasten <gkasten@google.com> Prepare for merged OpenMAX AL and OpenSL ES engine

Field mEngine is now a reference to CEngine instead of IEngine.
Restore Android.mk.
Move mThreadPool, mEqPresetNames, mEqNumPresets from IEngine to CEngine.
IEngineCapabilities_QueryLEDCapabilities and
IEngineCapabilities_QueryVibraCapabilities are now non-static
so that they can be shared by OpenMAX AL's IEngine.
IEngineCapabilities is now required in the build, used by OpenMAX AL IEngine.
The default MPH tables now depend on USE_DESIGNATED_INITIALIZER,
and generate tables for other C compilers programmatically.
Updated comments in MPH.h.
Removed conditionals from MPH_to.c so that non-GNU tables can be built more easily.
Make the interface ID hash generator less specific about hashing algorithm.
Re-build interface ID hash tables.
Update IID_to_MPH.c based on hashgen.
Add generated MPH_to_*.h.
Remove Android dependency.

Change-Id: Icdf89eedc825f9e52bc264b22d923ae157244ed3
ultithread.c
ad887a253969ac2017a1dbe062d0b76d505594c0 20-Nov-2010 Jean-Michel Trivi <jmtrivi@google.com> Set the MediaPlayer data source from a SL_DATALOCATOR_ANDROIDSTREAMER

Use the data locator information to initialize the data source
of the MediaPlayer instance used in the StreamPlayer object.
Register the callback only when the player is stopped.
Added callback events that can be passed from the application
to the implementation to synchronously signal events.

Change-Id: I1fc52d8d46b2bcf8ca11ab0e4d44d40e704ddbfc
treamSource/slesTestPlayStream.cpp
fe6f6b9ed3683119721618e1aeaa8c7d6baee188 19-Nov-2010 Jean-Michel Trivi <jmtrivi@google.com> More support for SL_DATALOCATOR_ANDROIDSTREAM

- add test app in sandbox: based on playUri with different data
locator
- new object, StreamPlayer, that will encapsulate the life-cycle
of the new MediaPlayer object that implements the streaming.

Change-Id: Idfdb00e8622ff18d131465d11178979232ee04f8
treamSource/Android.mk
treamSource/slesTestPlayStream.cpp
0a058cc3d720cdf3f0f8222472a862258482f34f 18-Oct-2010 Glenn Kasten <gkasten@google.com> Bug 3102561 - Tests only

Make the multi-thread test more stressful, to crash more often.
New tests: playbq, srcsink, monkey.
In monkey, re-enable destroy at difficult times.
Add support for testing player insert reverb to the reverb test.
Note: building playbq is disabled by default because it needs libsndfile.

Change-Id: I592ea5f567bddc61174e7d41bc5b36ce32d2b6b8
ndroid.mk
ntbufq.c
onkey.c
ultiplay.c
ultithread.c
laybq.c
everb.c
rcsink.c
7126c25d7c037e5086216cf540ecf40779c3585a 13-Oct-2010 Glenn Kasten <gkasten@google.com> Bug 3102561 - Tests and examples only

Note: the modifications in directory libopensles aid testing,
but have no affect on production builds because they are related
to tracing, which is is disabled by default.

Update feedback test to be more reliable.
Update slesTestPlayUri to exit on prefetch error.
Clean up error and termination handling.
Add comment to record test on how to use it.
Reduce global symbol dependencies when trace is enabled.
Split OpenSLESUT into two files: part that uses printf, and another part that doesn't.
Add SL_RESULT_ prefix to result strings.
slesutResultToString returns NULL for unknown value.
Add multithread torture test.
Compile stream test for non-Android as a no-op.
Improve API test coverage.
Enable assertion checks on test programs.

Change-Id: I6b82026cfa19d2f08cda4c11137e0706e8ff4b8c
ndroid.mk
ngine.c
ultithread.c
bject.c
utputmix.c
61c8274a30ba403191b05d556d063fa5f309ea95 15-Oct-2010 Glenn Kasten <gkasten@google.com> Bug 3102561 - Clean up reverb test

Change-Id: If573c06134810eafd4d41efeb938fa23ae77c2da
everb.c
e629abc58c2acadc7487ea71c1e063f8f8989199 11-Oct-2010 Glenn Kasten <gkasten@google.com> Fix build warnings

Change-Id: I449da85b97901a632591dd16a52cb924a2722883
etch.c
ntbufq.c
everb.c
rimime.c
c2303eb5497c488db786dcb2b8514db229452536 11-Oct-2010 Glenn Kasten <gkasten@google.com> Test cleanup

Fix bug in QueryEffect test - was not re-initializing the name length.
Add QueryEffect test for over-writing the name buffer.
Don't create output with VOLUME or NULL interfaces.
Use <stdlib.h> symbolic names for exit codes instead of 0 and 1.
Remove Android-style logging from examples; use only printf.
Remove extra blank lines in test output.
Remove the MAX_NUMBER_OUTPUT_DEVICES macro.
Use <unistd.h> to declare usleep.
Remove obsolete #include statements.
Fix build warnings.

Change-Id: I8d198a317246b3894f104edf7c9f317a51593d07
onfigbq.c
ultiplay.c
everb.c
rimime.c
711332800108ad6e0e594796e5f8db0da3eff402 07-Oct-2010 Glenn Kasten <gkasten@google.com> More tests and bug fixes

New tests:
- urimime.c tests audio player with URI data source and MIME data format
- dim.c tests DynamicInterfaceManagement
- engine.c new test cases:
- create more than one engine simultaneously
- exit application without destroying engine first

Bug fixes:
- Can't request SLBufferQueueItf or its alias SLAndroidSimpleBufferQueueItf
if the data source is not a buffer queue.
- BufferQueue interface is explicit on AudioPlayer.
- OutputMixExt is unavailable (internal) on AudioPlayer.
- There was a nested mutex lock when resuming a non-suspended interface.
- This implementation supports at most one engine, so check for that
- Class configuration table had wrong entry for DynamicInterfaceManagement
on 4 of 10 classes.

Restore most of the infrastructure for removing interfaces (code review):
- DynamicInterfaceManagement is included, but body of RemoveInterface is compiled
out, and replaced by FEATURE_UNSUPPORTED until all our deinit hooks are clean.
- Remove hook must be called with mutex locked, rather than unlocked as before.
The remove hook is called during IDynamicInterfaceManagement::RemoveInterface
and Object::Destroy, so the entry conditions must be the same.
- Add NULL remove hooks to the interface hook table.

Change-Id: I328dd254ed24a32b220996a6d9592cc8c0f4e943
Miscellaneous:
- Always memset object to garbage in Object::Destroy to catch broken applications.
- Add comments about how GetInterface manipulates the v-table pointer (code review).
- Re-enable DynamicInterfaceManagement for testing the example code.
ndroid.mk
im.c
ngine.c
rimime.c
104c000a6f36b871ca11e0394db1e5217f374caf 06-Oct-2010 Glenn Kasten <gkasten@google.com> Interface testing and bug fixes

Add some new tests, and fix the bugs they found.

New and improved tests:
Added output mix API test with focus on interfaces.
Add mute solo and seek test cases to the automated buffer queue test.
Buffer queue configuration test is now listenable:
Buffer queue configuration test now generates a sequence of sine
waves in order so that the listener can tell if each format is
supported correctly.

Bug fixes:
Engine::Create... was not checking if the interface was available
for a particular class. Fixing that bug showed some other bugs
in the class/interface configuration tables.
The effects interfaces is available on an output mix.
The Volume interface is not available on an output mix.
The Object interface can do GetInterface before realized.
OutputMix interface is available on an OutputMix;
needed by the demos/examples in back of book
OutputMix::ReRoute fails if number of output device IDs is not 1.
Improve interface checks on a buffer queue source.
Don't allow mute solo interface on a mono buffer queue.
The earlier code to check for seek interface on a buffer queue
compared by address, which didn't work if application
used a private copy of the GUID. Now compares using the
MPH which will work in all cases.
Buffer queue, effect send, and mute solo are explicit interfaces on audio player.
slCreateEngine was not publishing the engine object.

Miscellaneous cleanup:
Removed the hard-coded fake device ID constants in
OutputMix::ReRoute that were there just for testing.
In Engine::Create..., log an error for all unsupported interfaces, not just the first one.
Make hash generator build again:
It turns out interfaces.c is needed, even though it duplicates
OpenSLESUT.c. Restore from 1a6bb4f8e738c9387dc9629db294ea5de618a53c.
Remove some redundant comments.

Change-Id: Iddabe73e298b69a44f3b43ed224c918eb95961a1
ndroid.mk
onfigbq.c
utputmix.c
9e60b0a390d780539459f41c2bf4a45a326a7b62 30-Sep-2010 Glenn Kasten <gkasten@google.com> Add new test, fix bugs found by test & code review

Bugs:
- EnvironmentalReverb::GetEnvironmentalReverbProperties left mutex
unlocked at end.
- buffer queue configuration test revealed not checking enough
combinations
- would have failed conformance test in a couple places
- replace peek locks by shared locks for SMP
- undocumented symbols were being exported by library
- fix handling of EffectSend for MIDI player

New test:
- Add reverb test

Miscellaneous:
- Move some FIXME to to-do list where they are easier to organize
- Fix typos in name of profile constant
- EffectSend::IsEnabled sets enabled = false for unsupported aux effect.
- Add curlies to if statements.
- Add more error logging.
- Fix indentation in switch statement.
- Add comments to makefile.

Details:
- Reduce visibility of libOpenSLESUT symbols.
- Use LOCAL_STATIC_LIBRARIES := libOpenSLESUT where needed in
applications.
- Move FIXME for OEM configuration, interface, SDL, Sndfile,
buffer queue, destroy to to-do list
- For SDL, disallow buffer queue with source not 44.1 kHz because it
is hard-wired to 44.1 kHz and there is no sample rate converter.
- return successful result for enabled effect send on unsupported
MIDI player
for future conformance testing

Change-Id: I39cb543169996f78c16e3ac363ea6157a9242743
ndroid.mk
everb.c
df30c8bcac7de55c9d9f7e4cde7aac24158d8941 30-Sep-2010 Glenn Kasten <gkasten@google.com> Add buffer queue configuration test

Add comments to makefile for each test

Change-Id: I8741d93e7aadb02c4b75e3a0a7a81d593dfa7f97
ndroid.mk
onfigbq.c
f6f5ceb363286d5ebef2c2e70c8a5aa135d5d1ee 28-Sep-2010 Glenn Kasten <gkasten@google.com> Add MuteSolo checks for audio player and fix bugs

The specification says "This [SLMuteSoloItf] interface cannot be
exposed on a player whose audio format is mono." This has a lot of
implications ...

Deny an explicit interface request for SLMuteSoloItf at audio player
creation time if the player is known pre-realize to have mono channel
count (e.g. PCM buffer queue).

Deny a GetInterface on MuteSolo if channel count is known to be mono,
but allow it if the channel count is still unknown.

When DynamicSource (or its replacement) is implemented, it will be
possible for the application to have done a GetInterface successfully,
and then to change the source such that the MuteSolo interface is
no longer valid. In that case, return SL_RESULT_FEATURE_UNSUPPORTED
for most MuteSolo operations, if called when channel count is unknown
or is mono. We _do_ allow MuteSolo::GetChannelCount to succeed if
channel count is known to be mono.

Enhance the URI-based mute solo test to check some of the above,
and the interactive buffer queue test to get and test the channel count.

Add curly braces to if statements.

Other bug fixes:
- Do not rely on peek locks; they don't work on SMP.
- Channel count and sample rate were not being set correctly
for buffer queue data source audio players.
- CreateAudioPlayer and AudioRecorder were both referring to
application pointers more than once, with the possibility of
reading inconsistent data.

Change-Id: Ie0109cbddc0aff8a56c0b53d989fb2be823e627b
ntbufq.c
c2b9d79c4b59caff965076f445f5a735a360b084 28-Sep-2010 Glenn Kasten <gkasten@google.com> Enable and test more interface ID queries

Enable Engine::IEngine_QueryNumSupportedInterfaces and
Engine::QuerySupportedInterfaces.
Add object ID test.
Return SL_RESULT_FEATURE_UNSUPPORTED from Engine::Create... if the
corresponding class is not configured..
Add slesutObjectIDToString to utility toolkit.

Change-Id: I28b8beff71d65e7eccd558e586652bb606c89848
ndroid.mk
bject.c
1d8ab068ca8a72771514b443b42003ca06623d5e 28-Sep-2010 Glenn Kasten <gkasten@google.com> Add engine interface test

Change-Id: I5c1fd1e8ab6dc050f416f28708e3ef218910cd8d
ndroid.mk
ngine.c
01e9f5fa4698856f92bcfd88188ee4c8397b22db 22-Sep-2010 Glenn Kasten <gkasten@google.com> Android simple buffer queue locator and interface

Bug fixes:
Fix bug in error handling and recovery for checkDataSource - potential memory leak.
Clean up MPH table; there were some missing and uncommented entries.

Testing:
Add comments about using the END macro to test the MPH table.
Convert feedback test from buffer queue to Android simplified
buffer queue for rx side only, tx is still 1.0.1 buffer queue.
Add option to sample/intbufq test to use build option to decide
whether to use 1.0.1 buffer queue or Andorid simple buffer queue.
Convert record test for new APIs.

Miscellaneous:
Update hashgen table and add an install rule.
Add comments.
Add more logging.
Line length 100.
Fix build warning.
Double indent.
Fix SL_DATALOCATOR value for FD.

Change-Id: I35cce8934157fed88251e846b1beb15523b2b1a6
ntbufq.c
fe96fa06360516c60490c7a697e1148017b4c1b2 23-Aug-2010 Glenn Kasten <gkasten@google.com> Fix bug with nested lock.

Add object lock debugging.
Replace !NDEBUG by USE_DEBUG.
Remove $(JNI_H_INCLUDE) and $(TOP).

Change-Id: I61217b82a7edc42d37dacf443ad0ca852ee0dfe9
ndroid.mk
4c71179974933c5c36cbfc3e8227c8df63248d91 21-Aug-2010 Glenn Kasten <gkasten@google.com> Test reorganization

Change-Id: I0fb84afd72fe6839773937fdaece3276bba1b952
ndroid.mk
etch.c
ntbufq.c
ultiplay.c