• Home
  • History
  • Annotate
  • only in /frameworks/wilhelm/src/itf/
History log of /frameworks/wilhelm/src/itf/
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
ee3ad477a71ba690f0b5721056a6514bf2f76bd8 16-Mar-2012 Glenn Kasten <gkasten@google.com> Merge "Fix indentation and redundant whitespace"
4bcfac513e073db89f72e2345be365f95895ca28 20-Dec-2011 Glenn Kasten <gkasten@google.com> Merge "Cleanup CreateAudioPlayer and CreateMediaPlayer"
22ced1dc023dc000118e3a26517b14e9babd7c5a 12-Aug-2011 Glenn Kasten <gkasten@google.com> Fix indentation and redundant whitespace

Change-Id: I8e0193ad5aa9405f64203bf7814d8a9e434c5dde
Equalizer.c
StreamInformation.c
Virtualizer.c
72042d4448cee63528c619537321ba73944c6382 16-Nov-2011 Glenn Kasten <gkasten@google.com> Cleanup CreateAudioPlayer and CreateMediaPlayer

Fix minor bug in MediaPlayer, it was missing an assignment if invalid locator:
mp->mAndroidObjType = INVALID_TYPE;

Cleanup:
- add placeholders for android::AudioSystem::acquireAudioSessionId and
releaseAudioSessionId
- remove duplicate initialization of some fields.
- android_audioPlayer_create can never fail, so make it return void
- add comments
- remove unused method audioPlayer_setInvalid
- simplify android_audioPlayer_create

Change-Id: I237b796f6b828cf53bf2c628e52a05a4bdf86c06
Engine.c
ab7724988c1ff39ad3fc95a7ae0e638357708f7c 29-Jul-2011 Glenn Kasten <gkasten@google.com> Add curlies to if / else

Change-Id: Id697a96cc9bafa56f8ebbb2ad542a70181ed561d
Play.c
Volume.c
02a171afdb1a5198b22f38ed1b306bb8cc6e7043 30-Nov-2011 Jean-Michel Trivi <jmtrivi@google.com> resolved conflicts for merge of 2917f475 to master

Change-Id: I63f4689fabb2aee1682d785ad9c41f06de380396
af9b87de97356722370d11d2c5797d75cb43969e 29-Nov-2011 Jean-Michel Trivi <jmtrivi@google.com> Fix bug 5553055 support video only format change in MP2TS

Allow command data when enqueueing a format change command.
Support format change where the application signals that the
change is for the video stream only. Consider any other change
or format change command with invalid data as a full format
change.

Change-Id: I6c684eab36a51dded7e3d7e72b8effe13dac6cc8
AndroidBufferQueue.c
9dc142db9439e53a3831d7c9e607affe87138db5 29-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "Bug fixes and cleanup for video codec profiles"
df200f6a98da83bf2c1b14aff0ed356263dfb8b7 11-Nov-2011 Glenn Kasten <gkasten@google.com> Bug fixes and cleanup for video codec profiles

Bug fixes:
- removed the line VideoDecoderNbProfLevel[c] = 0;"
it could overwrite the MPEG2 entry if only one codec implementation,
or worse if there were multiple codec implementations
- android_videoCodec_getProfileLevelCombinationNb was returning success
and zero count if a decoder has zero profile/level combinations,
but OpenMAX AL 1.0.1 spec says it must fail in that case.

Minor cleanup:
- omx does not need to be global
- We only use the first codec implementation for a given
decoder ID / MIME type, so simplify the code that iterates through
the array of codec implementations
- Add some const
- Add some comments

Also includes #if 0 code to restrict reported video codec profiles,
as a placeholder -- disabled for now.

Change-Id: I81991f164efaf3606beb5789e1a79cf76ad033a0
VideoDecoderCapabilities.cpp
1f20e5c4db4c920bbe7b9e6cd6390ed8df64be9a 29-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "Remove AudioTrackProxy since AudioTrack is RefBase"
ae1a5c8dc1fccf7c121eda830f8d23bd094c0f16 15-Nov-2011 Glenn Kasten <gkasten@google.com> Remove AudioTrackProxy since AudioTrack is RefBase

Change-Id: I4a1f755178699e0fdedf58e1f3cbd82e6067e071
Engine.c
682f9be91e641e80739c21d6ff124379a806182a 16-Sep-2011 Glenn Kasten <gkasten@google.com> Bug 5238515 AndroidBufferQueue miscellaneous

AndroidBufferQueue:
- errors found by setItems are now hard errors, and cause Enqueue to
return an error result (e.g. PARAMETER_INVALID or PRECONDITIONS_VIOLATED)
- disallow EOS with non-zero data
- disallow Enqueue after EOS
- Enqueue checks MPEG-2 sync byte of first packet to reduce chance of downstream failures
- use MPEG-2 terminology "packet" instead of "block"
- Clear and init don't need to erase buffer content, as it is inaccessible
- put placeholder in IAndroidBufferQueue_SetCallbackEventsMask
for additional events beyond SL_ANDROIDBUFFERQUEUEEVENT_PROCESSED
- comment unused field mBufferState in AdvancedBufferHeader
- fix a minor typo
- add dump method, #if 0 out by default

Change-Id: I11921e3784bfdb30e2cebaa1dabb705ea5ab0b92
AndroidBufferQueue.c
Engine.c
70e6a0238597223221a8bf5e506c92acf28aa35f 29-Sep-2011 Glenn Kasten <gkasten@google.com> Simplify code for the AAC decode use case

Details:

AacBqToPcmCbRenderer constructor
now takes an additional parameter: the IAndroidBufferQueue * interface.

So now there is no need to register a callback after construction,
and AacBqToPcmCbRenderer::registerSourceQueueCallback
can be deleted.

This allows android_audioPlayer_androidBufferQueue_registerCallback_l
to be deleted.

AacBqToPcmCbRenderer::mBqSource is always non-NULL and const, so this
allows removal of mBqSourceLock and some error-checking code.

BufferQueueSource source constructor now takes the IAndroidBufferQueue *
interface instead of the list [user, context, caller].

This allows mAndroidBufferQueueSource to be const, which then allows
more code to be deleted in IAndroidBufferQueue_RegisterCallback.

new AacAdtsExtractor can't fail.

Change-Id: I1f39ccc1e69833fe6df616feb76edbe4ce82fca7
AndroidBufferQueue.c
047916c6e882878075e42a7a5986a6bc1b0cf489 07-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "CT and spec errata for MuteSolo::GetNumChannels"
c9a59d2a184ac461f46c3d878c6fc2574f1805f0 28-Sep-2011 Glenn Kasten <gkasten@google.com> CT and spec errata for MuteSolo::GetNumChannels

