858 Commits

Author SHA1 Message Date
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
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
Mathias Agopian
51a6aef53c Fix a bug in sp<> and wp<> which could cause memory corruptions
when assigning a smart pointer to another one, we need to make
sure to read all the data we need from the right-hand-side
reference (the assignee) before we decRef the assigned.

This bug would cause linked-list of smart-pointers to fail
miserably.

Change-Id: Ibb554c15fddf909f7737c632b7c80322e80ea93f
2010-06-24 21:49:02 -07:00
Andreas Huber
15149f2ef8 am 0d964c94: am a2549bb6: Merge "Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright." into gingerbread
Merge commit '0d964c94459e25b9b2221a7c7c789b29f77f15dd'

* commit '0d964c94459e25b9b2221a7c7c789b29f77f15dd':
  Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright.
2010-06-24 09:08:21 -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
Andreas Huber
8d65dd2653 Remove most stagefright property overrides, remove VorbisPlayer and VorbisMetadataRetriever as this functionality is now provided by stagefright.
Change-Id: Ieafe75a4550c273ad59b4518d7cd4c0fce0f7cce
related-to-bug: 2370115
2010-06-23 16:40:57 -07:00
James Dong
7d77a0ac89 am 90ade3f2: am 9afc1b3e: Merge "Fixed some meta data issues in the recorded mp4 file" into gingerbread
Merge commit '90ade3f25d16afe8fd64ec1fcc5fede466256719'

* commit '90ade3f25d16afe8fd64ec1fcc5fede466256719':
  Fixed some meta data issues in the recorded mp4 file
2010-06-23 15:18:45 -07:00
James Dong
39a0b21c65 Fixed some meta data issues in the recorded mp4 file
- 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
2010-06-23 14:09:18 -07:00
Eric Laurent
c6a2cb0b5a am 845f5414: am 2c2ce8e5: Merge "Added support for audio sessions in MediaPlayer and AudioTrack." into gingerbread
Merge commit '845f541454d1fa9f328c0b0bf79acf2fba363177'

* commit '845f541454d1fa9f328c0b0bf79acf2fba363177':
  Added support for audio sessions in MediaPlayer and AudioTrack.
2010-06-23 12:41:23 -07:00
Chia-chi Yeh
c19d494d48 am da9269af: am 3238302b: Merge "media: add AudioRecord::getMinFrameCount()." into gingerbread
Merge commit 'da9269af5e94e25c142c519429aa77eb40f68e58'

* commit 'da9269af5e94e25c142c519429aa77eb40f68e58':
  media: add AudioRecord::getMinFrameCount().
2010-06-23 12:40:34 -07:00
James Dong
84d000e3c4 am 9666d3c0: am 750600a1: Merge "Single track optimization" into gingerbread
Merge commit '9666d3c0e7fc8ca98b4f5744d8427d008a79e698'

* commit '9666d3c0e7fc8ca98b4f5744d8427d008a79e698':
  Single track optimization
2010-06-23 10:32:53 -07:00
Dianne Hackborn
320742b15a am e3e2883f: am e24a60aa: Merge "First stab at attaching native event dispatching." into gingerbread
Merge commit 'e3e2883f2232007174ead562610eb01201890d9b'

* commit 'e3e2883f2232007174ead562610eb01201890d9b':
  First stab at attaching native event dispatching.
2010-06-23 10:32:25 -07:00
James Dong
fc667dabcf am 06967683: am e5671bfe: Merge "Audio/video sync during recording (second part)" into gingerbread
Merge commit '0696768374567afa4fe58c2ef0af948b72e83e5d'

* commit '0696768374567afa4fe58c2ef0af948b72e83e5d':
  Audio/video sync during recording (second part)
2010-06-23 10:31:36 -07:00
Mike Lockwood
b09448e0a8 am dae19d7c: am aaf39f84: Merge "GPS: remove GpsEventThread from GpsLocationProvider" into gingerbread
Merge commit 'dae19d7c00455e500cc9731071557ea91f162a7d'

* commit 'dae19d7c00455e500cc9731071557ea91f162a7d':
  GPS: remove GpsEventThread from GpsLocationProvider
2010-06-23 10:31:00 -07:00
Brad Fitzpatrick
fc94e89a7f am efcf68aa: am ef8f96a7: Merge "Start of work on passing around StrictMode policy over Binder calls." into gingerbread
Merge commit 'efcf68aa1fd7fcfd52cf3d2837ed8db8e797194b'

* commit 'efcf68aa1fd7fcfd52cf3d2837ed8db8e797194b':
  Start of work on passing around StrictMode policy over Binder calls.
2010-06-23 10:18:18 -07:00
Jeff Brown
e981c883d5 am b1efc3f6: am 7fbdc84e: More native input event dispatching.
Merge commit 'b1efc3f68277a8c38c21e2d2e8ce05287118ecfe'

