हमारा सुझाव है कि 27 मार्च, 2025 से AOSP को बनाने और उसमें योगदान देने के लिए, aosp-main
के बजाय android-latest-release
का इस्तेमाल करें. ज़्यादा जानकारी के लिए, AOSP में हुए बदलाव लेख पढ़ें.
संग्रह की मदद से व्यवस्थित रहें
अपनी प्राथमिकताओं के आधार पर, कॉन्टेंट को सेव करें और कैटगरी में बांटें.
camera_device_ops स्ट्रक्चर का रेफ़रंस
#include <
camera.h
>
|
int(*
|
set_preview_window
)(struct
camera_device
*, struct
preview_stream_ops
*window)
|
|
void(*
|
set_callbacks
)(struct
camera_device
*,
camera_notify_callback
notify_cb,
camera_data_callback
data_cb,
camera_data_timestamp_callback
data_cb_timestamp,
camera_request_memory
get_memory, void *user)
|
|
void(*
|
enable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
void(*
|
disable_msg_type
)(struct
camera_device
*, int32_t msg_type)
|
|
int(*
|
msg_type_enabled
)(struct
camera_device
*, int32_t msg_type)
|
|
int(*
|
start_preview
)(struct
camera_device
*)
|
|
void(*
|
stop_preview
)(struct
camera_device
*)
|
|
int(*
|
preview_enabled
)(struct
camera_device
*)
|
|
int(*
|
store_meta_data_in_buffers
)(struct
camera_device
*, int enable)
|
|
int(*
|
start_recording
)(struct
camera_device
*)
|
|
void(*
|
stop_recording
)(struct
camera_device
*)
|
|
int(*
|
recording_enabled
)(struct
camera_device
*)
|
|
void(*
|
release_recording_frame
)(struct
camera_device
*, const void *opaque)
|
|
int(*
|
auto_focus
)(struct
camera_device
*)
|
|
int(*
|
cancel_auto_focus
)(struct
camera_device
*)
|
|
int(*
|
take_picture
)(struct
camera_device
*)
|
|
int(*
|
cancel_picture
)(struct
camera_device
*)
|
|
int(*
|
set_parameters
)(struct
camera_device
*, const char *parms)
|
|
char *(*
|
get_parameters
)(struct
camera_device
*)
|
|
void(*
|
put_parameters
)(struct
camera_device
*, char *)
|
|
int(*
|
send_command
)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
|
void(*
|
release
)(struct
camera_device
*)
|
|
int(*
|
dump
)(struct
camera_device
*, int fd)
|
|
परिभाषा,
camera.h
फ़ाइल की लाइन
99
पर दी गई है.
ऑटो फ़ोकस शुरू करें. फ़ोकस पूरा होने पर, सूचना कॉलबैक रूटीन को CAMERA_MSG_FOCUS के साथ एक बार कॉल किया जाता है. अगर किसी और ऑटो फ़ोकस की ज़रूरत पड़ती है, तो autoFocus() को फिर से कॉल किया जाएगा.
परिभाषा, फ़ाइल
camera.h
की लाइन
227
पर दी गई है.
ऑटो-फ़ोकस की सुविधा रद्द करता है. अगर ऑटो-फ़ोकस की सुविधा अब भी चालू है, तो यह फ़ंक्शन उसे रद्द कर देगा. ऑटो-फ़ोकस की सुविधा चालू हो या नहीं, यह फ़ंक्शन फ़ोकस की पोज़िशन को डिफ़ॉल्ट पर सेट कर देगा. अगर कैमरे में ऑटो-फ़ोकस की सुविधा नहीं है, तो यह सुविधा काम नहीं करेगी.
परिभाषा,
camera.h
फ़ाइल की लाइन
235
पर दी गई है.
takePicture फ़ंक्शन की मदद से शुरू की गई फ़ोटो खींचने की प्रोसेस को रद्द करना. अगर कोई फ़ोटो नहीं ली जा रही है, तो इस तरीके को कॉल करने का कोई फ़ायदा नहीं है.
परिभाषा,
camera.h
फ़ाइल की लाइन
246
पर दी गई है.
void(* disable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
किसी मैसेज या मैसेज के सेट को बंद करना.
disableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल मिलने के बाद, कैमरा एचएएल को अपने क्लाइंट पर भरोसा नहीं करना चाहिए. ऐसा इसलिए, ताकि releaseRecordingFrame() को कॉल करके, कैमरा एचएएल से भेजे गए वीडियो रिकॉर्डिंग फ़्रेम को रिलीज़ किया जा सके. ये फ़्रेम, disableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल से पहले और बाद में भेजे जाते हैं. Camera HAL क्लाइंट को disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने के बाद, किसी भी वीडियो रिकॉर्डिंग फ़्रेम में बदलाव नहीं करना चाहिए या उसे ऐक्सेस नहीं करना चाहिए.
परिभाषा,
camera.h
फ़ाइल की लाइन
132
पर दी गई है
.
कैमरे के हार्डवेयर की स्थिति का डंप
परिभाषा,
camera.h
फ़ाइल की लाइन
282
पर दी गई है.
void(* enable_msg_type)(struct
camera_device
*, int32_t msg_type)
|
यहां दिए गए तीनों फ़ंक्शन में msg_type पैरामीटर का इस्तेमाल किया जाता है. यह include/ui/Camera.h में बताए गए मैसेज का बिटमास्क होता है. यह किसी मैसेज या मैसेज के सेट को चालू करता है.
परिभाषा,
camera.h
फ़ाइल की लाइन
120
पर दी गई है.
कैमरे के पैरामीटर वापस पाएं. अगर put_parameters शून्य नहीं है, तो कैमरा एचएएल से मिले बफ़र को put_parameters की मदद से उसे वापस भेजना होगा.
परिभाषा,
camera.h
फ़ाइल की लाइन
258
पर दी गई है.
int(* msg_type_enabled)(struct
camera_device
*, int32_t msg_type)
|
यह क्वेरी करें कि कोई मैसेज या मैसेज का कोई सेट चालू है या नहीं. ध्यान दें कि यह AND फ़ंक्शन की तरह काम करता है. अगर क्वेरी किए गए किसी भी मैसेज की सूचनाएं बंद हैं, तो यह गलत के तौर पर दिखेगा.
परिभाषा, फ़ाइल
camera.h
की लाइन
139
पर दी गई है.
अगर झलक दिखाने की सुविधा चालू है, तो यह 'सही' दिखाता है.
परिभाषा, फ़ाइल
camera.h
की लाइन
154
पर दी गई है.
get_parameters को कॉल करने पर, कैमरा एचएएल हमें पैरामीटर भेजने के लिए अपनी मेमोरी का इस्तेमाल करता है. अगर put_parameters NULL नहीं है, तो कैमरा एचएएल को मेमोरी वापस करने के लिए, इस फ़ंक्शन का इस्तेमाल करें. अगर put_parameters NULL है, तो मेमोरी खाली करने के लिए आपको free() का इस्तेमाल करना होगा.
परिभाषा,
camera.h
फ़ाइल की लाइन
265
पर दी गई है.
रिकॉर्डिंग की सुविधा चालू होने पर, 'सही' दिखाता है.
परिभाषा,
camera.h
फ़ाइल की लाइन
208
पर दी गई है.
इस ऑब्जेक्ट के मालिकाना हक वाले हार्डवेयर संसाधनों को रिलीज़ करें. ध्यान दें कि यह काम, डिस्ट्रॉयर में
नहीं किया जाता
.
परिभाषा,
camera.h
फ़ाइल की लाइन
277
पर दी गई है.
void(* release_recording_frame)(struct
camera_device
*, const void *opaque)
|
CAMERA_MSG_VIDEO_FRAME से पहले रिकॉर्ड किया गया फ़्रेम रिलीज़ करें.
कैमरा एचएएल क्लाइंट की ज़िम्मेदारी है कि वह कैमरा एचएएल से भेजे गए वीडियो रिकॉर्डिंग फ़्रेम को रिलीज़ करे. ऐसा तब करना होगा, जब कैमरा एचएएल को disableMsgType(CAMERA_MSG_VIDEO_FRAME) का कॉल मिले. disableMsgType(CAMERA_MSG_VIDEO_FRAME) कॉल मिलने के बाद, वीडियो रिकॉर्डिंग फ़्रेम के लाइफ़-साइकल को मैनेज करना, कैमरा एचएएल की ज़िम्मेदारी होती है.
परिभाषा,
camera.h
फ़ाइल की पंक्ति
219
पर दी गई है.
int(* send_command)(struct
camera_device
*, int32_t cmd, int32_t arg1, int32_t arg2)
|
कैमरे के ड्राइवर को निर्देश भेजें.
परिभाषा,
camera.h
फ़ाइल की लाइन
270
पर दी गई है.
सूचना और डेटा कॉलबैक सेट करना
परिभाषा,
camera.h
फ़ाइल की लाइन
105
पर दी गई है.
कैमरे के पैरामीटर सेट करें. अगर कोई पैरामीटर अमान्य है या काम नहीं करता है, तो यह BAD_VALUE दिखाता है.
परिभाषा,
camera.h
फ़ाइल की लाइन
252
पर दी गई है.
वह ANativeWindow सेट करें जिस पर झलक के फ़्रेम भेजे जाते हैं
परिभाषा,
camera.h
फ़ाइल की लाइन
101
पर दी गई है.
झलक मोड चालू करें.
परिभाषा,
camera.h
फ़ाइल की लाइन
144
पर दी गई है.
रिकॉर्ड मोड चालू करें. रिकॉर्ड की गई इमेज उपलब्ध होने पर, उससे जुड़े फ़्रेम के साथ CAMERA_MSG_VIDEO_FRAME मैसेज भेजा जाता है. क्लाइंट के disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने से पहले, कैमरा एचएएल क्लाइंट को releaseRecordingFrame() की मदद से हर रिकॉर्ड फ़्रेम को रिलीज़ करना होगा. क्लाइंट के disableMsgType(CAMERA_MSG_VIDEO_FRAME) को कॉल करने के बाद, वीडियो रिकॉर्डिंग फ़्रेम के लाइफ़-साइकल को मैनेज करने की ज़िम्मेदारी कैमरा एचएएल की होती है. साथ ही, क्लाइंट को किसी भी वीडियो रिकॉर्डिंग फ़्रेम में बदलाव नहीं करना चाहिए या उसे ऐक्सेस नहीं करना चाहिए.
परिभाषा,
camera.h
फ़ाइल की लाइन
198
पर दी गई है.
पहले से चल रही झलक को रोकना.
परिभाषा,
camera.h
फ़ाइल की लाइन
149
पर दी गई है.
पहले से शुरू की गई रिकॉर्डिंग को बंद करना.
परिभाषा,
camera.h
फ़ाइल की लाइन
203
पर दी गई है.
int(* store_meta_data_in_buffers)(struct
camera_device
*, int enable)
|
रिकॉर्डिंग सेशन के लिए, CAMERA_MSG_VIDEO_FRAME के ज़रिए भेजे गए वीडियो बफ़र में मेटाडेटा या असल YUV डेटा सेव करने के लिए, कैमरा एचएएल से अनुरोध करें. अगर इसे कॉल नहीं किया जाता है, तो कैमरा एचएएल का डिफ़ॉल्ट व्यवहार, वीडियो बफ़र में रीयल YUV डेटा को सेव करना है.
यह मेथड असरदार हो, इसके लिए इसे startRecording() से पहले कॉल किया जाना चाहिए.
अगर मेटाडेटा, वीडियो बफ़र में सेव किया जाता है, तो वीडियो बफ़र पाने वाले व्यक्ति को कॉन्टेंट का विश्लेषण करना होता है. साथ ही, बफ़र में मौजूद मेटाडेटा की मदद से, असल फ़्रेम डेटा ढूंढना होता है. यह कैसे किया जाता है, यह इस तरीके के दायरे से बाहर है.
ऐसा हो सकता है कि कुछ कैमरा एचएएल, वीडियो बफ़र में मेटाडेटा सेव करने की सुविधा न देते हों. हालांकि, सभी कैमरा एचएएल को वीडियो बफ़र में रीयल YUV डेटा सेव करने की सुविधा देनी चाहिए. अगर कैमरा एचएएल, वीडियो बफ़र में मेटाडेटा को सेव करने की सुविधा नहीं देता है, तो INVALID_OPERATION को दिखाया जाना चाहिए. कैमरा एचएएल के लिए, सीधे वीडियो एन्कोडर को असल फ़्रेम डेटा के बजाय मेटाडेटा पास करना काफ़ी फ़ायदेमंद होता है. इसकी वजह यह है कि वीडियो का साइज़ बड़ा होने पर, अनकंप्रेस किए गए फ़्रेम डेटा का साइज़ बहुत बड़ा हो सकता है.
-
पैरामीटर
-
चालू करो
|
अगर सही है, तो कैमरा एचएएल को वीडियो बफ़र में मेटाडेटा सेव करने का निर्देश दें. अगर गलत है, तो कैमरा एचएएल को वीडियो बफ़र में रीयल YUV डेटा सेव करने का निर्देश दें.
|
-
रिटर्न
-
OK on success.
परिभाषा,
camera.h
फ़ाइल की लाइन
186
पर दी गई है.
फ़ोटो लें.
परिभाषा,
camera.h
फ़ाइल की लाइन
240
पर दी गई है.
इस स्ट्रक्चर का दस्तावेज़, इस फ़ाइल से जनरेट किया गया था:
-
hardware/libhardware/include/hardware/
camera.h
इस पेज पर मौजूद कॉन्टेंट और कोड सैंपल कॉन्टेंट के लाइसेंस में बताए गए लाइसेंस के हिसाब से हैं. Java और OpenJDK, Oracle और/या इससे जुड़ी हुई कंपनियों के ट्रेडमार्क या रजिस्टर किए हुए ट्रेडमार्क हैं.
आखिरी बार 2025-03-26 (UTC) को अपडेट किया गया.
[[["समझने में आसान है","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-03-26 (UTC) को अपडेट किया गया."],[],[]]