ऑडियो_स्ट्रीम_आउट संरचना संदर्भ

ऑडियो_स्ट्रीम_आउट संरचना संदर्भ

#include < audio.h >

डेटा फ़ील्ड

संरचना ऑडियो_स्ट्रीम सामान्य
uint32_t(* get_latency )(स्थिरांक संरचना ऑडियो_स्ट्रीम_आउट *स्ट्रीम)
पूर्णांक(* सेट_वॉल्यूम )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम, बाएं फ्लोट, दाएं फ्लोट)
ssize_t(* लिखें )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट * स्ट्रीम, कॉन्स्ट शून्य * बफर, साइज_टी बाइट्स)
पूर्णांक(* get_render_position )(const struct Audio_stream_out *stream, uint32_t *dsp_frames)
पूर्णांक(* get_next_write_timestamp )(const struct Audio_stream_out *stream, int64_t *timestamp)
पूर्णांक(* सेट_कॉलबैक )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम, स्ट्रीम_कॉलबैक_टी कॉलबैक, शून्य *कुकी)
पूर्णांक(* रोकें )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम)
पूर्णांक(* बायोडाटा )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम)
पूर्णांक(* ड्रेन )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम, ऑडियो_ड्रेन_टाइप_टी प्रकार)
पूर्णांक(* फ्लश )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम)
पूर्णांक(* get_presentation_position )(const struct Audio_stream_out *stream, uint64_t *frames, struct timepec *timestamp)

विस्तृत विवरण

ऑडियो_स्ट्रीम_आउट ऑडियो आउटपुट हार्डवेयर के लिए एब्स्ट्रैक्शन इंटरफ़ेस है।

यह ऑडियो आउटपुट हार्डवेयर ड्राइवर के विभिन्न गुणों के बारे में जानकारी प्रदान करता है।

फ़ाइल Audio.h की पंक्ति 276 पर परिभाषा।

फ़ील्ड दस्तावेज़ीकरण

स्ट्रक्चर ऑडियो_स्ट्रीम सामान्य

ऑडियो स्ट्रीम आउट के सामान्य तरीके. यह ऑडियो_स्ट्रीम_आउट का पहला सदस्य होना चाहिए क्योंकि इस संरचना के उपयोगकर्ता उन संदर्भों में ऑडियो_स्ट्रीम को ऑडियो_स्ट्रीम_आउट पॉइंटर में डालेंगे जहां यह ज्ञात है कि ऑडियो_स्ट्रीम एक ऑडियो_स्ट्रीम_आउट का संदर्भ देता है।

फ़ाइल Audio.h की पंक्ति 282 पर परिभाषा।

int(* ड्रेन)(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम, ऑडियो_ड्रेन_टाइप_टी प्रकार)

जब ड्राइवर/हार्डवेयर द्वारा बफ़र किया गया डेटा चलाया गया हो तो अधिसूचना का अनुरोध करता है। यदि set_callback() को पहले नॉन-ब्लॉकिंग मोड को सक्षम करने के लिए कॉल किया गया है, तो ड्रेन() को ब्लॉक नहीं करना चाहिए, इसके बजाय इसे जल्दी वापस आना चाहिए और कॉलबैक के माध्यम से ड्रेन के पूरा होने की सूचना दी जाएगी। यदि set_callback() को कॉल नहीं किया गया है, तो ड्रेन() को पूरा होने तक ब्लॉक होना चाहिए। यदि टाइप==AUDIO_DRAIN_ALL, तो पहले लिखा गया सारा डेटा चलने पर ड्रेन पूरी हो जाती है। यदि प्रकार==AUDIO_DRAIN_EARLY_NOTIFY, तो वर्तमान ट्रैक के लिए सभी डेटा चलने से कुछ समय पहले ही ड्रेन पूरा हो जाता है ताकि फ्रेमवर्क को गैपलेस ट्रैक स्विच करने के लिए समय मिल सके।

स्टॉप() और फ्लश() कॉल पर ड्रेन को तुरंत वापस आना चाहिए

ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।

फ़ाइल Audio.h की पंक्ति 372 पर परिभाषा।

int(* फ्लश)(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम)

कतारबद्ध डेटा को फ्लश करने के लिए ऑडियो ड्राइवर को सूचित करता है। फ्लश() को कॉल करने से पहले ही स्ट्रीम को रोक दिया जाना चाहिए।

ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।

फ़ाइल Audio.h की पंक्ति 380 पर परिभाषा।

uint32_t(* get_latency)(स्थिरांक संरचना ऑडियो_स्ट्रीम_आउट *स्ट्रीम)

ऑडियो हार्डवेयर ड्राइवर की अनुमानित विलंबता को मिलीसेकेंड में लौटाएँ।

फ़ाइल Audio.h की पंक्ति 287 पर परिभाषा।

int(* get_next_write_timestamp)(const struct Audio_stream_out *stream, int64_t *timestamp)

वह स्थानीय समय प्राप्त करें जिस पर ऑडियो ड्राइवर को अगला लेखन प्रस्तुत किया जाएगा। इकाइयां माइक्रोसेकंड हैं, जहां युग स्थानीय ऑडियो एचएएल द्वारा तय किया जाता है।

फ़ाइल Audio.h की पंक्ति 324 पर परिभाषा।

int(* get_presentation_position)(const struct Audio_stream_out *stream, uint64_t *frames, struct timepec *timestamp)

