audio_stream_out Yapı Referansı

audio_stream_out Yapı Referansı

#include < audio.h >

Veri alanları

struct audio_stream yaygın
uint32_t(* get_latency )(const struct audio_stream_out *stream)
int(* set_volume )(struct audio_stream_out *akım, sola kayar, sağa kayar)
size_t(* yaz )(struct audio_stream_out *stream, const void *buffer, size_t bayt)
int(* get_render_position )(const struct audio_stream_out *akış, uint32_t *dsp_frames)
int(* get_next_write_timestamp )(const struct audio_stream_out *akış, int64_t *zaman damgası)
int(* set_callback )(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)
int(* duraklat )( audio_stream_out yapı *akım)
int(* devam et )(struct audio_stream_out *stream)
int(* boşaltma )(struct audio_stream_out *stream, audio_drain_type_t tipi)
int(* floş )( audio_stream_out yapı *akım)
int(* get_presentation_position )(const struct audio_stream_out *akış, uint64_t *kareler, struct zaman belirtimi *zaman damgası)

Detaylı Açıklama

audio_stream_out , ses çıkış donanımı için soyutlama arabirimidir.

Ses çıkışı donanım sürücüsünün çeşitli özellikleri hakkında bilgi sağlar.

Audio.h dosyasının 276. satırındaki tanım.

Saha Dokümantasyonu

struct audio_stream ortak

Ses akışının yaygın yöntemleri. Bu, audio_stream_out'un ilk üyesi olmalıdır , çünkü bu yapının kullanıcıları, audio_stream'in bir audio_stream_out referansına başvurduğu bilinen bağlamlarda audio_stream_out işaretçisine bir audio_stream yayınlayacaktır .

Audio.h dosyasının 282. satırındaki tanım.

int(* boşaltma)(struct audio_stream_out *stream, audio_drain_type_t türü)

Sürücü/donanım tarafından arabelleğe alınan veriler oynatıldığında bildirim ister. Eğer set_callback() önceden bloke olmayan modu etkinleştirmek için çağrıldıysa, drenaj() bloke etmemelidir, bunun yerine hızlı bir şekilde geri dönmelidir ve geri arama yoluyla tahliyenin tamamlandığı bildirilir. set_callback() çağrılmamışsa, drenaj() tamamlanana kadar engellemelidir. type==AUDIO_DRAIN_ALL ise, önceden yazılmış tüm veriler oynatıldığında boşaltma tamamlanır. type==AUDIO_DRAIN_EARLY_NOTIFY ise, çerçevenin boşluksuz bir parça geçişi gerçekleştirmesine zaman tanımak için boşaltma, mevcut parça için tüm veriler çalınmadan kısa bir süre önce tamamlanır.

Dren, stop() ve flush() çağrısında hemen geri dönmelidir

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 372 satırındaki tanım.

int(* floş)(struct audio_stream_out *stream)

Kuyruğa alınan verileri temizlemesi için ses sürücüsüne bildirimde bulunur. Floş() çağrılmadan önce akış zaten duraklatılmalıdır.

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 380. satırındaki tanım.

uint32_t(* get_latency)(const struct audio_stream_out *stream)

Ses donanımı sürücüsünün tahmini gecikmesini milisaniye cinsinden döndürün.

Audio.h dosyasının 287. satırındaki tanım.

int(* get_next_write_timestamp)(const struct audio_stream_out *akış, int64_t *zaman damgası)

ses sürücüsüne bir sonraki yazma işleminin sunulacağı yerel saati alın. Birimler, dönemin yerel ses HAL tarafından kararlaştırıldığı mikrosaniyedir.

audio.h dosyasının 324. satırındaki tanım.

int(* get_presentation_position)(const struct audio_stream_out *akış, uint64_t *kareler, struct zaman belirtimi *zaman damgası)

