MCPcopy Create free account
hub / github.com/FFmpeg/FFmpeg / create_image_reader

Function create_image_reader

libavdevice/android_camera.c:489–522  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

487}
488
489static int create_image_reader(AVFormatContext *avctx)
490{
491 AndroidCameraCtx *ctx = avctx->priv_data;
492 media_status_t ret;
493
494 ret = AImageReader_new(ctx->width, ctx->height, IMAGE_FORMAT_ANDROID,
495 MAX_BUF_COUNT, &ctx->image_reader);
496 if (ret != AMEDIA_OK) {
497 av_log(avctx, AV_LOG_ERROR,
498 "Failed to create image reader, error: %s.\n", media_status_string(ret));
499 return AVERROR_EXTERNAL;
500 }
501
502 ctx->image_listener.context = avctx;
503 ctx->image_listener.onImageAvailable = image_available;
504
505 ret = AImageReader_setImageListener(ctx->image_reader, &ctx->image_listener);
506 if (ret != AMEDIA_OK) {
507 av_log(avctx, AV_LOG_ERROR,
508 "Failed to set image listener on image reader, error: %s.\n",
509 media_status_string(ret));
510 return AVERROR_EXTERNAL;
511 }
512
513 ret = AImageReader_getWindow(ctx->image_reader, &ctx->image_reader_window);
514 if (ret != AMEDIA_OK) {
515 av_log(avctx, AV_LOG_ERROR,
516 "Could not get image reader window, error: %s.\n",
517 media_status_string(ret));
518 return AVERROR_EXTERNAL;
519 }
520
521 return 0;
522}
523
524static void capture_session_closed(void *context, ACameraCaptureSession *session)
525{

Callers 1

Calls 1

av_logFunction · 0.85

Tested by

no test coverage detected