Kể từ Android 10 (API cấp 29) trở lên, sẽ có các phương thức trong
MediaCodecInfo
đó
tiết lộ thêm thông tin về bộ mã hoá và giải mã:
isSoftwareOnly()
- Trả về giá trị true nếu bộ mã hoá và giải mã chỉ chạy trong phần mềm. Bộ mã hoá và giải mã phần mềm không đảm bảo về hiệu suất kết xuất.
isHardwareAccelerated()
- Trả về giá trị true nếu một bộ mã hoá và giải mã được tăng tốc bằng phần cứng.
isVendor()
- Trả về giá trị true nếu bộ mã hoá và giải mã do nhà cung cấp thiết bị cung cấp hoặc trả về giá trị false nếu có cung cấp nền tảng Android.
isAlias()
MediaCodecList
có thể chứa các mục bổ sung cho cùng một bộ mã hoá và giải mã cơ bản bằng cách sử dụng/các tên bộ mã hoá và giải mã thay thế (email đại diện/es). Phương thức này trả về giá trị true nếu bộ mã hoá và giải mã trong mục này là bí danh của một bộ mã hoá và giải mã khác.
Ngoài ra,
MediaCodec.getCanonicalName()
trả về tên bộ mã hoá và giải mã cơ bản cho các bộ mã hoá và giải mã được tạo qua một bí danh.
Điểm thành tích
Điểm hiệu suất thể hiện khả năng kết xuất video của một bộ mã hoá và giải mã ở một
chiều cao, chiều rộng và tốc độ khung hình. Ví dụ: điểm hiệu suất UHD_60
thể hiện video có Độ nét siêu cao (3840x2160 pixel) kết xuất ở 60 khung hình
mỗi giây.
Phương thức
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
sẽ trả về danh sách
PerformancePoint
mà bộ mã hoá và giải mã có thể kết xuất hoặc chụp.
Bạn có thể kiểm tra xem một PerformancePoint
nhất định có bao gồm một PerformancePoint
nhất định hay không bằng cách gọi
PerformancePoint.covers(PerformancePoint)
.
Ví dụ: UHD_60.covers(UHD_50)
trả về giá trị true.
Danh sách các điểm hiệu suất được cung cấp cho tất cả các bộ mã hoá và giải mã được tăng tốc phần cứng. Đây có thể là một danh sách trống nếu bộ mã hoá và giải mã thậm chí không đáp ứng tiêu chuẩn thấp nhất điểm hiệu suất.
Xin lưu ý rằng các thiết bị đã được nâng cấp lên Android 10 (API cấp 29) trở lên mà không có
việc cập nhật hình ảnh nhà cung cấp sẽ không có dữ liệu điểm hiệu suất, vì điều này
dữ liệu đến từ HAL của nhà cung cấp. Trong trường hợp này, getSupportedPerformancePoints()
sẽ trả về giá trị rỗng.