added setTimeLapseParameters() to MediaRecorder.java and SetParameter support
in StagefrightRecorder to allow enabling time lapse and setting the corresponding
parameters.
Change-Id: I509040aa71f8d3fc37337b0894a81d9c0fd7a40a
This is 1st part of the work to allow audio and video resync if
we found out that audio and video are out of sync during authoring
- also fixed a problem in AACEncoder::read() where the buffer acquired
from the buffer group does not release when error out at
reading from source.
Change-Id: I8a2740097fcfdf85e6178869afeb9f3687a99118
Merge commit 'b72d3180dc8d41d6269664bea808b04410bbe40f'
* commit 'b72d3180dc8d41d6269664bea808b04410bbe40f':
Various changes to improve rtsp networking, reduce packet loss and adapt to ALooper API changes.
Merge commit '8a9a931fff2d184f7cf77fdd8a425f682f006cfd'
* commit '8a9a931fff2d184f7cf77fdd8a425f682f006cfd':
Support finer seek control on MediaSources.
Merge commit '34161132030254bac7dd64c9713832e2f961a061'
* commit '34161132030254bac7dd64c9713832e2f961a061':
Added support for auxiliary audio effects to AudioTrack and MediaPlayer.
Added methods to AudioTrack and MediaPlayer java classes to enable use of
auxiliary audio effects. The effect can be attached and detached by specifying its
ID and the send level controlled.
Change-Id: Ie74ff54a453096a742688476f612ce355543b6f3
Preview is called when CAMERA_MSG_COMPRESSED_IMAGE is recieved by
dataCallback(). It needs to be started as a new thread so that the
callback can return, and the camera can know that takePicture() is
done.
Change-Id: I4d0febbc993aac43b37f9f4a824e9c7b8785f19e
Merge commit 'ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe'
* commit 'ff45709fbd1f24de1cf75ce9ce9ac8694ff1abbe':
Support a single format change at the beginning of audio playback. This way the AAC+ decoder may change its output format from what is originally encoded in the audio stream and we'll still play it back correctly.
Added methods for audio effects management by audio policy manager.
- control of total CPU load and memory used by effect engines
- selection of output stream for global effects
- added audio session id in parameter list for startOutput() and stopOutput().
this is not used in default audio policy manager implementation.
Modifications of audio effect framework in AudioFlinger to allow moving and reconfiguring
effect engines from one output mixer thread to another when audio tracks in the same session
are moved or when requested by audio policy manager.
Also fixed mutex deadlock problem with effect chains locks.
Change-Id: Ida43484b06e9b890d6b9e53c13958d042720ebdb
Also moving entire implementation into a new class CameraSourceTimeLapse
which inherits from CameraSource.
For timelapse capture using still camera, we start a thread which runs a
loop in which it calls Camera::takePicture() and then sleeps until the next
frame should be captured.
The function dataCallback() handles the callback from the camera with the
raw image data. This function copies the data and creates an artificial
timestamp corresponding to one frame time ahead of the last encoded frame's
time stamp. It then calls dataCallbackTimestamp() of the base class which
will think that it recieved the frame from a video camera and proceed as usual.
For moving the implementation to the subclass CameraSourceTimeLapse, added a
few virtual functions to CameraSource, which do the current thing for the base
class, but specialized things for CameraSourceTimeLapse.
E.g. startCameraRecording() in the base class just calls mCamera->startRecording(),
while in CameraSourceTimeLapse it may start a thread for the still camera case.
Change-Id: Ib787f24bd2e1f41681513f0257e1c4ca10a2b4de
- Fixed crash when deleting an effect chained before an effect having volume control
- Changed EFFECT_FLAG_VOLUME_CTRL to implicitely include EFFECT_FLAG_VOLUME_IND
(not need to set both in effect descriptor).
- Volume control changes from one effect to another if needed according to effect enable state
- EFFECT_CMD_SET_VOLUME is only sent when their is an actual change in volume
Change-Id: Ieebaf09157e2627366023569d95516646e03e26c
Merge commit '5473434f060d8c036a30a1992b036a2f70da265d'
* commit '5473434f060d8c036a30a1992b036a2f70da265d':
Use the OpenSL ES definition of SL_IID_EQUALIZER for the EQ
- Separate the updating of effect engine state from the process call in EffectModule so that the state
of all effects in the same effect chain is updated simultaneusly before all process functions are called.
- Added a mechanism for the effect engine to continue being called for processing after receiving the disable
commands untils it considers that the framework can stop calling the process function without causing
a glitch or loosing some effect tail.
- Updated test reverb and equalizer to support this new feature
Change-Id: Icb56ae2c84c076d4dbad6cf733b1a62f823febe7
Merge commit '4f4406322dafd6e128b437edbc541327f0b38d04'
* commit '4f4406322dafd6e128b437edbc541327f0b38d04':
Add runtime dumpsys support for media recorder client
Defined the following JAVA classes on top of AudioEffect class to facilitate control
off built-in audio effects with APIs aligned with interfaces defined in OpenSL ES
specification:
- BastBoot.java
- Equalizer.java
- PresetReverb.java
- EnvironmentalReverb.java
- Virtualizer.java
Split reverb API header file in two, one for preset reverb and one for environmental reverb.
Some changes in test reverb to support preset reverb.
Change-Id: Ie0a5ba06002e63dfd6da22cace5568c1e0b76ea1
Merge commit 'b35988329ac1a574898db9226039e37e352c57a8'
* commit 'b35988329ac1a574898db9226039e37e352c57a8':
Allow application to set two more encoding paramters: video profile and level
The visualizer enables application to retrieve part of the currently playing audio for visualization purpose.
It is not an audio recording interface and only returns partial and low quality audio content as a waveform or
a frequency representation (FFT).
Removed temporary hack made in MediaPlayer for animated wall papers based on audio visualization (snoop() method.
This commit also includes a change in AudioEffect class:
- the enable()/disable() methods have been replaced bya more standard setEnabled() method.
- some fixes in javadoc
Change-Id: Id092a1340e9e38dae68646ade7be054e3a36980e
Merge commit '877045aa853aaf6e58ca3ac7bfa2bde9165b55ae'
* commit '877045aa853aaf6e58ca3ac7bfa2bde9165b55ae':
An AHandler can now find its associated ALooper.
Merge commit 'c4be155a540695c42bcd6589604f86d300f4548f'
* commit 'c4be155a540695c42bcd6589604f86d300f4548f':
Add an option to ALooper::start that allows it to call back into java or not.