The question of what to return when channel count is unknown was dicussed
by Khronos working group. They decided to return zero channel count
and success if unknown. Both the spec errata and CT have been updated for this.

Change-Id: I820291271f83bad2142046372d9b22e4d05faf07
MuteSolo.c
22dfd403dbb51c8da9ade19b85e2077a724ce743 03-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "Fix build errors and warnings on native"
39fa9db7f2b75847866c20b63efde3f6ca3a700a 02-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "Finish out the StreamInformation interface"
631aa9c3c2a45b81552ad0a6b22cb3a661f97182 01-Nov-2011 Glenn Kasten <gkasten@google.com> Merge "Reverb comply with OpenSL ES 1.0.1 spec"
b5b68e8d3b4420eed7cb18cac212c28af138048e 14-Oct-2011 Glenn Kasten <gkasten@google.com> am fcdc9c4c: Merge "Improved deadlock detection logs." into ics-mr0

* commit 'fcdc9c4cc7da7044f92399b1b5c7a4ddd5fec3b4':
Improved deadlock detection logs.
7d77f0aed328363b188d2caa829bb836ba1abcc8 28-Sep-2011 Glenn Kasten <gkasten@google.com> Reverb comply with OpenSL ES 1.0.1 spec

According to OpenSL ES 1.0.1 spec, SL_RESULT_CONTROL_LOST is not
a valid result code for the "Get" APIs. They are supposed to return
SL_RESULT_SUCCESS and the last known setting. This affects ability to
run Khronos CT.

Change-Id: I8ee4c0f9ef95da2ac3d59ca1cde9b4ace32e88fe
EnvironmentalReverb.c
PresetReverb.c
887b8d1551370e592f527dcba3e76cf6916cf677 11-Sep-2011 Glenn Kasten <gkasten@google.com> Finish out the StreamInformation interface

Return SL_RESULT_FEATURE_UNSUPPORTED instead of
XA_RESULT_CONTENT_UNSUPPORTED for unsupported APIs.
First pass at implementing QueryStreamName.
Use shared not exclusive locks for read-only access
(serves as a comment only, since really the same).

Change-Id: I54c5f3456d541f4f9afa0271721e6c958eaae1d9
StreamInformation.c
7da229586b6c8893a1731bfe3eae7996e2ccffc6 23-Sep-2011 Glenn Kasten <gkasten@google.com> Fix build errors and warnings on native

android_audioPlayer_metadata_* APIs don't exist on non-Android.
handlers.c needs a definition for NULL.
handler_AudioPlayer_gain isn't present on non-Android.
Fix typo in declaration of ThreadPool_add.
Fix warning: unused variable len.

Change-Id: Ia7d516c2cf3a51f5a657a3aad76188041dcc6620
MetadataExtraction.c
1056f1a140470cdee12e2243d659664f479091cc 13-Oct-2011 Glenn Kasten <gkasten@google.com> Merge "Fix bugs in get decoder/encoder counts"
4ce38604afa7e4f629d568f400b0634504e60a2e 29-Jul-2011 Glenn Kasten <gkasten@google.com> Improved deadlock detection logs.

This should make it easier to debug the "object was locked by" logs.

Display tid and pthread_t of both the lock owner and the caller in the
"object was locked by" warning log about potential deadlocks.
This makes it easier to figure out what's going on with ps -t
which only shows the tid not the pthread_t.

Reduce false positives by using a generation counter to look for forward
progress, at the risk of increasing the chance of more false negatives.

Use lock with timeout to reduce chance of missing an "unlocked" window.

Change-Id: I15e158a20d7076624188110842a01c1bf2c5c8ae
Object.c
02581cf1ea8e4392760f370b9d64f097ea2c81f4 12-Oct-2011 Glenn Kasten <gkasten@google.com> Merge "Final revisions for NDK API level 14"
12b2ad7d0dd93d5c0f66027def3d05b762103483 11-Oct-2011 Glenn Kasten <gkasten@google.com> Merge "Khronos bug 8080 GetMarkerPosition"
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
Engine.c
f5d670d0bdff70564148f54132c034f454bdce61 10-Oct-2011 Glenn Kasten <gkasten@google.com> Merge "EnvironmentalReverb::SetDensity copy/paste"
45b349f3c585a0750417722f72224a35baaab734 30-Sep-2011 Glenn Kasten <gkasten@google.com> Khronos bug 8080 GetMarkerPosition

Play::GetMarkerPosition returns SL_RESULT_PRECONDITIONS_VIOLATED
if no marker is set. Play::SetMarkerPosition returns
SL_RESULT_PARAMETER_INVALID is parameter is SL_TIME_UNKNOWN. Similar
changes for Record, and also bring in all the recent changes from Play.
Add missing curly brackets.

Change-Id: Ibcfdcab5d4342815fe8d0fb1174053e1599aaf5d
Play.c
Record.c
d483f834da2257a3c5084225f4456a84913943cd 28-Sep-2011 Glenn Kasten <gkasten@google.com> Fix bugs in get decoder/encoder counts

Khronos CT found this problem for
AudioDecoderCapabilities::GetAudioDecoders and
AudioEncoderCapabilities::GetAudioEncoders. These APIs are not currently
supported, but are faked out to allow the CT to proceed to other tests.

Change-Id: I5e73324c51ea37e76f621c161393df700b6155c4
AudioDecoderCapabilities.c
AudioEncoderCapabilities.c
8a9cb417dff7359e6665c76e85af01d8527ecbd2 06-Oct-2011 Glenn Kasten <gkasten@google.com> EnvironmentalReverb::SetDensity copy/paste

There was a missing assignment to the density field

Change-Id: I0dc3332da04b0d3f569625781258df560a89f3b9
EnvironmentalReverb.c
ab657fa824d329357b66ceee2b350b9049847f06 06-Oct-2011 Glenn Kasten <gkasten@google.com> Khronos CT PresetReverb::GetPreset

OpenSL ES 1.0.1 spec and conformance test do not permit result to
be SL_RESULT_CONTROL_LOST. They say that even if control is lost,
PresetReverb::GetPreset should return the last known preset value.

Change-Id: I11fa6434d35b8e32c660f13f6d96c1db5193bedf
PresetReverb.c
3ac5dcc05fe321e4f01918aef2e3e54e22c9a5c1 17-Sep-2011 Glenn Kasten <gkasten@google.com> Remove dead code