* commit 'b1efc3f68277a8c38c21e2d2e8ce05287118ecfe':
  More native input event dispatching.
2010-06-23 10:17:22 -07:00
Eric Laurent
2c2ce8e53f Merge "Added support for audio sessions in MediaPlayer and AudioTrack." into gingerbread 2010-06-22 18:29:57 -07:00
Chia-chi Yeh
3238302b18 Merge "media: add AudioRecord::getMinFrameCount()." into gingerbread 2010-06-22 17:20:44 -07:00
Eric Laurent
619346f902 Added support for audio sessions in MediaPlayer and AudioTrack.
Audio sessions are used to associate audio effects to particular instances (or groups) of MediaPlayers or AudioTracks.

Change-Id: Ib94eec43241cfcb416590f435ddce7ab39a07640
2010-06-22 17:14:04 -07:00
Chia-chi Yeh
97d61f7518 media: add AudioRecord::getMinFrameCount().
Change-Id: I952071ab10aa49aa96b727d157b68470d69fff3d
2010-06-23 08:01:04 +08:00
James Dong
750600a187 Merge "Single track optimization" into gingerbread 2010-06-22 14:28:15 -07:00
James Dong
b54a917842 Single track optimization
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
2010-06-22 11:27:37 -07:00
Dianne Hackborn
a95e4cb62f First stab at attaching native event dispatching.
Provides the basic infrastructure for a
NativeActivity's native code to get an object representing
its event stream that can be used to read input events.

Still work to do, probably some API changes, and reasonable
default key handling (so that for example back will still
work).

Change-Id: I6db891bc35dc9683181d7708eaed552b955a077e
2010-06-22 11:21:50 -07:00
James Dong
e5671bfe51 Merge "Audio/video sync during recording (second part)" into gingerbread 2010-06-22 10:05:02 -07:00
Mike Lockwood
f602d362ba GPS: remove GpsEventThread from GpsLocationProvider
Rather than polling for events from the native code in an event thread,
we now require the GPS HAL libraries to call our callbacks from a thread
that is registered with the JVM to call directly into Java.
This eliminates a thread from our code and removes one step in the chain
of message passing from the GPS to the Location Manager client.

Change-Id: I2745a157690310ba9a699a8369f54a7366c6b1ba
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-06-22 09:26:41 -04:00
James Dong
36e573bf7d Audio/video sync during recording (second part)
Change-Id: Iba0b35f57fdeac7ee1da16899406bf4b957a2c8c
2010-06-21 17:34:01 -07:00
Brad Fitzpatrick
ef8f96a717 Merge "Start of work on passing around StrictMode policy over Binder calls." into gingerbread 2010-06-21 15:31:01 -07:00
Jeff Brown
7fbdc84e87 More native input event dispatching.
Added ANRs handling.
Added event injection.
Fixed a NPE ActivityManagerServer writing ANRs to the drop box.
Fixed HOME key interception.
Fixed trackball reporting.
Fixed pointer rotation in landscape mode.

Change-Id: I50340f559f22899ab924e220a78119ffc79469b7
2010-06-21 13:59:34 -07:00
Brad Fitzpatrick
27b3a7a759 Start of work on passing around StrictMode policy over Binder calls.
This is (intendend to be) a no-op change.

At this stage, Binder RPCs just have an additional uint32 passed around
in the header, right before the interface name.  But nothing is actually
done with them yet.  That value should right now always be 0.

This now boots and seems to work.

Change-Id: I135b7c84f07575e6b9717fef2424d301a450df7b
2010-06-21 12:56:35 -07:00
Chia-chi Yeh
f23729a0e3 am d9e9132e: am 2ce999fc: am bd240c27: media: add AudioTrack::getMinFrameCount().
Merge commit 'd9e9132eeb2c02feb812f21a5cecb844b5b39d9d'

* commit 'd9e9132eeb2c02feb812f21a5cecb844b5b39d9d':
  media: add AudioTrack::getMinFrameCount().
2010-06-21 10:16:45 -07:00
Chia-chi Yeh
2ce999fce7 am bd240c27: media: add AudioTrack::getMinFrameCount().
Merge commit 'bd240c2737913d6ed1982788699f93bbc52330c0' into gingerbread

* commit 'bd240c2737913d6ed1982788699f93bbc52330c0':
  media: add AudioTrack::getMinFrameCount().
2010-06-21 08:54:19 -07:00
Chia-chi Yeh
bd240c2737 media: add AudioTrack::getMinFrameCount().
Change-Id: If15162583d1d16d89f59be0793106afe77417f35
2010-06-21 09:51:18 +08:00
Jeff Brown
4e74ae3d5b am 42bb545a: am 5c225b16: Even more native input dispatch work in progress.
Merge commit '42bb545a54d89f0ddbb230d7a01ea4210c0f6c00'

* commit '42bb545a54d89f0ddbb230d7a01ea4210c0f6c00':
  Even more native input dispatch work in progress.
