Commit Graph

3482 Commits

Author SHA1 Message Date
Leon Scroggins
ab600d979f Merge "Update javadocs for ImageDecoder and related" into pi-dev am: 8880a9e0b9
am: de054456f2

Change-Id: I69f828620f62848193dc14850c07ad87c20ded49
2018-04-03 08:12:58 -07:00
Leon Scroggins
8880a9e0b9 Merge "Update javadocs for ImageDecoder and related" into pi-dev 2018-04-03 14:43:01 +00:00
Derek Sollenberger
1aefca09eb Merge "Merge "Restore saveLayer APIs back into the public API." into pi-dev am: ffe1c2a266" into pi-dev-plus-aosp
am: c13bf77769

Change-Id: I1d93eb9fadc99f578e7162a6aae82d6eb612a3b8
2018-04-02 23:19:26 +00:00
TreeHugger Robot
ffe1c2a266 Merge "Restore saveLayer APIs back into the public API." into pi-dev 2018-04-02 14:28:48 +00:00
Leon Scroggins III
f648b2e6f2 Remove chaining from ImageDecoder setters am: d9b53a097d
am: fe49dd165e

Change-Id: I1ca209b9bce4c50fdaf5b5a983669f0a305d022b
2018-03-31 01:01:39 +00:00
Leon Scroggins III
d84c652a4e Update javadocs for ImageDecoder and related
Bug: 76461699
Bug: 76448408
Test: No change in behavior, no new tests

Add class level docs for ImageDecoder, including sample code. Update
wording to be more clear and less wordy. Fix broken attempts at using
sample code.

Incorporate advice at go/android-api-guidelines and
https://developers.google.com/style/api-reference-comments

Change-Id: Iaf1334993f6cd2d3f6e53d3fb70ef9c7a95c9a76
2018-03-30 20:13:39 -04:00
Leon Scroggins III
d9b53a097d Remove chaining from ImageDecoder setters
Bug: 76448408
Test: Infeasible
Change-Id: Ib0ef0a9a9b0f36481ed1bbb16ecaccd180df8915
2018-03-30 15:02:56 -04:00
Derek Sollenberger
2d4f01ba7f Restore saveLayer APIs back into the public API.
The saveLayer APIs are restored from @removed but will treat input
as ALL_SAVE_FLAGS and generate exceptions on newer API levels.

We internally used these calls in one situation that now use a
different @hide API to support the previous behavior until we
refactor that code.

Partial revert of "Remove deprecated android.graphics.Canvas APIs"
This reverts commit 7b837616ae.

Bug: 77276963
Bug: 73777445
Test: CtsGraphicsTestCases
Change-Id: I7acd4ffd5ac41a58d2be8b48cf50119c2b896708
2018-03-30 14:40:04 -04:00
Leon Scroggins
3adb7aab60 Merge changes from topics "DocumentSource", "ID_API" into pi-dev am: 3c4e33a4fe
am: 41a28e7fe6

Change-Id: I99619af2463c8afd6c97725417994cdae0c8bbc6
2018-03-30 14:56:36 +00:00
Leon Scroggins III
7466c1679a Rename getters and setters on ImageDecoder am: d62f27250a
am: 02b9f36f5a

Change-Id: I9048711149267eb20848e63a3f1f166d6f46e158
2018-03-30 14:50:57 +00:00
Leon Scroggins III
02b9f36f5a Rename getters and setters on ImageDecoder
am: d62f27250a

Change-Id: I51fd44e48732f0eab0db60f829bece5c8760d38e
2018-03-30 14:23:17 +00:00
Leon Scroggins
3c4e33a4fe Merge changes from topics "DocumentSource", "ID_API" into pi-dev
* changes:
  Add documentation for ImageDecoder and its Source
  Rename getters and setters on ImageDecoder
2018-03-30 00:53:53 +00:00
Leon Scroggins III
0a87cb3128 Add documentation for ImageDecoder and its Source
Bug: 76448408
Bug: 76462125
Test: Iec21bad971dc9cffc807a412bb6329757c499baa

