summaryrefslogtreecommitdiffstats
path: root/media
Commit message (Collapse)AuthorAgeFilesLines
* Merge "Fix potential leak of audio input handle." into klp-devJeff Brown2013-08-121-61/+42
|\
| * Fix potential leak of audio input handle.Jeff Brown2013-08-091-61/+42
| | | | | | | | | | | | | | | | | | | | | | | | | | The audio input handle is ultimately owned by the audio recorder object but it could be dropped on the floor if an error occurred before that object was fully initialized. Rearranged some of the argument validation and merged getInput_l with openRecord_l to simplify the code and prevent such a leak from occurring. Bug: 10265163 Change-Id: I124dce344b1d11c2dd66ca5e2c9aec0c52c230e2
* | Support for "request-sync" parameter in ACodecAndreas Huber2013-08-121-3/+18
|/ | | | | | Also returns errors to caller instead of asserting... Change-Id: Id3018655a2b3da4289167fba16af907350a511ae
* Merge "Fix regression for AudioRecord streaming callback mode" into klp-devGlenn Kasten2013-08-081-6/+11
|\
| * Fix regression for AudioRecord streaming callback modeGlenn Kasten2013-08-081-6/+11
| | | | | | | | | | | | | | | | | | The notification period (frequency of client wakeups) was broken in streaming callback mode. Fast tracks were OK, but non-fast tracks with normal latency weren't getting woken up at all. Bug: 10222943 Change-Id: Ife9a2f57fa73c6eb921f1c5ba62de0bfcc20557b
* | am bcd86896: am d0f5664a: Merge "Handle undefined NAL type for h264 streaming"Andreas Huber2013-08-081-0/+7
|\ \ | |/ |/| | | | | * commit 'bcd86896e486e303d285e13477e0623b2a920e78': Handle undefined NAL type for h264 streaming
| * Merge "Handle undefined NAL type for h264 streaming"Andreas Huber2013-08-081-0/+7
| |\
| | * Handle undefined NAL type for h264 streamingPatrik2 Carlsson2013-07-271-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | Packages of undefined NAL type (0) was observed but lead to deleting the subsequent package due to the current assembler implementation. Identifying and ignoring this package without returning an error handles undefined packages without side-effects. Change-Id: I02e15b8682bee3154b3c4acf82639a28417f0c85
* | | Merge "IOMX: add updateGraphicBufferInMeta method for metadata mode"Lajos Molnar2013-08-067-6/+90
|\ \ \
| * | | IOMX: add updateGraphicBufferInMeta method for metadata modeLajos Molnar2013-08-067-6/+90
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This is used to set the handle in the metadata buffer that is valid in the mediaserver process, as well as to keep a reference for the graphic buffers in BufferMeta. Change-Id: I46bb68d8bed894f357eeeb25368360d11b276634 Signed-off-by: Lajos Molnar <lajos@google.com>
* | | | separte producer and consumer interfacesMathias Agopian2013-08-061-2/+2
| | | | | | | | | | | | | | | | | | | | Bug: 9265647 Change-Id: Iefabc11e4bd2e2e8ffd31160476c450affe6629c
* | | | Merge "AudioRecord notification frames"Glenn Kasten2013-08-061-4/+27
|\ \ \ \
| * | | | AudioRecord notification framesGlenn Kasten2013-08-021-4/+27
| | | | | | | | | | | | | | | | | | | | Change-Id: I76ec536d1504eb9a558178b62bf225aace4b40d1
* | | | | Merge "AudioRecord::openRecord_l use flags"Glenn Kasten2013-08-061-2/+14
|\ \ \ \ \ | |/ / / /
| * | | | AudioRecord::openRecord_l use flagsGlenn Kasten2013-08-021-2/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Use the flags to determine input parameters for IAudioFlinger::openRecord. Change-Id: I98d2726503af75c8830ce80ceaf3b94a755b342f
* | | | | Merge "Reject unprepared MediaPlayers"Marco Nelissen2013-08-061-0/+7
|\ \ \ \ \
| * | | | | Reject unprepared MediaPlayersMarco Nelissen2013-08-051-0/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Don't allow a MediaPlayer that has been reset() or release()d to be used as the argument to setNextMediaPlayer. Change-Id: I47da1460ec3742f5b2bd7b79e7998b290032d5a1
* | | | | | Merge "AudioRecord::openRecord_l now take flags"Glenn Kasten2013-08-061-2/+3
|\ \ \ \ \ \ | | |/ / / / | |/| | | |
| * | | | | AudioRecord::openRecord_l now take flagsGlenn Kasten2013-08-021-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new parameter 'flags' of type audio_input_flags_t will be used for requesting a fast track, but is currently ignored. Change-Id: If68dfda8b2d4eaaca42927d721b4630c47f71f3b
* | | | | | Merge "IAudioFlinger::openRecord track_flags_t flags is in/out"Glenn Kasten2013-08-052-4/+11
|\ \ \ \ \ \ | |/ / / / /
| * | | | | IAudioFlinger::openRecord track_flags_t flags is in/outGlenn Kasten2013-08-022-4/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This will allow AudioFlinger to tell client it is denying a request. Change-Id: Iff2be3ad6636371bbda9c9899a283c94620c1f06
* | | | | | Merge "AudioRecord::set and constructor now take flags"Glenn Kasten2013-08-051-2/+6
|\ \ \ \ \ \ | |/ / / / /
| * | | | | AudioRecord::set and constructor now take flagsGlenn Kasten2013-08-021-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The new optional parameter 'flags' of type audio_input_flags_t will be used for requesting a fast track. Change-Id: Ia7e070cb57c833e608352da354fb30dc26df6918
* | | | | | Merge "AudioRecord callback thread waits for priority boost"Glenn Kasten2013-08-051-0/+20
|\ \ \ \ \ \ | |/ / / / /
| * | | | | AudioRecord callback thread waits for priority boostGlenn Kasten2013-08-021-0/+20
| |/ / / / | | | | | | | | | | | | | | | Change-Id: Iae38fa4ac20a45751566169213a08a15deb0a2f6
* | | | | Merge "AudioRecord has no default sample rate"Glenn Kasten2013-08-051-1/+2
|\ \ \ \ \
| * | | | | AudioRecord has no default sample rateGlenn Kasten2013-08-021-1/+2
| |/ / / / | | | | | | | | | | | | | | | Change-Id: I72feefdd6f3a623fd3669b80d4b264518fdc0929
* | | | | Merge "Recording of non-linear formats is not supported"Glenn Kasten2013-08-051-9/+5
|\ \ \ \ \
| * | | | | Recording of non-linear formats is not supportedGlenn Kasten2013-08-021-9/+5
| |/ / / / | | | | | | | | | | | | | | | | | | | | | | | | | Such formats are already rejected in AudioRecord::set() Change-Id: I5ba1fd9e4cd659e5226c75aa4f63e52f655e0521
* | | | | Merge "fix fallout from binderizing BufferQueues consumer side"Mathias Agopian2013-08-022-9/+4
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | fix fallout from binderizing BufferQueues consumer sideMathias Agopian2013-08-012-9/+4
| | | | | | | | | | | | | | | | | | | | Change-Id: I626bac6df4fc3d8478046193f06ecc7ea60dd3a8
* | | | | Merge "Report underruns for fast tracks also"Glenn Kasten2013-08-021-0/+19
|\ \ \ \ \ | |/ / / / |/| | | |
| * | | | Report underruns for fast tracks alsoGlenn Kasten2013-07-311-0/+19
| |/ / / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This fixes a regression that was introduced earlier by commit 9f80dd223d83d9bb9077fb6baee056cee4eaf7e5 called "New control block for AudioTrack and AudioRecord". That commit broke underrun reporting for fast tracks. Also remove Track::mUnderrunCount, which counted the number of underrun events, and was only used by dumpsys media.audio_flinger. Now dumpsys media.audio_flinger reports the number of underrun frames, Isolated underrun-related control block accesses via the proxy, so that the server is not directly poking around in the control block. The new proxy APIs are AudioTrackServerProxy::getUnderrunFrames() and AudioTrackServerProxy::tallyUnderrunFrames(). getUnderrunFrames() returns a rolling counter for streaming tracks, or zero for static buffer tracks which never underrun, but do a kind of 'pause' at end of buffer. tallyUnderrunFrames() increments the counter by a specified number of frames. Change-Id: Ib31fd73eb17cbb23888ce3af8ff29f471f5bd5a2
* | | | Unregister any handlers still registered on now "dead" ALoopersAndreas Huber2013-07-312-0/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | upon the death of an ALooper. Change-Id: I64c0835b8db04486204f3d0fa7173ee53708a116 related-to-bug: 10106648
* | | | am b57fb786: am d0ef1ccd: Merge "rtsp handle response line ended with \'\n\'"Andreas Huber2013-07-311-0/+3
|\ \ \ \ | |/ / / |/| / / | |/ / | | | * commit 'b57fb786a32d4ea78cd8bbf24a65593353d87a88': rtsp handle response line ended with '\n'
| * | rtsp handle response line ended with '\n'Yajun Zeng2013-07-311-0/+3
| |/ | | | | | | | | Change-Id: I5bfafd3fa2c95083e833da2846556282eada2b02 Signed-off-by: Yajun Zeng <beanz@marvell.com>
* | Move control block mName to createTrack() outputGlenn Kasten2013-07-303-4/+9
| | | | | | | | | | | | | | This is part of a series of CLs to clean up the shared memory control block, by removing any fields that don't have to be there. Change-Id: I6e51003a1293b6800258c31b22cff2eba42162e7
* | Rename control block flags to mFlagsGlenn Kasten2013-07-303-20/+20
| | | | | | | | Change-Id: I7b6d31e24531954ab1ecdf3ed56c19433700bd89
* | Merge "AudioRecord and HAL input stream must be 16-bit PCM only"Glenn Kasten2013-07-301-0/+5
|\ \
| * | AudioRecord and HAL input stream must be 16-bit PCM onlyGlenn Kasten2013-07-241-0/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Currently there are 16-bit PCM assumptions in several places for capture: - resampler API - mRsmpInBuffer and mRsmpOutBuffer - RecordThread::threadLoop upmix, downmix, and resampling - possibly other places Until those assumptions are removed, this CL enforces 16-bit PCM in both client and server at all places where a format is checked. Change-Id: I08b0570bff626ad0d341804825a72c14e61b4233
* | | Rename control block server to mServer and add commentsGlenn Kasten2013-07-301-3/+3
| | | | | | | | | | | | Change-Id: Ieabd91acee92d0e84e66fbd358df5282b856306e
* | | Use correct type for OutputDescriptor::formatGlenn Kasten2013-07-301-1/+1
| | | | | | | | | | | | Change-Id: Ide608ef452d57da29b708180d90470361c123d1d
* | | Merge "Fix typo in AwesomePlayer"Andreas Huber2013-07-291-1/+1
|\ \ \
| * | | Fix typo in AwesomePlayerSungsoo Lim2013-07-101-1/+1
| | | | | | | | | | | | | | | | Change-Id: I32113e382a3033c9a1b038dc06e4ccddc2a97d7f
* | | | Merge "Use standard name and type for channel mask"Glenn Kasten2013-07-292-6/+6
|\ \ \ \
| * | | | Use standard name and type for channel maskGlenn Kasten2013-07-242-6/+6
| | |/ / | |/| | | | | | | | | | | | | | | | | | Former name 'channels' was ambiguous with respect to channel count. Change-Id: I716f792d95a7e0c787d27514ad6e93dbcef8a415
* | | | Merge "Fail more gracefully on version mismatch"Marco Nelissen2013-07-291-3/+3
|\ \ \ \
| * | | | Fail more gracefully on version mismatchMarco Nelissen2013-07-291-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | b/9900647 Change-Id: I9ea508a2685ff8adc780edd5ecec30dd1a9b0997
* | | | | Declare methods in binder opcode orderGlenn Kasten2013-07-291-11/+12
|/ / / / | | | | | | | | | | | | Change-Id: I5f624b7a51ffe1a17a67c056cf984f74e4c56eac
* | | | stagefright: offload playback supportRichard Fitzgerald2013-07-265-115/+603
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Offloading of compressed audio decoding to audio DSP is implemented for audio only, non streamed content. when the datasource is AudioPlayer: - Create an offloaded sink when playing a compressed source - Send metadata to audio HAL - Return sink start error to AwesomePlayer so that a new player for PCM audio can be created in case of problem. - Forward stream end and tear down callback events to AwesomePlayer - Stop the sink and wait for stream end callback when EOS is reached. - Pause and restart the sink if needed before flushing when seeking (otherwise flush is a no op). - For current media time, directly query the render position from the sink and offset by the start position (seek to time) AwesomePlayer: - When initializing the audio decoder, check with audio policy manager if offloading is supported. If yes, create the software decoder in case a reconfiguration is needed but connect the audio track directly to the AudioPlayer. - In case of error when starting the AudioPlayer, reconnect the software decoder (OMXSource) and recreate a PCM AudioPlayer. - Handle AudioPlayer tear down event by detroying and recreating the AudioPlayer to allow transitions between situations were offloading is supported or not. - Force tear down of offloaded AudioPlayer when paused for a certain time: This will close the sink and allow the DSP to power down. Utils: - Added helper methods: - send meta data to audio ia sink setParameters - query audio policy manager if offloading is supported for a given audio content Change-Id: I115842ce424f947b966d45e253a74d3fd5df9aae Signed-off-by: Eric Laurent <elaurent@google.com>