Harici bir gözlemciye sunulan ses karelerinin sayısının son sayısını döndürür. Bu, yazılmış ancak hala işlem hattında olan çerçeveleri hariç tutar. Çıkış bekleme moduna girdiğinde sayı sıfırlanmaz. Ayrıca bu sunum sayısı itibariyle CLOCK_MONOTONIC değerini döndürür. Döndürülen sayının 'son' olması beklenir, ancak olası en son değer olması gerekmez. Ancak, ilişkili zaman, döndürülen sayıya karşılık gelmelidir. Örnek: M'nin 'küçük' bir sayı olduğu N+M çerçevelerinin sunulduğunu varsayalım. O zaman N+M yerine N döndürmeye izin verilir ve zaman damgası N+M yerine N'ye karşılık gelmelidir. 'Son' ve 'küçük' terimleri tanımlanmamıştır. Uygulamanın kalitesini yansıtırlar.

Yalnızca 3.0 ve üstü.

Audio.h dosyasının 398. satırındaki tanım.

int(* get_render_position)(const struct audio_stream_out *akış, uint32_t *dsp_frames)

Audio.h dosyasının 317. satırındaki tanım.

int(* duraklat)(struct audio_stream_out *stream)

Ses sürücüsüne kayıttan yürütmeyi durdurmasını bildirir, ancak kuyruğa alınmış arabellekler donanım tarafından tutulur. Duraklatma/devam ettirme için kullanışlıdır. Boş uygulama, desteklenmiyorsa ancak önemsiz olmayan gecikme süresine sahip donanımlar için uygulanmalıdır. Duraklatma durumunda, ses donanımı hala güç kullanıyor olabilir. Kullanıcı, bir zaman aşımından sonra aramayı askıya almayı düşünebilir.

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 345. satırındaki tanım.

int(* özgeçmiş)(struct audio_stream_out *stream)

Bir duraklamanın ardından oynatmaya devam etmesi için ses sürücüsüne bildirimde bulunur. Eşleşen duraklama olmadan çağrılırsa hata döndürür.

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 353. satırındaki tanım.

int(* set_callback)(struct audio_stream_out *stream, stream_callback_t geri arama, void *çerez)

engellenmeyen yazma ve boşaltma işleminin tamamlandığını bildirmek için geri arama işlevini ayarlayın. Bu işlevin çağrılması, gelecekteki tüm write() ve drenaj() öğelerinin engelleyici olmaması ve tamamlandığını bildirmek için geri aramayı kullanması gerektiği anlamına gelir.

Audio.h dosyasının 333. satırındaki tanım.

int(* set_volume)(struct audio_stream_out *akım, sola kayar, sağa kayar)

Donanımda ses karıştırmanın yapıldığı durumlarda bu yöntemi kullanın. Bu yöntem, donanımla doğrudan bir arabirim görevi görür ve birimi çerçeve aracılığıyla doğrudan uygun şekilde ayarlamanıza olanak tanır. Bu yöntem, birden çok PCM çıkışı veya MP3 veya AAC gibi donanım hızlandırmalı kodekler üretebilir.

Audio.h dosyasının 296. satırındaki tanım.

ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t bayt)

Sürücüye ses arabelleği yazın. Yazılan bayt sayısını veya negatif bir durum_t döndürür. Hatadan önce en az bir çerçeve başarıyla yazılmışsa, sürücünün bu başarılı (kısa) bayt sayısını döndürmesi ve ardından sonraki çağrıda bir hata döndürmesi önerilir.

set_callback() önceden engellemesiz modu etkinleştirmek için çağrıldıysa, write() 'ın engellemesine izin verilmez. Yalnızca sürücü/donanım arabelleğine sığan bayt sayısını yazmalı ve ardından bu bayt sayısını döndürmelidir. Bu, istenen yazma boyutundan küçükse, sürücü/donanım arabelleğinde daha fazla alan olduğunda geri arama işlevi çağrılmalıdır.

Audio.h dosyasının 311. satırındaki tanım.


Bu yapı için belgeler aşağıdaki dosyadan oluşturulmuştur:
  • donanım/libhardware/include/hardware/ audio.h
,

audio_stream_out Yapı Referansı

audio_stream_out Yapı Referansı

#include < audio.h >

Veri alanları

