Tham chiếu cấu trúc audio_stream_out

Tham chiếu cấu trúc audio_stream_out

#include < audio.h >

Trường dữ liệu

struct audio_stream phổ thông
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 (* tạm dừng ) (struct audio_stream_out * stream)
int (* tiếp tục ) (struct audio_stream_out * stream)
int (* cống ) (struct audio_stream_out * stream, audio_drain_type_t type)
int (* tuôn ra ) (struct audio_stream_out * stream)
int (* get_presentation_position ) (const struct audio_stream_out * stream, uint64_t * khung, struct timespec * dấu thời gian)

miêu tả cụ thể

audio_stream_out là giao diện trừu tượng cho phần cứng đầu ra âm thanh.

Nó cung cấp thông tin về các thuộc tính khác nhau của trình điều khiển phần cứng đầu ra âm thanh.

Định nghĩa ở dòng 276 của tệp audio.h .

Tài liệu thực địa

struct audio_stream chung

Các phương pháp phổ biến của luồng âm thanh ra ngoài. Đây phải là thành viên đầu tiên của audio_stream_out vì người dùng cấu trúc này sẽ truyền một con trỏ audio_stream tới audio_stream_out trong các ngữ cảnh mà nó được biết là audio_stream tham chiếu đến audio_stream_out .

Định nghĩa ở dòng 282 của tệp audio.h .

int (* cống) (struct audio_stream_out * stream, audio_drain_type_t type)

Yêu cầu thông báo khi dữ liệu được đệm bởi trình điều khiển / phần cứng đã được phát. Nếu set_callback () trước đó đã được gọi để bật chế độ không chặn, thì cống () không được chặn, thay vào đó, nó sẽ trở lại nhanh chóng và việc hoàn thành cống được thông báo thông qua lệnh gọi lại. Nếu set_callback () chưa được gọi, thì thoát () phải chặn cho đến khi hoàn thành. Nếu loại == AUDIO_DRAIN_ALL, quá trình thoát hoàn tất khi tất cả dữ liệu được ghi trước đó đã được phát. Nếu nhập == AUDIO_DRAIN_EARLY_NOTIFY, quá trình thoát hoàn tất ngay trước khi tất cả dữ liệu cho bản nhạc hiện tại phát để có thời gian cho khung thực hiện chuyển đổi rãnh không khoảng cách.

Drain phải trở lại ngay lập tức khi gọi stop () và flush ()

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 372 của tệp audio.h .

int (* flush) (struct audio_stream_out * stream)

Thông báo cho trình điều khiển âm thanh để xóa dữ liệu đã được xếp hàng đợi. Luồng phải được tạm dừng trước khi gọi flush () .

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 380 của tệp audio.h .

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

Trả về độ trễ ước tính của trình điều khiển phần cứng âm thanh tính bằng mili giây.

Định nghĩa ở dòng 287 của tệp audio.h .

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

lấy giờ địa phương tại đó lần ghi tiếp theo vào trình điều khiển âm thanh sẽ được hiển thị. Các đơn vị là micro giây, trong đó kỷ nguyên được quyết định bởi HAL âm thanh cục bộ.

Định nghĩa ở dòng 324 của tệp audio.h .

int (* get_presentation_position) (const struct audio_stream_out * stream, uint64_t * khung, struct timespec * dấu thời gian)

Trả lại số lượng gần đây của số lượng khung âm thanh được hiển thị cho người quan sát bên ngoài. Điều này không bao gồm các khung đã được viết nhưng vẫn còn trong đường dẫn. Số đếm không được đặt lại về 0 khi đầu ra chuyển sang chế độ chờ. Đồng thời trả về giá trị của CLOCK_MONOTONIC kể từ số lượng bản trình bày này. Số lượng trả về dự kiến ​​là 'gần đây', nhưng không cần phải là giá trị gần đây nhất có thể. Tuy nhiên, thời gian liên quan phải tương ứng với bất kỳ số lượng nào được trả về. Ví dụ: giả sử rằng N + M khung đã được trình bày, trong đó M là một số 'nhỏ'. Sau đó, có thể trả về N thay vì N + M và dấu thời gian phải tương ứng với N chứ không phải N + M. Các thuật ngữ 'gần đây' và 'nhỏ' không được định nghĩa. Chúng phản ánh chất lượng của việc thực hiện.

Chỉ 3.0 và cao hơn.

Định nghĩa ở dòng 398 của tệp audio.h .

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

Định nghĩa ở dòng 317 của tệp audio.h .

int (* pause) (struct audio_stream_out * stream)

Thông báo cho trình điều khiển âm thanh để dừng phát lại tuy nhiên phần cứng đã xếp hàng đợi các bộ đệm được giữ lại. Hữu ích để thực hiện tạm dừng / tiếp tục. Tuy nhiên, triển khai trống nếu không được hỗ trợ nên được triển khai cho phần cứng có độ trễ không đáng kể. Ở trạng thái tạm dừng, phần cứng âm thanh vẫn có thể đang sử dụng nguồn. Người dùng có thể cân nhắc việc tạm ngừng cuộc gọi sau khi hết thời gian chờ.

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 345 của tệp audio.h .