AudioPlayback_Parameters fields trackcb and trackcbUser
audioTrack_callBack_uri
android_Player_androidBufferQueue_registerCallback_l
GenericPlayer field mLooperPriority
StreamPlayer::registerQueueCallback
CAudioPlayer::mpLock
AudioSfDecoder::startPrefetch_async
IAndroidBufferQueue does not support AudioRecorder object
android/BufferQueueSource.h #include

Change-Id: I9d7cef243167e10279df452e7c62e66d8f5fe3b6
AndroidBufferQueue.c
Engine.c
aad45518461f3ffa9cf4839962b08877d524d06d 26-Sep-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5365486 GetVideoDecoderCapabilities"
05c7b2d09d54b9260ff7f3f5e491f38d0097c406 21-Sep-2011 Glenn Kasten <gkasten@google.com> Bug 5369977 check required interface compatibility

Use required not exposed in checkSourceSinkVsInterfacesCompatibility.

Change-Id: Ib71826b989ddef2e87dd60bec0306ca2a4021fe3
Engine.c
947ccd3690e84649878f2583c701ca8de1b19ed4 24-Sep-2011 Glenn Kasten <gkasten@google.com> Bug 5365486 GetVideoDecoderCapabilities

If OMX IL implementation reports a codec with 0 profile/level
combinations, it should not be an error for the application to query
the number of profile/level combinations.

Change-Id: I6838ba1168da70a5c5e7d5a2832ec3ee1ee9aef3
VideoDecoderCapabilities.cpp
4260ff7b8f65fdfe8d0176cdce66faf0a10c4b10 10-Sep-2011 Glenn Kasten <gkasten@google.com> Bug 5287473 realize locks

Realize had inconsistent and partial locking.
Now realize runs completely locked by default.

Change-Id: If453cfc0ac874f32cf5a1fcfe7795d24bd2a48d4
Object.c
53445ae321e15496dca8f26398766b39a4c18b56 02-Sep-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5244675 handle the switch cases of AAC decode"
f5ff1a75f55677163bd9a8bd804e8f5c33ef592c 30-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5244675 handle the switch cases of AAC decode

Fix handling of AUDIOPLAYER_FROM_ADTS_ABQ_TO_PCM_BUFFERQUEUE decode use case:
- Play::GetPosition: explicitly list decode case and return media
player time; previously returned zero.
- Seek::SetLoop for AudioPlayer or MediaPlayer: return
SL_RESULT_FEATURE_UNSUPPORTED on non-URI data source. This is
correctly passed up to app.

The remaining have no immediate impact, but should make future maintenance easier:
- Play::GetDuration: explicitly list decode case and return unknown time;
no impact as already covered by default.
- Seek::SetPosition: explicitly list decode case and handle as no-op; no
impact as already covered by default.
- Seek::SetPosition for AudioPlayer or MediaPlayer: return
SL_RESULT_FEATURE_UNSUPPORTED with unsupported data source e.g. buffer
queue. No impact as the result is currently ignored, but added a
FIXME to pass this up to app.
- AndroidBufferQueue::Clear: explicitly list decode case as a no-op
other than the partial clear of upper layer queue.
- AndroidBufferQueue::onRefilled: explicitly list decode case as
a no-op, but with a FIXME that this may need more work later.

Change-Id: I53c8a0b736f32cd265ee9c94a70127d4f80869b5
Seek.c
677c76347d9aaca4cf3746b3dbfc8a741281066b 24-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5217144 AndroidBufferQueue::Enqueue error chks

Add more error checks to Enqueue:
- check for a NULL data pointer with non-zero data size
- check for a NULL item array with non-zero item array size

For the Enqueue item processing:
- examine all items if there is more than one in the array
- check for invalid combinations of items
- check that total length of item array is large enough for each
item's header and any optional data
- check for an EOS with a non-empty item data
- log if an unknown item key is found
- added the EOS item handling code for AAC ADTS
(the underlying implementation is still not yet done).

Fix copy/paste typo in initializeAndroidBufferQueueMembers.

AacBqToPcmCbRenderer::validateBufferStartEndOnFrameBoundaries:
- now returns a more specific result code rather than bool
- readAt return type ssize_t not size_t
- readAt return 0 (EOS) is a LOGV not LOGE.

Fix race in Android buffer queue callback: replaced logic in
BufferQueueSource.cpp by safer code from android_StreamPlayer.cpp

Change-Id: I423ccbd6d76a736a486b49b5dfdb7898b52cdd02
AndroidBufferQueue.c
Engine.c
485a038f9f0f898227b8ab4218e94c5d56b6ed0b 24-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5193695 Fix crash after MediaPlayer destroyed

The StreamSource callback thread was continuing to run after the
MediaPlayer object was destroyed. Fixed by adding a callback protector
and a pre-destroy hook. GenericMediaPlayer::preDestroy now also
calls MediaPlayer::stop just in case.

Change-Id: I5bd771d4d1936f433d2a8c9959593782c96daed9
Miscellaneous:
- added an explicit destructor on CMediaPlayer::mAVPlayer for consistency
(probably not a bug since there was a clear on it earlier)
- updated comments for CallbackProtector
- made some CallbackProtector fields private since no sub-classes yet
Engine.c
d35a79e84406f855c4541b129106e8a3ce33abc6 24-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5198051 MediaPlayer StreamInformation various"
5b70990dc007841602ee23b7dfeb7a8647e280dc 24-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5198051 Video sink on MediaPlayer is optional"
2bb3547351a40ad394b09babec4d2fcc233bfe2e 22-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5198051 Video sink on MediaPlayer is optional

Change-Id: I2c78508fa1efac765ff5812c22e3a4c2cfc33b73
Engine.c
cb441acdda6f8e81d44fcdaadd4ff7ab3d3e367b 21-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5198051 MediaPlayer StreamInformation various

Fix uninitialized field frameRate.

QueryMediaContainerInformation returns XA_RESULT_PARAMETER_INVALID if
info is NULL, otherwise it copies the information via the info pointer,
and returns XA_RESULT_SUCCESS.

QueryStreamName returns XA_RESULT_FEATURE_UNSUPPORTED.

Simplify RegisterStreamChangeCallback.

Change-Id: I261ac0c053be0de7bac5fc80661b979f7f9c84b6
StreamInformation.c
3d332ff421e7179c36fb652771cc8ded53383729 22-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5198051 MediaPlayer support GetDuration