- Document DecodeException.getSource
- Add thread annotations
- slice() ByteBuffer inside createImageDecoder, so it can be reused
- Make ResourceSource thread safe by locking around mResDensity
- Specify that OnHeaderDecodedListener is necessary for changing default
  settings

Change-Id: I3b55d3ba1b0a2276938cb521449bceb7aa9f96e2
2018-03-29 18:47:52 -04:00
Leon Scroggins
2542ce4f2b Merge "Add in/out ColorSpace to ImageDecoder" into pi-dev am: bf1fe9aecd
am: 8f935b0fbb

Change-Id: I1a0d03fb9ca51276dc1907fd4cd2d2685fc46a46
2018-03-29 21:55:38 +00:00
Leon Scroggins
bf1fe9aecd Merge "Add in/out ColorSpace to ImageDecoder" into pi-dev 2018-03-29 20:27:43 +00:00
Leon Scroggins III
d62f27250a Rename getters and setters on ImageDecoder
Bug: 76448408
Test: Ib8782ff10072c81a5ed2a1031a70475fffee7ccf

- Use "is" prefix for booleans instead of "get"
- Reverse "require" and "unpremultiplied" for a more natural sound
- Add "Required" to "Mutable" methods
- Add "Enabled" to "DecodeAsAlphaMask" methods

Change-Id: I644ddccd37898d89609e4534ece4ea70f74587c4
2018-03-29 15:35:30 -04:00
Leon Scroggins III
1a69f4598f Add in/out ColorSpace to ImageDecoder
Bug: 76448408
Test: I851173b771668f0e6712bebfe06bfb8559801199

Add ImageInfo.getColorSpace() for retrieving the default ColorSpace.
This matches BitmapFactory.Options.outColorSpace.

Add ImageDecoder.setTargetColorSpace() for choosing a new ColorSpace.
This matches BitmapFactory.Options.inPreferredColorSpace.

Rename setSampleSize to setTargetSampleSize to match setTargetSize and
setTargetColorSpace.

Change-Id: If2f4e755dfc163f754849f896de24659198973db
2018-03-29 13:44:22 -04:00
John Reck
98d1b8b2d1 Merge "Move Path to NAR" into pi-dev am: 9434b66bf7
am: 6541c42146

Change-Id: I6cf9880e75ade2430af26eda7d9777ce81250168
2018-03-29 17:34:00 +00:00
John Reck
9434b66bf7 Merge "Move Path to NAR" into pi-dev 2018-03-29 16:53:41 +00:00
Leon Scroggins
eb366a01ab Merge "Rename ImageDecoder.setResize" into pi-dev am: 6078631927
am: 07e1c83bad

Change-Id: I8d5bd9332d982cf953947d888afd25c566ca5460
2018-03-29 13:14:13 +00:00
John Reck
205d83e108 Move Path to NAR
Bug: 74686528
Test: PathTest#testUseAfterFinalize
Change-Id: Ic1c9df6f1b63ea5795a6c3a54b8fc50fdaf0a5f4
2018-03-28 14:36:58 -07:00
Leon Scroggins III
64481195e1 Rename ImageDecoder.setResize
Bug: 76448408
Bug: 73537624
Test: Ib40d65c68a6c709b6456f2145ad8a5557a941494

setResize is two verbs, and "resize" implies we're changing the size of
an existing object. In truth, the method specifies the desired size. So
rename setResize(int, int) to setTargetSize, which clearly specifies the
behavior.

Rename setResize(int sampleSize) to setSampleSize.

Hide getSampledSize, which looks too similar to the newly named
setSampleSize. In addition, b/76448408 suggests hiding it. It isn't
really necessary anyway, since a client can just call setSampleSize - no
need to query and call setTargetSize manually.

Since there is no way for a client to know that a RAW image couldn't be
decoded to the desired size (could previously be done with
getSampledSize), make setSampleSize do the extra scaling. This is a
better API anyway.

Change-Id: I84c29fdc6bdfb999a7f712fdc069304ae9676ba6
2018-03-28 11:24:12 -04:00
Derek Sollenberger
93e2e97d1b Merge "Remove deprecated android.graphics.Canvas APIs" into pi-dev am: 812e87ecba
am: d32b6e012a