int (* sơ yếu lý lịch) (struct audio_stream_out * stream)

Thông báo cho trình điều khiển âm thanh để tiếp tục phát lại sau khi tạm dừng. Trả về lỗi nếu được gọi mà không có tạm dừng phù hợp.

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 353 của tệp audio.h .

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

thiết lập chức năng gọi lại để thông báo hoàn thành ghi và thoát không chặn. Việc gọi hàm này ngụ ý rằng tất cả các hàm write ()thoát () trong tương lai phải không bị chặn và sử dụng lệnh gọi lại để báo hiệu hoàn thành.

Định nghĩa ở dòng 333 của tệp audio.h .

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

Sử dụng phương pháp này trong các trường hợp trộn âm thanh được thực hiện trong phần cứng. Phương pháp này đóng vai trò như một giao diện trực tiếp với phần cứng, cho phép bạn trực tiếp đặt âm lượng như được áp dụng thông qua khung. Phương pháp này có thể tạo ra nhiều đầu ra PCM hoặc codec tăng tốc phần cứng, chẳng hạn như MP3 hoặc AAC.

Định nghĩa ở dòng 296 của tệp audio.h .

ssize_t (* ghi) (struct audio_stream_out * stream, const void * buffer, size_t bytes)

Ghi bộ đệm âm thanh vào trình điều khiển. Trả về số byte được viết hoặc trạng thái phủ định. Nếu ít nhất một khung được ghi thành công trước khi xảy ra lỗi, trình điều khiển nên trả về số byte thành công (ngắn) đó và sau đó trả về lỗi trong lần gọi tiếp theo.

Nếu set_callback () trước đó đã được gọi để bật chế độ không chặn thì write () không được phép chặn. Nó chỉ phải ghi số byte hiện vừa trong bộ đệm trình điều khiển / phần cứng và sau đó trả về số byte này. Nếu kích thước này nhỏ hơn kích thước ghi được yêu cầu thì hàm gọi lại phải được gọi khi có thêm dung lượng trong bộ đệm trình điều khiển / phần cứng.

Định nghĩa ở dòng 311 của tệp audio.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau:
  • phần cứng / libhardware / bao gồm / phần cứng / audio.h
,

Tham chiếu cấu trúc audio_stream_out

Tham chiếu cấu trúc audio_stream_out

#include < audio.h >

Trường dữ liệu

struct audio_stream phổ thông
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 (* tạm dừng ) (struct audio_stream_out * stream)
int (* tiếp tục ) (struct audio_stream_out * stream)
int (* cống ) (struct audio_stream_out * stream, audio_drain_type_t type)
int (* tuôn ra ) (struct audio_stream_out * stream)
int (* get_presentation_position ) (const struct audio_stream_out * stream, uint64_t * khung, struct timespec * dấu thời gian)

miêu tả cụ thể

audio_stream_out là giao diện trừu tượng cho phần cứng đầu ra âm thanh.

Nó cung cấp thông tin về các thuộc tính khác nhau của trình điều khiển phần cứng đầu ra âm thanh.

Định nghĩa ở dòng 276 của tệp audio.h .

Tài liệu thực địa

struct audio_stream chung

Các phương pháp phổ biến của luồng âm thanh ra ngoài. Đây phải là thành viên đầu tiên của audio_stream_out vì người dùng cấu trúc này sẽ truyền một con trỏ audio_stream tới audio_stream_out trong các ngữ cảnh mà nó được biết là audio_stream tham chiếu đến audio_stream_out .

Định nghĩa ở dòng 282 của tệp audio.h .

int (* cống) (struct audio_stream_out * stream, audio_drain_type_t type)

Yêu cầu thông báo khi dữ liệu được đệm bởi trình điều khiển / phần cứng đã được phát. Nếu set_callback () trước đó đã được gọi để bật chế độ không chặn, thì cống () không được chặn, thay vào đó, nó sẽ trở lại nhanh chóng và việc hoàn thành cống được thông báo thông qua lệnh gọi lại. Nếu set_callback () chưa được gọi, thì thoát () phải chặn cho đến khi hoàn thành. Nếu loại == AUDIO_DRAIN_ALL, quá trình thoát hoàn tất khi tất cả dữ liệu được ghi trước đó đã được phát. Nếu nhập == AUDIO_DRAIN_EARLY_NOTIFY, quá trình thoát hoàn tất ngay trước khi tất cả dữ liệu cho bản nhạc hiện tại phát để có thời gian cho khung thực hiện chuyển đổi rãnh không khoảng cách.

Drain phải trở lại ngay lập tức khi gọi stop () và flush ()

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 372 của tệp audio.h .

int (* flush) (struct audio_stream_out * stream)

