History log of /frameworks/base/media/jni/android_media_ImageReader.cpp
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
2e2aaf6e0497302bc03c218949d29b01f469316e 22-Jul-2016 Eino-Ville Talvala <etalvala@google.com> ImageReader: Add discardFreeBuffers method

This method (currently @hide) discards all cached buffers for
the ImageReader, which can be useful to free up memory at the
cost of reallocationt time if more buffers are needed later.

It has no effect on acquired Images, filled Images waiting to be
acquired, or buffers being actively used by the source rendering to the
Surface.

Bug: 28695173
Change-Id: I427a8ba4ad73a267083f843dbf228bfc53a730d9
/frameworks/base/media/jni/android_media_ImageReader.cpp
0ab416269a866c8afa8f65d9351afa2407abee4c 26-Feb-2016 Zhijun He <zhijunhe@google.com> ImageReader/Writer: refactor and cleanup

Below changes are included:
* Defer the buffer lock to Image#getPlanes call. This will save quite a bit
CPU cycles associated with lock buffer if the application doesn't really
want to access the data.
* Refactor the code: move some common code to some utility class, and use
one unified consumer (BufferItemConsumer) in ImageReader native implementation.
The code refactoring will also make it easier to support non-opaque image
attach/detach.

Bug: 22356918
Bug: 19962027
Change-Id: I4fb865b0ea3deb6650afc64c32a5906f30e8ccbd
/frameworks/base/media/jni/android_media_ImageReader.cpp
9cc3f881df13583c93ca08668281413be6412414 18-Feb-2016 Zhijun He <zhijunhe@google.com> ImageReader: override the flexible YUV compatible formats

For gralloc HAL v0.1 devices, if the producer buffer format is NV21 or YV12,
the returned flexFormat will be NV21 or YV12, which causes CTS failure
for ImageReader decoder test. This change overrides the NV21 or YV12 image
formats to HAL_PIXEL_FORMAT_YCbCr_420_888 for such case. With this, the
ImageReader will work for the devices with older gralloc HAL implementations
for HAL_PIXEL_FORMAT_YCbCr_420_888 compatible formats.

Bug: 27136665
Change-Id: Ib4722f1f8dc20ad6561088755e4ab9d2e68f1b47
/frameworks/base/media/jni/android_media_ImageReader.cpp
b99a7f13591faf9ce4c50375853b7ab2fce468a7 23-Jan-2016 Yin-Chia Yeh <yinchiayeh@google.com> ImageReader: fix missing pixel stride

Change-Id: Ie34cb51fee90e2d5624663fa23da4093fec435e2
/frameworks/base/media/jni/android_media_ImageReader.cpp
44581ff4db54bbaa30365ed210e67a0369576100 08-Dec-2015 Yin-Chia Yeh <yinchiayeh@google.com> Camera: add RAW_PRIVATE format

Also add necessary plumbing for RAW_PRIVATE to work for ImageReader.

Bug: 25596619
Change-Id: Ic90f3f44264ac46fae1fafbc27ac64b5319f0970
/frameworks/base/media/jni/android_media_ImageReader.cpp
dc6bb24a3c2c830c909523e8d7d999fb556fb77d 04-Dec-2015 Zhijun He <zhijunhe@google.com> media: improve ImageReader/Writer native memory management

* Hook up the native allocation registration with ImageWriter, such that GC
can get some hint when clean up the large memory object.
* Close all pending images when closing ImageReader. This could avoid native
mem leaks for some bad app practice. For example, some apps may hold images
in background service when activity is paused/destroyed, which could cause
huge native memory leaks even ImageReader is closed.
* make Image close thread safe: it is possible the clients close the image
in listener thread and the client main thread.
* Some minor code refactor to reduce the code duplication.

Bug: 25088440
Change-Id: I37d22b52aeb8d2521bf9c702b0f54c05905473e0
/frameworks/base/media/jni/android_media_ImageReader.cpp
b57dd722f1dc0663417da37d3a82f8283ad3c982 24-Sep-2015 Elliott Hughes <enh@google.com> resolved conflicts for a884d81e to stage-aosp-master

