1843 Commits

Author SHA1 Message Date
Jean-Michel Trivi
97eb728aef Use the OpenSL ES definition of SL_IID_EQUALIZER for the EQ
effect UUID instead of defining it locally.

Change-Id: Id6018fef20d286899cf7503fec3521dcd56db7e0
2010-07-14 10:09:31 -07:00
James Dong
70c6c9a1e2 Fix simulator build
- missing header file <string.h>
- need to define -D__arm__

Change-Id: I18d2f1908684150784cf728234b5aedbc02447d1
2010-07-13 13:29:33 -07:00
Eric Laurent
8e886be413 Merge "Modifications in audio effect engine state management." into gingerbread 2010-07-13 12:29:17 -07:00
Eric Laurent
7d850f23c8 Modifications in audio effect engine state management.
- 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
2010-07-13 12:27:18 -07:00
James Dong
1cc31e629e Initial checkin for software AVC encoder
- Since the software encoder assumes the input is YUV420 planar,
  color conversion needs to be added when the input color format
  does not meet the requirement. With this patch, I only added
  a single color conversion from YUV420 semi planar to YUV420
  planar. We can add more as we go.

Change-Id: If8640c9e5a4f73d385ae9bb2022e57f7f62b91b9
2010-07-13 10:58:20 -07:00
Jean-Michel Trivi
e7b790f1f7 Merge "Fix swap of sessionId and output in audio effect API." into gingerbread 2010-07-09 12:30:28 -07:00
Jean-Michel Trivi
4cb15cf15d Fix swap of sessionId and output in audio effect API.
Change-Id: Idc93415efef92087507401e50cfb235a6f1f7ed7
2010-07-09 12:11:49 -07:00
James Dong
a7c14078af Enable the support for decoding audio with AAC+ and eAAC+ features
bug - 282684

Change-Id: I73c8377af3cc4edd3ee7cea86dc3b1c369fbd78b
2010-07-08 21:37:46 -07:00
James Dong
929642ee00 Add runtime dumpsys support for media recorder client
Change-Id: I4c8a81720f3be2db54678a7e84fe12849255046b
2010-07-08 21:25:55 -07:00
Eric Laurent
fd84f97af4 Added JAVA classes to control bass boost, equalizer, reverberation and virtualizer Effects.
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
2010-07-08 15:32:51 -07:00
Eric Laurent
dacabf97c6 Merge "Added Visualizer effect." into gingerbread 2010-07-07 16:23:30 -07:00
James Dong
c42433427a Merge "Allow application to set two more encoding paramters: video profile and level" into gingerbread 2010-07-07 14:56:33 -07:00
James Dong
58c35573cc Merge "Fix some bugs in the MediaProfileReader Because the video and audio encoders were stored in the same map, when we retrieve the name from the map, we can get a incorrect name." into gingerbread 2010-07-07 14:56:20 -07:00
James Dong
620a424036 Fix some bugs in the MediaProfileReader
Because the video and audio encoders were stored in the same map, when we retrieve the name from the map, we can get a incorrect name.

Change-Id: I3857422bfe9173baae53e4f3d258b055f51ad9f2
2010-07-07 14:37:48 -07:00
Andreas Huber
971305d4af Only send the playback complete notification if a) an error occurred on any track or b) all tracks have finished playing. The previous behaviour was to send the notification as soon as the first track finished playing.
Change-Id: Icac8104d14f18b719aa0b8f1ab3215f24003b152
2010-07-07 13:36:29 -07:00
James Dong
81c929a684 Allow application to set two more encoding paramters: video profile and level
Change-Id: I673e681cefe184d5c556c612c54600a24a2143e5
2010-07-07 12:11:53 -07:00
Eric Laurent
df9b81ced4 Added Visualizer effect.
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
2010-07-07 11:00:28 -07:00
Andreas Huber
2e6aff8e19 Merge "ALooperRoster no longer holds strong references to handlers and loopers." into gingerbread 2010-07-07 09:41:05 -07:00
Andreas Huber
57576c1cae ALooperRoster no longer holds strong references to handlers and loopers.
Change-Id: I038d69b0a34eda1bfc5216d92c837a5ddf4fb802
2010-07-07 09:27:31 -07:00
Andreas Huber
6615defd4b Make sure the OMX callback thread is properly shutdown after the node goes away.
Change-Id: Ib0b25855b0dfc191e5529193b4cb519f644a8412
2010-07-07 08:20:49 -07:00
Andreas Huber
9406f626b2 Merge "An AHandler can now find its associated ALooper." into gingerbread 2010-07-07 06:57:27 -07:00
Andreas Huber
058319eb73 An AHandler can now find its associated ALooper.
Change-Id: Ic7087b8dcbc0d9abda272df0cb01b04b006f82ad
2010-07-02 15:16:13 -07:00
Andreas Huber
2cfd8198cc Merge "Add an option to ALooper::start that allows it to call back into java or not." into gingerbread 2010-07-02 10:02:17 -07:00
Andreas Huber
4f104d99d8 Add an option to ALooper::start that allows it to call back into java or not.
Change-Id: Iec172901a04a575d8d350bd162565f04677c3f26
2010-07-02 08:00:52 -07:00
Andreas Huber
5460d126f0 Merge "Added AMessage::debugString() for debugging purposes." into gingerbread 2010-07-02 08:00:30 -07:00
Andreas Huber
03431d2fa6 Added AMessage::debugString() for debugging purposes.
Change-Id: Id43ffd2c56d659dc29f37e277f8c7b38f11c1591
2010-07-01 16:36:55 -07:00
James Dong
65c83b906d Merge "Refactor Stagefright::StartMPEG4Recording()" into gingerbread 2010-07-01 14:11:01 -07:00
Eric Laurent
a0c2b53966 Merge "Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call." into gingerbread 2010-07-01 11:54:00 -07:00
James Dong
7b06de6d5a Refactor Stagefright::StartMPEG4Recording()
- Also, better error handling

