OSDN Git Service
Andreas Huber [Thu, 8 Aug 2013 23:21:42 +0000 (16:21 -0700)]
am
bcd86896: am
d0f5664a: Merge "Handle undefined NAL type for h264 streaming"
* commit '
bcd86896e486e303d285e13477e0623b2a920e78':
Handle undefined NAL type for h264 streaming
Andreas Huber [Thu, 8 Aug 2013 15:56:37 +0000 (08:56 -0700)]
am
d0f5664a: Merge "Handle undefined NAL type for h264 streaming"
* commit '
d0f5664abb5a8d94ae13f63a5f3491b47383ee2f':
Handle undefined NAL type for h264 streaming
Andreas Huber [Thu, 8 Aug 2013 15:52:47 +0000 (15:52 +0000)]
Merge "Handle undefined NAL type for h264 streaming"
Glenn Kasten [Wed, 7 Aug 2013 17:19:36 +0000 (17:19 +0000)]
Merge "Cleanup comments for the new control block implementation"
Jeff Tinker [Wed, 7 Aug 2013 01:44:37 +0000 (01:44 +0000)]
Merge "Adds a drm resource busy error, removes some deprecated errors"
Lajos Molnar [Tue, 6 Aug 2013 23:55:31 +0000 (23:55 +0000)]
Merge "IOMX: add updateGraphicBufferInMeta method for metadata mode"
Mathias Agopian [Tue, 6 Aug 2013 23:06:09 +0000 (23:06 +0000)]
Merge "fix build"
Mathias Agopian [Tue, 6 Aug 2013 23:05:27 +0000 (16:05 -0700)]
fix build
Change-Id: I859bd75eb796b0cb8da30ad947776d3e38f3873f
Ying Wang [Tue, 6 Aug 2013 22:54:17 +0000 (15:54 -0700)]
Fix build. last attempt.
Change-Id: Ib955134f90b78cfc0d31272021ad5907a41df708
Lajos Molnar [Mon, 22 Jul 2013 19:57:43 +0000 (12:57 -0700)]
IOMX: add updateGraphicBufferInMeta method for metadata mode
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>
Mathias Agopian [Fri, 2 Aug 2013 08:50:59 +0000 (01:50 -0700)]
separte producer and consumer interfaces
Bug:
9265647
Change-Id: Iefabc11e4bd2e2e8ffd31160476c450affe6629c
Glenn Kasten [Tue, 6 Aug 2013 17:32:40 +0000 (17:32 +0000)]
Merge "AudioRecord notification frames"
Glenn Kasten [Tue, 6 Aug 2013 16:49:16 +0000 (16:49 +0000)]
Merge "AudioRecord::openRecord_l use flags"
Marco Nelissen [Tue, 6 Aug 2013 16:15:35 +0000 (16:15 +0000)]
Merge "Reject unprepared MediaPlayers"
Glenn Kasten [Tue, 6 Aug 2013 16:14:01 +0000 (16:14 +0000)]
Merge "AudioRecord::openRecord_l now take flags"
Glenn Kasten [Tue, 6 Aug 2013 14:22:28 +0000 (14:22 +0000)]
Merge "RecordThread::createRecordTrack_l use flags for fast tracks"
Glenn Kasten [Mon, 5 Aug 2013 23:13:13 +0000 (23:13 +0000)]
Merge "RecordTrack::createRecordTrack_l flags are in/out"
Glenn Kasten [Mon, 5 Aug 2013 22:59:42 +0000 (22:59 +0000)]
Merge "IAudioFlinger::openRecord track_flags_t flags is in/out"
Glenn Kasten [Mon, 5 Aug 2013 21:56:17 +0000 (21:56 +0000)]
Merge "AudioRecord::set and constructor now take flags"
Glenn Kasten [Mon, 5 Aug 2013 21:50:15 +0000 (21:50 +0000)]
Merge "Make AudioRecord and AudioTrack comments more similar"
Eino-Ville Talvala [Mon, 5 Aug 2013 21:46:04 +0000 (21:46 +0000)]
Merge "Camera3: Provide consumer usage flags to HAL for each stream"
Eino-Ville Talvala [Tue, 30 Jul 2013 21:36:03 +0000 (14:36 -0700)]
Camera3: Provide consumer usage flags to HAL for each stream
At stream configure time, pass on the stream's consumer usage flags
to the HAL, to speed up final hardware configuration.
Bug:
9592202
Change-Id: Ie467be053be36a09e482f5f05cad65df42d66476
Glenn Kasten [Mon, 5 Aug 2013 19:47:51 +0000 (19:47 +0000)]
Merge "AudioRecord callback thread waits for priority boost"
Marco Nelissen [Mon, 5 Aug 2013 19:22:43 +0000 (12:22 -0700)]
Reject unprepared MediaPlayers
Don't allow a MediaPlayer that has been reset() or release()d to be
used as the argument to setNextMediaPlayer.
Change-Id: I47da1460ec3742f5b2bd7b79e7998b290032d5a1
Glenn Kasten [Mon, 5 Aug 2013 14:56:23 +0000 (14:56 +0000)]
Merge "Remove default parameters for AudioTrack"
Glenn Kasten [Mon, 5 Aug 2013 14:41:30 +0000 (14:41 +0000)]
Merge "AudioRecord has no default sample rate"
Glenn Kasten [Mon, 5 Aug 2013 14:22:12 +0000 (14:22 +0000)]
Merge "Recording of non-linear formats is not supported"
Jeff Tinker [Sat, 3 Aug 2013 06:16:18 +0000 (23:16 -0700)]
Adds a drm resource busy error, removes some deprecated errors
Change-Id: Id719fb6df9c9d955ac24803082d08f2a4a5bc766
related-to-bug:
9695816
Glenn Kasten [Thu, 1 Aug 2013 14:22:02 +0000 (07:22 -0700)]
AudioRecord notification frames
Change-Id: I76ec536d1504eb9a558178b62bf225aace4b40d1
Glenn Kasten [Thu, 1 Aug 2013 14:24:34 +0000 (07:24 -0700)]
AudioRecord::openRecord_l use flags
Use the flags to determine input parameters for IAudioFlinger::openRecord.
Change-Id: I98d2726503af75c8830ce80ceaf3b94a755b342f
Glenn Kasten [Wed, 31 Jul 2013 23:10:53 +0000 (16:10 -0700)]
AudioRecord::openRecord_l now take flags
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
Glenn Kasten [Wed, 31 Jul 2013 23:16:02 +0000 (16:16 -0700)]
RecordThread::createRecordTrack_l use flags for fast tracks
Look at client's request for a fast track in the flags parameter,
and check whether the request can be satisfied.
Change-Id: I65ddaeb1b85670fe9066076f638bfed0cda01c0d
Glenn Kasten [Wed, 31 Jul 2013 23:14:50 +0000 (16:14 -0700)]
RecordTrack::createRecordTrack_l flags are in/out
The flags are currently unused, but will be used for requesting a fast
track. Making flags in/out will allow reporting back up to client that
the request is denied.
Change-Id: Ifbee57da3632ce130551065a426577fb97b1a68d
Glenn Kasten [Wed, 31 Jul 2013 23:12:48 +0000 (16:12 -0700)]
IAudioFlinger::openRecord track_flags_t flags is in/out
This will allow AudioFlinger to tell client it is denying a request.
Change-Id: Iff2be3ad6636371bbda9c9899a283c94620c1f06
Glenn Kasten [Wed, 31 Jul 2013 23:10:22 +0000 (16:10 -0700)]
AudioRecord::set and constructor now take flags
The new optional parameter 'flags' of type audio_input_flags_t will be
used for requesting a fast track.
Change-Id: Ia7e070cb57c833e608352da354fb30dc26df6918
Glenn Kasten [Wed, 31 Jul 2013 19:27:26 +0000 (12:27 -0700)]
AudioRecord callback thread waits for priority boost
Change-Id: Iae38fa4ac20a45751566169213a08a15deb0a2f6
Glenn Kasten [Fri, 2 Aug 2013 16:02:07 +0000 (09:02 -0700)]
Recording of non-linear formats is not supported
Such formats are already rejected in AudioRecord::set()
Change-Id: I5ba1fd9e4cd659e5226c75aa4f63e52f655e0521
Glenn Kasten [Wed, 31 Jul 2013 19:30:12 +0000 (12:30 -0700)]
Cleanup comments for the new control block implementation
There was some obsolete and incomplete text left over
after the new control block code was submitted.
This cleans up all those comments to be accurate again.
Change-Id: Ic52f5869cb723cde25d709514d6deea6aa6f20aa
Glenn Kasten [Wed, 31 Jul 2013 19:24:36 +0000 (12:24 -0700)]
AudioRecord has no default sample rate
Change-Id: I72feefdd6f3a623fd3669b80d4b264518fdc0929
Glenn Kasten [Fri, 2 Aug 2013 22:51:35 +0000 (15:51 -0700)]
Remove default parameters for AudioTrack
The defaults aren't needed; all users must know these values.
Change-Id: I0c1c97cb80bfea8e69a7cfa53ec85a91a8d48bb5
Glenn Kasten [Wed, 31 Jul 2013 19:25:00 +0000 (12:25 -0700)]
Make AudioRecord and AudioTrack comments more similar
Change-Id: I122a7cf7bfc162090cb27f37c325db7a23985bc7
Andy McFadden [Fri, 2 Aug 2013 21:16:14 +0000 (21:16 +0000)]
Merge "Use screen dimensions as default video size"
Andy McFadden [Fri, 2 Aug 2013 20:58:54 +0000 (13:58 -0700)]
Use screen dimensions as default video size
Instead of 720p, use the screen dimensions as the default video
size. For example, a phone with a 768x1280 display would be
recorded as a 768x1280 video when in portrait, or a 1280x768
video when in landscape.
If the device is not able to record at that resolution, we
fall back to 720p.
Also, fixed a problem introduced by a buffer timestamp change.
Change-Id: I7230ddb323c669ab07327f26df8d103c192c21d3
Mathias Agopian [Fri, 2 Aug 2013 20:35:40 +0000 (20:35 +0000)]
Merge "fix fallout from binderizing BufferQueues consumer side"
Glenn Kasten [Fri, 2 Aug 2013 16:14:01 +0000 (16:14 +0000)]
Merge "Report underruns for fast tracks also"
Mathias Agopian [Thu, 1 Aug 2013 03:36:27 +0000 (20:36 -0700)]
fix fallout from binderizing BufferQueues consumer side
Change-Id: I626bac6df4fc3d8478046193f06ecc7ea60dd3a8
Glenn Kasten [Thu, 1 Aug 2013 19:47:14 +0000 (12:47 -0700)]
am
6d4d8790: am
b687ff9f: Merge "Fix mismatched delete/new couple"
* commit '
6d4d879037a495f9a4276a6996d1845594ce9090':
Fix mismatched delete/new couple
Glenn Kasten [Thu, 1 Aug 2013 19:43:55 +0000 (12:43 -0700)]
am
b687ff9f: Merge "Fix mismatched delete/new couple"
* commit '
b687ff9f2e02790e8a8e3964cb73e87546cd72dd':
Fix mismatched delete/new couple
Glenn Kasten [Thu, 1 Aug 2013 19:37:52 +0000 (19:37 +0000)]
Merge "Fix mismatched delete/new couple"
Zhijun He [Wed, 31 Jul 2013 21:17:58 +0000 (21:17 +0000)]
Merge "Camera: fix the metadate parcel write issue"
Andreas Huber [Wed, 31 Jul 2013 20:04:50 +0000 (13:04 -0700)]
Unregister any handlers still registered on now "dead" ALoopers
upon the death of an ALooper.
Change-Id: I64c0835b8db04486204f3d0fa7173ee53708a116
related-to-bug:
10106648
Zhijun He [Wed, 31 Jul 2013 16:50:58 +0000 (09:50 -0700)]
Camera: fix the metadate parcel write issue
Also rename the frameId to requestId to make it less confusing.
Change-Id: I14a20b6fcabb86294afb31fc0c56397e185c1373
Glenn Kasten [Wed, 17 Jul 2013 23:05:07 +0000 (16:05 -0700)]
Report underruns for fast tracks also
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
Andreas Huber [Wed, 31 Jul 2013 16:01:12 +0000 (09:01 -0700)]
am
b57fb786: am
d0ef1ccd: Merge "rtsp handle response line ended with \'\n\'"
* commit '
b57fb786a32d4ea78cd8bbf24a65593353d87a88':
rtsp handle response line ended with '\n'
Andreas Huber [Wed, 31 Jul 2013 15:52:41 +0000 (08:52 -0700)]
am
d0ef1ccd: Merge "rtsp handle response line ended with \'\n\'"
* commit '
d0ef1ccd987e650e025b840e72f91770d03a5110':
rtsp handle response line ended with '\n'
Andreas Huber [Wed, 31 Jul 2013 15:43:56 +0000 (15:43 +0000)]
Merge "rtsp handle response line ended with '\n'"
Yajun Zeng [Tue, 14 May 2013 02:00:10 +0000 (10:00 +0800)]
rtsp handle response line ended with '\n'
Change-Id: I5bfafd3fa2c95083e833da2846556282eada2b02
Signed-off-by: Yajun Zeng <beanz@marvell.com>
Glenn Kasten [Tue, 30 Jul 2013 22:40:15 +0000 (22:40 +0000)]
Merge "Add resampler comments and fix a typo"
Glenn Kasten [Tue, 30 Jul 2013 18:52:39 +0000 (11:52 -0700)]
Add resampler comments and fix a typo
Change-Id: Ie071673875f663de4212eed4a4dff89d51a5a915
Glenn Kasten [Mon, 19 Nov 2012 19:24:51 +0000 (11:24 -0800)]
Remove default channel mask in AudioRecord constructor and set()
Change-Id: I22ad4ba8777842bf6705e79c6ad796fdb9a4104c
Eino-Ville Talvala [Fri, 26 Jul 2013 00:12:35 +0000 (17:12 -0700)]
Camera: Rename new API to camera2, rearrange camera service
- Support API rename from photography to camera2
- Reorganize camera service files
- API support files to api1/, api2/, api_pro/
- HAL device support files into device{1,2,3}/
- Common files into common/
- Camera service remains at top-level
Change-Id: Ie474c12536f543832fba0a2dc936ac4fd39fe6a9
Glenn Kasten [Fri, 12 Jul 2013 19:59:20 +0000 (12:59 -0700)]
Move control block mName to createTrack() output
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
Glenn Kasten [Fri, 12 Jul 2013 17:21:18 +0000 (10:21 -0700)]
Rename control block flags to mFlags
Change-Id: I7b6d31e24531954ab1ecdf3ed56c19433700bd89
Glenn Kasten [Tue, 30 Jul 2013 16:35:09 +0000 (16:35 +0000)]
Merge "AudioRecord and HAL input stream must be 16-bit PCM only"
Glenn Kasten [Fri, 12 Jul 2013 16:45:18 +0000 (09:45 -0700)]
Rename control block server to mServer and add comments
Change-Id: Ieabd91acee92d0e84e66fbd358df5282b856306e
Glenn Kasten [Wed, 17 Jul 2013 00:17:28 +0000 (17:17 -0700)]
Use correct type for OutputDescriptor::format
Change-Id: Ide608ef452d57da29b708180d90470361c123d1d
Glenn Kasten [Tue, 30 Jul 2013 14:36:19 +0000 (14:36 +0000)]
Merge "Fix theoretical race using TrackBase::sampleRate()"
Andrei V. FOMITCHEV [Tue, 9 Oct 2012 09:33:25 +0000 (11:33 +0200)]
Fix mismatched delete/new couple
In RecordThread::readInputParameters(), mRsmpInBuffer is allocated
with new[] and should be freed with delete[] instead of delete.
This error has been found by valgrind.
Change-Id: I2f947abb658a21a7d1e61eebb99270cb37d2d147
Signed-off-by: Andrei V. FOMITCHEV <andreix.fomitchev@intel.com>
Signed-off-by: David Wagner <david.wagner@intel.com>
Signed-off-by: Jack Ren <jack.ren@intel.com>
Signed-off-by: Bruce Beare <bruce.j.beare@intel.com>
Glenn Kasten [Tue, 30 Jul 2013 00:17:38 +0000 (17:17 -0700)]
Remove CC_LIKELY and CC_UNLIKELY where not needed
Only keep them in performance-sensitive code
Change-Id: Ib257ddd7bc39ce9896997ffae008c524ac743d01
Glenn Kasten [Thu, 29 Nov 2012 16:48:51 +0000 (08:48 -0800)]
Rename RecordThread::mInputBytes to the more generic mBufferSize
This prepares for using it in PlaybackThreads later
Change-Id: Id90a92aa6372e4b69914b0008cef07296ca5d6a3
Glenn Kasten [Tue, 16 Jul 2013 18:37:48 +0000 (11:37 -0700)]
Move members from ThreadBase to PlaybackThread
Move mNormalFrameCount and frameCountHAL(), since they're not used by
record threads. Also comment which fields are updated by readParameters().
Change-Id: I5fc0a8a89cc637976f22d49271a5a3e136dab4e1
Andreas Huber [Mon, 29 Jul 2013 23:10:53 +0000 (23:10 +0000)]
Merge "Fix typo in AwesomePlayer"
Glenn Kasten [Mon, 29 Jul 2013 21:13:08 +0000 (21:13 +0000)]
Merge "Use standard name and type for channel mask"
Igor Murashkin [Mon, 29 Jul 2013 20:54:20 +0000 (20:54 +0000)]
Merge "camera2 api: Override default RGBx formats to IMPLEMENTATION_DEFINED"
Glenn Kasten [Mon, 29 Jul 2013 20:24:15 +0000 (20:24 +0000)]
Merge "Simplify getParameters()"
Glenn Kasten [Mon, 29 Jul 2013 20:19:23 +0000 (20:19 +0000)]
Merge "Treat mChannelCount as uint32_t consistently"
Marco Nelissen [Mon, 29 Jul 2013 20:19:01 +0000 (20:19 +0000)]
Merge "Fail more gracefully on version mismatch"
Glenn Kasten [Tue, 16 Jul 2013 18:16:27 +0000 (11:16 -0700)]
Treat mChannelCount as uint32_t consistently
mChannelCount was 8-, 16-, or 32-bits
Change-Id: I2cc2fedf3e33144e5c8bbd9894763282d9217f63
Igor Murashkin [Mon, 29 Jul 2013 19:25:59 +0000 (12:25 -0700)]
camera2 api: Override default RGBx formats to IMPLEMENTATION_DEFINED
Bug:
9487482
Change-Id: I09d3b4e41454d350c4bc7b1f8e893c3dad655e73
Marco Nelissen [Mon, 29 Jul 2013 18:22:27 +0000 (11:22 -0700)]
Fail more gracefully on version mismatch
b/
9900647
Change-Id: I9ea508a2685ff8adc780edd5ecec30dd1a9b0997
Glenn Kasten [Mon, 29 Jul 2013 18:18:05 +0000 (18:18 +0000)]
Merge "Move local variable declarations to point of first use"
Glenn Kasten [Mon, 29 Jul 2013 17:59:04 +0000 (17:59 +0000)]
Merge "Declare methods in binder opcode order"
Glenn Kasten [Wed, 17 Jul 2013 17:10:23 +0000 (10:10 -0700)]
Declare methods in binder opcode order
Change-Id: I5f624b7a51ffe1a17a67c056cf984f74e4c56eac
Glenn Kasten [Mon, 29 Jul 2013 17:37:58 +0000 (17:37 +0000)]
Merge "Remove obsolete mBufferEnd"
Glenn Kasten [Mon, 29 Jul 2013 17:06:17 +0000 (17:06 +0000)]
Merge "Move delete AudioMixer closer to point of re-allocation"
Glenn Kasten [Thu, 25 Jul 2013 21:21:35 +0000 (14:21 -0700)]
Remove obsolete mBufferEnd
Change-Id: I507c6109d66000bb30933ca23b912a1316f55e5e
Glenn Kasten [Thu, 25 Jul 2013 21:21:14 +0000 (14:21 -0700)]
Remove obsolete TrackBase::step(), mStepCount, mStepServerFailed
Change-Id: I6347096f066b8b19451c6472db7b0671f0cf7702
Glenn Kasten [Mon, 29 Jul 2013 14:27:55 +0000 (14:27 +0000)]
Merge "Simplify RecordTrack::stop()"
Patrik2 Carlsson [Fri, 16 Nov 2012 15:18:03 +0000 (16:18 +0100)]
Handle undefined NAL type for h264 streaming
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
Glenn Kasten [Sat, 27 Jul 2013 00:00:33 +0000 (00:00 +0000)]
Merge "CBLK_OVERRUN, not CBLK_UNDERRUN, is for record threads"
Glenn Kasten [Fri, 26 Jul 2013 23:24:50 +0000 (23:24 +0000)]
Merge "Remove obsolete TrackBase::reset()"
Glenn Kasten [Fri, 26 Jul 2013 21:33:40 +0000 (21:33 +0000)]
Merge "HAL stream format for mixer output threads must be stereo 16-bit PCM"
Richard Fitzgerald [Tue, 14 May 2013 14:52:03 +0000 (15:52 +0100)]
stagefright: offload playback support
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>
Richard Fitzgerald [Tue, 14 May 2013 12:18:21 +0000 (13:18 +0100)]
libmediaplayerservice: offload playback support
Main change is to how recycled tracks are used for gapless
playback. If we are playing offloaded tracks that can't be
recycled we don't open a new offloaded output until we have
closed the previous one. This is because offloaded tracks
are a limited resource so we don't want to spuriously create
unnecessary instances. If the tracks cannot be recycled
this means that the formats are incompatible and so the
hardware most likely will also be unable to use the existing
output channel for the new track. If we already have the
maximum number of hardware offload channels open (which could
be only one) then creation of the next output would fail if
we attempted it while the previous output was still open.
Change-Id: I4f5958074e7ffd2e17108157fee86329506730ea
Signed-off-by: Eric Laurent <elaurent@google.com>
Glenn Kasten [Thu, 25 Jul 2013 21:37:52 +0000 (14:37 -0700)]
Simplify RecordTrack::stop()
Change-Id: Ib959c1e9dc9544d12277ce11bea445118b2e0521
Glenn Kasten [Thu, 25 Jul 2013 21:41:19 +0000 (14:41 -0700)]
CBLK_OVERRUN, not CBLK_UNDERRUN, is for record threads
Change-Id: I8948f76ef4717a423c37cd6ea7db4381636af612
Glenn Kasten [Thu, 25 Jul 2013 21:34:57 +0000 (14:34 -0700)]
Remove obsolete TrackBase::reset()
Change-Id: I38100b7e28a12d7af8cb40ae3f4d9cb4a0ebe701
Richard Fitzgerald [Tue, 14 May 2013 11:12:21 +0000 (12:12 +0100)]
libmedia: offloaded playback support
- start() returns a status so that upper layers can
recreate a non offloaded track in case of error.
- Added states to handle offloaded tracks specific:
- waiting for stream end (drain) notification by
audio flinger
- allow pause while waiting for stream end notification
- getPosition() queries the render position directly from
audio HAL.
- disable APIs not applicable to offloaded tracks
- Modified track restoring behavior for invalidated
offloaded tracks: just send the callback and wait for
upper layers to create a new track.
- Added wait for stream end management in audio track client
proxy. Similar to obtainBuffer and should be factored in.
Change-Id: I0fc48117946364cb255afd653195498891f622bd
Signed-off-by: Eric Laurent <elaurent@google.com>
Eric Laurent [Mon, 7 Jan 2013 17:53:42 +0000 (09:53 -0800)]
AudioFlinger: offload playback, non-blocking write
- Added specialized playback thread class for offload playback,
derived from directoutput thread.
This thread type handles specific state transitions for offloaded
tracks and offloading commands (pause/resume/drain/flush..) to audio HAL.
As opposed to other threads, does not go to standby if the track is paused.
- Added support for asynchronous write and drain operations at audio HAL.
Use a thread to handle async callback events from HAL: this avoids locking
playback thread mutex when executing the callback and cause deadlocks when
calling audio HAL functions with the playback thread mutex locked.
- Better accouting for track activity: call start/stop and release Output
methods in audio policy manager when tracks are actually added and removed
from the active tracks list.
Added a command thread in audio policy service to handle stop/release commands
asynchronously and avoid deadlocks with playback thread.
- Track terminated status is not a state anymore. This condition is othogonal
to state to permitted state transitions while terminated.
Change-Id: Id157f4b3277620568d8eace7535d9186602564de
Glenn Kasten [Thu, 25 Jul 2013 17:09:11 +0000 (10:09 -0700)]
Move delete AudioMixer closer to point of re-allocation
No need to delete AudioMixer before readOutputParameters
Change-Id: Icafa785c9021bbe8d985e4f9527f8fc8c5e62622