Change-Id: Ice485967fa96f13786024b6939b826638e906ff0
76f6a86de25e1bf74717e047e55fd44b089673f3 19-Sep-2015 Daniel Micay <danielmicay@gmail.com> constify JNINativeMethod function pointer tables

Change-Id: I4036c924958221cbc644724f8eb01c5de3cd7954
/frameworks/base/media/jni/android_media_ImageReader.cpp
be2e38e01c5c23d1ac240313ecb8f71251c448c3 19-Jun-2015 Chien-Yu Chen <cychen@google.com> Merge "ImageReader: Fix format workarounds for legacy devices" into mnc-dev
0782aab077b32613c6715190135008dbf3dc5d6d 12-Jun-2015 Chien-Yu Chen <cychen@google.com> ImageReader: Fix format workarounds for legacy devices

Legacy shim overrides HAL_PIXEL_FORMAT_BLOB to
HAL_PIXEL_FORMAT_RGBA_8888. Make ImageReader aware of the
workaround when returning the format.

Remove the workaround in legacy shim that overrides YUV_420_888
to YV12 because allocating YUV_420_888 buffers with SW access
is supported on Flo.

Bug: 21707937
Change-Id: I84a8610c82ae986a0064873f611e4f257baf1774
/frameworks/base/media/jni/android_media_ImageReader.cpp
ef9db7d81b0ce1093944b9e3d5efb6ab756f5cbc 09-Jun-2015 Eino-Ville Talvala <etalvala@google.com> Add more specific consumer names for common buffer queue endpoints.

Change-Id: I744bdcba6e60e5efd8865f725b09a9f791d76160
/frameworks/base/media/jni/android_media_ImageReader.cpp
7c3997d96a2571295a97457264832d54b05ee966 06-May-2015 Zhijun He <zhijunhe@google.com> ImageReader: Image getFormat should return the Image buffer format

Also return buffer size correctly.

Bug: 19527410
Change-Id: I9a912afc61d577571c1b2a7f6df21da40838e925
/frameworks/base/media/jni/android_media_ImageReader.cpp
ce9d6f9c75e2254f3704996e232e57e0c8f686d8 30-Mar-2015 Zhijun He <zhijunhe@google.com> ImageReader/Writer: implement opaque format operations

Implement attach/detach for image reader and writer.

Bug: 19872821
Change-Id: Ib45a054c6be0b56b370fa8d709b47b0298ba5ea7
/frameworks/base/media/jni/android_media_ImageReader.cpp
37ec99b19ce7a5d40d16ccc2f578aca66bd7a25d 31-Mar-2015 Yin-Chia Yeh <yinchiayeh@google.com> Merge "Add RAW12 image format"
f6a09e510649ae4701bb5ad4c40d102d59a5608c 25-Feb-2015 Zhijun He <zhijunhe@google.com> ImageReader/Writer: Add ImageWriter and Opaque ImageReader

ImageWriter/Reader API change, including below changes
* Interface for Opaque ImageReader
* ImageWriter Interface and implementation
* Image class minor update to support ImageWriter opaque ImageReader

detach/attach interface are defined but yet to be implemented.

Change-Id: Ic7c0d2df73c80b1a81a7316d8c4556bf7703c309
/frameworks/base/media/jni/android_media_ImageReader.cpp
11d444f0b789ead8b10506d24956d243274c724b 21-Mar-2015 Yin-Chia Yeh <yinchiayeh@google.com> Add RAW12 image format

Change-Id: I1c528ecf62746aa96d6e132eaa874015d9d7c446
/frameworks/base/media/jni/android_media_ImageReader.cpp
805f3c9428f9ebd5080aec48d3d9d77dbf4b41a9 26-Feb-2015 Eino-Ville Talvala <etalvala@google.com> Add DEPTH image formats, support in ImageReader

- Add an explicit mapping between public ImageFormat/
PixelFormat enums and internal HAL format/dataspace.
- Add DEPTH16 and DEPTH_POINT_CLOUD formats
- Wire up mapping layer to ImageReader to support depth
formats

