1544 Commits

Author SHA1 Message Date
James Dong
8bea1d5585 am 7fb232c4: Merge "Make sure that key frame is generated for timelapse video recording if there are at least two input video frames from camera source." into honeycomb
* commit '7fb232c40cde91d0958be1694db2d97a126b95f9':
  Make sure that key frame is generated for timelapse video recording if there are at least two input video frames from camera source.
2011-01-26 14:45:41 -08:00
James Dong
5f3ab06e90 Make sure that key frame is generated for timelapse video recording if there are at least two input video frames from camera source.
This will fix the stop failure issue where we have to wait n * time_interval before a key frame can be received by the file writer, where
 o n is the actual number of buffers advertised by the video encoder
 o time_interval is the interval settings for timelapse video recording
   specifying the time distance between neighboring input video frames

The fix includes two parts:
o OMXCodec will not submit all n buffers at one time, but instead submit one input
  frame at one time if it become available.

o Timelapse camera source made available the first two input frames and do not skip
  them so that the first compressed output frame data can be received regardless
  the specified time_interval

bug - 3367659

Change-Id: Ia68cc2cb0d71aa7dc54540e9ad82fae911ad530b
2011-01-26 12:11:22 -08:00
Andreas Huber
e328d1c0be am a9f27fa6: Merge "Protect notification callback parameters with a mutex." into honeycomb
* commit 'a9f27fa631ab21d52c75842ccaacc1cbcd75fca0':
  Protect notification callback parameters with a mutex.
2011-01-26 11:44:17 -08:00
Andreas Huber
2ffbb18053 Protect notification callback parameters with a mutex.
This avoids the race condition where notifications are dispatched to a NULL receiver
after notifications have been disabled.

Change-Id: I6d351ffbee97616e2c35559c132a6c5e6a66948a
related-to-bug: 3394139
2011-01-26 11:20:42 -08:00
Jeff Brown
12b2dc9088 am b1e0a870: Merge "Fix crashes caused by some input devices." into honeycomb
* commit 'b1e0a870e4099490127bb917bb4fc7a8f48db893':
  Fix crashes caused by some input devices.
2011-01-25 18:20:35 -08:00
Jeff Brown
b1e0a870e4 Merge "Fix crashes caused by some input devices." into honeycomb 2011-01-25 18:18:05 -08:00
Jeff Brown
58a2da843f Fix crashes caused by some input devices.
The touch screen sometimes reports more than 10 pointers even though that's
all we asked for.  When this happens, we start dropping events with more
than 10 pointers.  This confuses applications and causes them to crash.
Raised the limit to 16 pointers.
Bug: 3331247

The default behavior was to identify all touch devices as touch screens.
External devices that are plugged in are more likely to be touch pads
not attached to a screen.  Changed the default to be a touch pad
and renamed some internal constants to avoid confusion.

A certain mouse happens to also behave like a touch pad.  That caused
problems because we would see multiple concurrent traces of motion events
coming from the same input device so we would batch them up.
Added code to ensure that we don't batch events unless they come from
the same *source* in addition to coming from the same *device*.

Due to batching or misbehaving drivers, it's possible for the set of
pointer ids to be different from what we expect when it comes time to
split motion events across windows.  As a result, we can generate motion
events with 0 pointers.  When we try to deliver those events, we cause
an error in the InputTransport so we tear down the InputChannel and kill
the application.
Added code to check out assumption about pointer ids and drop the
event gracefully instead.

Patched up the tests to take into account the change in default behavior
for identifying touch screens and touch pads.

Change-Id: Ic364bd4cb4cc6335d4a1213a26d6bdadc7e33505
2011-01-25 16:02:22 -08:00
Mike Lockwood
c80daa1b05 am f10d9404: Merge "StagefrightMediaScanner: Close metadata retriever after we are done scanning" into honeycomb
* commit 'f10d940413000732f1cd35bcb113c41019c7e3b7':
  StagefrightMediaScanner: Close metadata retriever after we are done scanning
2011-01-25 15:48:06 -08:00
Mike Lockwood
8151dc3229 StagefrightMediaScanner: Close metadata retriever after we are done scanning
This prevents the mediaserver from leaking a file descriptor after
the media scanner runs

BUG: 3373546