Change-Id: I596d43c935516141b9c834c0af7441606d41a33a
2018-03-27 19:36:37 +00:00
Jesse Hall
bef42cd87f Merge "Docs: add more detail to SurfaceTexture#getTimestamp" into pi-dev 2018-03-27 18:54:28 +00:00
Jesse Hall
b5afc250bc 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
(cherry picked from commit 63d2a0e000)
2018-03-27 17:08:04 +00:00
Derek Sollenberger
7b837616ae Remove deprecated android.graphics.Canvas APIs
Bug: 73777445
Test: compile
Change-Id: Ie68f2fbe3c3be82f3c20529d535875d4cc204b7c
2018-03-27 14:36:50 +00:00
Leon Scroggins III
b132b47649 Merge "Update AnimatedImageDrawable docs" into pi-dev am: 6f5e83df3a
am: 5115645c5a

Change-Id: I8ba7f7eb28c5a03365c2b8cf79b846fe1f51b5a1
2018-03-27 13:02:39 +00:00
TreeHugger Robot
6f5e83df3a Merge "Update AnimatedImageDrawable docs" into pi-dev 2018-03-27 12:47:22 +00:00
Jesse Hall
01e3148827 Merge "Docs: add more detail to SurfaceTexture#getTimestamp" 2018-03-26 20:12:00 +00:00
Leon Scroggins III
53f09ee1f1 Update AnimatedImageDrawable docs
Bug: 73529437
Test: No change in behavior, no new tests

Document that it can be inflated from xml, and reference the attributes
that it supports.

Add a comment describing what the class does with respect to animation.

Update the comment for start() to better reflect when the callback is
called.

Change-Id: I660cbc4e185dca8bc7a43a185f91ae0485ef8753
2018-03-26 10:44:47 -04:00
John Reck
4d8a8b556b Merge "Add missing computeOpacity call" into pi-dev am: 3f5ab8bdf4
am: de09a543f4

Change-Id: I0da7e3181e4ca1f9b470e22ab68dc3f7eedee6de
2018-03-24 06:11:29 +00:00
John Reck
29c8b5458a Add missing computeOpacity call
Change-Id: I3b668842d4cd072a0625c32cae0a1ade0e322a7d
Fixes: 73285195
Test: GradientDrawableTest#testGetOpacity
2018-03-23 15:38:18 -07: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
Mike Reed
b8e9a15379 Merge "detect api version, and start respecting offsets" into pi-dev am: dfdc379144
am: 90405d02cd

Change-Id: Ied06df3460e90779e3015e6ba64406a068df5472
2018-03-23 11:52:49 +00:00
TreeHugger Robot
dfdc379144 Merge "detect api version, and start respecting offsets" into pi-dev 2018-03-23 11:25:19 +00:00
Leon Scroggins
547a528421 Merge changes from topics "DecodeException_ERROR", "AID_autoStart", "onPartialImage" into pi-dev am: ceb14e015b
am: fbe597e850

Change-Id: I2a70864001a9e6cf21692bcbcb5c2cc81361f0bf
2018-03-23 00:57:54 +00:00
Leon Scroggins III
28d914abad Add the ability to autoStart AID from xml am: 1dd88daf92
am: 776e4c1e31

Change-Id: I2998ff48957a8643f965da6ba308bcfd4bd8fcdc
2018-03-23 00:53:46 +00:00
Leon Scroggins III
1564d3070f Re-write onPartialImage API am: 1d2bf2b846
am: 1a82348834

Change-Id: Icd8be0239571f543ae815f51d162eb1485567eec
2018-03-23 00:51:26 +00:00
Leon Scroggins III
6cecf67a1b Merge "Disable Bitmap density scaling to Picture" into pi-dev am: e7c26531c0
am: 79625818ca

Change-Id: I2a5a44fc56c0119e9f7626c0f346a5917f96e976
2018-03-22 23:40:46 +00:00
Leon Scroggins III
776e4c1e31 Add the ability to autoStart AID from xml
am: 1dd88daf92