Change-Id: I09d9292685d82b88cddd243e6e7f5410ffaa2248
Play.c
6a98dda78256c053fcd8bddc76ac5218f4313c03 18-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5159291 lock safety"
ccabcf9073f0ccd12016ff1f05d1c4456c41b254 16-Aug-2011 Eric Laurent <elaurent@google.com> Merge "Bug 5147281 prefetch status deadlocks"
e3f648ad6e3634680452b639ee802c657fbfa73d 14-Aug-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "AAC buffer decode to PCM buffer queue"
b566926611b2105a46c4ff98238ad06aca54104d 12-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5159291 lock safety

Change-Id: I56f5fd038d63d033954d794168df4cbcdade26f3
AndroidBufferQueue.c
AndroidEffectCapabilities.c
AndroidEffectSend.c
EnvironmentalReverb.c
Object.c
PresetReverb.c
Record.c
Volume.c
a60dbf554549d10780f473b6e1373aa07aec3a28 11-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5147281 prefetch status deadlocks

Fixed two deadlocks related to AudioTrack prefetch event callbacks:
- if PrefetchStatus interface was initialized on an AudioPlayer,
there was a deadlock at the point where it checked whether to do a callback
- prefetch status callbacks are now called with the object unlocked,
so they are permitted to do APIs on the object

Miscellaneous fixes:
- SMP-safe locks for GetPrefetchStatus, GetFillLevel,
GetCallbackEventsMask, SetFillUpdatePeriod, GetFillUpdatePeriod
- SetCallbackEventsMask error handling for invalid bitmask
- Enqueue sets prefetch fill level to 1000

Change-Id: Ic8b2c440aeb4efa3446a4a73d3422d934ceb0578
PrefetchStatus.c
bb832e853d4afb11b0a3287b2eb0cad87696d631 27-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> AAC buffer decode to PCM buffer queue

Implement AAC ADTS decode with buffers of compressed data being
passed to the framework through an AndroidBufferQueue, and
decoded PCM buffers being passed to the application through
a BufferQueue (just like existing decode from URI/FD).

Change-Id: Id992a44a5ca7e404088b929f2b0afe9ca1f85223
AndroidBufferQueue.c
Engine.c
f093dcf23cb5f54ced676c03a64cc68a165266f4 09-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5126938 dependency and miscellaneous bug fixes"
70045723775b56440b4e10d948831a2190d2d264 09-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 4603165 playback rate change"
c2a325746469c4c7625ec78a169b65a11dbe1e30 08-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5126938 dependency and miscellaneous bug fixes

Fixing bug 5126938 will involve adding the IAndroidConfiguration interface
to CMediaPlayer object. In the process of doing this, I found a few
miscellaneous bugs in the error handling for IAndroidConfiguration. This
CL fixes those bugs, and prepares for adding the interface CMediaPlayer
by making it easier to support new objects with the interface.

Details:

- Generic error handling:
Move some error checks from the object-specific code into the generic
IAndroidConfiguration.c.
Fix bug in SetConfiguration and GetConfiguration where we were not
checking configKey for NULL
Return SL_RESULT_FEATURE_UNSUPPORTED instead of
SL_RESULT_PARAMETER_INVALID if IAConfig interface is exposed on
an object which doesn't really support it (this could if the classes.c
interfaces table was updated before the cases were updated).
Compare with IMuteSolo for non-AudioPlayer.

- Object-specific error handling:
Fix bug where we weren't returning the actual value size in
audioPlayer_getConfig when pValueSize was non-NULL and pConfigValue
was NULL.
Return result SL_RESULT_BUFFER_INSUFFICIENT instead of
SL_RESULT_PARAMETER_INVALID when output buffer is specified
as non-NULL but available space is too small. Compare with
IAudioIODeviceCapabilities.
Return result SL_RESULT_SUCCESS instead of SL_RESULT_PARAMETER_INVALID
when output buffer is specified as NULL; this is intended to allow
the application to discover the required space. Compare with
IAudioIODeviceCapabilities.

- Use 'switch' instead of 'if' for checking object types, to improve
readability when adding more object types

Change-Id: I8b2cdd506a36bfa9b1326a8a9966a6633bbbba6d
AndroidConfiguration.c
1b65b2054448050ded9e1475df7b755421a1e2da 05-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5903270 play interface, events, markers, etc."
6d78c9bfb68f8a0db1855bc28c087c39a7eb6f2c 04-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 4603165 playback rate change

Non-trivial implementation is only for AudioTrack with rate range 500
to 2000 per mille and property SL_RATEPROP_NOPITCHCORAUDIO; for Android
MediaPlayer the rate range is 1000 to 1000 per mille.

Details:
- no multi-range
- fix SMP races in GetRate, SetPropertyConstraints, GetProperties
- SetRate only updates mRate if successful
- Rate_SetPropertyConstraints only updates mProperties if successful
- return SL_RESULT_FEATURE_UNSUPPORTED for non-AudioPlayers
which have this interface (currently only MidiPlayer)
- for Android, atomically set playback rate and constraints
and simplify to use hard-coded constraints rather than querying
- per the spec, SetPropertyConstraints now returns
SL_RESULT_PARAMETER_INVALID if the constraints are out of range,
or SL_RESULT_FEATURE_UNSUPPORTED if the constraints are in range but
not supported by this implementation

Change-Id: I051ff92b20f3845ffa12bccec778937d42823e5d
PlaybackRate.c
5933f3d5e532aaac31ce0e6551c59f0197c0ae3c 29-Jul-2011 Glenn Kasten <gkasten@google.com> Bug 5903270 play interface, events, markers, etc.

As the media framework does not directly support marker and periodic
callbacks, we use a retriggerable one-shot timer at application level
to emulate this. This has the advantage of being faster, but is also
less accurate than if it were in the framework.

Details:
- Get position is now synchronous and (mostly) lock-free
- Fix regression in SL_PLAYEVENT_HEADATMARKER and SL_PLAYEVENTHEADATNEWPOS
- Fix SMP races in GetPlayState, GetCallbackEventsMask, GetMarkerPosition,
GetPositionUpdatePeriod
- AudioSfDecoder was not updating mPositionMsec when getPositionUsec failed
- Updating attributes is relatively expensive, so only do it when a significant change
in SetMarkerPosition, ClearMarkerPosition, SetPositionUpdatePeriod
- Error on unknown message type in onMessageReceived
- Delete an obsolete FIXME
- "Clearing" a marker is now equivalent to disabling the marker event,
and the default marker position is cleared.
- use Android time units and types (int32_t, ANDROID_UNKNOWN_TIME, etc.) where appropriate
instead of SLmillisecond and SL_TIME_UNKNOWN

