audio_stream_out構造体リファレンス

audio_stream_out構造体リファレンス

#include < audio.h >

データフィールド

struct audio_stream一般
uint32_t(* get_latency )(const struct audio_stream_out * stream)
int(* set_volume )(struct audio_stream_out * stream、float left、float right)
ssize_t(* write )(struct audio_stream_out * stream、const void * buffer、size_t bytes)
int(* get_render_position )(const struct audio_stream_out * stream、uint32_t * dsp_frames)
int(* get_next_write_timestamp )(const struct audio_stream_out * stream、int64_t * timestamp)
int(* set_callback )(struct audio_stream_out * stream、 stream_callback_t callback、void * cookie)
int(*一時停止)(struct audio_stream_out * stream)
int(*再開)(struct audio_stream_out * stream)
int(*ドレイン)(struct audio_stream_out * stream、 audio_drain_type_t type)
int(*フラッシュ)(struct audio_stream_out * stream)
int(* get_presentation_position )(const struct audio_stream_out * stream、uint64_t * frames、struct timespec * timestamp)

詳細な説明

audio_stream_outは、オーディオ出力ハードウェアの抽象化インターフェイスです。

オーディオ出力ハードウェアドライバのさまざまなプロパティに関する情報を提供します。

ファイルaudio.h276行で定義されています。

フィールドドキュメント

struct audio_stream common

オーディオストリームアウトの一般的な方法。この構造のユーザーは、 audio_streamaudio_stream_outを参照していることがわかっているコンテキストで、 audio_streamaudio_stream_outポインターにキャストするため、これはaudio_stream_outの最初のメンバーである必要があります。

ファイルaudio.h282行で定義されています。

int(*ドレイン)( structaudio_stream_out * stream、 audio_drain_type_t type)

ドライバ/ハードウェアによってバッファリングされたデータが再生されたときに通知を要求します。非ブロッキングモードを有効にするためにset_callback()が以前に呼び出されている場合、 drain()はブロックしてはならず、代わりにすぐに戻り、コールバックを通じてドレインの完了が通知されます。 set_callback()が呼び出されていない場合、 drain()は完了するまでブロックする必要があります。 type == AUDIO_DRAIN_ALLの場合、以前に書き込まれたすべてのデータが再生されると、ドレインが完了します。 type == AUDIO_DRAIN_EARLY_NOTIFYの場合、現在のトラックのすべてのデータが再生される直前にドレインが完了し、フレームワークがギャップレストラックスイッチを実行できるようになります。

ドレインは、stop()およびflush()呼び出しですぐに戻る必要があります

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h372行で定義されています。

int(* flash)(struct audio_stream_out * stream)

キューに入れられたデータをフラッシュするようにオーディオドライバに通知します。 flush()を呼び出す前に、ストリームを一時停止しておく必要があります。

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h380行で定義されています。

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

オーディオハードウェアドライバーの推定レイテンシーをミリ秒単位で返します。

ファイルaudio.h287行で定義されています。

int(* get_next_write_timestamp)(const struct audio_stream_out * stream、int64_t * timestamp)

オーディオドライバへの次の書き込みが表示される現地時間を取得します。単位はマイクロ秒で、エポックはローカルオーディオHALによって決定されます。

ファイルaudio.h324行で定義されています。

int(* get_presentation_position)(const struct audio_stream_out * stream、uint64_t * frames、struct timespec * timestamp)

外部オブザーバーに提示されたオーディオフレーム数の最近のカウントを返します。これは、書き込まれたがまだパイプラインにあるフレームを除外します。出力がスタンバイになっても、カウントはゼロにリセットされません。また、このプレゼンテーションカウントの時点でのCLOCK_MONOTONICの値を返します。返されるカウントは「最近」であると予想されますが、可能な限り最新の値である必要はありません。ただし、関連付けられた時間は、返されるカウントに対応している必要があります。例:N + Mフレームが提示されていると仮定します。ここで、Mは「小さい」数です。その場合、N + Mの代わりにNを返すことが許可され、タイムスタンプはN+MではなくNに対応する必要があります。 「最近」および「小さい」という用語は定義されていません。それらは実装の品質を反映しています。

3.0以降のみ。

ファイルaudio.h398行で定義されています。

int(* get_render_position)(const struct audio_stream_out * stream、uint32_t * dsp_frames)

ファイルaudio.h317行で定義されています。

int(* pause)(struct audio_stream_out * stream)

