| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
| |
- 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
|
|\
| |
| |
| | |
gingerbread
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | | |
froyo did b) ensure that keepalives actually trigger a network read instead of just draining internal buffers" into gingerbread
|
| | |
| | |
| | |
| | |
| | |
| | | |
b) ensure that keepalives actually trigger a network read instead of just draining internal buffers
Change-Id: Iaedfb5645e3052a63789244c90900573f8449bac
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
- 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
|
|\ \ \
| |/ /
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | | |
- only start to track the max amplitude after the first call to getMaxAmplitude()
Change-Id: I64d3d9ca0542202a8535a211425e8bccceca50fc
|
|\ \ \
| |/ /
|/| |
| | | |
gingerbread
|
| | |
| | |
| | |
| | | |
Change-Id: Id2efb1bba195c4ad6f132cd706cc813135ead8a4
|
|\ \ \
| |/ /
|/| | |
|
| |/
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| |/
|/|
| | |
VorbisMetadataRetriever as this functionality is now provided by stagefright." into gingerbread
|
| |
| |
| |
| |
| |
| |
| | |
VorbisMetadataRetriever as this functionality is now provided by stagefright.
Change-Id: Ieafe75a4550c273ad59b4518d7cd4c0fce0f7cce
related-to-bug: 2370115
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- 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
|
|\ \
| | |
| | |
| | | |
gingerbread
|
| |/
| |
| |
| |
| | |
Change-Id: I863651619f84b2b66e9a926ce1fef8ce6a53a42d
related-to-bug: 2639116
|
|/
|
|
|
|
|
| |
would lead to invalid reporting of the current playback time for mono and/or non-44100 kHz mp3s.
Change-Id: I11abc05b62a958ffbc99ca997cd184a2f2199352
related-to-bug: 2667479
|
|\
| |
| |
| | |
gingerbread
|
| |
| |
| |
| |
| |
| | |
Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.
Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
|
|\ \
| |/
|/| |
|
| |
| |
| |
| | |
Change-Id: I952071ab10aa49aa96b727d157b68470d69fff3d
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|\ \
| | |
| | |
| | | |
timeout expires regardless of whether its currently actively fetching data or not." into gingerbread
|
| |/
| |
| |
| |
| |
| | |
expires regardless of whether its currently actively fetching data or not.
Change-Id: I7d022ac494e1cecdd7f656806b7ed45979c02840
|
|\ \
| | |
| | |
| | | |
into gingerbread
|
| |/
| |
| |
| | |
Change-Id: I703f1a8b7556543ef71b141dc8e38d8b82d8c6dc
|
|\ \
| |/
|/| |
|
| |
| |
| |
| | |
Change-Id: Iba0b35f57fdeac7ee1da16899406bf4b957a2c8c
|
|\ \
| |/
|/|
| |
| |
| |
| | |
Merge commit 'bd240c2737913d6ed1982788699f93bbc52330c0' into gingerbread
* commit 'bd240c2737913d6ed1982788699f93bbc52330c0':
media: add AudioTrack::getMinFrameCount().
|
| |
| |
| |
| | |
Change-Id: If15162583d1d16d89f59be0793106afe77417f35
|
|\ \
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
waiting for a condition that won\'t occur. We are actually improving the power consumption for streaming applications like Pandora." into froyo
Merge commit '39e876ad743f203fe005333947c61383772b0d14' into gingerbread
* commit '39e876ad743f203fe005333947c61383772b0d14':
When filling the cache, we always time out waiting for a condition that won't occur.
|
| |\ \
| | | |
| | | |
| | | | |
that won't occur. We are actually improving the power consumption for streaming applications like Pandora." into froyo
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
won't occur.
We are actually improving the power consumption for streaming applications like Pandora.
Change-Id: Id32bacbc962e8c69c056599479b308d6a07b7a20
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
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." into fro
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
|
| | |
| | |
| | |
| | |
| | |
| | | |
passing them to video encoder
Change-Id: I69e0e7411806a4ece6c0bf0e02c74eaaf48a17ac
|
|\ \ \
| | | |
| | | |
| | | | |
gingerbread
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I5f362252c25e2251bbfa9818b711ee23b4975248
|
|/ / /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
thus eliminates the sharing of the message dispatches between omx instances.
If the omx audio and video encoders share the same dispatcher, when the audio read
blocks in the AudioSource, the message dispatcher thread gets blocked. As a result,
the message for the omx video encoder can not be dispatched, hence gets blocked too.
If the blocking time is long enough, the video frame rate decreases significantly.
This is the case when we read 2048 bytes by default each time. Reading smaller blocks
of audio data helps mitigate the above-mentioned problem, but it is not an ideal
solution for two reasons: a) it is not efficient, and thus can cause a lot of overhead
passing buffers between the frame work and the omx encoders; b) also, the audio record
thread can overflow as a result, which lead to the loss of recorded audio frames.
This patch affects both authoring engine and the playback engine.
Change-Id: I26dfde7ac46c8752cf1793ce1bfcc7be7724580e
|
| | |
| | |
| | |
| | | |
Change-Id: I498f8242e6ba3e3e8b8c7b714ed49bff51a3010b
|
|\ \ \
| | |/
| |/|
| | |
| | |
| | |
| | |
| | |
| | | |
class and JNI." into kraken
Merge commit '01f7ac64488027492b2909b99d70491e7a391015' into gingerbread
* commit '01f7ac64488027492b2909b99d70491e7a391015':
Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI.
|
| |\ \
| | | |
| | | |
| | | | |
JNI." into kraken
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Added AudioEffect C++ class. AudioEffect is the base class for effect specific implementations,
OpenSL ES effect interfaces and audio effect JNI.
Added the AudioEffect JNI and AudioEffect JAVA class. AudioEffect is the base class
to implement more specific JAVA classes to control audio effects from JAVA applications.
Change-Id: If300a1b708f2e6605891261e67bfb4f8330a4624
|
|\ \ \ \
| |/ / /
| | | |
| | | |
| | | |
| | | |
| | | | |
Merge commit '46b9ac0ae2162309774a7478cd9d4e578747bfc2' into gingerbread
* commit '46b9ac0ae2162309774a7478cd9d4e578747bfc2':
Native input dispatch rewrite work in progress.
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
The old dispatch mechanism has been left in place and continues to
be used by default for now. To enable native input dispatch,
edit the ENABLE_NATIVE_DISPATCH constant in WindowManagerPolicy.
Includes part of the new input event NDK API. Some details TBD.
To wire up input dispatch, as the ViewRoot adds a window to the
window session it receives an InputChannel object as an output
argument. The InputChannel encapsulates the file descriptors for a
shared memory region and two pipe end-points. The ViewRoot then
provides the InputChannel to the InputQueue. Behind the
scenes, InputQueue simply attaches handlers to the native PollLoop object
that underlies the MessageQueue. This way MessageQueue doesn't need
to know anything about input dispatch per-se, it just exposes (in native
code) a PollLoop that other components can use to monitor file descriptor
state changes.
There can be zero or more targets for any given input event. Each
input target is specified by its input channel and some parameters
including flags, an X/Y coordinate offset, and the dispatch timeout.
An input target can request either synchronous dispatch (for foreground apps)
or asynchronous dispatch (fire-and-forget for wallpapers and "outside"
targets). Currently, finding the appropriate input targets for an event
requires a call back into the WindowManagerServer from native code.
In the future this will be refactored to avoid most of these callbacks
except as required to handle pending focus transitions.
End-to-end event dispatch mostly works!
To do: event injection, rate limiting, ANRs, testing, optimization, etc.
Change-Id: I8c36b2b9e0a2d27392040ecda0f51b636456de25
|