बाहरी पर्यवेक्षक को प्रस्तुत किए गए ऑडियो फ़्रेमों की संख्या की हाल की गणना लौटाएँ। इसमें वे फ़्रेम शामिल नहीं हैं जो लिखे जा चुके हैं लेकिन अभी भी पाइपलाइन में हैं। जब आउटपुट स्टैंडबाय में प्रवेश करता है तो गिनती शून्य पर रीसेट नहीं होती है। इस प्रस्तुति गणना के अनुसार CLOCK_MONOTONIC का मान भी लौटाता है। लौटाई गई गिनती 'हाल ही में' होने की उम्मीद है, लेकिन सबसे हालिया संभावित मूल्य होने की आवश्यकता नहीं है। हालाँकि, संबंधित समय जो भी लौटाया गया है उसके अनुरूप होना चाहिए। उदाहरण: मान लें कि N+M फ़्रेम प्रस्तुत किए गए हैं, जहां M एक 'छोटी' संख्या है। फिर N+M के बजाय N लौटाने की अनुमति है, और टाइमस्टैम्प को N+M के बजाय N के अनुरूप होना चाहिए। 'हालिया' और 'छोटा' शब्द परिभाषित नहीं हैं। वे कार्यान्वयन की गुणवत्ता को दर्शाते हैं।

केवल 3.0 और उच्चतर।

फ़ाइल Audio.h की पंक्ति 398 पर परिभाषा।

int(* get_render_position)(const struct Audio_stream_out *stream, uint32_t *dsp_frames)

फ़ाइल Audio.h की पंक्ति 317 पर परिभाषा।

int(* रोकें)(struct ऑडियो_स्ट्रीम_आउट *स्ट्रीम)

ऑडियो ड्राइवर को प्लेबैक रोकने के लिए सूचित करता है, हालांकि कतारबद्ध बफ़र्स हार्डवेयर द्वारा बनाए रखे जाते हैं। पॉज़/रेज़्यूमे लागू करने के लिए उपयोगी। यदि समर्थित नहीं है तो खाली कार्यान्वयन को गैर-तुच्छ विलंबता के साथ हार्डवेयर के लिए लागू किया जाना चाहिए। विराम अवस्था में ऑडियो हार्डवेयर अभी भी पावर का उपयोग कर सकता है। उपयोगकर्ता समय समाप्ति के बाद कॉलिंग निलंबित करने पर विचार कर सकता है।

ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।

फ़ाइल Audio.h की पंक्ति 345 पर परिभाषा।

int(* बायोडाटा)(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम)

विराम के बाद प्लेबैक फिर से शुरू करने के लिए ऑडियो ड्राइवर को सूचित करता है। मिलान विराम के बिना कॉल करने पर त्रुटि लौटाता है।

ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।

फ़ाइल Audio.h की पंक्ति 353 पर परिभाषा।

int(* set_callback)(struct ऑडियो_स्ट्रीम_आउट *स्ट्रीम, स्ट्रीम_कॉलबैक_t कॉलबैक, शून्य *कुकी)

नॉन-ब्लॉकिंग राइट और ड्रेन के पूरा होने की सूचना देने के लिए कॉलबैक फ़ंक्शन सेट करें। इस फ़ंक्शन को कॉल करने का तात्पर्य है कि भविष्य के सभी राइट() और ड्रेन() को गैर-अवरुद्ध होना चाहिए और पूरा होने का संकेत देने के लिए कॉलबैक का उपयोग करना चाहिए।

फ़ाइल Audio.h की पंक्ति 333 पर परिभाषा।

int(* set_volume)(struct Audio_stream_out *स्ट्रीम, बायीं ओर फ़्लोट, दायीं ओर फ़्लोट)

इस पद्धति का उपयोग उन स्थितियों में करें जहां हार्डवेयर में ऑडियो मिश्रण किया जाता है। यह विधि हार्डवेयर के साथ सीधे इंटरफ़ेस के रूप में कार्य करती है, जिससे आप फ्रेमवर्क के माध्यम से सीधे वॉल्यूम सेट कर सकते हैं। यह विधि एकाधिक पीसीएम आउटपुट या एमपी3 या एएसी जैसे हार्डवेयर त्वरित कोडेक्स उत्पन्न कर सकती है।

फ़ाइल Audio.h की पंक्ति 296 पर परिभाषा।

ssize_t(* लिखें)(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम, कॉन्स्ट शून्य *बफर, साइज_टी बाइट्स)

ड्राइवर को ऑडियो बफ़र लिखें। लिखे गए बाइट्स की संख्या, या एक नकारात्मक status_t लौटाता है। यदि त्रुटि से पहले कम से कम एक फ्रेम सफलतापूर्वक लिखा गया था, तो यह सुझाव दिया जाता है कि ड्राइवर उस सफल (छोटी) बाइट गिनती को वापस कर दे और फिर बाद की कॉल में एक त्रुटि लौटा दे।

यदि set_callback() को पहले नॉन-ब्लॉकिंग मोड को सक्षम करने के लिए कॉल किया गया है तो राइट() को ब्लॉक करने की अनुमति नहीं है। इसे केवल बाइट्स की संख्या लिखनी होगी जो वर्तमान में ड्राइवर/हार्डवेयर बफर में फिट हैं और फिर इस बाइट गिनती को वापस कर दें। यदि यह अनुरोधित लेखन आकार से कम है तो ड्राइवर/हार्डवेयर बफ़र में अधिक स्थान उपलब्ध होने पर कॉलबैक फ़ंक्शन को कॉल किया जाना चाहिए।

फ़ाइल Audio.h की पंक्ति 311 पर परिभाषा।


इस संरचना के लिए दस्तावेज़ीकरण निम्नलिखित फ़ाइल से तैयार किया गया था:
  • हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ ऑडियो.एच