Change-Id: Ib78bafa20d883b8d927364769663837389b6ea1d
Play.c
f731cc1f3cd5911b0aff730bd504ee47a3ba3c6c 03-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5109153 Remove log spam"
e51d469aa14fa9ae94bddc31ae6aab59e41a48ca 03-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5108531 Report the correct API level"
f152bc273bc3f8471bca626fe9cc966dad304173 02-Aug-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 5080320 MediaPlayer volume"
ecc4fe22e076c4e5c891d823b01db1a683ba6690 02-Aug-2011 Glenn Kasten <gkasten@google.com> Bug 5109153 Remove log spam

Change-Id: I6c0c742bfa3f0078968dc5e2ea3578ad786067c5
AndroidBufferQueue.c
StreamInformation.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
Engine.c
99b927751677abfb60a388d65dfeed1fed1db12c 28-Jul-2011 Glenn Kasten <gkasten@google.com> Bug 5080320 MediaPlayer volume

Details:
- re-factor volume-related code yet again
- remove dead variables mAmplFromVolLevel, mAmplFromStereoPos, mDirectLevel
- add placeholders for kEventPrefetchFillLevelUpdate and kEventPrefetchStatusChange

Known issues:
- MPEG-2 TS doesn't yet implement the ability to query channel count, so default to stereo

Change-Id: Ic0f2297b267dc3d380755e8d314e1d5f0f659d7c
Engine.c
e878c470cf58c8654d613ab2449468b44a90d6e5 27-Jul-2011 Glenn Kasten <gkasten@google.com> Bug 5082191 fix slesTest_decodeToBuffQueue assert

Change-Id: I2ec181cc7eba000847bd28e6d04733d3496d74d9
Engine.c
6f0f5640d190b0187c356eb53bd96d9f9e49da60 25-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Fix bug 5022500 MP2TS format change support in OpenMAX AL

Define new command that can be queued in AndroidBufferQueue
to signal an MP2TS format change.
This command maps directly to IStreamListener::kKeyFormatChange.

Change-Id: I67908fd9e1a7d994862ea3e41c4c0fb6e36bc804
AndroidBufferQueue.c
d7ecf117cfac5f2b90a0dc6c62b56dcce0715971 19-Jul-2011 Glenn Kasten <gkasten@google.com> Reduce logs

Change-Id: I82c8a66886bd3b853fac88594370545ed23a0400
VideoDecoderCapabilities.cpp
6e7e174807fc639c49125ced8962aa369370fbf0 13-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Implement XAVideoDecoderCapabilitiesItf

Add support for the OpenMAX AL XAVideoDecoderCapabilitiesItf
engine interface.

Implement the Android support of this interface in
VideoCodec_to_android.*. This functionality relies
on OMXCodec::QueryCodecs() feature, and does only
expose hardware codec capabilities (see full note in
VideoCodec_to_android.h).

Add sample code to list the platform's video decoders
and their profile / level combinations.

Change-Id: Iff6a42542c1db67ca1dcf539449ca96aa5944f6d
VideoDecoderCapabilities.cpp
fd921c5e16782bcf10f997487b44deb38156ab2b 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Merge "Remove the simulator target from all makefiles. Bug: 5010576"
ddf30363c081b598a4df50c30a7e469a2551bdbd 12-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "Implement XAPlayItf::GetPosition on MediaPlayer"
35a5a30fdad179ccf38d8d756590411326159a89 12-Jul-2011 Jean-Michel Trivi <jmtrivi@google.com> Implement XAPlayItf::GetPosition on MediaPlayer

The play interface was only in place for routing calls to an
AudioPlayer in OpenSL ES, not in OpenMAX AL for a MediaPlayer.

Change-Id: Icf514be428396264252874faf1060c76ddee9545
Play.c
ffea36e11b068d171549b64ee767eefd2637555a 12-Jul-2011 Jeff Brown <jeffbrown@google.com> Remove the simulator target from all makefiles.
Bug: 5010576

Change-Id: I59e3c37c05c1114648172d9aba7abf035986bede
AndroidEffect.cpp
cf3a6383a9bc9a94ca5b424ea97313293ee0dcb0 10-Jul-2011 Glenn Kasten <gkasten@google.com> ThreadPool callbacks provide more parameters

Now allows up to two void * and two int parameters.

This will be needed by deferred application-level callbacks

Change-Id: Ie388169439b2e3ab95d053007bcdc674b875fa67
DynamicInterfaceManagement.c
Object.c
90fade711b33e9b79b034ec288bd2ecf48b2fd41 08-Jul-2011 Glenn Kasten <gkasten@google.com> Merge "Make it build again on non-Android"
4f3f0f5d1b97008790158f4dde71057f7d8ed41a 08-Jul-2011 Eric Laurent <elaurent@google.com> Merge "Moved and renamed effect API header files"
ea429ee1007c36ade812199ad365c0e659e8053f 17-Jun-2011 Eric Laurent <elaurent@google.com> Moved and renamed effect API header files

Moved specific effect header files to
system/media/audio_effects/include/audio_effects and renamed
to lower case (effect_xxx.h).

Change-Id: I8e8f6e3851f12ae8bb380fa714abe26da06d3b58
BassBoost.c
EnvironmentalReverb.c
Equalizer.c
Virtualizer.c
71139e6bc1f077d285fb04629925d99383d1114f 07-Jul-2011 Glenn Kasten <gkasten@google.com> Make it build again on non-Android

Fix warning about unused variable.
Remove spurious include.
Fix warning about printf format type mismatch.

Change-Id: Ibeeb33a55175e0ec1e5210211d8844df0bbe3bca
Engine.c
1a9c2615d0933d183fcb1b9e34ec8f0da2a85153 07-Jul-2011 Glenn Kasten <gkasten@google.com> Rename ANDROID_UNKNOWN_* to UNKNOWN_*

Change-Id: I0d92b7d943690d9af7e08c400471f8b474728bff
Engine.c
47550bf6cf5cf08a402a54b1589f4b64582a5120 30-Jun-2011 Glenn Kasten <gkasten@google.com> Bug 4980997 Fix the AudioTrack start deadlock

Details:
- Added AudioTrackProxy, a RefBase proxy for AudioTrack
- Call AudioTrack::start() after unlock

Change-Id: Ib1a05ee57f78432eb4c9d3a5bd68dd31a78d6e3e
AndroidEffect.cpp
Engine.c
f4647bf85968ab30eb07f9a80b99177d91068f94 29-Jun-2011 Glenn Kasten <gkasten@google.com> Call AudioTrack start, stop, and pause when needed