Change-Id: I8197eccef900cc91baddcfcb934ccd4d8c972eff
/frameworks/base/media/jni/android_media_ImageReader.cpp
64cc1d03596bcda1f2d0bdc35d92546bb03eb406 20-Feb-2015 Eino-Ville Talvala <etalvala@google.com> ImageReader: Switch to RAW16 from RAW_SENSOR

Change-Id: I6362a997b0895686f988896de0463d834354f238
/frameworks/base/media/jni/android_media_ImageReader.cpp
df876a110c4b6d55b4a9df57621aa38ff06c6de8 29-Jan-2015 Lajos Molnar <lajos@google.com> Merge "ImageReader: add support for compatible flexYUV buffers" into lmp-mr1-dev automerge: 8514766
automerge: 2a8dc00

* commit '2a8dc00eedeb2b8a9fa3560d8afa4cfd7c17d395':
ImageReader: add support for compatible flexYUV buffers
4fb442617cdea52b11ed622b5cf0490337928ec1 23-Jan-2015 Lajos Molnar <lajos@google.com> ImageReader: add support for compatible flexYUV buffers

Bug: 17906609
Change-Id: Ia21aff632b9a92f4e391b3917a7774af46fd81a0
/frameworks/base/media/jni/android_media_ImageReader.cpp
28089cc39b0247d5e854a1a44cd8af17464b9e36 10-Dec-2014 Ruben Brunk <rubenbrunk@google.com> Merge "Camera2: Allow rendering to arbitrary surface sizes in LEGACY mode." into lmp-mr1-dev automerge: 3ef5033
automerge: 6d98265

* commit '6d9826546d89e03cea170ebb5b3f292d5f4a027b':
Camera2: Allow rendering to arbitrary surface sizes in LEGACY mode.
f4a637d0be2e028d1e78c8bf90ad17ec3f84b5f3 21-Nov-2014 Ruben Brunk <rubenbrunk@google.com> Camera2: Allow rendering to arbitrary surface sizes in LEGACY mode.

Bug: 16030677
Change-Id: Ida04e04f41983b9126609522dd12064a7bf9645f
/frameworks/base/media/jni/android_media_ImageReader.cpp
cba06c2272c8bce7d10b2a7ee762d12043f3252a 11-Nov-2014 Andreas Gampe <agampe@google.com> resolved conflicts for merge of 6957369d to lmp-mr1-dev-plus-aosp

Change-Id: Ie3bd0e24c69c0c7ae500b8eb4a1198650e993a19
5a15d0d31b877ef512b3379eac033c6bb041c86a 11-Nov-2014 Andreas Gampe <agampe@google.com> Frameworks/base: Wall Werror in media/jni

Turn on -Wall -Werror in media/jni. Fix warnings.

Change-Id: I9da54ad379d8172ee535b52ee2b0637a2533f4e3
/frameworks/base/media/jni/android_media_ImageReader.cpp
2c34b5e8136eac0332dac294cb06a6a98eac1c14 04-Nov-2014 Dan Stoza <stoza@google.com> Add a BufferItem parameter to onFrameAvailable

Passes the BufferItem for the queued buffer to the onFrameAvailable
callback so the consumer can track the BufferQueue's contents.

Bug: 18111837
Change-Id: If9d07229c9b586c668e5f99074e9b63b0468feb0
/frameworks/base/media/jni/android_media_ImageReader.cpp
0c79884076405bc36c0fb4f1bce27f883b97d64c 30-Sep-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Use valid dimensions for RGBA8888 gralloc buffers.

Bug: 17675571

- All of the mistakes were made. Unmake them.

Change-Id: I23ff7a553347d4d9588c728219f4bf0604ba2e38
/frameworks/base/media/jni/android_media_ImageReader.cpp
31798f33184fd59dd3d3cc55e6373d9f91d220b6 26-Sep-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Fix native ImageReader test segfaults.

Bug: 17675571

- Check for JPEG footer in correct location from ImageReader
when using the RGBA override.
- Add additional error checks in produceFrame method.
- Avoid allocating extra space for jpeg buffers due to
incorrect width calculations.

Change-Id: I926f37e8b3e5c4bad24c16dcee48d52adb1706dd
/frameworks/base/media/jni/android_media_ImageReader.cpp
0fd198ad89ec9c600bb1761b10d938146c28bb98 24-Sep-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Hide JPEGs in RGBA gralloc buffers.