struct audio_stream yaygın
uint32_t(* get_latency )(const struct audio_stream_out *stream)
int(* set_volume )(struct audio_stream_out *akım, sola kayar, sağa kayar)
size_t(* yaz )(struct audio_stream_out *stream, const void *buffer, size_t bayt)
int(* get_render_position )(const struct audio_stream_out *akış, uint32_t *dsp_frames)
int(* get_next_write_timestamp )(const struct audio_stream_out *akış, int64_t *zaman damgası)
int(* set_callback )(struct audio_stream_out *stream, stream_callback_t callback, void *cookie)
int(* duraklat )( audio_stream_out yapı *akım)
int(* devam et )(struct audio_stream_out *stream)
int(* boşaltma )(struct audio_stream_out *stream, audio_drain_type_t tipi)
int(* floş )( audio_stream_out yapı *akım)
int(* get_presentation_position )(const struct audio_stream_out *akış, uint64_t *kareler, struct zaman belirtimi *zaman damgası)

Detaylı Açıklama

audio_stream_out , ses çıkış donanımı için soyutlama arabirimidir.

Ses çıkışı donanım sürücüsünün çeşitli özellikleri hakkında bilgi sağlar.

Audio.h dosyasının 276. satırındaki tanım.

Saha Dokümantasyonu

struct audio_stream ortak

Ses akışının yaygın yöntemleri. Bu, audio_stream_out'un ilk üyesi olmalıdır , çünkü bu yapının kullanıcıları, audio_stream'in bir audio_stream_out referansına başvurduğu bilinen bağlamlarda audio_stream_out işaretçisine bir audio_stream yayınlayacaktır .

Audio.h dosyasının 282. satırındaki tanım.

int(* boşaltma)(struct audio_stream_out *stream, audio_drain_type_t türü)

Sürücü/donanım tarafından arabelleğe alınan veriler oynatıldığında bildirim ister. Eğer set_callback() önceden bloke olmayan modu etkinleştirmek için çağrıldıysa, drenaj() bloke etmemelidir, bunun yerine hızlı bir şekilde geri dönmelidir ve geri arama yoluyla tahliyenin tamamlandığı bildirilir. set_callback() çağrılmamışsa, drenaj() tamamlanana kadar engellemelidir. type==AUDIO_DRAIN_ALL ise, önceden yazılmış tüm veriler oynatıldığında boşaltma tamamlanır. type==AUDIO_DRAIN_EARLY_NOTIFY ise, çerçevenin boşluksuz bir parça geçişi gerçekleştirmesine zaman tanımak için boşaltma, mevcut parça için tüm veriler çalınmadan kısa bir süre önce tamamlanır.

Dren, stop() ve flush() çağrısında hemen geri dönmelidir

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 372 satırındaki tanım.

int(* floş)(struct audio_stream_out *stream)

Kuyruğa alınan verileri temizlemesi için ses sürücüsüne bildirimde bulunur. Floş() çağrılmadan önce akış zaten duraklatılmalıdır.

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 380. satırındaki tanım.

uint32_t(* get_latency)(const struct audio_stream_out *stream)

Ses donanımı sürücüsünün tahmini gecikmesini milisaniye cinsinden döndürün.

Audio.h dosyasının 287. satırındaki tanım.

int(* get_next_write_timestamp)(const struct audio_stream_out *akış, int64_t *zaman damgası)

ses sürücüsüne bir sonraki yazma işleminin sunulacağı yerel saati alın. Birimler, dönemin yerel ses HAL tarafından kararlaştırıldığı mikrosaniyedir.

audio.h dosyasının 324. satırındaki tanım.

int(* get_presentation_position)(const struct audio_stream_out *akış, uint64_t *kareler, struct zaman belirtimi *zaman damgası)