These AudioTrack operations are relatively expensive Binder calls (and
will soon be even more expensive to fix a deadlock at AudioTrack::start),
and they were being called excessively. Now AudioTrack start, stop,
and pause are only called when there is an actual play state change.

Details:
- distinguish ATTR_TRANSPORT vs. ATTR_PLAY_STATE for audio players
- android_audioPlayer_setPlayState is only called when the play state changes
- handler_AudioPlayer_transport is only called for transport changes other than play state
- android_audioPlayer_setPlayState is always called with mutex locked
- since media player currently only handles play state, handler_MediaPlayer_transport
is still called for both ATTR_TRANSPORT and ATTR_PLAY_STATE
- since the handlers for ATTR_BQ_ENQUEUE and ATTR_ABQ_ENQUEUE are only called if in
state PLAYING, changed an "if" to an "assert"

Change-Id: Iee2968fd98d215885b7105053bb1604f962ea337
Play.c
6cce136651f6fd2c7aecd45bc553270152d75462 28-Jun-2011 Jean-Michel Trivi <jmtrivi@google.com> Fix race condition when deleting an AudioPlayer

When deleting an AudioPlayer that is used as a PCM decoder,
there can be callback underway, for instance when trying to
delete a player just as the notification of its preparation
arrives.

The fix consists in:
- flagging all callback with the CallbackProtector
mechanism,
- only entering callback when it is valid to do so
- renaming AudioTrackProtector to CallbackProtector
as this mechanism is not exclusively used for the
AudioTrack callbacks.

Change-Id: I9336a75981de43f71a983c1300f3a0ff314ac1e0
Engine.c
8bae97ce4243cb9fe37fa35b82cca48fca735e72 23-Jun-2011 Glenn Kasten <gkasten@google.com> Merge "Bug 4606138"
7f5cc1afe49395fefaad9b2bbd728a45d1bfda6a 16-Jun-2011 Jean-Michel Trivi <jmtrivi@google.com> OpenSL ES: additional features when decoding to PCM