Bug: 17379185

- WAR for SW Write usage flags being unavailable on
certain devices for JPEG (blob) format buffers.

Change-Id: Ic7299785b743f35dd47264b9d1cea01a88b71d91
/frameworks/base/media/jni/android_media_ImageReader.cpp
4c4064fa66f551f49b7e1017b1ebe65a05f9df21 25-Jul-2014 Zhijun He <zhijunhe@google.com> ImageFormat: update raw10 spec to allow row padding

Change-Id: Id191b92037487f16538d111fc6171d3be9a02acf
/frameworks/base/media/jni/android_media_ImageReader.cpp
d1988a98ed69db8c33b77b5c085ab91d22ef3bbc 01-Jul-2014 Zhijun He <zhijunhe@google.com> Add RAW10 image format

- Add RAW10 format in ImageFormat
- Add ImageReader support for this format

Bug: 15989722
Change-Id: Ic38ae596d5a472e990389d1fa221a82bea97b715
/frameworks/base/media/jni/android_media_ImageReader.cpp
5096defdaa4716ce81047a855d6e5ce3f8263600 24-Jun-2014 Igor Murashkin <iam@google.com> camera2: (legacy) Write the JPEG size as part of the blob transport

This fixes StillCaptureTest#testStillPreviewCombination

Change-Id: Ifbaae7828b2efcc1a768c77ce50718abd7f691d0
/frameworks/base/media/jni/android_media_ImageReader.cpp
91b9aabc9fa0c058ecc4a8b3f486540c28fe1cc0 20-Jun-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Switch to using YV12 for ImageReader.

Bug: 15116722

- Also fixes incorrect frame number for single captures.

Change-Id: I8552124d18ad176e6724f089a1e3a3f49a5eeec4
/frameworks/base/media/jni/android_media_ImageReader.cpp
feb50af361e4305a25758966b6b5df2738c00259 10-May-2014 Ruben Brunk <rubenbrunk@google.com> camera2: Add HAL1 compatibility shim skeleton.

This adds basic support for running the Camera2 API on a device running
a camera HAL version lower than CAMERA_MODULE_API_VERSION_2_0.

This CL includes support for:
- N-way preview output streams
- N-way jpeg output streams
- CameraDevice emulation at the binder interface
- Basic camera metadata querying in the CameraManager

Bug: 15117269
Bug: 15116722

Change-Id: I8322955034c91f34bb348d4b28c2b774dbef38f6
/frameworks/base/media/jni/android_media_ImageReader.cpp
a5e1528f80f0472701dcbfc42d2f45ffc4a16466 24-Apr-2014 Zhijun He <zhijunhe@google.com> ImageReader: remove RAW_SENSOR format translation

Really not needed to have this, as both native and managed values are matched.

Change-Id: I175cbafbf88a80781a478c7aa87471fb977625b6
/frameworks/base/media/jni/android_media_ImageReader.cpp
977ad8d26e701ed3902247852986d474e0e07f4d 09-Apr-2014 Zhijun He <zhijunhe@google.com> ImageReader: Fix raw buffer size calculation issue

Stride should be used to calculate the size rather than width.

Change-Id: I01051fdf4dd2978d56b9998d8bcd542c50458f56
/frameworks/base/media/jni/android_media_ImageReader.cpp
5b3c7c1e575a7fe1bc765e5d14690e1bfd971ffb 13-Mar-2014 Dan Stoza <stoza@google.com> Remove deprecated BufferQueue constructor

Bug: 13415624
Change-Id: Ic661d515a94fd5fad39f2d07f0cdf25337fae67c
/frameworks/base/media/jni/android_media_ImageReader.cpp
334778981dc01b5f8f4e137eb3f78745e214cf4d 27-Jan-2014 lina.x.pi <lina.x.pi@sonymobile.com> Release locked buffer when it fails to acquire graphics buffer

The JNI buffer in ImageReader_imageSetup is not released when
it fails to acquire graphics buffer. After all JNI buffers are
exhausted, ACQUIRE_MAX_IMAGES will be returned and leads to
error. The JNI buffer should be released when it fails to acquire
graphics buffer.

