Commit Graph

49 Commits

Author SHA1 Message Date
Mathew Inwood
0d649f291a Add @UnsupportedAppUsage annotations
For packages:
  android.graphics
  android.graphics.drawable
  android.graphics.drawable.shapes
  android.graphics.fonts
  android.graphics.pdf

This is an automatically generated CL. See go/UnsupportedAppUsage
for more details.

Exempted-From-Owner-Approval: Mechanical changes to the codebase
which have been approved by Android API council and announced on
android-eng@

Bug: 110868826
Test: m
Change-Id: I7fc1162d2c63df8751a4660607e8ce72070efed8
2018-07-31 14:29:22 +01:00
Jesse Hall
63d2a0e000 Docs: add more detail to SurfaceTexture#getTimestamp
Copies language from <android/surface_texture.h> that connects
EGL/Vulkan presentation timestamps to SurfaceTexture#getTimestamp.

In the process, reorganized the existing language to talk about
general properties of the timestamp, and then talk about behavior of
specific producers instead of mixing them together.

Bug: 72755997
Test: make docs
Change-Id: I88253f9e23df7d7c4fe3c1c51ff2ac494da1913c
2018-03-23 11:23:14 -07:00
Chris Craik
f461219185 Make SurfaceTexture#isReleased public API
Bug: 36902442
Test: bit CtsUiRenderingTestCases:android.uirendering.cts.testclasses.TextureViewTests

This method is already tested in TextureViewTests in CtsUiRenderingTestCases.

Change-Id: Id2d186f966d5e2b7c50a8b2ecefcd66c8a87c1fd
2017-04-25 15:57:57 -07:00
John Reck
b8d152f5cd Fix @throws javadoc on SurfaceTexture ctors
Change-Id: I63bd76ec4e44251b7e06ad6fc8aa5a3372104656
Fixes: 37323694
Test: Looked at generated docs, verified correct
2017-04-21 13:49:36 -07:00
Andreas Gampe
a7993241a9 Graphics: Make SurfaceTexture compile-time initializable
Ensure that all static initializer code can be executed in the
compiler. Move native field caching into the native method
registration function.

Bug: 34956610
Test: m
Test: Device boots (Pixel)
Change-Id: Icf68c8fbadcaaa133a152942a3a7ba7aba84a1df
2017-02-20 16:18:24 -08:00
John Reck
6c12392f17 Expose SurfaceTexture(boolean) constructor
Fixes: 31709954
Test: 'cts-tradefed run singleCommand cts-dev --module CtsUiRenderingTestCases --test android.uirendering.cts.testclasses.TextureViewTests' passes

Change-Id: I358ae97aa90b27ee5757271d83c8a5b96a31a3f0
2016-09-23 13:27:55 -07:00
Pablo Ceballos
aff2f94939 Fail createVirtualDisplay with single-buffered Surface
Bug 30106031

Change-Id: I434df329eb3c162dd9ef01245ac5e0da97216e70
2016-08-25 12:06:52 -07:00
John Reck
6d8371e73f Check for setting to already set
Bug: 20105644
Change-Id: Ia79d2ae5c725c139d2b7c423a899be625cb8f14f
2015-05-14 16:06:12 -07:00
Eino-Ville Talvala
b942b05093 Deprecate android.hardware.Camera
__
             ||
             ||
             ||
             ||---____-----+
             ||    \_/     |
             ||   /. .\    |
             ||  ||---||   |
             ||   |___|    |
             ||    | |     |
             ||---____-----+
             ||
             ||
             ||
_____________||_________________

Replaced by android.hardware.camera2

- Also deprecate MediaRecorder#setCamera
- Also deprecate all Camera inner classes
- Update reference documentation in various classes to point to camera2
- Add note to camera API guide that it uses the old API
  (until a new guide is available)
- Remove old hidden raw sensor format; superceded by RAW_SENSOR.

Change-Id: I3d839765fc9b9aae906751ee32d6956ef40451ce
2014-07-13 21:45:57 -07:00
Dan Stoza
493f2e1190 SurfaceTexture: Allow creation in detached mode
Adds a constructor that doesn't require a GLES texture name and sets
up the SurfaceTexture in detached mode.

Bug: 15616428
Change-Id: I375495f481bfbe43b3830ab7d124cef8f1be0ac6
2014-06-26 13:36:19 -07:00
Jeff Brown
ba873d2171 Improve documentation of setOnFrameAvailableListener.
Change-Id: I970e5941f3f6975a284d18056238a6877c7acbf2
2014-05-08 13:21:27 -07:00
Jeff Brown
c7282e57cd Fix crash due to texture view callback threading invariants.
Allow the client of a SurfaceTexture to specify the Handler to
which the update callback should be directed to avoid unnecessary
scheduling ping-pong between threads.

Fixed an invalid assumption in TextureView that it is attached
to the main looper which could result in a crash under certain
circumstances.  In normal app processes, it is true that TextureViews
must be created on the main looper since hardware rendering is
currently only supported on the main looper.  However, in the
system server, UI components run a different thread.  Although
hardware rendering is normally disabled in the system server,
it may be enabled for certain developer features.

