# AImageReader_ImageListener

## Summary

| ### Public attributes ||
|---|---|
| `https://developer.android.com/ndk/reference/struct/a-image-reader-image-listener#struct_a_image_reader___image_listener_1aab8ce50fde36aa13d22819fe327666a0` | `void *` Optional application context passed as the first parameter of the callback. |
| `https://developer.android.com/ndk/reference/struct/a-image-reader-image-listener#struct_a_image_reader___image_listener_1af936340b8310f9afd64b3d149dc98810` | `https://developer.android.com/ndk/reference/group/media#group___media_1gafb845f7a11bf6b4b64009f354b241264` This callback is called when there is a new image available in the image reader's queue. |

## Public attributes

### context

Declared in `media/NdkImageReader.h`

```
void * AImageReader_ImageListener::context
```
Optional application context passed as the first parameter of the callback.

### onImageAvailable

Declared in `media/NdkImageReader.h`

```
AImageReader_ImageCallback AImageReader_ImageListener::onImageAvailable
```
This callback is called when there is a new image available in the image reader's queue.

The callback happens on one dedicated thread per [AImageReader](https://developer.android.com/ndk/reference/group/media#group___media_1ga06ce56f62946cf7a9748ef80f75488d3) instance. It is okay to use AImageReader_\* and AImage_\* methods within the callback. Note that it is possible that calling [AImageReader_acquireNextImage](https://developer.android.com/ndk/reference/group/media#group___media_1ga26f39c65d5670e91f082281f29f38937) or [AImageReader_acquireLatestImage](https://developer.android.com/ndk/reference/group/media#group___media_1ga6d99b7fc26bfc6c5fb39e9f5d97ffbf1) returns [AMEDIA_IMGREADER_NO_BUFFER_AVAILABLE](https://developer.android.com/ndk/reference/group/media#group___media_1gga009a49041fe39f7bdc6d8b5cddbe760ca62da64570ae5163a55c88927f8c1f432) within this callback. For example, when there are multiple images and callbacks queued, if application called [AImageReader_acquireLatestImage](https://developer.android.com/ndk/reference/group/media#group___media_1ga6d99b7fc26bfc6c5fb39e9f5d97ffbf1), some images will be returned to system before their corresponding callback is executed.