Change-Id: I3319a58ac44e36c8593b404672a685c4b589a735
/frameworks/base/media/jni/android_media_ImageReader.cpp
4eda9f5359347c11914e47f477535c9533674d32 18-Sep-2013 Zhijun He <zhijunhe@google.com> ImageReader: disable NV21 support

Bug: 10787131
Change-Id: I5ff0a67144b5ec49eabde6129423a41c9597c2b8
/frameworks/base/media/jni/android_media_ImageReader.cpp
9e6d073a999d7934aa3f22a5877c6e8e2ce15766 17-Sep-2013 Zhijun He <zhijunhe@google.com> ImageReader: fix the 0 crop rect size issue

Rect isValid actually include the zero size case, which we don't want to include
in our case. This causes camera ImageReader test case fails at buffer size
sanity check.

Bug: 9802344
Change-Id: I561f5a049c6117c613df1e1b2789c43af9a19628
/frameworks/base/media/jni/android_media_ImageReader.cpp
5cf86aa7564eff8443158644e866a420d865b1bc 16-Sep-2013 Igor Murashkin <iam@google.com> Merge "media: Update ImageReader to remove MaxImagesAcquiredException" into klp-dev
26cb5fd5fffb2204ec12994cacb3b32639eb4d59 16-Sep-2013 Igor Murashkin <iam@google.com> Merge "media: Update ImageReader APIs" into klp-dev
cfa553369fd8ef68db751fe1052cd17fd5763965 16-Sep-2013 Zhijun He <zhijunhe@google.com> ImageReader: get correct crop size

Bug: 10752797
Change-Id: I2e56d69cde7f5ca669a366646b876861b277a239
/frameworks/base/media/jni/android_media_ImageReader.cpp
e3351f1942bfe86682389b278e7ff128a72ea671 13-Sep-2013 Igor Murashkin <iam@google.com> media: Update ImageReader to remove MaxImagesAcquiredException

* acquiring images now throws IllegalStateException instead of
MaxImagesAcquiredException

Bug: 10691447
Change-Id: I7ce68f990fb96703705b9181012a28633fea0b7a
/frameworks/base/media/jni/android_media_ImageReader.cpp
5e712064dfe48992f8f732208fa4fc13f3455b30 30-Aug-2013 Igor Murashkin <iam@google.com> media: Update ImageReader APIs

Bug: 10461757
Change-Id: Ic04e4c41965e3d417b29004f3f08e0cd56b8f4cb
/frameworks/base/media/jni/android_media_ImageReader.cpp
37682135da2fd90e7bc6a89a418862d1f4ca15fd 11-Sep-2013 Zhijun He <zhijunhe@google.com> ImageReader: Skip size check for BLOB format

HAL_PIXEL_FORMAT_BLOB is for JPEG capture, the buffer width/height by definition
shouldn't be the same as the image width/height.

Bug: 10360518
Change-Id: I32146a0e8e15439bb8fe199403db4ff37d1ab1af
/frameworks/base/media/jni/android_media_ImageReader.cpp
d901c033756b01f5bd3c697fb3802331e9b45ad0 28-Aug-2013 Igor Murashkin <iam@google.com> media: ImageReader throws OutOfResourcesException when out of buffers

Bug: 10507939
Change-Id: I34c66485695ad6141388be85903cbecb9ebaa5ab
/frameworks/base/media/jni/android_media_ImageReader.cpp
af753a2dfc66c92bfcac64b77c7a4d89d9434ad8 23-Aug-2013 Zhijun He <zhijunhe@google.com> ImageReader: Fix API doc table misalignment issue

Also cleanup unused macro in ImageReader.

Bug: 10360518
Change-Id: I2332703c92df771a6339ff92069e92d50a6c5cd5
/frameworks/base/media/jni/android_media_ImageReader.cpp
dd0643202de80cc4ced37d1844e722c8a5e89154 15-Aug-2013 Igor Murashkin <iam@google.com> media: Fix ImageReader only using maxImages=1 no matter what

- No longer return null when some bad error happens
- Throws OutOfResourcesException when images need to be closed
- Throws IllegalStateException when an unknown internal error happens

