audio_stream_out 구조체 참조

audio_stream_out 구조체 참조

#include < audio.h >

데이터 필드

구조체 audio_stream 흔한
uint32_t(* get_latency )(const struct audio_stream_out *stream)
정수(* set_volume )(struct audio_stream_out *stream, 왼쪽 부동, 오른쪽 부동)
ssize_t(* 쓰기 )(struct audio_stream_out *stream, const void *buffer, size_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 콜백, void *cookie)
정수(* 일시 중지 )(struct audio_stream_out *stream)
정수(* 재개 )(struct audio_stream_out *stream)
정수(* 배수 )(struct audio_stream_out *stream, audio_drain_type_t 유형)
정수(* 플러시 )(struct audio_stream_out *stream)
정수(* get_presentation_position )(const struct audio_stream_out *stream, uint64_t *frames, struct timespec *timestamp)

상세 설명

audio_stream_out은 오디오 출력 하드웨어에 대한 추상화 인터페이스입니다.

오디오 출력 하드웨어 드라이버의 다양한 속성에 대한 정보를 제공합니다.

audio.h 파일의 276 번째 줄에 정의되어 있습니다.

현장 문서

구조체 audio_stream 공통

오디오 스트림 출력의 일반적인 방법. audio_stream이 audio_stream_out 참조하는 것으로 알려진 컨텍스트에서 이 구조의 사용자가 audio_stream을 audio_stream_out 포인터로 캐스팅하므로 이는 audio_stream_out 의 첫 번째 멤버 여야 합니다.

audio.h 파일의 282 번째 줄에 정의되어 있습니다.

int(* 배수)(struct audio_stream_out *stream, audio_drain_type_t 유형)

드라이버/하드웨어에 의해 버퍼링된 데이터가 재생되면 알림을 요청합니다. 비차단 모드를 활성화하기 위해 이전에 set_callback()을 호출한 경우, 배수()는 차단되어서는 안 되며, 대신 신속하게 반환되어야 하며 배수 완료는 콜백을 통해 통지됩니다. set_callback()이 호출되지 않은 경우 Drain()은 완료될 때까지 차단되어야 합니다. type==AUDIO_DRAIN_ALL인 경우 이전에 기록된 모든 데이터가 재생되면 배수가 완료됩니다. type==AUDIO_DRAIN_EARLY_NOTIFY인 경우 프레임워크가 간격 없는 트랙 전환을 수행할 시간을 허용하기 위해 현재 트랙의 모든 데이터가 재생되기 직전에 드레인이 완료됩니다.

stop() 및 플러시() 호출 시 배수가 즉시 반환되어야 합니다.

오프로드된 재생에는 이 기능의 구현이 필수입니다.

audio.h 파일의 372 번째 줄에 정의되어 있습니다.

int(* 플러시)(struct audio_stream_out *stream)

대기 중인 데이터를 플러시하도록 오디오 드라이버에 알립니다. 플러시() 를 호출하기 전에 스트림이 이미 일시 중지되어 있어야 합니다.

오프로드된 재생에는 이 기능의 구현이 필수입니다.

audio.h 파일의 380 번째 줄에 정의되어 있습니다.

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

오디오 하드웨어 드라이버 예상 대기 시간을 밀리초 단위로 반환합니다.

audio.h 파일의 287 번째 줄에 정의되어 있습니다.

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

오디오 드라이버에 대한 다음 쓰기가 표시될 현지 시간을 가져옵니다. 단위는 마이크로초이며, 에포크는 로컬 오디오 HAL에 의해 결정됩니다.

audio.h 파일의 324 번째 줄에 정의되어 있습니다.

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

외부 관찰자에게 제시된 오디오 프레임 수의 최근 개수를 반환합니다. 이는 작성되었지만 아직 파이프라인에 있는 프레임을 제외합니다. 출력이 대기 상태가 되어도 카운트는 0으로 재설정되지 않습니다. 또한 이 프레젠테이션 카운트를 기준으로 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_stream_out *stream)

재생을 중지하도록 오디오 드라이버에 알립니다. 그러나 대기 중인 버퍼는 하드웨어에 의해 유지됩니다. 일시정지/재개 구현에 유용합니다. 그러나 지원되지 않는 경우 빈 구현은 적지 않은 대기 시간이 있는 하드웨어에 대해 구현되어야 합니다. 일시 정지 상태에서도 오디오 하드웨어는 여전히 전력을 사용하고 있을 수 있습니다. 사용자는 시간 초과 후 일시 중단 호출을 고려할 수 있습니다.

오프로드된 재생에는 이 기능의 구현이 필수입니다.

audio.h 파일의 345 번째 줄에 정의되어 있습니다.

int(* 이력서)(struct audio_stream_out *stream)

일시 정지 후 재생을 재개하도록 오디오 드라이버에 알립니다. 일치하는 일시정지 없이 호출되면 오류를 반환합니다.

오프로드된 재생에는 이 기능의 구현이 필수입니다.

audio.h 파일의 353 번째 줄에 정의되어 있습니다.

int(* set_callback)(struct audio_stream_out *stream, stream_callback_t 콜백, void *cookie)

비차단 쓰기 및 배수 완료를 알리는 콜백 함수를 설정합니다. 이 함수를 호출한다는 것은 앞으로의 모든 write()Drain()이 비차단이어야 하고 신호 완료를 위해 콜백을 사용해야 함을 의미합니다.

audio.h 파일의 333 번째 줄에 정의되어 있습니다.

int(* set_volume)(struct audio_stream_out *stream, 왼쪽 부동, 오른쪽 부동)

하드웨어에서 오디오 믹싱이 수행되는 상황에서 이 방법을 사용하십시오. 이 방법은 하드웨어와의 직접적인 인터페이스 역할을 하므로 프레임워크를 통해 볼륨을 직접 설정할 수 있습니다. 이 방법을 사용하면 여러 PCM 출력이나 MP3 또는 AAC와 같은 하드웨어 가속 코덱을 생성할 수 있습니다.

audio.h 파일의 296 번째 줄에 정의되어 있습니다.

ssize_t(* 쓰기)(struct audio_stream_out *stream, const void *buffer, size_t 바이트)

드라이버에 오디오 버퍼를 씁니다. 쓴 바이트 수 또는 음수 status_t를 반환합니다. 오류가 발생하기 전에 하나 이상의 프레임이 성공적으로 기록된 경우 드라이버가 해당 성공적인(짧은) 바이트 수를 반환한 다음 후속 호출에서 오류를 반환하는 것이 좋습니다.

비차단 모드를 활성화하기 위해 이전에 set_callback()을 호출한 경우 write()는 차단할 수 없습니다. 현재 드라이버/하드웨어 버퍼에 맞는 바이트 수만 쓴 다음 이 바이트 수를 반환해야 합니다. 요청된 쓰기 크기보다 작으면 드라이버/하드웨어 버퍼에 더 많은 공간을 사용할 수 있을 때 콜백 함수를 호출해야 합니다.

audio.h 파일의 311 번째 줄에 정의되어 있습니다.


이 구조체에 대한 문서는 다음 파일에서 생성되었습니다.
  • hardware/libhardware/include/hardware/ audio.h