MCPcopy Create free account
hub / github.com/android/ndk-samples / DisplayImage

Method DisplayImage

camera/basic/src/main/cpp/image_reader.cpp:209–241  ·  view source on GitHub ↗

* Convert yuv image inside AImage into ANativeWindow_Buffer * ANativeWindow_Buffer format is guaranteed to be * WINDOW_FORMAT_RGBX_8888 * WINDOW_FORMAT_RGBA_8888 * @param buf a ANativeWindow_Buffer instance, destination of * image conversion * @param image a AImage instance, source of image conversion. * it will be deleted via {@link AImage_d

Source from the content-addressed store, hash-verified

207 * it will be deleted via {@link AImage_delete}
208 */
209bool ImageReader::DisplayImage(ANativeWindow_Buffer* buf, AImage* image) {
210 ASSERT(buf->format == WINDOW_FORMAT_RGBX_8888 ||
211 buf->format == WINDOW_FORMAT_RGBA_8888,
212 "Not supported buffer format");
213
214 int32_t srcFormat = -1;
215 AImage_getFormat(image, &srcFormat);
216 ASSERT(AIMAGE_FORMAT_YUV_420_888 == srcFormat, "Failed to get format");
217 int32_t srcPlanes = 0;
218 AImage_getNumberOfPlanes(image, &srcPlanes);
219 ASSERT(srcPlanes == 3, "Is not 3 planes");
220
221 switch (presentRotation_) {
222 case 0:
223 PresentImage(buf, image);
224 break;
225 case 90:
226 PresentImage90(buf, image);
227 break;
228 case 180:
229 PresentImage180(buf, image);
230 break;
231 case 270:
232 PresentImage270(buf, image);
233 break;
234 default:
235 ASSERT(0, "NOT recognized display rotation: %d", presentRotation_);
236 }
237
238 AImage_delete(image);
239
240 return true;
241}
242
243/*
244 * PresentImage()

Callers 1

DrawFrameMethod · 0.80

Calls

no outgoing calls

Tested by

no test coverage detected