audio_stream_out संरचना संदर्भ
#include < audio.h >
डेटा फ़ील्ड | |
स्ट्रक्चर ऑडियो_स्ट्रीम | सामान्य |
uint32_t(* | get_latency )(const struct audio_stream_out *stream) |
इंट (* | set_volume )(struct audio_stream_out *stream, फ्लोट लेफ्ट, फ्लोट राइट) |
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) |
इंट (* | set_callback )(struct audio_stream_out *stream, stream_callback_t कॉलबैक, शून्य *कुकी) |
इंट (* | रोकें ) (संरचना audio_stream_out *stream) |
इंट (* | रिज्यूमे )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम) |
इंट (* | ड्रेन )(स्ट्रक्चर audio_stream_out *stream, audio_drain_type_t type) |
इंट (* | फ्लश )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम) |
इंट (* | get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
विस्तृत विवरण
audio_stream_out ऑडियो आउटपुट हार्डवेयर के लिए अमूर्त इंटरफ़ेस है।
यह ऑडियो आउटपुट हार्डवेयर ड्राइवर के विभिन्न गुणों के बारे में जानकारी प्रदान करता है।
फील्ड दस्तावेज़ीकरण
स्ट्रक्चर ऑडियो_स्ट्रीम कॉमन |
ऑडियो स्ट्रीम के सामान्य तरीके बाहर। यह audio_stream_out का पहला सदस्य होना चाहिए क्योंकि इस संरचना के उपयोगकर्ता audio_stream को audio_stream_out पॉइंटर में उन संदर्भों में कास्ट करेंगे जहां यह ज्ञात है कि audio_stream एक audio_stream_out संदर्भित करता है ।
int(* ड्रेन)(स्ट्रक्चर audio_stream_out *stream, audio_drain_type_t type) |
ड्राइवर/हार्डवेयर द्वारा बफ़र किए गए डेटा को चलाए जाने पर सूचना का अनुरोध करता है। यदि सेट_कॉलबैक () को पहले गैर-अवरुद्ध मोड को सक्षम करने के लिए कहा गया है, तो नाली () को अवरुद्ध नहीं करना चाहिए, इसके बजाय इसे जल्दी से वापस करना चाहिए और कॉलबैक के माध्यम से नाली के पूरा होने की सूचना दी जाती है। यदि set_callback () को नहीं कहा गया है, तो ड्रेन () को पूरा होने तक ब्लॉक होना चाहिए। यदि टाइप == AUDIO_DRAIN_ALL, ड्रेन तब पूरा होता है जब पहले से लिखे गए सभी डेटा चलाए जाते हैं। यदि टाइप==AUDIO_DRAIN_EARLY_NOTIFY, तो ड्रेन वर्तमान ट्रैक के सभी डेटा के चलने से कुछ समय पहले पूरा हो जाता है ताकि फ्रेमवर्क को गैपलेस ट्रैक स्विच करने के लिए समय मिल सके।
स्टॉप () और फ्लश () कॉल पर तुरंत वापस आना चाहिए
ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।
इंट (* फ्लश) (स्ट्रक्चर ऑडियो_स्ट्रीम_आउट * स्ट्रीम) |
uint32_t(* get_latency)(const struct audio_stream_out *stream) |
int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp) |
int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
बाहरी पर्यवेक्षक को प्रस्तुत किए गए ऑडियो फ़्रेमों की संख्या की हाल की गणना लौटाएं। इसमें वे फ्रेम शामिल नहीं हैं जो लिखे जा चुके हैं लेकिन अभी भी पाइपलाइन में हैं। जब आउटपुट स्टैंडबाय में प्रवेश करता है तो गिनती शून्य पर रीसेट नहीं होती है। इस प्रस्तुति संख्या के अनुसार CLOCK_MONOTONIC का मान भी लौटाता है। लौटाई गई गणना 'हाल ही में' होने की उम्मीद है, लेकिन सबसे हालिया संभावित मूल्य होने की आवश्यकता नहीं है। हालांकि, संबंधित समय जो भी गिनती लौटाई जाती है, उसके अनुरूप होना चाहिए। उदाहरण: मान लें कि N+M फ़्रेम प्रस्तुत किए गए हैं, जहाँ M एक 'छोटी' संख्या है। फिर एन + एम के बजाय एन को वापस करने की अनुमति है, और टाइमस्टैम्प को एन + एम के बजाय एन के अनुरूप होना चाहिए। 'हालिया' और 'छोटा' शब्द परिभाषित नहीं हैं। वे कार्यान्वयन की गुणवत्ता को दर्शाते हैं।
केवल 3.0 और उच्चतर।
int(* get_render_position)(const struct audio_stream_out *stream, uint32_t *dsp_frames) |
इंट (* पॉज़) (स्ट्रक्चर ऑडियो_स्ट्रीम_आउट * स्ट्रीम) |
प्लेबैक को रोकने के लिए ऑडियो ड्राइवर को सूचित करता है हालांकि कतारबद्ध बफर हार्डवेयर द्वारा बनाए रखा जाता है। विराम/फिर से शुरू करने को लागू करने के लिए उपयोगी। खाली कार्यान्वयन यदि समर्थित नहीं है तो गैर-तुच्छ विलंबता वाले हार्डवेयर के लिए लागू किया जाना चाहिए। विराम अवस्था में ऑडियो हार्डवेयर अभी भी शक्ति का उपयोग कर रहा होगा। उपयोगकर्ता समयबाह्य होने के बाद सस्पेंड को कॉल करने पर विचार कर सकता है।
ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।
इंट (* रिज्यूमे) (स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम) |
int(* set_callback)(struct audio_stream_out *stream, stream_callback_t कॉलबैक, शून्य *कुकी) |
int(* set_volume)(struct audio_stream_out *stream, फ्लोट लेफ्ट, फ्लोट राइट) |
इस पद्धति का उपयोग उन स्थितियों में करें जहां हार्डवेयर में ऑडियो मिक्सिंग की जाती है। यह विधि हार्डवेयर के साथ सीधे इंटरफ़ेस के रूप में कार्य करती है, जिससे आप सीधे ढांचे के माध्यम से वॉल्यूम सेट कर सकते हैं। यह विधि कई PCM आउटपुट या हार्डवेयर त्वरित कोडेक, जैसे MP3 या AAC का उत्पादन कर सकती है।
ssize_t(*लिखना)(struct audio_stream_out *stream, const void *buffer, size_tbytes) |
ड्राइवर को ऑडियो बफर लिखें। लिखित बाइट्स की संख्या, या ऋणात्मक स्थिति_टी देता है। यदि त्रुटि से पहले कम से कम एक फ्रेम सफलतापूर्वक लिखा गया था, तो यह सुझाव दिया जाता है कि ड्राइवर उस सफल (लघु) बाइट गिनती को वापस कर दे और फिर बाद की कॉल में एक त्रुटि लौटाए।
यदि सेट_कॉलबैक () को पहले गैर-अवरुद्ध मोड को सक्षम करने के लिए कहा गया है, तो राइट () को ब्लॉक करने की अनुमति नहीं है। इसे केवल बाइट्स की संख्या लिखनी चाहिए जो वर्तमान में ड्राइवर/हार्डवेयर बफर में फिट होती है और फिर इस बाइट गिनती को वापस कर देती है। यदि यह अनुरोधित लिखने के आकार से कम है, तो ड्राइवर/हार्डवेयर बफर में अधिक स्थान उपलब्ध होने पर कॉलबैक फ़ंक्शन को कॉल किया जाना चाहिए।
इस संरचना के लिए प्रलेखन निम्न फ़ाइल से उत्पन्न किया गया था:
- हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ ऑडियो.एच
audio_stream_out संरचना संदर्भ
#include < audio.h >
डेटा फ़ील्ड | |
स्ट्रक्चर ऑडियो_स्ट्रीम | सामान्य |
uint32_t(* | get_latency )(const struct audio_stream_out *stream) |
इंट (* | set_volume )(struct audio_stream_out *stream, फ्लोट लेफ्ट, फ्लोट राइट) |
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) |
इंट (* | set_callback )(struct audio_stream_out *stream, stream_callback_t कॉलबैक, शून्य *कुकी) |
इंट (* | रोकें ) (संरचना audio_stream_out *stream) |
इंट (* | रिज्यूमे )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम) |
इंट (* | ड्रेन )(स्ट्रक्चर audio_stream_out *stream, audio_drain_type_t type) |
इंट (* | फ्लश )(स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम) |
इंट (* | get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
विस्तृत विवरण
audio_stream_out ऑडियो आउटपुट हार्डवेयर के लिए अमूर्त इंटरफ़ेस है।
यह ऑडियो आउटपुट हार्डवेयर ड्राइवर के विभिन्न गुणों के बारे में जानकारी प्रदान करता है।
फील्ड दस्तावेज़ीकरण
स्ट्रक्चर ऑडियो_स्ट्रीम कॉमन |
ऑडियो स्ट्रीम के सामान्य तरीके बाहर। यह audio_stream_out का पहला सदस्य होना चाहिए क्योंकि इस संरचना के उपयोगकर्ता audio_stream को audio_stream_out पॉइंटर में उन संदर्भों में कास्ट करेंगे जहां यह ज्ञात है कि audio_stream एक audio_stream_out संदर्भित करता है ।
int(* ड्रेन)(स्ट्रक्चर audio_stream_out *stream, audio_drain_type_t type) |
ड्राइवर/हार्डवेयर द्वारा बफ़र किए गए डेटा को चलाए जाने पर सूचना का अनुरोध करता है। यदि सेट_कॉलबैक () को पहले गैर-अवरुद्ध मोड को सक्षम करने के लिए कहा गया है, तो नाली () को अवरुद्ध नहीं करना चाहिए, इसके बजाय इसे जल्दी से वापस करना चाहिए और कॉलबैक के माध्यम से नाली के पूरा होने की सूचना दी जाती है। यदि set_callback () को नहीं कहा गया है, तो ड्रेन () को पूरा होने तक ब्लॉक होना चाहिए। यदि टाइप == AUDIO_DRAIN_ALL, ड्रेन तब पूरा होता है जब पहले से लिखे गए सभी डेटा चलाए जाते हैं। यदि टाइप==AUDIO_DRAIN_EARLY_NOTIFY, तो ड्रेन वर्तमान ट्रैक के सभी डेटा के चलने से कुछ समय पहले पूरा हो जाता है ताकि फ्रेमवर्क को गैपलेस ट्रैक स्विच करने के लिए समय मिल सके।
स्टॉप () और फ्लश () कॉल पर तुरंत वापस आना चाहिए
ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।
इंट (* फ्लश) (स्ट्रक्चर ऑडियो_स्ट्रीम_आउट * स्ट्रीम) |
uint32_t(* get_latency)(const struct audio_stream_out *stream) |
int(* get_next_write_timestamp)(const struct audio_stream_out *stream, int64_t *timestamp) |
int(* get_presentation_position)(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp) |
बाहरी पर्यवेक्षक को प्रस्तुत किए गए ऑडियो फ़्रेमों की संख्या की हाल की गणना लौटाएं। इसमें वे फ्रेम शामिल नहीं हैं जो लिखे जा चुके हैं लेकिन अभी भी पाइपलाइन में हैं। जब आउटपुट स्टैंडबाय में प्रवेश करता है तो गिनती शून्य पर रीसेट नहीं होती है। इस प्रस्तुति संख्या के अनुसार CLOCK_MONOTONIC का मान भी लौटाता है। लौटाई गई गणना 'हाल ही में' होने की उम्मीद है, लेकिन सबसे हालिया संभावित मूल्य होने की आवश्यकता नहीं है। हालांकि, संबंधित समय जो भी गिनती लौटाई जाती है, उसके अनुरूप होना चाहिए। उदाहरण: मान लें कि N+M फ़्रेम प्रस्तुत किए गए हैं, जहाँ M एक 'छोटी' संख्या है। फिर एन + एम के बजाय एन को वापस करने की अनुमति है, और टाइमस्टैम्प को एन + एम के बजाय एन के अनुरूप होना चाहिए। 'हालिया' और 'छोटा' शब्द परिभाषित नहीं हैं। वे कार्यान्वयन की गुणवत्ता को दर्शाते हैं।
केवल 3.0 और उच्चतर।
int(* get_render_position)(const struct audio_stream_out *stream, uint32_t *dsp_frames) |
इंट (* पॉज़) (स्ट्रक्चर ऑडियो_स्ट्रीम_आउट * स्ट्रीम) |
प्लेबैक को रोकने के लिए ऑडियो ड्राइवर को सूचित करता है हालांकि कतारबद्ध बफर हार्डवेयर द्वारा बनाए रखा जाता है। विराम/फिर से शुरू करने को लागू करने के लिए उपयोगी। खाली कार्यान्वयन यदि समर्थित नहीं है तो गैर-तुच्छ विलंबता वाले हार्डवेयर के लिए लागू किया जाना चाहिए। विराम अवस्था में ऑडियो हार्डवेयर अभी भी शक्ति का उपयोग कर रहा होगा। उपयोगकर्ता समयबाह्य होने के बाद सस्पेंड को कॉल करने पर विचार कर सकता है।
ऑफलोडेड प्लेबैक के लिए इस फ़ंक्शन का कार्यान्वयन अनिवार्य है।
इंट (* रिज्यूमे) (स्ट्रक्चर ऑडियो_स्ट्रीम_आउट *स्ट्रीम) |
int(* set_callback)(struct audio_stream_out *stream, stream_callback_t कॉलबैक, शून्य *कुकी) |
int(* set_volume)(struct audio_stream_out *stream, फ्लोट लेफ्ट, फ्लोट राइट) |
इस पद्धति का उपयोग उन स्थितियों में करें जहां हार्डवेयर में ऑडियो मिक्सिंग की जाती है। यह विधि हार्डवेयर के साथ सीधे इंटरफ़ेस के रूप में कार्य करती है, जिससे आप सीधे ढांचे के माध्यम से वॉल्यूम सेट कर सकते हैं। यह विधि कई PCM आउटपुट या हार्डवेयर त्वरित कोडेक, जैसे MP3 या AAC का उत्पादन कर सकती है।
ssize_t(*लिखना)(struct audio_stream_out *stream, const void *buffer, size_tbytes) |
ड्राइवर को ऑडियो बफर लिखें। लिखित बाइट्स की संख्या, या ऋणात्मक स्थिति_टी देता है। यदि त्रुटि से पहले कम से कम एक फ्रेम सफलतापूर्वक लिखा गया था, तो यह सुझाव दिया जाता है कि ड्राइवर उस सफल (लघु) बाइट गिनती को वापस कर दे और फिर बाद की कॉल में एक त्रुटि लौटाए।
यदि सेट_कॉलबैक () को पहले गैर-अवरुद्ध मोड को सक्षम करने के लिए कहा गया है, तो राइट () को ब्लॉक करने की अनुमति नहीं है। इसे केवल बाइट्स की संख्या लिखनी चाहिए जो वर्तमान में ड्राइवर/हार्डवेयर बफर में फिट होती है और फिर इस बाइट गिनती को वापस कर देती है। यदि यह अनुरोधित लिखने के आकार से कम है, तो ड्राइवर/हार्डवेयर बफर में अधिक स्थान उपलब्ध होने पर कॉलबैक फ़ंक्शन को कॉल किया जाना चाहिए।
इस संरचना के लिए प्रलेखन निम्न फ़ाइल से उत्पन्न किया गया था:
- हार्डवेयर/लिबहार्डवेयर/शामिल/हार्डवेयर/ ऑडियो.एच