Change-Id: I82a8bae82306de3da56a5c7da5b03ecf106a4efc
Signed-off-by: Mike Lockwood <lockwood@android.com>
2011-01-25 15:20:04 -08:00
Chet Haase
2acb67ec9f am 67005b05: Merge "Use optimized display lists for all hwaccelerated rendering" into honeycomb
* commit '67005b05cc76a38a5b3bf6e83957dd03619e9126':
  Use optimized display lists for all hwaccelerated rendering
2011-01-24 11:15:51 -08:00
Chet Haase
daf98e941e Use optimized display lists for all hwaccelerated rendering
Previously, display lists were used only if hardware acceleration
was enabled for an application (hardwareAccelerated=true) *and* if
setDrawingCacheEnabled(true) was called. This change makes the framework
use display lists for all views in an application if hardware acceleration
is enabled.

In addition, display list renderering has been optimized so that
any view's recreation of its own display list (which is necessary whenever
the visuals of that view change) will not cause any other display list
in its parent hierarchy to change. Instead, when there are any visual
changes in the hierarchy, only those views which need to have new
display list content will recreate their display lists.

This optimization works by caching display list references in each
parent display list (so the container of some child will refer to its
child's display list by a reference to the child's display list). Then when
a view needs to recreate its display list, it will do so inside the same
display list object. This will cause the content to get refreshed, but not
the reference to that content. Then when the view hierarchy is redrawn,
it will automatically pick up the new content from the old reference.

This optimization will not necessarily improve performance when applications
need to update the entire view hierarchy or redraw the entire screen, but it does
show significant improvements when redrawing only a portion of the screen,
especially when the regions that are not refreshed are complex and time-
consuming to redraw.

Change-Id: I68d21cac6a224a05703070ec85253220cb001eb4
2011-01-24 08:43:20 -08:00
Andreas Huber
3564d9eada am 63d64a14: Merge "Properly rotate video that\'s marked as such and decoded to a surface." into honeycomb
* commit '63d64a14790ae21db31b60747864b4a7565b33c3':
  Properly rotate video that's marked as such and decoded to a surface.
2011-01-21 14:44:21 -08:00
Andreas Huber
5e9dc94a3c Properly rotate video that's marked as such and decoded to a surface.
Change-Id: I1e9144db3447e58c99aac3f47702ad471678789c
related-to-bug: 3378148
2011-01-21 14:32:31 -08:00
Andreas Huber
9a62d902ea am 05aa0827: Merge "Some tweaks to HTTP live / nuplayer behaviour" into honeycomb
* commit '05aa082770d812c5921d6b2f9b3559f1fd1536a8':
  Some tweaks to HTTP live / nuplayer behaviour
2011-01-21 13:17:42 -08:00
Andreas Huber
19922adceb Some tweaks to HTTP live / nuplayer behaviour
- play audio-only streams again
- workaround for malformed streams that switch PIDs across bandwidths
- attempt to pick a different bandwidth stream if the previously chosen one appears
  to be malformed/unsupported.

Change-Id: I426d0a40dc725aa242f619d4c9d048b69aca55c9
related-to-bug: 2368598
2011-01-21 10:34:40 -08:00
Mathias Agopian
612d7f3c09 am a423d868: Merge "clean-up unneeded code" into honeycomb
* commit 'a423d868009b9961597365ce7f190aef23f4b1cc':
  clean-up unneeded code
2011-01-20 17:03:46 -08:00
Mathias Agopian
a423d86800 Merge "clean-up unneeded code" into honeycomb 2011-01-20 12:25:26 -08:00
Mathias Agopian
1d4549ab03 clean-up unneeded code
now that we removed the notion of a "inUse" buffer in surfaceflinger
a lot of code can be simplified / removed.

noteworthy, the whole concept of "unlockClient" wrt. "compositionComplete"
is also gone.

Change-Id: I210413d4c8c0998dae05c8620ebfc895d3e6233d
2011-01-20 12:10:11 -08:00
Jeff Brown
5f668c6e6b am 8b9df978: Merge "Fix getSwitchState." into honeycomb
* commit '8b9df97826f94e2e871eff734b174a4752b0d5f9':
  Fix getSwitchState.
2011-01-19 18:55:51 -08:00
Jeff Brown
89de57a8d2 Fix getSwitchState.
InputReader::getSwitchState always returns AKEY_STATE_UNKNOWN
because SwitchInputMapper::getSources() returns 0 which cannot
match any source mask including AINPUT_SOURCE_ANY.  As a result
initial lid switch detection is broken.

This change adds a new source constant AINPUT_SOURCE_SWITCH
that indicates that the source has switches.