Bug: 10333400
Change-Id: Ia53a5dd33f9ce53abd036e080e6fcc4ded9b251d
/frameworks/base/media/jni/android_media_ImageReader.cpp
f724c277d3362dbc8099fcbf8674609a424cd2ee 07-Aug-2013 Jeff Brown <jeffbrown@google.com> Add more virtual display tests.

We can't test everything in CTS because some features require
system permissions. So this is another copy of the CTS test
with more stuff that we can build with the system cert.

Change-Id: Ied5a456a0810d38d307b6dfbad0f770cb480b4ee
/frameworks/base/media/jni/android_media_ImageReader.cpp
52a9a10b6b8c7b7a9f97777541841b94d4fd9754 02-Aug-2013 Mathias Agopian <mathias@google.com> Clearly separate consumer and producer interfaces

Bug: 9265647
Change-Id: Ic68e91788d0a05251e1d2fb9f9d4de403c7099bf
/frameworks/base/media/jni/android_media_ImageReader.cpp
445b5f460fd083a0f267669db450d2e2fa049f08 06-Aug-2013 Jeff Brown <jeffbrown@google.com> Merge "Minor style cleanups."
708e3595031fa15f4ac26c5675a53c1ed495b895 05-Aug-2013 Zhijun He <zhijunhe@google.com> ImageReader: Add RGB format support.

Bug: 10155122
Change-Id: Id53d6ec815488e73bde6ca62b42c92d16bc813c9
/frameworks/base/media/jni/android_media_ImageReader.cpp
ef961215599b1c154130d4e64e46a401d6bfef67 06-Aug-2013 Jeff Brown <jeffbrown@google.com> Minor style cleanups.

A few changes to demonstrate a slightly cleaner way to write
JNI code in the framework especially when multiple types are
involved. We use this pattern in many other places outside
of the media stack.

Added more detail to the UnsupportedOperationException that
occurs when buffer formats don't match.

Change-Id: Ic894dc1bd71b387f1be6ea1798fa59e533e9574f
/frameworks/base/media/jni/android_media_ImageReader.cpp
7f4d3147d1851d2f0c544e45390c139bda9fd9aa 23-Jul-2013 Zhijun He <zhijunhe@google.com> camera2: Implement CameraDevice#waitUntilIdle

Also cleanup some logging/comments.

Change-Id: Id1a4dd853519802a2b74b8d2172095ba388329e6
/frameworks/base/media/jni/android_media_ImageReader.cpp
e32632682ca9207bd247ca27012cf670b5c23f54 17-Jul-2013 Mathias Agopian <mathias@google.com> update to new Consumer APIs

Change-Id: I8649f3add40e0aeeeb0396b98e2cb93312e8e990
/frameworks/base/media/jni/android_media_ImageReader.cpp
b550929b7a4b0d5f9645a7a1ebf287d3f13cf1af 13-Jul-2013 Mathias Agopian <mathias@google.com> always pass the BufferQueue explicitely to consumers

Change-Id: I32e380979a3f4c6b1dfb440cc5b5c3d30d7607db
/frameworks/base/media/jni/android_media_ImageReader.cpp
534046d2b12fd13776ad782b982649cb0bea9b79 01-Jul-2013 Zhijun He <zhijunhe@google.com> ImageReader: get correct jpeg size.

the jpeg size was set to the buffer width, which is the max jpeg buffer size.
the right size can be obtained by parsing the camera3_jpeg_blob data sent by
hal.

Also correct the buffer size check when crop is not set.

Bug: 9254294
Change-Id: Ic73de47ef97efa4eb356a399c1576715e2eacbfd
/frameworks/base/media/jni/android_media_ImageReader.cpp
212e78df9eb3bfff069de01aa7820cf4201c5f82 07-Jun-2013 Zhijun He <zhijunhe@google.com> ImageReader: Implementation of ImageReader and Image APIs

Used for direct image data access from producer like camera or video decoder.

Bug: 9254294
Change-Id: I1853af03f4487ac3585d86202f6140854471fa89
/frameworks/base/media/jni/android_media_ImageReader.cpp