Support the following features useful when decoding a compressed
asset to PCM:
- GetDuration in SLPlayItf
- implemented SLMetadataExtractionItf on an AudioPlayer whose
data sink is a buffer queue (i.e. it's a decoder)
- added support for 6 new metadata keys that can be queried
through SLMetadataExtractionItf, which match the fields
of the SLDataFormat_PCM structure.
Updated the decode sample code to use these features: the
slesTestDecodeToBuffQueue app now displays:
- the number of channels
- the channel mask
- the sample size
- the container size
- the sample rate
- the format endianness

Change-Id: I3ca1e29828fd8c16c89da43a28df429c9cdef7af
MetadataExtraction.c
8b565a4139cb37b0682b44cf9a16525ebf6c2058 16-Jun-2011 Eric Laurent <elaurent@google.com> Revert "voice processing"

This reverts commit 7585d227843769079ee2afb385607b3e23ac1e07
BassBoost.c
EnvironmentalReverb.c
Equalizer.c
Virtualizer.c
7965455f86c21d6e1f788b284f5fc829e82ff2b5 14-Jun-2011 Glenn Kasten <gkasten@google.com> Bug 4606138

Change-Id: If4745ee39eeedf11388800cc30c26e4c4f8ddaa0
Engine.c
87c9a6bbe9dabec3d795675ab0ef74a773cc1670 12-Jun-2011 Eric Laurent <elaurent@google.com> voice processing

Change-Id: I0b6129f566349fd333f34773589d5d15c36a7c15
BassBoost.c
EnvironmentalReverb.c
Equalizer.c
Virtualizer.c
10a3840407ac3ed61e7873ee7b86d664ccc6149f 11-May-2011 Dima Zavin <dima@android.com> update for new audio.h header location

Change-Id: I2140f1def08bedd8b2bd5170c6ac5edccb80035c
Signed-off-by: Dima Zavin <dima@android.com>
AndroidEffect.cpp
Engine.c
ca39f4b4dbeb920a5b97bd65be73f2f7cac77431 06-Apr-2011 Dima Zavin <dima@android.com> system/media: convert to use new defines from hardware/audio.h

Change-Id: I8f0f0d26e10dbbb4dfbc3b52f1c02737a375c5e0
Signed-off-by: Dima Zavin <dima@android.com>
AndroidEffect.cpp
Engine.c
a8179ea15c4ff78db589d742b135649f0eda7ef2 13-Apr-2011 Glenn Kasten <gkasten@google.com> Fix build warnings caused by the 'long' change

Change-Id: I34e74d723ae7fd829dd140614928d7880e669f03
AndroidBufferQueue.c
AndroidConfiguration.c
AndroidEffectCapabilities.c
BufferQueue.c
EffectSend.c
Play.c
StreamInformation.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
Seek.c
ad79bbfd16ba81a45842179178332fbd06ad365e 11-Apr-2011 Jean-Michel Trivi <jmtrivi@google.com> Remove compilation warnings for SLmillibel level comparisons

In OpenSL ES, the volumes are expressed in millibels, which are
stored as SLint16.

The mix and max values are defined as:
define SL_MILLIBEL_MAX ((SLmillibel) 0x7FFF)
define SL_MILLIBEL_MIN ((SLmillibel) (-SL_MILLIBEL_MAX-1))

Therefore the comparison
(SL_MILLIBEL_MIN <= level)
is always true.

This CL removes those comparisons rather than use the compilation
flag to suppress the warning (it is a useful warning!).

Change-Id: I5672f257661ac045ba5282ecb0ecd14d985d8102
AndroidEffectSend.c
EffectSend.c
EnvironmentalReverb.c
cc7918cbca027f26fa739f15181157bb9d9e0eaf 07-Apr-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "OpenMAX AL: support the SeekItf and XA_PLAYEVENT_HEADATEND"
92b245bf8828db9e469febebbe8774c00570b5b9 07-Apr-2011 Jean-Michel Trivi <jmtrivi@google.com> OpenMAX AL: support the SeekItf and XA_PLAYEVENT_HEADATEND

Implemented support for:
- seeking to a position
- looping (only over full duration is supported, no loop points)
- notification of end of content reached
This is all for the playback of URIs or FDs.

Change-Id: I015c40e66feb7ac280459895f5f7915ac964df31
Seek.c
0170dc5795126c660213ffdd3a39f4b9e5bc7e9c 07-Apr-2011 Glenn Kasten <gkasten@google.com> Merge "Fix build on non-Android platform"
0e3b9fb27c3597dd4b32f2894f5d182ea4b86234 06-Apr-2011 Glenn Kasten <gkasten@google.com> Line length 100

Change-Id: Ie4459eed7f94870413bc87252910c1189ecf2e06
StreamInformation.c
f6c0c2346b2ca1ac01c2d68a2cd2a7f1d9ff3427 06-Apr-2011 Glenn Kasten <gkasten@google.com> Fix build on non-Android platform

Change-Id: I85b25467ac5bae45b12ec5b0abfb4696449c2da8
AudioIODeviceCapabilities.c
Engine.c
OutputMix.c
4ee246c55533bdab8ab5fa0f0581744fe58e7c91 29-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Move support for SL URI and FD playback under GenericPlayer class

The SfPlayer class was implementing URI and FD decode and playback
in the application process. This CL removes this class entirely
and moves its functionality under the GenericPlayer class. This
means that the playback of URIs and FDs is now implemented through
an android::MediaPlayer object running in the media service.

The SfPlayer header had many StageFright and system includes, which
are now moved to the relevant files where they are required,
instead of automagically coming from sles_allinclusive.h.

Note that this CL breaks support for the following OpenSL ES features
due to missing Android MediaPlayer features:
SLPlayItf.GetPosition
HEADATMARKER
HEADATNEWPOSITION
SLVolumeItf.EnableStereoPosition
SetStereoPosition
SLMuteSoloItf
SLPlaybackRateItf

Support for those features will be reintegrated in subsequent CLs.

Change-Id: I8d7f6ea006eb7b876ef1ca1909d74b4517335850
Engine.c
PrefetchStatus.c
faea005a67ba7e75faea571c521ad2e44fe3dc27 05-Apr-2011 Glenn Kasten <gkasten@google.com> Fix bug in last commit

Always read the documentation:
- Add hooks for new OpenMAX AL interfaces
- Since OpenSL ES engine interface has a deinit hook, add one for OpenMAX AL also

Change-Id: I266bf2112e6f8e525e5b3c06bbb6a68a4764e978
Engine.c
a361b51914aeb5f8f65c7ecad719d1e01f90913b 04-Apr-2011 Glenn Kasten <gkasten@google.com> Add basis for future OpenMAX AL 1.0.1 interfaces

Bug fix:
OpenMAX AL media player was using SL instead of XA symbols for the Object
and DynamicInterfaceManagement interfaces. A Object::GetInterface using
the XA symbols would have failed. Fortunately, these are not used in
typical applications.

Minor cleanup:
- Add README.txt for mphtogen tool
- Fix clang warning
- Update comments
- Remove spurious commas
- Fix warning at declaration of SL_IID_array
- SL_IID_ANDROIDBUFFERQUEUE was added in API level 12, not 10

Change-Id: I75abced5bc3c3fdabe40face25463810de741bf2
LEDArray.c
Object.c
63c002ab68761be0eace98f28320d8eb2f3f7695 28-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Clean up main header

There are many includes in sles_allinclusive.h that should be moved
to the files that rely on those headers. This is a first cleanup
to move Android audio effect related headers to where they belong.
+ one relocation for a media server related file. More to come
with AudioPlayer refactoring.

Change-Id: I181dde96db522d9cfb537dffea18ba57f855b99e
BassBoost.c
EnvironmentalReverb.c
Equalizer.c
Virtualizer.c
83ac345e264c1e22b7a2f1a110b2fe92473394ec 19-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Fix bug 4109988 fix deadlock on destroy

Fix deadlock with an AudioPlayer playing from a PCM buffer queue.
This type of player uses an AudioTrack that pulls data through
its callback from a buffer queue.
This issue is that when you destroy the player (whick locks the
object), it tries to destroy the AudioTrack object. The
AudioTrack destructor can only finish when the AudioTrack
callback thread can exit. If a callback was underway when
trying to destroy the object, a race condition existed for
the AudioPlayer lock.
The fix consists in using the "pre-destroy" hook for the AudioPlayer
object. In it, we unlock the AudioPlayer, and block until the
AudioTrack callback has signaled it's done. The pre-destroy
hook also marks the track as "about to be destroyed" so any
callback that gets called once the pre-destroy hook has been
called can return immediately.

Change-Id: I4ca69157ff381232c1edc8fb576c6d9e90c2777f
Engine.c
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
AndroidBufferQueue.c
a9a0940d9fc974b5f481bd7385874b3f170431b0 16-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "Bug 3329759 callback mask for TS streaming" into honeycomb-mr1
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
AndroidBufferQueue.c
Engine.c
2eac6c23b7bd8985e5bc842b9dec9fa3980dd100 15-Mar-2011 Glenn Kasten <gkasten@google.com> Bug 4099355 workaround gcc x86 problem

Change-Id: Ib9e2fc9eb58bef73772d8c617023f689b514e3a1
StreamInformation.c
StreamInformation.cpp
f925f794a1c2c460c9c8409612fa943e983bfb7d 15-Mar-2011 Jean-Michel Trivi <jmtrivi@google.com> Unbreak the x86 build

Looks like the x86 compiler does't like placement new. Commenting
out offending line until a proper fix (wrap Vector initialization
in another object) is implemented.

Change-Id: Id35cf7845e4fcb10536c2055263805dbf3cce65b
StreamInformation.c
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
AndroidBufferQueue.c
Engine.c
StreamInformation.c
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
AndroidBufferQueue.c
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
AndroidBufferQueue.c
Engine.c
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
AndroidBufferQueue.c
BufferQueue.c
Engine.c
Play.c
e1bdb40cf6e255a6a4a0e996d4236048c059ae4c 24-Feb-2011 Jean-Michel Trivi <jmtrivi@google.com> Merge "OpenMAX AL: consolidate MediaPlayer implementations under superclass"
68d56b8ebaf60184a3aef988e3d2b09ed8b88c05 24-Feb-2011 Jean-Michel Trivi <jmtrivi@google.com> OpenMAX AL: consolidate MediaPlayer implementations under superclass

The OpenMAX AL MediaPlayer object has two implementations: one
for playing from URI/FD (LocAVPlayer) and one for playing from
AndroidBufferQueue (StreamPlayer). They both inherit from AVPlayer.
This CL makes LocAVPlayer and StreamPlayer inherit from
GenericMediaPlayer (new name of AVPlayer) which encapsulates the
interaction with an android::MediaPlayer instance running in
the media server process.
Also it makes GenericMediaPlayer inherit from GenericPlayer, the
player superclass also used in OpenSL ES.

After this CL, the OpenMAX AL and OpenSL ES have a common class
hierarchy for their players.

Change-Id: I5f6e279fc29b7f6f26c9ed5c83a9455cfda88ff4
Engine.c
974beb3f585025e4666f0ea1cc5b13eb49975082 23-Feb-2011 Glenn Kasten <gkasten@google.com> Bug 3266825 partial fix

This was a copy/paste bug that caused AddInterface to corrupt the v-table.

Change-Id: I93cd8d58c2a95d1dd9e9f139bc9f4a73d96351ed
DynamicInterfaceManagement.c
13837cf3f7be0eb8b1a9552bd99a89f98c987720 01-Feb-2011 Jean-Michel Trivi <jmtrivi@google.com> OpenSL ES: support decode to PCM buffer queue

Created a new audio player class, APlayer, from which we derive
subclasses to encapsulate OpenSL ES AudioPlayer implementations:
- ASfPlayer derives from APlayer and encapsulates StageFright
functionality for audio decoding to a buffer
- ADecoder derives from ASfPlayer and encapsulates rendering
the decoded audio data to a callback function. It interfaces
with the OpenSL ES Buffer Queue interface to pass the decoded
data back to an OpenSL ES application.

For OpenSL ES, to support decoding to a Buffer Queue, we now
allow an AudioPlayer to have its sink be a PCM buffer queue.

Change-Id: I9aefeb0375a71f7ca770c5c62b4fb8faf59c9c23
Engine.c
2d427f091ef1cf6c1694e3ee5f3521166502a7b1 19-Jan-2011 Glenn Kasten <gkasten@google.com> am 50bccde0: Rename class__ to clazz, this to thiz

* commit '50bccde01980ae803b8656e8b08ecacb65540f50':
Rename class__ to clazz, this to thiz
bcc5c7225e3b7a1dbf2e9e830987f69167acf06f 18-Jan-2011 Glenn Kasten <gkasten@google.com> Rename class__ to clazz, this to thiz

The JNI naming conventions avoid conflict with C++ reserved words.

Change-Id: I93ad6920bf78c0a02ac4b2650a29c9e11252f731
3DCommit.c
3DDoppler.c
3DGrouping.c
3DLocation.c
3DMacroscopic.c
3DSource.c
AndroidBufferQueue.c
AndroidConfiguration.c
AndroidEffect.cpp
AndroidEffectCapabilities.c
AndroidEffectSend.c
AudioDecoderCapabilities.c
AudioEncoder.c
AudioEncoderCapabilities.c
AudioIODeviceCapabilities.c
BassBoost.c
BufferQueue.c
DeviceVolume.c
DynamicInterfaceManagement.c
DynamicSource.c
EffectSend.c
Engine.c
EngineCapabilities.c
EnvironmentalReverb.c
Equalizer.c
LEDArray.c
MIDIMessage.c
MIDIMuteSolo.c
MIDITempo.c
MIDITime.c
MetadataExtraction.c
MetadataTraversal.c
MuteSolo.c
Object.c
OutputMix.c
OutputMixExt.c
Pitch.c
Play.c
PlaybackRate.c
PrefetchStatus.c
PresetReverb.c
RatePitch.c
Record.c
Seek.c
StreamInformation.c
ThreadSync.c
Vibra.c
Virtualizer.c
Visualization.c
Volume.c
70a060e1bbeeeb742a5f58cd9436f9a059be6dff 17-Jan-2011 Glenn Kasten <gkasten@google.com> am cd087fad: This bug caught in code review (not used yet)

* commit 'cd087fadb8876b06f160f77938c30dbf58c8b21b':
This bug caught in code review (not used yet)
eec920e375c5c4b7ea6e8f2e32547c37d45c0758 17-Jan-2011 Glenn Kasten <gkasten@google.com> am 2eccd4f7: Merge "SMP safety: can\'t peek/poke without a barrier" into honeycomb

* commit '2eccd4f74f1cdaa1eb9bdaef849bfbbf9f1fe810':
SMP safety: can't peek/poke without a barrier
d754f64b2974640fba1dcef9440615b7901e741e 17-Jan-2011 Glenn Kasten <gkasten@google.com> am 01a4e4fc: Bug 3360707

* commit '01a4e4fc58aa22b1381e370c745ea26bca56dad1':
Bug 3360707
86f60279e18a4b8db0c8055ef9c7568456acac60 16-Jan-2011 Glenn Kasten <gkasten@google.com> This bug caught in code review (not used yet)

Change-Id: I544447d7a91909258a7d43da1e42e1c98b638c19
Vibra.c
a4ddda6136a851036df28ae9b160e63d26adedf5 16-Jan-2011 Glenn Kasten <gkasten@google.com> Merge "SMP safety: can't peek/poke without a barrier" into honeycomb
5c8bd83295b2752bb7ac34f83dfb19dcdb1be5e5 16-Jan-2011 Glenn Kasten <gkasten@google.com> SMP safety: can't peek/poke without a barrier

Change-Id: I97a78322b7b93440ad989b7a6aef4ba3c48a2b7f
AndroidEffectCapabilities.c
b4b857ba9ede4cd0f7185c50d34217b06182ee7b 16-Jan-2011 Glenn Kasten <gkasten@google.com> Bug 3360707

Change-Id: I4a021ba7fa1f3807a658ee1336bf32b9d6728f3e
AndroidEffectSend.c
105e1b828063c07e000e642d225881bdcd93f4de 13-Jan-2011 Glenn Kasten <gkasten@google.com> Update SDK level on master branch only

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

Change-Id: I8e3f12a22e765d36ddefd87edf204735b25474f6
3DCommit.c
3DDoppler.c
3DGrouping.c
3DLocation.c
3DMacroscopic.c
3DSource.c
AndroidBufferQueue.c
AndroidConfiguration.c
AndroidEffect.cpp
AndroidEffectCapabilities.c
AndroidEffectSend.c
AudioDecoderCapabilities.c
AudioEncoder.c
AudioEncoderCapabilities.c
AudioIODeviceCapabilities.c
BassBoost.c
BufferQueue.c
DeviceVolume.c
DynamicInterfaceManagement.c
DynamicSource.c
EffectSend.c
Engine.c
EngineCapabilities.c
EnvironmentalReverb.c
Equalizer.c
LEDArray.c
MIDIMessage.c
MIDIMuteSolo.c
MIDITempo.c
MIDITime.c
MetadataExtraction.c
MetadataTraversal.c
MuteSolo.c
Object.c
OutputMix.c
OutputMixExt.c
Pitch.c
Play.c
PlaybackRate.c
PrefetchStatus.c
PresetReverb.c
RatePitch.c
Record.c
Seek.c
StreamInformation.c
ThreadSync.c
Vibra.c
Virtualizer.c
Visualization.c
Volume.c