Change-Id: I5321ecf0ce84f1c2b4535f6c163d3f4dcf9b7a9b
2011-01-19 18:41:38 -08:00
James Dong
1324e3b1a4 am 4061c9aa: Merge "Fix the presentation video resolution when it is different from the actual image resolution of the video." into honeycomb
* commit '4061c9aa6d77bd7ad3b43d898b3e55fd62f57f18':
  Fix the presentation video resolution when it is different from the actual image resolution of the video.
2011-01-19 10:06:23 -08:00
James Dong
08adfd29ae Fix the presentation video resolution when it is different from the actual image resolution of the video.
bug - 3352413

Change-Id: I8f08f3896e9fb90f09119dccdb88b82af60f79f2
2011-01-19 08:33:07 -08:00
Dharmaray Kundargi
bf6ccb04b9 am 307003a8: Merge "integrate videoeditor preview player." into honeycomb
* commit '307003a844c90458bcfd7398c44bbae734936238':
  integrate videoeditor preview player.
2011-01-17 11:40:16 -08:00
Dharmaray Kundargi
307003a844 Merge "integrate videoeditor preview player." into honeycomb 2011-01-17 10:52:23 -08:00
Jamie Gennis
d97ea28b48 am cf18c478: Merge "Implement SurfaceTexture frame-available callback." into honeycomb
* commit 'cf18c4788af740773c9b2720a1c4ed5f45454b8e':
  Implement SurfaceTexture frame-available callback.
2011-01-16 18:17:34 -08:00
Jamie Gennis
376590d668 Implement SurfaceTexture frame-available callback.
This change implements the onFrameAvailable callback for the
SurfaceTexture java class.  It includes the C++ SurfaceTexture code as
well as the JNI and Java code to enable the callback.

Change-Id: Ifd8b8e7ad46ee70cba6da1c2e96dab8045d1ea30
2011-01-16 17:28:39 -08:00
Dharmaray Kundargi
3b3cddccc1 integrate videoeditor preview player.
Change-Id: I83084f494605c8e6f4d198afa8c36f9e29579667
2011-01-16 16:43:20 -08:00
Mathias Agopian
ceaf8ac31c am a7393dd6: Merge "Fix error reporting in Surface::cancelBuffer()" into honeycomb
* commit 'a7393dd66f0127c8acdd5f8928b0c2d0de602275':
  Fix error reporting in Surface::cancelBuffer()
2011-01-14 19:29:40 -08:00
Mathias Agopian
a7393dd66f Merge "Fix error reporting in Surface::cancelBuffer()" into honeycomb 2011-01-14 19:27:32 -08:00
Mathias Agopian
afc724b907 Fix error reporting in Surface::cancelBuffer()
when we validate the surface there, most errors are in fact allowed
because it is legal to cancel a buffer after a surface has been
destroyed (for instance). in that case make sure to not log
error messages as they are very confusing.

Change-Id: Iecdfbaf6d9ee5da54d56cd7ea7a0d430c30934b0
2011-01-14 11:04:34 -08:00
Jamie Gennis
202b603dc1 am 3defffe0: Merge "Fix remote GraphicBuffer allocation in SurfaceFlinger." into honeycomb
* commit '3defffe06e6989506698ecdce1be3149a33774c1':
  Fix remote GraphicBuffer allocation in SurfaceFlinger.
2011-01-13 13:00:10 -08:00
Jamie Gennis
f7acf162f8 Fix remote GraphicBuffer allocation in SurfaceFlinger.
This change fixes a horrible hack that I did to allow application
processes to create GraphicBuffer objects by making a binder call to
SurfaceFlinger.  This change introduces a new binder interface
specifically for doing this, and does it in such a way that
SurfaceFlinger will maintain a reference to the buffers until the app is
done with them.

Change-Id: Icb240397c6c206d7f69124c1497a829f051cb49b
2011-01-13 12:19:04 -08:00
Jason parks
282e1c4ffa am 21f62b9e: Merge "Add a method enable encryption." into honeycomb
* commit '21f62b9e461416ae61c8471f7199f104f8fe33de':
  Add a method enable encryption.
2011-01-13 07:44:55 -08:00
Jason parks
21f62b9e46 Merge "Add a method enable encryption." into honeycomb 2011-01-13 07:41:53 -08:00
Jamie Gennis
f152f2efa6 am 103198a1: Merge "Implement crop & transform for SurfaceTexture." into honeycomb
* commit '103198a10cc22a49270a787d04b8ab484d2ec235':
  Implement crop & transform for SurfaceTexture.