Change-Id: Ic18d08dc6489adf92c6a588efa4baca66429b175
2010-07-01 10:28:38 -07:00
Andreas Huber
45bac57aa0 Support for writing the extracted data to an .mp4 file in the stagefright commandline tool.
Change-Id: I972324a8fc9757e6e8116b0270ec0882106f8733
2010-07-01 09:08:38 -07:00
Chih-Chung Chang
09b9005769 Add multiple camera support for in MediaProfiles.
Change-Id: Ie89568a0f5f5fd08ede77e33f9a559215d6bed9a
2010-07-01 10:57:15 +08:00
Eric Laurent
e2dd8c4592 Fix issue 2811538: System server crash when disconnecting BT headset after using SCO off call.
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
2010-06-30 19:41:56 -07:00
Andreas Huber
c543a21a40 Support for vanilla YUV420sp => RGB565 color conversion.
Change-Id: I22e5b554909e169eaf153d1f25b636f6f04a1871
2010-06-30 10:32:39 -07:00
James Dong
c0ab2a6458 Added encoding parameters set up for H263 video encoder
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
2010-06-29 16:44:19 -07:00
Andreas Huber
8ef64c9606 Add qcom's new OMX components to the list.
Change-Id: Ic8d261aaa5b15c1be7e6d57aee6be51cecb10bb1
2010-06-29 11:38:41 -07:00
James Dong
d4760c243f Collect statistical data from authoring engine (second part)
- 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
2010-06-28 17:09:51 -07:00
James Dong
fe1bafecde Separate MediaRecorderClient with MediaPlayerClient
- 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
2010-06-28 15:32:26 -07:00
James Dong
09936ed192 Provide progress status report during authoring
- 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
2010-06-25 16:20:42 -07:00
Eric Laurent
8e103da1f1 Merge "Various fixes and improvements in audio effects implementation" into gingerbread 2010-06-25 12:35:30 -07:00
Eric Laurent
53334cdb81 Various fixes and improvements in audio effects implementation
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
2010-06-25 11:59:35 -07:00
Andreas Huber
357f8209f3 Merge "Finetune some of the prefetcher parameters to a) buffer as much as froyo did b) ensure that keepalives actually trigger a network read instead of just draining internal buffers" into gingerbread 2010-06-25 11:03:42 -07:00
Andreas Huber
909a8cf62c Finetune some of the prefetcher parameters to a) buffer as much as froyo did b) ensure that keepalives actually trigger a network read instead of just draining internal buffers
Change-Id: Iaedfb5645e3052a63789244c90900573f8449bac
2010-06-25 10:44:24 -07:00
James Dong
6feaa46496 Enable passing parameters to the MediaWriter at runtime (at start() call).
- 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
2010-06-25 10:24:35 -07:00
James Dong
5a905ceb06 Merge "Track maximum amplitude and fix getMaxAmplitude()" into gingerbread 2010-06-25 09:43:14 -07:00
James Dong
57e7f83c03 Track maximum amplitude and fix getMaxAmplitude()
- only start to track the max amplitude after the first call to getMaxAmplitude()

Change-Id: I64d3d9ca0542202a8535a211425e8bccceca50fc
2010-06-24 21:59:25 -07:00
Andreas Huber
7b5b27ada1 Merge "Properly identify malformed (too short) chunks in mpeg4 files." into gingerbread 2010-06-24 13:14:38 -07:00
Andreas Huber
736c22d3e0 Properly identify malformed (too short) chunks in mpeg4 files.
Change-Id: Id2efb1bba195c4ad6f132cd706cc813135ead8a4
2010-06-24 12:16:25 -07:00
James Dong
7fd22aab45 Merge "Fixed the software AAC encoder" into gingerbread 2010-06-24 09:46:48 -07:00
Andreas Huber
a2549bb644 Merge "Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright." into gingerbread 2010-06-24 09:05:08 -07:00
James Dong
438e4f62ad Fixed the software AAC encoder
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
2010-06-23 17:12:11 -07:00