2010-06-17 13:32:45 -07:00
Jeff Brown
5c225b1680 Even more native input dispatch work in progress.
Added more tests.
Fixed a regression in Vector.
Fixed bugs in pointer tracking.
Fixed a starvation issue in PollLoop when setting or removing callbacks.
Fixed a couple of policy nits.

Modified the internal representation of MotionEvent to be more
efficient and more consistent.

Added code to skip/cancel virtual key processing when there are multiple
pointers down.  This helps to better disambiguate virtual key presses
from stray touches (such as cheek presses).

Change-Id: I2a7d2cce0195afb9125b23378baa94fd2fc6671c
2010-06-17 13:27:16 -07:00
Jeff Brown
8959f1c71b am 2dfd2aa4: am 92266a78: Merge "More work in progress on native events." into gingerbread
Merge commit '2dfd2aa413a91965c1a247980598c795db9b4c38'

* commit '2dfd2aa413a91965c1a247980598c795db9b4c38':
  More work in progress on native events.
2010-06-15 16:50:12 -07:00
Jeff Brown
9c3cda04d9 More work in progress on native events.
Refactored the code to eliminate potential deadlocks due to re-entrant
calls from the policy into the dispatcher.  Also added some plumbing
that will be used to notify the framework about ANRs.

Change-Id: Iba7a10de0cb3c56cd7520d6ce716db52fdcc94ff
2010-06-15 16:43:18 -07:00
Eric Laurent
7f5ee3b58d am 184a3ff6: am e0219539: am 01f7ac64: Merge "Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI." into kraken
Merge commit '184a3ff64ba71e7e860b70b9a836c0132b447138'

* commit '184a3ff64ba71e7e860b70b9a836c0132b447138':
  Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI.
2010-06-14 09:10:32 -07:00
Eric Laurent
01f7ac6448 Merge "Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI." into kraken 2010-06-14 09:02:13 -07:00
Jeff Brown
0d6be5800a am 34b418cd: am 5e95930b: am 43a9527c: Fix include paths.
Merge commit '34b418cddbd2f05d5c0a98c550c65e457015134e'

* commit '34b418cddbd2f05d5c0a98c550c65e457015134e':
  Fix include paths.
2010-06-13 20:03:20 -07:00
Jeff Brown
43a9527c54 Fix include paths.
Change-Id: Ifda45688f9f02710a74d5d7a7d902bacf1441e2e
2010-06-13 19:35:19 -07:00
Jeff Brown
8e03b7566c resolved conflicts for merge of 9e660c82 to master
Change-Id: Ic4bd85cbaa5b9a10dcb474a0dad46490bf967e43
2010-06-13 19:16:55 -07:00
Jeff Brown
46b9ac0ae2 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
2010-06-13 17:42:16 -07:00
James Dong
188c432c70 am ae2c4774: am f62c57d6: Merge "Initial checkin for pause and resume control" into kraken
Merge commit 'ae2c47746b5fda636a157c4fdb0365a67d4604c3'

* commit 'ae2c47746b5fda636a157c4fdb0365a67d4604c3':
  Initial checkin for pause and resume control
2010-06-11 14:34:09 -07:00
James Dong
08c7473ce9 Initial checkin for pause and resume control
Change-Id: Ibdcf7bea5fb66baa81878704ba4091dfcfe382ee
2010-06-11 13:48:48 -07:00
Eric Laurent
948235c06e Issue 2667802: [Audio Effect Framework] AudioEffect base class and JNI.
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
2010-06-11 06:26:31 -07:00
Chih-Chung Chang
4b983d9f30 am dac5e001: am b8bb78f5: Change camera interface to support multiple cameras.
Merge commit 'dac5e0013d1ea396f0b3a3f07654f2ecbfb79ac9'

* commit 'dac5e0013d1ea396f0b3a3f07654f2ecbfb79ac9':
  Change camera interface to support multiple cameras.
2010-06-11 03:39:17 -07:00
Chih-Chung Chang
b8bb78f54b Change camera interface to support multiple cameras.
Change-Id: Ie88fe706d2278acf762eca87780de349434778a4
2010-06-11 16:47:33 +08:00
Andreas Huber
2dabef2f4e am 627a0019: am 4d61f602: Switch stagefright\'s approach to prefetching to the new model. The java MediaPlayer is now notified about rebuffering start/end via info messages. 2010-06-10 16:13:37 -07:00
Andreas Huber
6ee780de7f am 960a0ff1: am c81d2c12: Merge "Initial check-in of new caching/prefetching data source implementation." into kraken 2010-06-10 16:13:11 -07:00
Andreas Huber
4d61f602bf Switch stagefright's approach to prefetching to the new model. The java MediaPlayer is now notified about rebuffering start/end via info messages.
Change-Id: If8185ba329ce8b6663b1ad39a4efb0ad3be81df2
2010-06-10 15:16:57 -07:00