اعتبارًا من 27 آذار (مارس) 2025، ننصحك باستخدام android-latest-release
بدلاً من aosp-main
لإنشاء AOSP والمساهمة فيه. لمزيد من المعلومات، يُرجى الاطّلاع على التغييرات في AOSP.
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
مرجع بنية camera2_frame_queue_dst_ops
#include <
camera2.h
>
بروتوكول "قائمة الانتظار لإخراج اللقطات":
يتضمّن الإطار المحتوى في "قائمة المحتوى التالي". في البداية، تكون قائمة المحتوى التالي فارغة.
-
عندما يكون الجهاز جاهزًا لملء إطار بيانات وصفية للإخراج، يجب إزالة مخزن مؤقت للبيانات الوصفية من الصفّ بالحجم المطلوب.
-
من المفترض أن يملأ ذلك بعد ذلك ذاكرة التخزين المؤقت للبيانات الوصفية، ويضع البيانات في قائمة انتظار اللقطات باستخدام enqueue_frame. يحصل إطار العمل على ملكية الإطار.
-
في حال حدوث خطأ أو طلب إفراغ مسار الإرسال أو إيقاف التشغيل، يجب أن يُرجع الجهاز إلى إطار العمل أيّ لقطات متأثرة تمّت إزالتها من "قائمة الانتظار" من خلال استدعاء cancel_frame.
التعريف في السطر
263
من الملف
camera2.h
.
أعِد ذاكرة تخزين مؤقتة للبيانات الوصفية التي تمّت إزالتها من "قائمة الانتظار" إلى إطار العمل لإعادة استخدامها، ولا تضع علامة عليها بأنّها ممتلئة. استخدِم هذا الخيار عند حدوث أخطاء أو إفراغ قائمة الطلبات الداخلية.
التعريف في السطر
278
من الملف
camera2.h
.
الحصول على ذاكرة تخزين مؤقتة فارغة للبيانات الوصفية لملئها من إطار العمل سيتوفّر في ذاكرة التخزين المؤقت الجديدة للبيانات الوصفية مساحة لإضافة عدد الإدخالات من البيانات الوصفية، بالإضافة إلى مساحة تخزين إضافية بسعة data_bytes. يجب إرجاع اللقطات التي تم إزالة صفها هنا إلى إطار العمل باستخدام cancel_frame أو enqueue_frame.
التعريف في السطر
270
من الملف
camera2.h
.
ضَع إطار بيانات وصفية مكتملًا في قائمة انتظار إخراج الإطارات.
التعريف في السطر
284
من الملف
camera2.h
.
تم إنشاء مستندات هذه البنية من الملف التالي:
-
hardware/libhardware/include/hardware/
camera2.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: camera2_frame_queue_dst_ops Struct Reference\n\ncamera2_frame_queue_dst_ops Struct Reference\n============================================\n\n[Data Fields](#pub-attribs) \ncamera2_frame_queue_dst_ops Struct Reference \n\n`\n#include \u003c\n`[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)`\n\u003e\n`\n\n|--------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| Data Fields ----------- ||\n| int(\\* | [dequeue_frame](/reference/hal/structcamera2__frame__queue__dst__ops#a878d3091ff5be219e3812242928a28ea) )(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, size_t entries, size_t data_bytes, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*\\*buffer) |\n| ||\n| int(\\* | [cancel_frame](/reference/hal/structcamera2__frame__queue__dst__ops#a742d35d2b70e74c60e430ca9b08ae7b4) )(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n| ||\n| int(\\* | [enqueue_frame](/reference/hal/structcamera2__frame__queue__dst__ops#a75baa7e999cc35f9908638c582833fc2) )(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n| ||\n\n\nDetailed Description\n--------------------\n\n\nFrame output queue protocol:\n\n\nThe framework holds the queue and its contents. At start, the queue is empty.\n\n1. When the device is ready to fill an output metadata frame, it must dequeue a metadata buffer of the required size.\n2. It should then fill the metadata buffer, and place it on the frame queue using enqueue_frame. The framework takes ownership of the frame.\n3. In case of an error, a request to flush the pipeline, or shutdown, the device must return any affected dequeued frames to the framework by calling cancel_frame.\n\n\nDefinition at line\n[263](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\nField Documentation\n-------------------\n\n\n|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* cancel_frame)(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n\n\nReturn a dequeued metadata buffer to the framework for reuse; do not mark it as filled. Use when encountering errors, or flushing the internal request queue.\n\n\nDefinition at line\n[278](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\n|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* dequeue_frame)(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, size_t entries, size_t data_bytes, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*\\*buffer) |\n\n\nGet an empty metadata buffer to fill from the framework. The new metadata buffer will have room for entries number of metadata entries, plus data_bytes worth of extra storage. Frames dequeued here must be returned to the framework with either cancel_frame or enqueue_frame.\n\n\nDefinition at line\n[270](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\n|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| int(\\* enqueue_frame)(const struct [camera2_frame_queue_dst_ops](/reference/hal/structcamera2__frame__queue__dst__ops) \\*q, [camera_metadata_t](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera_common.h) \\*buffer) |\n\n\nPlace a completed metadata frame on the frame output queue.\n\n\nDefinition at line\n[284](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\nof file\n[camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)\n.\n\n*** ** * ** ***\n\nThe documentation for this struct was generated from the following file:\n\n- hardware/libhardware/include/hardware/ [camera2.h](https://android.googlesource.com/platform/hardware/libhardware/+/master/include/hardware/camera2.h)"]]