再生を停止するようにオーディオドライバに通知しますが、キューに入れられたバッファはハードウェアによって保持されます。一時停止/再開を実装するのに便利です。ただし、サポートされていない場合は空の実装を、重要な遅延のあるハードウェアに実装する必要があります。一時停止状態でも、オーディオハードウェアはまだ電力を使用している可能性があります。ユーザーは、タイムアウト後にサスペンドを呼び出すことを検討できます。

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h345行で定義されています。

int(*履歴書)( structaudio_stream_out * stream)

一時停止後に再生を再開するようにオーディオドライバに通知します。一時停止に一致せずに呼び出された場合はエラーを返します。

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h353行で定義されています。

int(* set_callback)(struct audio_stream_out * stream、 stream_callback_t callback、void * cookie)

非ブロッキング書き込みおよびドレインの完了を通知するためのコールバック関数を設定します。この関数を呼び出すことは、将来のすべてのwrite()およびdrain()が非ブロッキングであり、コールバックを使用して完了を通知する必要があることを意味します。

ファイルaudio.h333行で定義されています。

int(* set_volume)(struct audio_stream_out * stream、float left、float right)

この方法は、ハードウェアでオーディオミキシングが行われる状況で使用します。この方法は、ハードウェアとの直接インターフェースとして機能し、フレームワークを介してボリュームを直接設定できるようにします。この方法では、複数のPCM出力、またはMP3やAACなどのハードウェアアクセラレーションコーデックが生成される場合があります。

ファイルaudio.h296行で定義されています。

ssize_t(* write)(struct audio_stream_out * stream、const void * buffer、size_t bytes)

オーディオバッファをドライバに書き込みます。書き込まれたバイト数、または負のstatus_tを返します。エラーの前に少なくとも1つのフレームが正常に書き込まれた場合、ドライバーはその成功した(短い)バイトカウントを返し、その後の呼び出しでエラーを返すことをお勧めします。

非ブロックモードを有効にするためにset_callback()が以前に呼び出されている場合、 write()はブロックできません。ドライバー/ハードウェアバッファーに現在収まっているバイト数のみを書き込んでから、このバイトカウントを返す必要があります。これが要求された書き込みサイズよりも小さい場合、ドライバー/ハードウェアバッファーでより多くのスペースが使用可能になったときに、コールバック関数を呼び出す必要があります。

ファイルaudio.h311行で定義されています。


この構造体のドキュメントは、次のファイルから生成されました。
  • ハードウェア/libhardware/ include / hardware / audio.h

audio_stream_out構造体リファレンス

audio_stream_out構造体リファレンス

#include < audio.h >

データフィールド

struct audio_stream一般
uint32_t(* get_latency )(const struct audio_stream_out * stream)
int(* set_volume )(struct audio_stream_out * stream、float left、float right)
ssize_t(* write )(struct audio_stream_out * stream、const void * buffer、size_t bytes)
int(* get_render_position )(const struct audio_stream_out * stream、uint32_t * dsp_frames)
int(* get_next_write_timestamp )(const struct audio_stream_out * stream、int64_t * timestamp)
int(* set_callback )(struct audio_stream_out * stream、 stream_callback_t callback、void * cookie)
int(*一時停止)(struct audio_stream_out * stream)
int(*再開)(struct audio_stream_out * stream)
int(*ドレイン)(struct audio_stream_out * stream、 audio_drain_type_t type)
int(*フラッシュ)(struct audio_stream_out * stream)
int(* get_presentation_position )(const struct audio_stream_out * stream、uint64_t * frames、struct timespec * timestamp)

詳細な説明

audio_stream_outは、オーディオ出力ハードウェアの抽象化インターフェイスです。

オーディオ出力ハードウェアドライバのさまざまなプロパティに関する情報を提供します。

ファイルaudio.h276行で定義されています。

フィールドドキュメント

struct audio_stream common

オーディオストリームアウトの一般的な方法。この構造のユーザーは、 audio_streamaudio_stream_outを参照していることがわかっているコンテキストで、 audio_streamaudio_stream_outポインターにキャストするため、これはaudio_stream_outの最初のメンバーである必要があります。

ファイルaudio.h282行で定義されています。

int(*ドレイン)( structaudio_stream_out * stream、 audio_drain_type_t type)

ドライバ/ハードウェアによってバッファリングされたデータが再生されたときに通知を要求します。非ブロッキングモードを有効にするためにset_callback()が以前に呼び出されている場合、 drain()はブロックしてはならず、代わりにすぐに戻り、コールバックを通じてドレインの完了が通知されます。 set_callback()が呼び出されていない場合、 drain()は完了するまでブロックする必要があります。 type == AUDIO_DRAIN_ALLの場合、以前に書き込まれたすべてのデータが再生されると、ドレインが完了します。 type == AUDIO_DRAIN_EARLY_NOTIFYの場合、現在のトラックのすべてのデータが再生される直前にドレインが完了し、フレームワークがギャップレストラックスイッチを実行できるようになります。

