Problem:
When the bluetooth device is removed, the AudioService clears all active SCO connections
and unlinks from the client application's binder interface death.
The problem is that the unlinking is done even if no more connections are active for a given client,
which throws a runtime exception that is not catched causing the system server to crash.
The fix consists in calling unlinkToDeath() in ScoClient.clearCount() only if the number of
active SCO connections for this client is not 0. The NoSuchElementException exception is also
catched when calling unlinkToDeath()
Change-Id: I29a28fcce1a579217cea271956a55778e05d3e37
Also:
- Allowed start() call when encoder already starts and stop() call when encoder has not started yet
- Handled default value for audio/video sources/encoders and file output format
Change-Id: I03b2f7d3cf570baa0fd011a8c0ad200f2f2a5da1
- added sample duration to the statistcal log messages.
- fixed the bug on miscalcuting the average frame rate.
- also fixed an issue where both frame and time progress status notifications
are sent out even though only one of them is explicitly requsted.
Change-Id: Ib86f15a85fad3dbeabde120c3c782b79c16da46c
- An alternative would be to define a common base class that
both MediaRecorderClient and MediaPlayerClient can derive.
But since the common code, onTransact() and notify() uses
some Binder code, having a common base class may not gain
us too much in terms of code reuse.
Change-Id: Ibc06720278ad173fceacff3d267b7060856c6316
- Track either the number of A/V frames authored, or the time elapsed
- Track the completion of the authoring
- Add multiple camera support for authoring by accepting a camera id parameter
- Set file type based on the OUTPUT_FORMAT requested
Change-Id: I0f9d31b3b7a8fa43eb53f572410fb0ebd4fa0bb7
Effect API:
- Use different definitions for audio device, channels, formats... in AudioSystem and EffectApi:
Removed media/AudioCommon.h file created for initial version of EffectApi
- Indicate audio session and output ID to effect library when calling EffectCreate(). Session ID can be useful to optimize
the implementation of effect chains in the same audio session. Output ID can be used for effects implemented in audio hardware.
- Renamed EffectQueryNext() function to EffectQueryEffect() and changed operating mode:
now an index is passed for the queried effect instead of implicitly querying the next one.
- Added CPU load and memory usage indication in effects descriptor
- Added flags and commands to indicate changes in audio mode (ring tone, in call...) to effect engine
- Added flag to indicate hardware accelerated effect implementation.
- Renamed EffectFactoryApi.h to EffectsFactoryApi.h for consistency with EffectsFactory.c/h
Effect libraries:
- Reflected changes in Effect API
- Several fixes in reverb implementation
- Added build option TEST_EFFECT_LIBRARIES in makefile to prepare integration of actual effect library.
- Replaced pointer by integer identifier for library handle returned by effects factory
Audio effect framework:
- Added support for audio session -1 in preparation of output stage effects configuration.
- Reflected changes in Effect API
- Removed volume ramp up/down when effect is inserted/removed: this has to be taken care of by effect engines.
- Added some overflow verification on indexes used for deferred parameter updates via shared memory
- Added hardcoded CPU and memory limit check when creating a new effect instance
Change-Id: I43fee5182ee201384ea3479af6d0acb95092901d
- estimate the moov box size for mp4 file writer based on the file
size/duration limit and target bit rate.
- can switch to use 64 bit file offset at runtime
rebased
Change-Id: Ibbe1f57e91ab2605820d5d96e8048d11e5559c53
Make sure that each input frame contains at least 1024 samples, as
required by the AAC encoder, and fix the incorrect timestamp.
Change-Id: I344cafe8c89be51d6e64552fab70539990ff6049
- Mainly correcting the location of stbl box which should be a child of minf box.
This resolved the issue where the mis-muxed encoded file could not be played by QT/VLC.
- Enabled the the recorded tracks by setting the flags to 0x07 by default
- Allows for encoding either 32-bit or 64-bit offsets. By default encoding
32-bit offsets to reduce the metadata overhead
- Fixed a edts box issue where an empty elst box was used at the end
Change-Id: I570621a26714a81dc9400271aa5d3a07b483172f
Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.
Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
Use setParameters() API to indicate to audio HAL that we are restarting the media server after a crash.
The use made by audio HAL implementation of this indication is platform specific.
Change-Id: I085b174fa1474575da0e4d295921079b6b68efb8
We don't need to do interleave when the total number of tracks to be recorded is one.
Metadata-wise, we only need to have one chunk in chunk offset table, and a
single entry in the stsc table.
Change-Id: I46f0e4b3860620311e7a91b68a9067acaa137bb2
Merge commit '3242cc2719a4aeb64ac5ed273cf222d8d326d44b' into gingerbread
* commit '3242cc2719a4aeb64ac5ed273cf222d8d326d44b':
TimedEventQueue is apparently important for glitch-free media playback, and so
having it inherit its priority from the thread that created it is a bad idea.
Instead, set the priority explicitly, and bump it to slightly higher than normal.
Change-Id: I01843f24905790ce2e2cde5d11a99346cfbf968d