summaryrefslogtreecommitdiffstats
path: root/include
Commit message (Collapse)AuthorAgeFilesLines
* Add memory leak tracking/debugging code to drm serverJames Dong2011-03-141-0/+28
| | | | | | bug - 4099038 Change-Id: I6c048eaf3d7f34bc144b8daaa5fdef1ed474af66
* am 67718e07: am 132bb659: Merge "For issue 4082089 Add more info and error ↵Gloria Wang2011-03-141-0/+7
|\ | | | | | | | | | | | | events into the DRM framework" into honeycomb-mr1 * commit '67718e076422f8f28f4e30a39df9e462ef32d19b': For issue 4082089 Add more info and error events into the DRM framework
| * For issue 4082089Gloria Wang2011-03-141-0/+7
| | | | | | | | | | | | Add more info and error events into the DRM framework Change-Id: I0bb3251c5947fc8e977d478e1ba46b242cb97e9d
* | resolved conflicts for merge of c761a80d to masterGloria Wang2011-03-141-1/+0
|\ \ | |/ | | | | Change-Id: I0c0474b95d66c23310d04b7a7f4c9571a211582c
| * - Some change on the DrmManager in order to support feature request 4082089.Gloria Wang2011-03-111-1/+0
| | | | | | | | | | | | | | | | | | | | | | In DrmManager, we currently lock both processDrmInfo() and onInfo() which is ok for now since processDrmInfo() is async call, and it will return without waiting for onInfo() call. However, if we send an event in processDrmInfo(), we will got deadlock here because we need to invoke onInf() which will wait for processDrmInfo() to release the lock. Use different lock for onInfo(). - Remove some redundent mutex lock. Change-Id: I59c794f95ba1693425723224114fa975cf9b235f
* | am 055066e1: am 92f2f3ff: Merge "Bug 3012968 DRM output control" into ↵Glenn Kasten2011-03-111-0/+4
|\ \ | |/ | | | | | | | | | | honeycomb-mr1 * commit '055066e1e77d944383360d50057f5b8187f23c0b': Bug 3012968 DRM output control
| * Bug 3012968 DRM output controlGlenn Kasten2011-03-101-0/+4
| | | | | | | | | | | | | | Modifies Stagefright to verify that there is a hardware-protected path to video sink for DRM content. Change-Id: I18b8741390e803a05a88c7f180b860a24ba88a10
* | Fix for bug 3477330Gloria Wang2011-03-104-16/+25
| | | | | | | | | | | | | | This patch fixs a crash bug caused by using a NULL DecryptHandle pointer. Fix by using sp<DecryptHandle> instead. Change-Id: Icbd59858385e8256125a615a3c82656b25319d44
* | am 2dc78477: am cc34967f: Merge "Fix issue 3439872: video chat and bluetooth ↵Eric Laurent2011-03-093-2/+15
|\ \ | |/ | | | | | | | | | | SCO" into honeycomb-mr1 * commit '2dc78477364bd4accb9a603baaafca9a5523dcec': Fix issue 3439872: video chat and bluetooth SCO
| * Fix issue 3439872: video chat and bluetooth SCOEric Laurent2011-03-083-2/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This change fixes the stability problems experienced when using a bluetooth headset supporting both A2DP and SCO. Problems occur when starting the video chat at which time the A2DP output is being stopped to start SCO. At that time, active AudioTracks are invalidated by AudioFlinger so that a new AudioTrack binder interface can be recreated by the client process on the new mixer thread with correct parameters. The problem was that the process to restore the binder interface was not protected against concurrent requests which caused 2 binder interfaces to be created sometimes. This could lead to permanent client deadlock if one of the client threads was waiting for a condition of the first created binder interface while the second one was created (as the AudioFlinger would only signal conditions on the last one created). This concurrent request situation is more likely to happen when a client uses the JAVA AudioTrack as the JNI implementation uses simultaneously the native AudioTrack callback and write push mechanisms. By doing so, the code that checks if the binder interface should be restored (in obtainBuffer()) is much more likely to be called concurrently from two different threads. The fix consists in protecting the critical binder interface restore phase with a flag in the AudioTrack control block. The first thread acting upon the binder interface restore request will raise the flag and the second thread will just wait for a condition to be signaled when the restore process is complete. Also protected all accesses to the AudioTrack control block by a mutex to prevent access while the track is being destroyed and restored. If a mutex cannot be held (e.g because we call a callback function), acquire a strong reference on the IAudioTrack to prevent its destruction while the cblk is being accessed. Modified AudioTrack JNI to use GetByteArrayElements() instead of GetPrimitiveArrayCritical() when writing audio buffers. Entering a critical section would cause the JNI to abort if a mediaserver crash occurs during a write due to the AudioSystem callback being called during the critical section when media server process restarts. Anyway with current JNI implementation, either versions do not copy data most of the times and the criticial version does not guaranty no data copy. The same modifications have been made to AudioRecord. Change-Id: Idc5aa711a04c3eee180cdd03f44fe17f3c4dcb52
* | Added more metadata published by the MediaMetaDataRetrieverAndreas Huber2011-03-041-0/+6
|/ | | | | | | | | - presence of audio/video content - video dimensions - avg. bitrate Change-Id: Ie6d478a3c2d0bb6bebaea99ac0a20a4c17808934 related-to-bug: 3506316
* Merge "- To track the usage of all audio output devices - To track the ↵Gloria Wang2011-03-021-5/+13
|\ | | | | | | currently used audio device - The devices are separated as speaker and other audio devices - Provide the collected data to battery application through pullBatteryData()"
| * - To track the usage of all audio output devicesGloria Wang2011-03-021-5/+13
| | | | | | | | | | | | | | | | - To track the currently used audio device - The devices are separated as speaker and other audio devices - Provide the collected data to battery application through pullBatteryData() Change-Id: I374c755266b5ac6b1c6c630400f4daf901ea8acc
* | Allow optional specification of a PTS timestamp when signalling a discontinuity.Andreas Huber2011-03-021-0/+6
|/ | | | | | | If present, rendering will be suppressed until reaching the timestamp. Change-Id: Ic64bdf4225063c5a4d042ea9809960b843a46d19 related-to-bug: 3489454
* Merge "Add support for up to 32 buffers per Surface"Mathias Agopian2011-03-011-3/+3
|\
| * Add support for up to 32 buffers per SurfaceMathias Agopian2011-03-011-3/+3
| | | | | | | | | | | | Bug: 3488016 Change-Id: Ie5536ad77d42a4d0e8270e0fd87ecb73471bcbbc
* | Get rid of redundant media profilesJames Dong2011-03-011-2/+69
| | | | | | | | | | | | bug - 3330679 Change-Id: Idc55aea32746c0c57552c5e15a289681421aa859
* | Add an OMX IL API for querying buffer usage flags.Jamie Gennis2011-02-282-0/+15
|/ | | | | | | | | | This change defines an OpenMAX IL API for querying from the IL component the gralloc buffer usage flags that should be used to allocate the buffers. It also adds the Stagefright plumbing for using the new OMX IL API. Change-Id: I046b5e7be70ce61e2a921dcdc6e3aa9324d19ea6 Related-Bug: 3479027
* Merge "Bug 3438258 Add SurfaceTexture as MediaPlayer sink"Glenn Kasten2011-02-244-1/+76
|\
| * Bug 3438258 Add SurfaceTexture as MediaPlayer sinkGlenn Kasten2011-02-234-1/+76
| | | | | | | | | | | | | | | | | | | | | | | | | | | | This change enables the use of a SurfaceTexture in place of a Surface as the video sink for an android.media.MediaPlayer. The new API MediaPlayer.setTexture is currently hidden. This includes: - New Java and C++ interfaces - C++ plumbing and implementation (JNI, Binder) - Stagefright AwesomePlayer and NuPlayer use ANativeWindow (either Surface or SurfaceTextureClient) Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
* | Merge "Add YV12 preview format to camera parameter constants."Wu-cheng Li2011-02-241-2/+1
|\ \ | |/ |/|
| * Add YV12 preview format to camera parameter constants.Wu-cheng Li2011-02-241-2/+1
| | | | | | | | | | bug:3463624 Change-Id: I8f2992dadfd3fb9e3c9d67743e52da7f3212827e
* | Merge "Application-managed callback buffer support for raw image"James Dong2011-02-232-14/+21
|\ \
| * | Application-managed callback buffer support for raw imageJames Dong2011-02-222-14/+21
| | | | | | | | | | | | | | | | | | bug - 3292153 Change-Id: I9789f7c5cde3a3889d7375e881181e9152d95fc2
* | | Merge "- Add method in MediaPlayerService to collect and pull codec usage ↵Gloria Wang2011-02-231-0/+16
|\ \ \ | |/ / |/| | | | | (duration) for the battery app - Collect MediaPlayer decoding usage data"
| * | - Add method in MediaPlayerService to collect and pullGloria Wang2011-02-221-0/+16
| |/ | | | | | | | | | | | | codec usage (duration) for the battery app - Collect MediaPlayer decoding usage data Change-Id: I0ef4e32b6a041ba1fe73c19f9c67185c61d03965
* | Support more MPEG4-LATM audio functionality.Andreas Huber2011-02-221-1/+2
|/ | | | | | | related-to-bug: 3474610 Change-Id: I6dab40e8b465922c62be9ee7f168718822c6caac Now skipping extra header that the spec claimed shouldn't be present in LATM...
* A/V synchronization at the beginning of a recording sessionJames Dong2011-02-171-3/+3
| | | | | | | | | | | | | o do not use edts/elst boxes since these optional boxes are ignored o manipulate the first video/audio frame duration to make sure that the rest of the audio/video is in sync (ideally, we should only manipulate the vidoe frame duration, not the audio) o reduce the initial audio mute/suppression period, which is used to eliminate the "recording" sound. bug - 3405882 and 3362703 Change-Id: Ib0acfb4f3843b365157288951dc122b006299c18
* Decouple AudioRecord read and audio encodingJames Dong2011-02-161-6/+18
| | | | | | bug - 3313754 Change-Id: I951dd0e21e34aa1412c391f003bc32103d0424b0
* Merge "Add AAC extractor"Gloria Wang2011-02-151-0/+1
|\
| * Add AAC extractorGloria Wang2011-02-151-0/+1
| | | | | | | | Change-Id: Iedb08525ac72e65ba98e5c791734da0720a0e3f6
* | Make available h263 DSI information from MPEG4ExtractorJames Dong2011-02-111-0/+2
|/ | | | | | bug - 3446863 Change-Id: Idbaf7a564d544784fdbc36ed0339c98a519adc88
* Bug 3352047 Wrong message when adjusting volumeGlenn Kasten2011-02-102-0/+2
| | | | | | Add hidden AudioManager.getDevicesForStream and output device codes. Change-Id: I4d1c1d3b6a077cd117720817d1f733dda557b947
* Reduce blocking time in file writeJames Dong2011-02-091-5/+8
| | | | | | bug - 3418787 Change-Id: I4723662bf46ed07271be8468f84ae5d93cb793fa
* Merge "Handle some edge cases when seeking while starting up OMXCodec"Andreas Huber2011-02-081-0/+1
|\
| * Handle some edge cases when seeking while starting up OMXCodecAndreas Huber2011-02-081-0/+1
| | | | | | | | | | | | | | | | | | | | These were exposed by the new preview-seekframe while paused code. In particular, the codec may have been in state RECONFIGURING when attempting to seek, or we may have initiated flushing of the output port and this may not have completed yet by the time we want to reconfigure the output port. Change-Id: Id7640ade11dbc7205a22f648ea0b5e3e9b49cf4b related-to-bug: 3392259
* | - Do not use global DrmManagerClientGloria Wang2011-02-072-2/+2
|/ | | | | | | - Release the DrmManagerClient and DecryptHandle in DataSource Fix for bug 3429811 Change-Id: I549f72b75225751877eb0e630ce8098f8ec6316f
* Improvements/fixes to ACodec.Andreas Huber2011-02-041-1/+1
| | | | | | | | | | | - Make sure ACodec reverts its state when it's shutdown - Defer "resume" to after handling the OutputPortSettingsChange - If the OMX_EventPortSettingsChanged event comes in while we're flushing, defer it and make sure the output port can be disabled by deleting all buffers not already owned by the component. Change-Id: I1f8cdffa71237b57d4275a48b834647a7b263e8b
* am 6f1bd261: am 9c0a1003: Merge "Fix issue 3371080" into honeycombEric Laurent2011-02-033-5/+4
|\ | | | | | | | | * commit '6f1bd261b7fd86ac7817ca061dfb55b95150b836': Fix issue 3371080
| * am 9c0a1003: Merge "Fix issue 3371080" into honeycombEric Laurent2011-02-033-5/+4
| |\ | | | | | | | | | | | | * commit '9c0a1003bd676121cf9b1c942ecebd5b486290d5': Fix issue 3371080
| | * Fix issue 3371080Eric Laurent2011-02-033-5/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Modified default volume control logic in AudioService: 1 IN_CALL volume if in video/audio chat 2 NOTIFICATION if notification is playing or was playing less than 5s ago. 3 MUSIC Modified silent mode: - now also affect MUSIC stream type - entering silent mode when VOL- hard key is pressed once while selected stream volume is already at 0 (except for VOICE_CALL stream). - exiting silent mode when pressing VOL+ hard key while in silent mode Play sound FX (audible selections, keyboard clicks) at a fixed volume. Modified audio framework: - isStreamActive() method now implemented in AudioPolicyManagerBase (previously AudioFlinger) - iStreamActive() now specifies a time window during which the stream is considered active after it actually stopped. Change-Id: I7e5a0724099450b9fc90825224180ac97322785f
* | | Bug 1804058 FLAC extractorGlenn Kasten2011-02-031-0/+1
|/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Note: dependent on external/flac for libFLAC Implemented and tested: * FLAC container * mono and stereo * standard sample rates * standard bit depths * sniffer * media scanner * Vorbis comment metadata including album art * random access seeking with "torture test" * web browser integration for audio/flac (not audio/x-flac), but note that most web servers don't correctly report the MIME type Not implemented: * 24-bit to 16-bit dither or noise shaping in AudioFlinger * 96 kHz to 44.1 or 48 kHz downsampling low pass filter in AudioFlinger * replay gain is better done in AudioFlinger * multi-channel, would need AudioFlinger support * Ogg container, does not seem to be very popular yet Change-Id: I300873e8c0cfc2e95403d9adb5064d16a2923f17
* | am 7fb232c4: Merge "Make sure that key frame is generated for timelapse ↵James Dong2011-01-262-1/+5
|\ \ | |/ | | | | | | | | | | video recording if there are at least two input video frames from camera source." into honeycomb * commit '7fb232c40cde91d0958be1694db2d97a126b95f9': Make sure that key frame is generated for timelapse video recording if there are at least two input video frames from camera source.
| * Make sure that key frame is generated for timelapse video recording if there ↵James Dong2011-01-262-1/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | are at least two input video frames from camera source. This will fix the stop failure issue where we have to wait n * time_interval before a key frame can be received by the file writer, where o n is the actual number of buffers advertised by the video encoder o time_interval is the interval settings for timelapse video recording specifying the time distance between neighboring input video frames The fix includes two parts: o OMXCodec will not submit all n buffers at one time, but instead submit one input frame at one time if it become available. o Timelapse camera source made available the first two input frames and do not skip them so that the first compressed output frame data can be received regardless the specified time_interval bug - 3367659 Change-Id: Ia68cc2cb0d71aa7dc54540e9ad82fae911ad530b
* | am a9f27fa6: Merge "Protect notification callback parameters with a mutex." ↵Andreas Huber2011-01-261-4/+14
|\ \ | |/ | | | | | | | | | | into honeycomb * commit 'a9f27fa631ab21d52c75842ccaacc1cbcd75fca0': Protect notification callback parameters with a mutex.
| * Protect notification callback parameters with a mutex.Andreas Huber2011-01-261-4/+14
| | | | | | | | | | | | | | | | This avoids the race condition where notifications are dispatched to a NULL receiver after notifications have been disabled. Change-Id: I6d351ffbee97616e2c35559c132a6c5e6a66948a related-to-bug: 3394139
* | am f10d9404: Merge "StagefrightMediaScanner: Close metadata retriever after ↵Mike Lockwood2011-01-251-4/+0
|\ \ | |/ | | | | | | | | | | we are done scanning" into honeycomb * commit 'f10d940413000732f1cd35bcb113c41019c7e3b7': StagefrightMediaScanner: Close metadata retriever after we are done scanning
| * StagefrightMediaScanner: Close metadata retriever after we are done scanningMike Lockwood2011-01-251-4/+0
| | | | | | | | | | | | | | | | | | | | This prevents the mediaserver from leaking a file descriptor after the media scanner runs BUG: 3373546 Change-Id: I82a8bae82306de3da56a5c7da5b03ecf106a4efc Signed-off-by: Mike Lockwood <lockwood@android.com>
* | am 63d64a14: Merge "Properly rotate video that\'s marked as such and decoded ↵Andreas Huber2011-01-211-0/+2
|\ \ | |/ | | | | | | | | | | to a surface." into honeycomb * commit '63d64a14790ae21db31b60747864b4a7565b33c3': Properly rotate video that's marked as such and decoded to a surface.
| * Properly rotate video that's marked as such and decoded to a surface.Andreas Huber2011-01-211-0/+2
| | | | | | | | | | Change-Id: I1e9144db3447e58c99aac3f47702ad471678789c related-to-bug: 3378148