Commit Graph

20 Commits

Author SHA1 Message Date
Glenn Kasten
03f9435273 Merge "Bug 4571308 Provide correct video frame timestamps" 2011-07-01 15:02:33 -07:00
Jamie Gennis
bd5404d031 SurfaceTexture: change onFrameAvailable behavior
This change alters the conditions under which the onFrameAvailable
callback gets called by the C++ SurfaceTexture class.  The new behavior
is to call the callback whenever a frame gets queued that will be
visible to the buffer consumer.  This means that buffers queued in
synchronous mode always trigger the callback, as those buffers will
remain pending until they are consumed.  Buffers queued in asynchronous
mode will only trigger the callback if there was not previously an
unconsumed buffer pending.

The new behavior means that a consumer should perform a draw operation
exactly once for every onFrameAvailable call that it recieves.  This
change also modifies SurfaceFlinger and the SurfaceTexture JNI to
support of the new behavior.

Change-Id: I8b2c6e00961d3d58b11c6af50b555b6e4c5f5b40
2011-06-27 15:45:39 -07:00
Glenn Kasten
5c2faf3dc3 Bug 4571308 Provide correct video frame timestamps
Change-Id: I0f726817fc02d3e2a4cf82ed801ef977994e6bcc
2011-06-27 11:09:33 -07:00
Grace Kloba
0904d0af81 Add allowSynchronousMode to SurfaceTexture constructor.
Change-Id: I54f30a3c16bbe6b813f3bcd1d389da5627531304
2011-06-23 21:21:47 -07:00
Grace Kloba
925bcaabde Fix the issue where onFrameAvailable is not triggered if SurfaceTexture is in sync mode.
If there is more frame after updateTexImage, trigger the listener again.

Change-Id: I1415ae9a914cc8bb139cb369464b1f6a2aa24058
2011-06-22 00:56:54 -07:00
Romain Guy
e5e0c50f7d Properly refcount SurfaceTexture in the JNI layer.
Change-Id: I4b4c8020c13b8d6ce0d302fe42410033bf5785a6
2011-06-15 16:14:26 -07:00
tedbo
050316184b Add ParcelSurfaceTexture Java class to enable ISurfaceTexture sharing via Binder.
This adds a new ParcelSurfaceTexture.java class that can be instantiated with
a SurfaceTexture and used to send the corresponding ISurfaceTexture interface
to another process via Binder. The ParcelSurfaceTexture java object can then
be used to create an ANativeWindow based on the SurfaceTextureClient interface.

Change-Id: Ie38ea948b866e52f36a6d0f6cde19b54a8546817
2011-06-09 11:59:23 -07:00
Romain Guy
8f0095cd33 Allows to render with an OpenGL context inside a TextureView.
Change-Id: I59453f7fc3997f0502a1c5d325d37fed376fabc7
2011-05-02 18:32:29 -07:00
Eino-Ville Talvala
e309a0fd2e NEW_API: Add getTimestamp() to SurfaceTexture.
Like getTransformMatrix, getTimestamp provides a timestamp for the
OpenGL texture produced by the latest call to updateTexImage().

Timestamps are measured in nanoseconds, and are monotonically
increasing.  Other properties of the timestamps (zero point,
comparability) depend on the source providing frames to the
SurfaceTexture, and need to be documented by the source.

bug:3300707

Change-Id: I380d94926d0e9f1c77bb5c1576b72d5ef4e2eba1
2011-03-21 15:38:36 -07:00
Eino-Ville Talvala
c5f94d8a47 Add support for timestamps into SurfaceTexture.
API addition: The timestamps are represented as nanoseconds from some
arbitrary time point. Like the SurfaceTexture transform matrix, the
timestamp retrieved by getTimestamp is for the last frame sent to the
GL texture using updateTexImage().

Camera HAL change: Expect vendors to set these timestamps using
native_window_set_buffers_timestamp().  For now, they are
autogenerated by SurfaceTextureClient if set_buffers_timestamp() is
never called, but such timing is likely not accurate enough to pass a
CTS test.

bug:3300707

Change-Id: Ife131a0c2a826ac27342e11b8a6c42ff49e1bea7
2011-03-17 13:10:03 -07:00
Jamie Gennis
8588732712 Expand on the SurfaceTexture API docs.
This change adds additional documentation explaining how a
SurfaceTexture should be used in OpenGL ES.  It describes some of the
limitations of using the GL_TEXTURE_EXTERNAL_OES texture target.

Change-Id: I7424c1b422e4f402e87372e8b361391fbec82c5c
2011-02-25 13:34:06 -08:00
Jamie Gennis
dc02e18d15 Revert "Merge "Expand on the SurfaceTexture API docs.""
This reverts commit 069d748da8, reversing
changes made to b607b884bd.
2011-02-24 16:45:21 -08:00
Jamie Gennis
069d748da8 Merge "Expand on the SurfaceTexture API docs." 2011-02-24 14:24:04 -08:00
Glenn Kasten
cc562a3576 Bug 3438258 Add SurfaceTexture as MediaPlayer sink
This change enables the use of a SurfaceTexture in place of a Surface
as the video sink for an android.media.MediaPlayer. The new API
MediaPlayer.setTexture is currently hidden.

This includes:
 - New Java and C++ interfaces
 - C++ plumbing and implementation (JNI, Binder)
 - Stagefright AwesomePlayer and NuPlayer use ANativeWindow
   (either Surface or SurfaceTextureClient)

Change-Id: I2b568bee143d9eaf3dfc6cc4533c1bebbd5afc51
2011-02-23 15:02:56 -08:00
Jamie Gennis
acf33974b3 Expand on the SurfaceTexture API docs.
This change adds additional documentation explaining how a
SurfaceTexture should be used in OpenGL ES.  It describes some of the
limitations of using the GL_TEXTURE_EXTERNAL_OES texture target.

Change-Id: I9d3446a012376166b6c598b827a0aa0e9585d00f
2011-02-23 13:58:44 -08:00
Jamie Gennis
5f8b6653e0 Add SurfaceTexture docs for getTransformMatrix.
Change-Id: Ib08d00525c7932b23ba5066c07c7470f813b74f8
2011-01-31 12:31:53 -08:00
Jamie Gennis
37cec0fc50 Add docs about threading to SurfaceTexture.
This is a docs-only change.

Bug: 3362397
Change-Id: I5fad19a8ae112af73b1e235cf3d54bd2179d165a
2011-01-27 17:57:13 -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
Jamie Gennis
b0ba48c95e Add getTransformMatrix to the SurfaceTexture API.
Change-Id: Icd11ed4982220be9d08b00498aef02531610ce1f
2011-01-12 11:28:38 -08:00
Jamie Gennis
6714efc5e0 Add the SurfaceTexture java class.
This class exposes to Java the application-side interface to the
SurfaceTexture C++ class.

Change-Id: I0dba42aad90257c7adbde6fa362658c0717b70d0
2011-01-06 16:05:14 -08:00