ドレインは、stop()およびflush()呼び出しですぐに戻る必要があります

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h372行で定義されています。

int(* flash)(struct audio_stream_out * stream)

キューに入れられたデータをフラッシュするようにオーディオドライバに通知します。 flush()を呼び出す前に、ストリームを一時停止しておく必要があります。

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h380行で定義されています。

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

オーディオハードウェアドライバーの推定レイテンシーをミリ秒単位で返します。

ファイルaudio.h287行で定義されています。

int(* get_next_write_timestamp)(const struct audio_stream_out * stream、int64_t * timestamp)

オーディオドライバへの次の書き込みが表示される現地時間を取得します。単位はマイクロ秒で、エポックはローカルオーディオHALによって決定されます。

ファイルaudio.h324行で定義されています。

int(* get_presentation_position)(const struct audio_stream_out * stream、uint64_t * frames、struct timespec * timestamp)

外部オブザーバーに提示されたオーディオフレーム数の最近のカウントを返します。これは、書き込まれたがまだパイプラインにあるフレームを除外します。出力がスタンバイになっても、カウントはゼロにリセットされません。また、このプレゼンテーションカウントの時点でのCLOCK_MONOTONICの値を返します。返されるカウントは「最近」であると予想されますが、可能な限り最新の値である必要はありません。ただし、関連付けられた時間は、返されるカウントに対応している必要があります。例:N + Mフレームが提示されていると仮定します。ここで、Mは「小さい」数です。その場合、N + Mの代わりにNを返すことが許可され、タイムスタンプはN+MではなくNに対応する必要があります。 「最近」および「小さい」という用語は定義されていません。それらは実装の品質を反映しています。

3.0以降のみ。

ファイルaudio.h398行で定義されています。

int(* get_render_position)(const struct audio_stream_out * stream、uint32_t * dsp_frames)

ファイルaudio.h317行で定義されています。

int(* pause)(struct audio_stream_out * stream)

再生を停止するようにオーディオドライバに通知しますが、キューに入れられたバッファはハードウェアによって保持されます。一時停止/再開を実装するのに便利です。ただし、サポートされていない場合は空の実装を、重要な遅延のあるハードウェアに実装する必要があります。一時停止状態でも、オーディオハードウェアはまだ電力を使用している可能性があります。ユーザーは、タイムアウト後にサスペンドを呼び出すことを検討できます。

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h345行で定義されています。

int(*履歴書)( structaudio_stream_out * stream)

一時停止後に再生を再開するようにオーディオドライバに通知します。一時停止に一致せずに呼び出された場合はエラーを返します。

オフロード再生では、この機能の実装が必須です。

ファイルaudio.h353行で定義されています。

int(* set_callback)(struct audio_stream_out * stream、 stream_callback_t callback、void * cookie)

非ブロッキング書き込みおよびドレインの完了を通知するためのコールバック関数を設定します。この関数を呼び出すことは、将来のすべてのwrite()およびdrain()が非ブロッキングであり、コールバックを使用して完了を通知する必要があることを意味します。

ファイルaudio.h333行で定義されています。

int(* set_volume)(struct audio_stream_out * stream、float left、float right)

この方法は、ハードウェアでオーディオミキシングが行われる状況で使用します。この方法は、ハードウェアとの直接インターフェースとして機能し、フレームワークを介してボリュームを直接設定できるようにします。この方法では、複数のPCM出力、またはMP3やAACなどのハードウェアアクセラレーションコーデックが生成される場合があります。

ファイルaudio.h296行で定義されています。

ssize_t(* write)(struct audio_stream_out * stream、const void * buffer、size_t bytes)

オーディオバッファをドライバに書き込みます。書き込まれたバイト数、または負のstatus_tを返します。エラーの前に少なくとも1つのフレームが正常に書き込まれた場合、ドライバーはその成功した(短い)バイトカウントを返し、その後の呼び出しでエラーを返すことをお勧めします。

非ブロックモードを有効にするためにset_callback()が以前に呼び出されている場合、 write()はブロックできません。ドライバー/ハードウェアバッファーに現在収まっているバイト数のみを書き込んでから、このバイトカウントを返す必要があります。これが要求された書き込みサイズよりも小さい場合、ドライバー/ハードウェアバッファーでより多くのスペースが使用可能になったときに、コールバック関数を呼び出す必要があります。

ファイルaudio.h311行で定義されています。


この構造体のドキュメントは、次のファイルから生成されました。
  • ハードウェア/libhardware/ include / hardware / audio.h