2011-01-12 15:03:37 -08:00
Jamie Gennis
103198a10c Merge "Implement crop & transform for SurfaceTexture." into honeycomb 2011-01-12 14:57:29 -08:00
James Dong
999fb5a5a9 am 068b41d5: Merge "Publish MediaMetadataRetriever.java as public API" into honeycomb
* commit '068b41d5d41a4a78c96586b85ea89d464d302548':
  Publish MediaMetadataRetriever.java as public API
2011-01-12 14:35:35 -08:00
James Dong
11eab056dd Publish MediaMetadataRetriever.java as public API
o Removed setMode() methods and related mode constants
o Removed some of the unused the metadata keys
o Updated the javadoc

o part of a multi-project change.

bug - 2433195

Change-Id: I5ed167f1fd6a53cb143b7dc385b149431d434438
2011-01-12 14:14:11 -08:00
Jason parks
56aa5321fe Add a method enable encryption.
This is for testing and needs to be cleaned up.

Change-Id: I29958f2a95c7773744e61bbd23a302b752614f87
2011-01-12 16:00:23 -06:00
Jamie Gennis
b598fb9072 Implement crop & transform for SurfaceTexture.
This change adds support for the setCrop and setTransform methods of the
SurfaceTexture C++ class.  The crop and transform for the current
texture will be accessed by applications as a single texture coordinate
transform matrix.

Change-Id: I6482bf96f680e5c175364e848936db3908d6c8f8
2011-01-12 11:28:38 -08:00
Gloria Wang
3b7983cfea am 9e0bb6d5: am 0544d059: Merge "DRM Framework bug fixes."
* commit '9e0bb6d5eef5dfe2da60c50f3aaa39512307d11d':
  DRM Framework bug fixes.
2011-01-11 14:55:56 -08:00
Jamie Gennis
fbab3b67af Merge "Fix a bug in SurfaceTexture::setBufferCount." into honeycomb 2011-01-10 12:30:33 -08:00
Andreas Huber
748ba9a951 Merge "NuPlayer now properly sends MEDIA_SET_VIDEOSIZE notifications." into honeycomb 2011-01-10 11:26:38 -08:00
Andreas Huber
7caa130a98 NuPlayer now properly sends MEDIA_SET_VIDEOSIZE notifications.
Change-Id: I99b4223ad6ecfd8839a3c0e737fef3165565d76d
related-to-bug: 3336496
2011-01-10 10:38:31 -08:00
James Dong
681e89c082 Avoid deadlock in OMX::freeNode by making sure OMXCodecObserver does not hold the last reference of OMXCodec object
bug - 3336424

Change-Id: I4c79b66a900c527e3ae6a833f76d5da1b75c5a89
2011-01-10 08:57:50 -08:00
Jamie Gennis
d369dc4250 Fix a bug in SurfaceTexture::setBufferCount.
We need to reset mCurrentTexture and mLastQueued in setBufferCount
because it frees all of the buffers associated with the buffer slots.

Change-Id: Ie2f834ec1c07ce7a4ab9b2b5fc5fe8c294010c60
2011-01-09 16:40:06 -08:00
Gloria Wang
9e0bb6d5ee am 0544d059: Merge "DRM Framework bug fixes."
* commit '0544d05990c0f43a143e98e71f7fc60277872806':
  DRM Framework bug fixes.
2011-01-07 15:34:08 -08:00
Marco Nelissen
ee35aff744 Add support for the "compilation" tag in mp3, mp4 and ogg, and also add
support for two common ways of specifying album artist in ogg files.
b/3311831

(cherry-picked from GB because of weird automerger failure)

Change-Id: Ibf12a3d6bc8bbc2ac5ea815de6b33414b8f53f0f
2011-01-07 12:42:07 -08:00
Gloria Wang
0544d05990 Merge "DRM Framework bug fixes." 2011-01-07 11:10:49 -08:00
Marco Nelissen
d1da80a4b3 am ba77a3f9: Add support for the "compilation" tag in mp3, mp4 and ogg, and also add support for two common ways of specifying album artist in ogg files. b/3311831
* commit 'ba77a3f9cb1d68b2ed4813aaae856444578e3a75':
  Add support for the "compilation" tag in mp3, mp4 and ogg, and also add support for two common ways of specifying album artist in ogg files. b/3311831
2011-01-06 20:29:11 -08:00