Thông báo cho trình điều khiển âm thanh để xóa dữ liệu đã được xếp hàng đợi. Luồng phải được tạm dừng trước khi gọi flush () .

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 380 của tệp audio.h .

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

Trả về độ trễ ước tính của trình điều khiển phần cứng âm thanh tính bằng mili giây.

Định nghĩa ở dòng 287 của tệp audio.h .

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

lấy giờ địa phương tại đó lần ghi tiếp theo vào trình điều khiển âm thanh sẽ được hiển thị. Các đơn vị là micro giây, trong đó kỷ nguyên được quyết định bởi HAL âm thanh cục bộ.

Định nghĩa ở dòng 324 của tệp audio.h .

int (* get_presentation_position) (const struct audio_stream_out * stream, uint64_t * khung, struct timespec * dấu thời gian)

Trả lại số lượng gần đây của số lượng khung âm thanh được hiển thị cho người quan sát bên ngoài. Điều này không bao gồm các khung đã được viết nhưng vẫn còn trong đường dẫn. Số đếm không được đặt lại về 0 khi đầu ra chuyển sang chế độ chờ. Đồng thời trả về giá trị của CLOCK_MONOTONIC kể từ số lượng bản trình bày này. Số lượng trả về dự kiến ​​là 'gần đây', nhưng không cần phải là giá trị gần đây nhất có thể. Tuy nhiên, thời gian liên quan phải tương ứng với bất kỳ số lượng nào được trả về. Ví dụ: giả sử rằng N + M khung đã được trình bày, trong đó M là một số 'nhỏ'. Sau đó, có thể trả về N thay vì N + M và dấu thời gian phải tương ứng với N chứ không phải N + M. Các thuật ngữ 'gần đây' và 'nhỏ' không được định nghĩa. Chúng phản ánh chất lượng của việc thực hiện.

Chỉ 3.0 và cao hơn.

Định nghĩa ở dòng 398 của tệp audio.h .

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

Định nghĩa ở dòng 317 của tệp audio.h .

int (* pause) (struct audio_stream_out * stream)

Thông báo cho trình điều khiển âm thanh để dừng phát lại tuy nhiên phần cứng đã xếp hàng đợi các bộ đệm được giữ lại. Hữu ích để thực hiện tạm dừng / tiếp tục. Tuy nhiên, triển khai trống nếu không được hỗ trợ nên được triển khai cho phần cứng có độ trễ không đáng kể. Ở trạng thái tạm dừng, phần cứng âm thanh vẫn có thể đang sử dụng nguồn. Người dùng có thể cân nhắc việc tạm ngừng cuộc gọi sau khi hết thời gian chờ.

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 345 của tệp audio.h .

int (* sơ yếu lý lịch) (struct audio_stream_out * stream)

Thông báo cho trình điều khiển âm thanh để tiếp tục phát lại sau khi tạm dừng. Trả về lỗi nếu được gọi mà không có tạm dừng phù hợp.

Việc triển khai chức năng này là bắt buộc đối với phát lại không tải.

Định nghĩa ở dòng 353 của tệp audio.h .

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

thiết lập chức năng gọi lại để thông báo hoàn thành ghi và thoát không chặn. Việc gọi hàm này ngụ ý rằng tất cả các hàm write ()thoát () trong tương lai phải không bị chặn và sử dụng lệnh gọi lại để báo hiệu hoàn thành.

Định nghĩa ở dòng 333 của tệp audio.h .

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

Sử dụng phương pháp này trong các trường hợp trộn âm thanh được thực hiện trong phần cứng. Phương pháp này đóng vai trò như một giao diện trực tiếp với phần cứng, cho phép bạn trực tiếp đặt âm lượng như được áp dụng thông qua khung. Phương pháp này có thể tạo ra nhiều đầu ra PCM hoặc codec tăng tốc phần cứng, chẳng hạn như MP3 hoặc AAC.

Định nghĩa ở dòng 296 của tệp audio.h .

ssize_t (* ghi) (struct audio_stream_out * stream, const void * buffer, size_t bytes)

Ghi bộ đệm âm thanh vào trình điều khiển. Trả về số byte được viết hoặc trạng thái phủ định. Nếu ít nhất một khung được ghi thành công trước khi xảy ra lỗi, trình điều khiển nên trả về số byte thành công (ngắn) đó và sau đó trả về lỗi trong lần gọi tiếp theo.

Nếu set_callback () trước đó đã được gọi để bật chế độ không chặn thì write () không được phép chặn. Nó chỉ phải ghi số byte hiện vừa trong bộ đệm trình điều khiển / phần cứng và sau đó trả về số byte này. Nếu kích thước này nhỏ hơn kích thước ghi được yêu cầu thì hàm gọi lại phải được gọi khi có thêm dung lượng trong bộ đệm trình điều khiển / phần cứng.

Định nghĩa ở dòng 311 của tệp audio.h .


Tài liệu cho cấu trúc này được tạo từ tệp sau:
  • phần cứng / libhardware / bao gồm / phần cứng / audio.h