863 Commits

Author SHA1 Message Date
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
Andreas Huber
c81d2c12de Merge "Initial check-in of new caching/prefetching data source implementation." into kraken 2010-06-10 15:15:29 -07:00
Andreas Huber
a9aaf8ffce am c90e35c1: am 8d300280: Merge "Support "pausing" of MediaSources with the effect that they no longer pull on their upstream source until a subsequent read-with-seek." into kraken 2010-06-10 12:43:53 -07:00
Andreas Huber
1f24b30fe4 Support "pausing" of MediaSources with the effect that they no longer pull on their upstream source until a subsequent read-with-seek.
Change-Id: Ie4153a10ab36c1135f5fcfb572958129d886bcc3
2010-06-10 11:24:49 -07:00
Andreas Huber
b206319122 Initial check-in of new caching/prefetching data source implementation.
Change-Id: I97a6e3f03c69c9b1219f1f06bd109c0102f2c504
2010-06-10 11:23:56 -07:00
Mathias Agopian
70eeab7412 am 34e5d967: am 55f8209d: Merge "allow re-targetting of surfaces" into kraken 2010-06-08 20:18:05 -07:00
Mathias Agopian
5e14010b1f allow re-targetting of surfaces
Surfaces can now be parcelized and sent to remote
processes. When a surface crosses a process
boundary, it looses its connection with the
current process and gets attached to the new one.

Change-Id: I39c7b055bcd3ea1162ef2718d3d4b866bf7c81c0
2010-06-08 20:10:02 -07:00
James Dong
30bb8f89ad am d49c9818: am c44c4742: Merge "Remove some hard-coded encoding parameters" into kraken 2010-06-08 13:17:07 -07:00
James Dong
1244eab2ce Remove some hard-coded encoding parameters
Change-Id: I7a8ccd5d57891a6a585c8da2ee53acb094955913
2010-06-08 12:30:58 -07:00
James Dong
7cbc12b9ce am 15c0c098: am dae9fd31: Initial check-in for collecting stats from authoring engine at runtime 2010-06-08 12:00:30 -07:00
James Dong
dae9fd3190 Initial check-in for collecting stats from authoring engine at runtime
Change-Id: I93a9d8bd260efc5e7fc135b726e3f1307c6df794
2010-06-08 11:54:21 -07:00
James Dong
cda2af1080 am ef2ad683: am 31b19758: Merge "Second part of speeding up video recording frame rate" into kraken 2010-06-08 10:17:29 -07:00
James Dong
4f501f0f2b Second part of speeding up video recording frame rate
1. Avoid copying the input recording frames to the encoder via OMX interface
   for TI video encoder
   This is a missing change for part one which help reduces the CPU load.

2. Release output buffers as early as possible. This is a little bit helpful, but not critical.

TODO:
We should save the underlying pointers allocated by the OMX component before we replace them
and restore them before we call OMX_FreeBuffer()!

Change-Id: Ib3a88978f4c3b1153808872eaa7ac4c265a811ff
2010-06-08 10:01:47 -07:00
Andreas Huber
2ccb2eba46 am f7d1c542: am a557b24a: Initial checkin of mpeg2 transport stream parser for stagefright. 2010-06-07 13:21:56 -07:00
Andreas Huber
a557b24ac4 Initial checkin of mpeg2 transport stream parser for stagefright.
Change-Id: I328ce77404daf7127933b48c9d58ed504fb8fc6f
2010-06-07 13:05:37 -07:00
Andreas Huber
1e1df1c8a9 am cd4961d9: am 455d4100: Merge "Initial checkin of "foundation" library for future stagefright development." into kraken 2010-06-07 12:54:21 -07:00
Andreas Huber
455d41002e Merge "Initial checkin of "foundation" library for future stagefright development." into kraken 2010-06-07 12:50:05 -07:00
James Dong
b4912f9b2d am f520c763: am 7a68d368: Merge "Remove hard-coded pixel format for recording frames in CameraSource. Retrieve the pixel format from Camera HAL at runtime." into kraken 2010-06-07 10:22:38 -07:00
Andreas Huber
7d2f703649 Initial checkin of "foundation" library for future stagefright development.
Change-Id: I11714dcaa647d0437a13e4c5b953b35e712da8f3
2010-06-07 10:22:07 -07:00
James Dong
7a68d3686a Merge "Remove hard-coded pixel format for recording frames in CameraSource. Retrieve the pixel format from Camera HAL at runtime." into kraken 2010-06-07 10:19:58 -07:00
Mathias Agopian
58006194f8 am f5f7d389: am fae5cb2b: optimize Surface.readFromParcel() 2010-06-04 19:17:16 -07:00
Mathias Agopian
5f98310f9a am fd89b1c8: am 7623da43: split surface management from surface\'s buffers management 2010-06-04 19:17:12 -07:00
Mathias Agopian
fae5cb2b35 optimize Surface.readFromParcel()
this is called for each relayout() and used to create a full Surface (cpp)
which in turn did some heavy work (including an IPC with surfaceflinger),
most of the time to destroy it immediatelly when the returned surface
(the one in the parcel) was the same.

