3597268c2bf4ff71521e3cbe522d7ee02c41f175 |
|
01-Nov-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Bug 5544082 Filter out unsupported codecs in OpenSL ES When decoding compressed audio data, disregard tracks encoded with unsupported codecs. Change-Id: If0535013990923c6859829106ccf9e92e5856f90
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
b4393ef4ef3edb785746c37fd7b68950e85283ae |
|
30-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Multithread safety and code reduction Remove unsafe GenericPlayer::getSampleRate(). getSampleRate() was not thread-safe as it accessed a member variable updated in the looper thread without a lock. If getSampleRate() is ever needed again, the sample rate is available in the mPcmFormatValues array, which does have a lock. Replace member variables mChannelMask, mChannelCount, and mSampleRateHz by local variables for locality and performance. Change-Id: Ibf92ed090430153d748ded4d0b835e429df47eea
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
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
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
7349b2e742b2cedc6d149fac62ed661ad7d47dec |
|
15-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5263052 play events for decoder use case This version should be more resilient to decode time vs. real time. Miscellaneous: - comment about GetPosition accuracy - remove unused AudioSfDecoder::onRender implementation Change-Id: I16a7726e0b1459ed1421fe50cb4d683d5c3bdd6b
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
0f92f48017588949daf7d24a339423e149bb2555 |
|
01-Sep-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5244675 PCM sample rate metadata units The current metadata key macro name ANDROID_KEY_INDEX_PCMFORMAT_SAMPLESPERSEC is confusing. This change renames it to ANDROID_KEY_INDEX_PCMFORMAT_SAMPLERATE, and documents that it is in Hz rather than milliHz. The key string is renamed from AndroidPcmFormatSamplesPerSec to AndroidPcmFormatSampleRate. Details: OpenSL ES 1.0.1 PCM struct SLDataFormat_PCM field samplesPerSec [sic] is in milliHz. OpenSL ES 1.1 preserves that struct, but adds struct SLDataFormat_PCM with field sampleRate also in milliHz. If the ANDROID_KEY_INDEX_PCMFORMAT_* metadata keys were intended to exactly model the OpenSL ES PCM data format struct, the metadata sample rate would also be in milliHz units. However, the rest of Android operates in Hz so we use Hz here also. Backwards compatibility for the name should not be an issue, as the initial beta developer has not yet started using this metadata. Related change: delete a duplicate header file. Change-Id: Ib8f620dfe7a328f621ddbb19f55e5691eb22d7b5
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
20d9a1229c7647dd2c6f1bece715080ec6202eca |
|
31-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5244675 default channel mask based on count Change-Id: Ica0b1bd5a23d9bbc318003509e2463a588d9bd39
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
91540f92d7f1bcda423859af6bd82df083c2afab |
|
28-Aug-2011 |
Glenn Kasten <gkasten@google.com> |
Bug 5226085 miscellaneous metadata issues The metadata keys are now exposed for AAC decode. The metadata keys are now exposed at Realize. The keys were previously only available after prefetching was complete. This made it more awkward for an application to use them. Fixed race condition in access to metadata values. Change-Id: I3daed2da61f5ed0add6948f1558963cfe66795fc
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
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
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
5050a75e342ce45794d56666cddde3d46472acc7 |
|
27-Jul-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Report last decoded position as AudioPlayer position for PCM decode Change-Id: I1ec413137d549235af4dc66cb033e1cd0bbbad62
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
54cad4f35a090a06e655fcc9e072e1d38f9e7689 |
|
20-Jul-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Fix bug 5049371 Metadata for decode to PCM buffer queue When decoding a URI or FD with OpenSL ES to a PCM buffer queue, you cannot rely on the information given by the extractor, or the OMXCodec before the latter has decoded one buffer. The fix consists in two parts: 1/ where to retrieve the PCM format from: the information first retrieved from the extractor if available, but then overwritten by the OMXCodec values as soon as it issues INFO_FORMAT_CHANGED 2/ when can the application retrieve the information: the information is available when the first buffer of decoded data is returned to the application via the buffer queue callback. The test app is updated to reflect this, and verify that the query can safely happen during the callback. Change-Id: Ic034c7ff9412c94e9df2aaa3c1d61e9d3bf507d9
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
662c25b0ee98928a01ee4ba551e0503fac168857 |
|
14-Jul-2011 |
Andreas Huber <andih@google.com> |
NuHTTPDataSource.h is no more, get rid of this (redundant) include Change-Id: I893738d1aa1e91300c966a5ac3a7cc3ce1202152
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
e6ded5c61944a87fa9e472dec3a6929855d42aeb |
|
28-Jun-2011 |
Jean-Michel Trivi <jmtrivi@google.com> |
Fix issues in GenericPlayer destruction Added a preDestroy() mechanism for the subclasses of GenericPlayer. Added a lock around the update and use of the callback GenericPlayer is using for notifications to the OpenSL ES framework. This prevents notifications after the GenericPlayer is flagged for destruction. Added a lock to protect the update of the audio source running state, so it doesn't get used after the AudioSfDecoder is flagged for destruction. Before stopping the audio source of an AudioSfDecoder object, release the code buffer if necessary, to ensure proper teardown of the audio source (OMXCodec) Change-Id: I6cf08d169a6da622552dda5101dbc61e663ce6aa
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
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
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
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
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|
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
/frameworks/wilhelm/src/android/android_AudioSfDecoder.h
|