Harici bir gözlemciye sunulan ses karelerinin sayısının son sayısını döndürür. Bu, yazılmış ancak hala işlem hattında olan çerçeveleri hariç tutar. Çıkış bekleme moduna girdiğinde sayı sıfırlanmaz. Ayrıca bu sunum sayısı itibariyle CLOCK_MONOTONIC değerini döndürür. Döndürülen sayının 'son' olması beklenir, ancak olası en son değer olması gerekmez. Ancak, ilişkili zaman, döndürülen sayıya karşılık gelmelidir. Örnek: M'nin 'küçük' bir sayı olduğu N+M çerçevelerinin sunulduğunu varsayalım. O zaman N+M yerine N döndürmeye izin verilir ve zaman damgası N+M yerine N'ye karşılık gelmelidir. 'Son' ve 'küçük' terimleri tanımlanmamıştır. Uygulamanın kalitesini yansıtırlar.

Yalnızca 3.0 ve üstü.

Audio.h dosyasının 398. satırındaki tanım.

int(* get_render_position)(const struct audio_stream_out *akış, uint32_t *dsp_frames)

Audio.h dosyasının 317. satırındaki tanım.

int(* duraklat)(struct audio_stream_out *stream)

Ses sürücüsüne kayıttan yürütmeyi durdurmasını bildirir, ancak kuyruğa alınmış arabellekler donanım tarafından tutulur. Duraklatma/devam ettirme için kullanışlıdır. Boş uygulama, desteklenmiyorsa ancak önemsiz olmayan gecikme süresine sahip donanımlar için uygulanmalıdır. Duraklatma durumunda, ses donanımı hala güç kullanıyor olabilir. Kullanıcı, bir zaman aşımından sonra aramayı askıya almayı düşünebilir.

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 345. satırındaki tanım.

int(* özgeçmiş)(struct audio_stream_out *stream)

Bir duraklamanın ardından oynatmaya devam etmesi için ses sürücüsüne bildirimde bulunur. Eşleşen duraklama olmadan çağrılırsa hata döndürür.

Yüksüz oynatma için bu işlevin uygulanması zorunludur.

Audio.h dosyasının 353. satırındaki tanım.

int(* set_callback)(struct audio_stream_out *stream, stream_callback_t geri arama, void *çerez)

engellenmeyen yazma ve boşaltma işleminin tamamlandığını bildirmek için geri arama işlevini ayarlayın. Bu işlevin çağrılması, gelecekteki tüm write() ve drenaj() öğelerinin engelleyici olmaması ve tamamlandığını bildirmek için geri aramayı kullanması gerektiği anlamına gelir.

Audio.h dosyasının 333. satırındaki tanım.

int(* set_volume)(struct audio_stream_out *akım, sola kayar, sağa kayar)

Donanımda ses karıştırmanın yapıldığı durumlarda bu yöntemi kullanın. Bu yöntem, donanımla doğrudan bir arabirim görevi görür ve birimi çerçeve aracılığıyla doğrudan uygun şekilde ayarlamanıza olanak tanır. Bu yöntem, birden çok PCM çıkışı veya MP3 veya AAC gibi donanım hızlandırmalı kodekler üretebilir.

Audio.h dosyasının 296. satırındaki tanım.

ssize_t(* write)(struct audio_stream_out *stream, const void *buffer, size_t bayt)

Sürücüye ses arabelleği yazın. Yazılan bayt sayısını veya negatif bir durum_t döndürür. Hatadan önce en az bir çerçeve başarıyla yazılmışsa, sürücünün bu başarılı (kısa) bayt sayısını döndürmesi ve ardından sonraki çağrıda bir hata döndürmesi önerilir.

set_callback() önceden engellemesiz modu etkinleştirmek için çağrıldıysa, write() 'ın engellemesine izin verilmez. Yalnızca sürücü/donanım arabelleğine sığan bayt sayısını yazmalı ve ardından bu bayt sayısını döndürmelidir. Bu, istenen yazma boyutundan küçükse, sürücü/donanım arabelleğinde daha fazla alan olduğunda geri arama işlevi çağrılmalıdır.

Audio.h dosyasının 311. satırındaki tanım.


Bu yapı için belgeler aşağıdaki dosyadan oluşturulmuştur:
  • donanım/libhardware/include/hardware/ audio.h