we now more intelligentely read from the parcel and construct the new
object only if needed.

Change-Id: Idfd40d9ac96ffc6d4ae5fd99bcc0773e131e2267
2010-06-04 18:57:41 -07:00
Mathias Agopian
7623da435e split surface management from surface's buffers management
Change-Id: If3c5655d1231f8f0c49ba68f972b1b20c93b3f87
2010-06-04 18:57:41 -07:00
Wu-cheng Li
baff93de27 am ab5e67c6: am cefb01ab: Merge "Add KEY_SUPPORTED_METERING_MODES and fix some typos." into kraken 2010-06-04 03:41:44 -07:00
Wu-cheng Li
cefb01abbf Merge "Add KEY_SUPPORTED_METERING_MODES and fix some typos." into kraken 2010-06-04 03:38:25 -07:00
Wu-cheng Li
8aba232dbc Add KEY_SUPPORTED_METERING_MODES and fix some typos.
bug:2737111
Change-Id: I108ae7057786921bf99385ad66dbc1f02d6a1448
2010-06-04 17:18:17 +08:00
Eric Laurent
4b18200b9c am 030a1553: am 2ea200c5: Merge "Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack modifications." into kraken 2010-06-04 00:18:07 -07:00
Eric Laurent
2ea200c5a7 Merge "Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack modifications." into kraken 2010-06-04 00:14:46 -07:00
Wu-cheng Li
3c358eb7bd am 2f98f99c: am 5f5df382: Merge "Add camera metering mode API." into kraken 2010-06-03 22:35:40 -07:00
James Dong
c2f328d0d2 Remove hard-coded pixel format for recording frames in CameraSource.
Retrieve the pixel format from Camera HAL at runtime.

Change-Id: I63f820f54c59c2019dfd195320b9928da3362536
2010-06-03 11:51:39 -07:00
Eric Laurent
65b65459e6 Issue 2667801: [Audio Effect Framework] AudioFlinger, AudioMixer AudioTrack modifications.
First drop of audio framework modifications for audio effects support.

- AudioTrack/AudioRecord:
Added support for auxiliary effects in AudioTrack
Added support for audio sessions
Fixed left right channel inversion in setVolume()

- IAudioFlinger:
Added interface methods for effect enumeraiton and instantiation
Added support for audio sessions.

- IAudioTrack:
Added method to attach auxiliary effect.

- AudioFlinger
Created new classes to control effect engines in effect library and manage effect connections to tracks or
output mix:
  EffectModule: wrapper object controlling the effect engine implementation in the effect library. There
	is one EffectModule per instance of an effect in a given audio session
  EffectChain: group of effects associated to one audio session. There is one EffectChain per audio session.
	EffectChain for session 0 is for output mix effects, other chains are attached to audio tracks
	with same session ID. Each chain contains a variable number of EffectModules
  EffectHandle: implements the IEffect interface. There is one EffectHandle object for each application
	controlling (or using) an effect module. THe EffectModule maintians a list of EffectHandles.

Added support for effect modules and effect chains creation in PlaybackThread.
modified mixer thread loop to allow track volume control by effect modules and call effect processing.