Bug: 14445309
Change-Id: I5ae17ad018b9ef05ba87ec2f972c7c82e2bca70a
2014-05-06 17:13:43 -07:00
Dan Stoza
0dc146be5a Remove deprecated BufferQueue constructor
Bug: 13415624
Change-Id: Ib9788bca98fca22e0e4d81756d4aa3b29d5d5af2
2014-03-12 15:39:33 -07:00
Ashok Bhat
72aa313ff4 AArch64: Use long for pointers in SurfaceTexture
Long is used in SurfaceTexture class to store
pointers as native pointers can be 64-bit.

In addition, some minor changes have been done
to conform with standard JNI practice (e.g. use
of jint instead of int in JNI function prototypes)

Change-Id: I771aa62c42bc865e644c63fd48f309782dd03e73
Signed-off-by: Ashok Bhat <ashok.bhat@arm.com>
Signed-off-by: Kévin PETIT <kevin.petit@arm.com>
2014-01-16 12:55:13 +00:00
Igor Murashkin
a86ab640f7 Surface: Change OutOfResourcesException to be a runtime exception
- Deprecates SurfaceTexture.OutOfResourcesException, it wasn't used
- Make all JNI code throw only Surface.OutOfResourcesException
- Get rid of redundant SurfaceControl.OutOfResourcesException

Bug: 10566539
Change-Id: I58126260771b9ccff6a69c672ce7719b9f98138d
2013-09-09 21:53:59 -07:00
Mathias Agopian
52a9a10b6b Clearly separate consumer and producer interfaces
Bug: 9265647
Change-Id: Ic68e91788d0a05251e1d2fb9f9d4de403c7099bf
2013-08-06 13:07:42 -07:00
Mathias Agopian
cb92a8d942 fix SDK build
Change-Id: I41c19740b8f0532dbd6184e13bae43a13aaa46e2
2013-07-27 17:16:53 -07:00
Mathias Agopian
e591b49de0 single buffer mode for SurfaceTexture
Bug: 9891035
Change-Id: Ib9cc2b64f7ff3c084ef1d7db442db8e7a24a923d
2013-07-26 19:33:54 -07:00
Mathias Agopian
e32632682c update to new Consumer APIs
Change-Id: I8649f3add40e0aeeeb0396b98e2cb93312e8e990
2013-07-16 23:14:24 -07:00
Andy McFadden
d47f7d8b5f Rename ISurfaceTexture and SurfaceTexture
The C++ class names don't match what the classes do, so rename
ISurfaceTexture to IGraphicBufferProducer, and SurfaceTexture to
GLConsumer.

Bug 7736700

Change-Id: I08e677faf2ebb418ef131d0a8008e01037db0e50
2012-12-18 11:22:21 -08:00
Jonathan Dixon
425c3da61a Fix typo in exception message
Change-Id: I85390d7ceae8f89aadd808600a920a1401ef1c3a
2012-11-26 17:22:08 -08:00
Igor Murashkin
c99db2bc46 Updated android.graphics.SurfaceTexture to use wp for FrameAvailableListener
Bug: 7425644
Change-Id: I7ccdc0ef421df7240d6cff9222c37411b1ecaf01
2012-10-30 14:44:25 -07:00
Jamie Gennis
33efb231cb Unhide new SurfaceTexture & TextureView APIs
This change unhides the new SurfaceTexture and TextureView APIs that were added
to allow transferring ownership of the SurfaceTexture from the UI framework to
the application.

Change-Id: Ic4b781d907a59e99ff1a5974009305c1f9aee36a
2012-04-13 18:33:38 -07:00
Jamie Gennis
2b4bfa5efe SurfaceTexture: update API docs
This change updates the SurfaceTexture API docs and modifies the behavior of
the updateTexImage to produce an IllegalStateException when not attached to a
GLES context.

Change-Id: I5a0875927785108960985c567d571d5f7033256a
2012-04-13 16:04:15 -07:00
Jamie Gennis
c6d9930777 SurfaceTexture: add GL context attach & detach
This change adds Java API support for detaching a SurfaceTexture from one GLES
context and then attaching it to a different one.

Change-Id: I8eed4b0d0e339c11598cb0408d9f4f2d99b3aa06
2012-04-05 16:11:43 -07:00
Mathias Agopian
b89d88f531 Define, document, and test the behavior of very large SurfaceTextures
updateTexImage() now throws a runtime exception when its native
counterpart fails

Bug: 5506633

Change-Id: I151a6f685d465966e7df4df624412ab2da62e95f
2011-11-11 18:44:35 -08:00
Jamie Gennis
2aafe742e5 SurfaceTexture: unhide setDefaultBufferSize
Change-Id: Ia4d3e1829339acaecaa7f10023945a432c581d72
2011-11-04 14:24:55 -07:00
Jamie Gennis
554366d158 SurfaceTexture: disable sync-mode SurfaceTextures
This change removes the ability to create a SurfaceTexture that is
capable of operating in synchronous-mode from the public APIs.

Bug: 5167959
Change-Id: I09995832bb9a5f5063a67ddc3e0e1ab124d4e893
2011-08-23 15:59:05 -07:00
Mathias Agopian
ec46b4e1ca Add a 'release' method to the SurfaceTexture public Java API
Bug: 5063618
Change-Id: I689cb0c01c14e597ccfb4eb0972e64fa570bd4e8
2011-08-03 17:23:44 -07:00
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