Change-Id: I01fc7e34b4e2909f6984b9266e237f3cc9f08432
2018-03-22 23:38:55 +00:00
Leon Scroggins III
1a82348834 Re-write onPartialImage API
am: 1d2bf2b846

Change-Id: I7436bbe89b9efd9a406958b14f79294e982c5b3a
2018-03-22 23:34:41 +00:00
Leon Scroggins
ceb14e015b Merge changes from topics "DecodeException_ERROR", "AID_autoStart", "onPartialImage" into pi-dev
* changes:
  Rename ImageDecoder.ERRORs
  Add the ability to autoStart AID from xml
  Re-write onPartialImage API
2018-03-22 21:53:05 +00:00
TreeHugger Robot
e7c26531c0 Merge "Disable Bitmap density scaling to Picture" into pi-dev 2018-03-22 21:34:32 +00:00
Leon Scroggins III
cf7294fda6 Rename ImageDecoder.ERRORs
Bug: 73788969
Test: I501e8b76aacd785cb994165ab01dc1b39fea3a1c

Move them into ImageDecoder.DecodeException, which is where they are
actually used. This also provides some more context, so that the prefix
"ERROR_" is no longer necessary, fixing the redundancy/awkwardness in
ERROR_SOURCE_ERROR. Further rename that to SOURCE_MALFORMED_DATA, which
is more descriptive, and does not imply a Java Error.

Change-Id: Ied17ad343650f9c33d9a35b0f9d00ccc22264bd6
2018-03-22 13:09:02 -04:00
Leon Scroggins III
5388f79a45 Disable Bitmap density scaling to Picture
Bug: 76144110
Test: I95165583649a1df86782d3684f7bf9bcd8dab7bd

This matches the behavior of DisplayListCanvas. Not scaling means that
we can draw a Bitmap to a Picture, and then play that back in HW mode
and see the same result.

Change-Id: I7421431bad0531112e06ab5c14814b6b6f1591d9
2018-03-22 12:36:22 -04:00
Leon Scroggins III
1dd88daf92 Add the ability to autoStart AID from xml
Bug: 73529437
Test: Ic818bbf1091d12631aedd6475d225fa4a708b29c
Change-Id: I4807409895a057e775bfee5dea407e8dc1af94be
2018-03-22 09:05:42 -04:00
Leon Scroggins
442522d112 Merge "Report native allocation size of AnimatedImageDrawable" into pi-dev am: d848f75f99
am: 6413aebc02

Change-Id: Id1a101b08f8f9b9b53875bd9c784dea04a5b4110
2018-03-21 17:46:16 +00:00
Mike Reed
322bc57a33 detect api version, and start respecting offsets
Test: make

Bug: 36471624
Change-Id: Ica10c557bf35e8d707fabbafab49d22109916fd3
2018-03-21 17:39:01 +00:00
Leon Scroggins III
1d2bf2b846 Re-write onPartialImage API
Bug: 73788969
Test: If9e27a6ce2604128a619bc4843d62711f94b4d87

Add a new Exception subclass that contains information about the type of
error, and the original Exception, if any. Remove the old
IncompleteException class. If the decode creates a partial image, pass
the information up to Java, where we create the new Exception and pass
it to the callback and/or throw it. Rewrite nDecodeBitmap to always take
the ImageDecoder as a parameter for this callback, and simply use a
boolean to determine whether to call onPostProcess

Check for exceptions in some overlooked cases in native code, and
route to the new type.

Remove FIXME to avoid parsing the whole image. In my limited testing,
it didn't seem to speed anything up, and this should be called in a
background thread anyway. Parsing now also ensures that we've read the
stream when we can have a chance to handle the exception from the right
place.

Remove fixme for b/70626068, which has been marked as WontFix.

Add a TestApi for testing an Exception thrown by an InputStream.

Remove onPartialImage from hiddenapi-light-greylist.txt to fix the build
error this change introduces. onPartialImage was erroneously added to
the list.

Change-Id: I12f69857328e63c993bd669412b06addeb6a74f1
2018-03-21 12:55:46 -04:00
Leon Scroggins
d848f75f99 Merge "Report native allocation size of AnimatedImageDrawable" into pi-dev 2018-03-21 16:48:19 +00:00