-AudioMixer
Each track now specifies its output buffer used by mixer for accumulation
Modified mixer process functions to process tracks by groups of tracks with same buffer
Modified track process functions to support accumulation to auxiliary channel

Change-Id: I26d5f7c9e070a89bdd383e1a659f8b7ca150379c
2010-06-03 03:21:53 -07:00
Wu-cheng Li
f7f6333831 Add camera metering mode API.
bug:2737111
Change-Id: Ie986fee56ebeaaed2d2efb757701dfe3ffdec8d8
2010-06-03 16:34:18 +08:00
Vasu Nori
8b0dd7da36 add API to Cursor to get column value type
Change-Id: I3ef1bcdb2eb1c45f68e829ccb6e3ecde28076591
2010-06-02 17:40:41 -07:00
Mathias Agopian
bd69e1b851 am 5220af87: am 770492cb: more clean-up in preparation of bigger changes 2010-06-01 16:08:48 -07:00
Mathias Agopian
6c2faea435 am 4f0a9114: am cdfd5fe2: Fix a typo in Singleton<> 2010-06-01 16:08:16 -07:00
Mathias Agopian
770492cb2b more clean-up in preparation of bigger changes
the most important change here is the renaming of
ISurfaceFlingerClient to ISurfaceComposerClient

Change-Id: I94e18b0417f50e06f21377446639c61f65f959b3
2010-05-28 17:19:16 -07:00
Mathias Agopian
cdfd5fe2c8 Fix a typo in Singleton<>
it could cause the sLock field to be emitted several times
in different compilation unit. it also prevented to
have 2 Singleton<> in the same file.
2010-05-28 15:13:30 -07:00
James Dong
5f95da7a17 am 46e70361: am 46441198: Merge "Avoid copying for input recording frames in CameraSource" into kraken 2010-05-28 11:05:59 -07:00
James Dong
464411983a Merge "Avoid copying for input recording frames in CameraSource" into kraken 2010-05-28 10:53:09 -07:00
James Dong
dfb1dd6a8c Avoid copying for input recording frames in CameraSource
This is the part one.

- Let CameraSource be a MediaBufferObserver. It releases the recording frame when the ref count of a MediaBuffer containing
  the recording frame drops to 0.

  This reduces the CPU load from 90+% down to 50-60%.

Part two is related to the avoidance of copying the input video frames to the video encoder.
However, we are not able to use OMX_UseBuffer directly. Still work on the second part.

Change-Id: I906f1d054ae8bdcf82e1617f1fc120152f2eb2eb
2010-05-28 10:44:20 -07:00
Mike Lockwood
8eb25c28c0 Merge "Move CursorWindow class from core/jni to libbinder" 2010-05-28 10:24:29 -07:00
Mike Lockwood
2807df89af Move CursorWindow class from core/jni to libbinder
To allow use of the native CursorWindow class outside of the core framework jni

Change-Id: I72e8dcb91a2c691130c33cdfd9a25d343da1c592
Signed-off-by: Mike Lockwood <lockwood@android.com>
2010-05-28 10:08:21 -04:00
Wu-cheng Li
198975bb01 Merge "Add video frame parameter." into kraken 2010-05-28 04:34:13 -07:00
Wu-cheng Li
d2c2929c94 Add video frame parameter.
The image format of preview frames and video frames may be different.
We need another parameter for video frame format.

bug:2720893
Change-Id: I966a31b0ce8cab25cdde65db65a18c8cbe9c7bd6
2010-05-28 17:32:41 +08:00
Mathias Agopian
c7b388c2b3 more clean-up of Surfaceflinger's client management
SurfaceComposerClient now only exist on the WindowManager side,
the client side uses the new SurfaceClient class, which only
exposes what a client needs.

also instead of keeping mappings from IBinder to SurfaceComposerClients
we have a SurfaceClient per Surface (referring to the same IBinder), this
is made possible by the fact that SurfaceClient is very light.

Change-Id: I6a1f7015424f07871632a25ed6a502c55abfcfa6
2010-05-27 19:55:43 -07:00