اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
مرجع بنية camera3_capture_request
#include <
camera3.h
>
camera3_capture_request_t:
طلب واحد لإعادة معالجة التقاط الصور أو إعادة معالجة المخزن المؤقت، يتم إرساله إلى جهاز Camera HAL من خلال إطار العمل في عملية process_capture_request().
يحتوي الطلب على الإعدادات التي سيتم استخدامها لعملية الالتقاط هذه، ومجموعة من وحدات التخزين المؤقت للإخراج لكتابة بيانات الصورة الناتجة. وقد يحتوي اختياريًا على ذاكرة تخزين مؤقت للإدخال، وفي هذه الحالة يكون الطلب لإعادة معالجة ذاكرة التخزين المؤقت هذه بدلاً من التقاط صورة جديدة باستخدام أداة استشعار الكاميرا. يتم تحديد عملية الالتقاط من خلال frame_number.
في ردّ على ذلك، يجب أن يرسل جهاز HAL للكاميرا بنية
camera3_capture_result
بشكل غير متزامن إلى إطار العمل، باستخدام دالة الاستدعاء process_capture_result().
التعريف في السطر
2135
من الملف
camera3.h
.
رقم اللقطة هو عدد صحيح متزايد يضبطه إطار العمل لتحديد هذه اللقطة بشكل فريد. يجب إرجاعه في طلب النتائج، ويتم استخدامه أيضًا لتحديد الطلب في الإشعارات غير المتزامنة المُرسَلة إلى:
camera3_callback_ops_t.notify()
.
التعريف في السطر
2142
من الملف
camera3.h
.
ذاكرة التخزين المؤقت لمصدر الإدخال المطلوب استخدامها لهذا الطلب، إن توفّرت
إذا كان input_buffer فارغًا، يعني ذلك أنّ الطلب هو لالتقاط صورة جديدة من أداة التصوير. إذا كان input_buffer صالحًا، يعني ذلك أنّ الطلب يهدف إلى إعادة معالجة الصورة المضمّنة في input_buffer.
في الحالة الأخيرة، يجب أن يضبط HAL عنصر release_fence في input_buffer على عنصر حدود مزامنة صالح، أو على -1 إذا كان HAL لا يتيح المزامنة، قبل أن تُرجع الدالة process_capture_request() قيمة.
يجب أن ينتظر HAL اكتمال عملية الحصول على حاجز المزامنة الخاص بوحدة تخزين مؤقت للإدخال قبل الوصول إليها.
<= CAMERA_DEVICE_API_VERSION_3_1:
سيتم تسجيل أي وحدة تخزين مؤقت للإدخال مضمّنة هنا في HAL من خلال register_stream_buffers() قبل تضمينها في طلب.
>= CAMERA_DEVICE_API_VERSION_3_2:
لن يتم تسجيل وحدات التخزين المؤقت مسبقًا في HAL. وقد تعيد الطلبات اللاحقة استخدام وحدات التخزين المؤقت أو تقدّم وحدات تخزين مؤقت جديدة تمامًا.
التعريف في السطر
2177
من الملف
camera3.h
.
uint32_t num_output_buffers
|
عدد وحدات تخزين الإخراج لطلب الالتقاط هذا يجب ألا تقلّ القيمة عن 1.
التعريف في السطر
2183
من الملف
camera3.h
.
صفيف من مصفوفات تدفق num_output_buffers، التي سيتم ملؤها ببيانات الصور من عملية الالتقاط/إعادة المعالجة هذه يجب أن ينتظر HAL اكتمال عمليات الحصول على كل ذاكرة تخزين مؤقت للبث قبل الكتابة إليها.
يحصل HAL على ملكية إدخالات buffer_handle_t الفعلية في output_buffers، ولا يصل إطار العمل إليها إلى أن يتم إرجاعها في camera3_capture_result_t.
<= CAMERA_DEVICE_API_VERSION_3_1:
سيتم تسجيل جميع المخازن المؤقتة المضمّنة هنا في HAL من خلال register_stream_buffers() قبل تضمينها في طلب.
>= CAMERA_DEVICE_API_VERSION_3_2:
قد تكون أيّ من وحدات التخزين المؤقت المضمّنة هنا أو جميعها جديدة تمامًا في هذا الطلب (لم يسبق أن رآها HAL).
التعريف في السطر
2204
من الملف
camera3.h
.
يحتوي مخزن الإعدادات على مَعلمات الالتقاط والمعالجة للطلب. كحالة خاصة، يشير مخزن مؤقت للإعدادات NULL إلى أنّ الإعدادات متطابقة مع طلب الالتقاط الذي تم إرساله مؤخرًا. لا يمكن استخدام مخزن مؤقت NULL كأول طلب تم إرساله بعد طلب configure_streams().
التعريف في السطر
2151
من الملف
camera3.h
.
تم إنشاء مستندات هذه البنية من الملف التالي:
-
hardware/libhardware/include/hardware/
camera3.h
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# Android Hardware Abstraction Layer: camera3_capture_request Struct Reference\n\ncamera3_capture_request Struct Reference\n========================================\n\n[Data Fields](#pub-attribs) \ncamera3_capture_request Struct Reference \n\n`\n#include \u003c\n`[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)`\n\u003e\n`\n\n|----------------------------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| uint32_t | [frame_number](/reference/hal/structcamera3__capture__request#a57cc7f4d579276167efca6cf047839b2) |\n| ||\n| const [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\* | [settings](/reference/hal/structcamera3__capture__request#adccd8702a549b9f5fb98afa0c4b44a62) |\n| ||\n| [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [input_buffer](/reference/hal/structcamera3__capture__request#ac1c94bbde71f06911c6abe85f3a44593) |\n| ||\n| uint32_t | [num_output_buffers](/reference/hal/structcamera3__capture__request#a70d2093ddb1078b68c6688b6cf923380) |\n| ||\n| const [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* | [output_buffers](/reference/hal/structcamera3__capture__request#ab1d50229b27a7cf28ff1374be6650fb6) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\ncamera3_capture_request_t:\n\n\nA single request for image capture/buffer reprocessing, sent to the Camera HAL device by the framework in process_capture_request().\n\n\nThe request contains the settings to be used for this capture, and the set of output buffers to write the resulting image data in. It may optionally contain an input buffer, in which case the request is for reprocessing that input buffer instead of capturing a new image with the camera sensor. The capture is identified by the frame_number.\n\n\nIn response, the camera HAL device must send a\n[camera3_capture_result](/reference/hal/structcamera3__capture__result)\nstructure asynchronously to the framework, using the process_capture_result() callback.\n\n\nDefinition at line\n[2135](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\nField Documentation\n-------------------\n\n\n|-----------------------|\n| uint32_t frame_number |\n\n\nThe frame number is an incrementing integer set by the framework to uniquely identify this capture. It needs to be returned in the result call, and is also used to identify the request in asynchronous notifications sent to\n[camera3_callback_ops_t.notify()](/reference/hal/structcamera3__callback__ops#a6d702d6e962f95105b984b17462619b3)\n.\n\n\nDefinition at line\n[2142](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-----------------------------------------------------------------------------------------------------------------------------------------------|\n| [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* input_buffer |\n\n\nThe input stream buffer to use for this request, if any.\n\n\nIf input_buffer is NULL, then the request is for a new capture from the imager. If input_buffer is valid, the request is for reprocessing the image contained in input_buffer.\n\n\nIn the latter case, the HAL must set the release_fence of the input_buffer to a valid sync fence, or to -1 if the HAL does not support sync, before process_capture_request() returns.\n\n\nThe HAL is required to wait on the acquire sync fence of the input buffer before accessing it.\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nAny input buffer included here will have been registered with the HAL through register_stream_buffers() before its inclusion in a request.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nThe buffers will not have been pre-registered with the HAL. Subsequent requests may reuse buffers, or provide entirely new buffers.\n\n\nDefinition at line\n[2177](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-----------------------------|\n| uint32_t num_output_buffers |\n\n\nThe number of output buffers for this capture request. Must be at least 1.\n\n\nDefinition at line\n[2183](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------------|\n| const [camera3_stream_buffer_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h) \\* output_buffers |\n\n\nAn array of num_output_buffers stream buffers, to be filled with image data from this capture/reprocess. The HAL must wait on the acquire fences of each stream buffer before writing to them.\n\n\nThe HAL takes ownership of the actual buffer_handle_t entries in output_buffers; the framework does not access them until they are returned in a camera3_capture_result_t.\n\n\n\\\u003c= CAMERA_DEVICE_API_VERSION_3_1:\n\n\nAll the buffers included here will have been registered with the HAL through register_stream_buffers() before their inclusion in a request.\n\n\n\\\u003e= CAMERA_DEVICE_API_VERSION_3_2:\n\n\nAny or all of the buffers included here may be brand new in this request (having never before seen by the HAL).\n\n\nDefinition at line\n[2204](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n|-------------------------------------------------------------------------------------------------------------------------------------------------|\n| const [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\* settings |\n\n\nThe settings buffer contains the capture and processing parameters for the request. As a special case, a NULL settings buffer indicates that the settings are identical to the most-recently submitted capture request. A NULL buffer cannot be used as the first submitted request after a configure_streams() call.\n\n\nDefinition at line\n[2151](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\nof file\n[camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [camera3.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera3.h)"]]