ตั้งแต่ Android 10 (API ระดับ 29) ขึ้นไป จะมีเมธอดใน MediaCodecInfo ที่แสดงข้อมูลเพิ่มเติมเกี่ยวกับตัวแปลงรหัส ดังนี้
isSoftwareOnly()- แสดงผลเป็น "จริง" หากตัวแปลงรหัสทำงานในซอฟต์แวร์เท่านั้น ตัวแปลงรหัสซอฟต์แวร์ไม่รับประกันประสิทธิภาพการแสดงผล
isHardwareAccelerated()- แสดงค่าเป็น "จริง" หากตัวแปลงรหัสได้รับการเร่งโดยฮาร์ดแวร์
isVendor()- แสดงค่าเป็น "จริง" หากผู้ให้บริการอุปกรณ์เป็นผู้จัดหาตัวแปลงรหัส หรือแสดงค่าเป็น "เท็จ" หากแพลตฟอร์ม Android เป็นผู้จัดหา
isAlias()MediaCodecListอาจมีรายการเพิ่มเติมสำหรับตัวแปลงรหัสพื้นฐานเดียวกันโดยใช้ชื่อตัวแปลงรหัสอื่น (ชื่อแทน) เมธอดนี้จะแสดงผลเป็น "จริง" หากตัวแปลงรหัสในรายการนี้เป็นชื่อแทนของตัวแปลงรหัสอื่น
นอกจากนี้
MediaCodec.getCanonicalName()
จะแสดงชื่อตัวแปลงรหัสที่สำคัญสำหรับตัวแปลงรหัสที่สร้างผ่านชื่อแทน
คะแนนประสิทธิภาพ
จุดประสิทธิภาพแสดงถึงความสามารถของตัวแปลงรหัสในการแสดงผลวิดีโอที่ความสูง ความกว้าง และอัตราเฟรมที่เฉพาะเจาะจง ตัวอย่างเช่น จุดประสิทธิภาพ UHD_60 แสดงถึงวิดีโอความละเอียดสูงพิเศษ (3840x2160 พิกเซล) ที่แสดงผลที่ 60 เฟรมต่อวินาที
เมธอด
MediaCodecInfo.VideoCapabilities.getSupportedPerformancePoints()
จะแสดงรายการของรายการ
PerformancePoint
ที่ตัวแปลงรหัสสามารถแสดงผลหรือบันทึกได้
คุณตรวจสอบได้ว่า PerformancePoint ที่ระบุครอบคลุมอีกรายการหรือไม่โดยเรียกใช้ PerformancePoint.covers(PerformancePoint)
เช่น UHD_60.covers(UHD_50) จะแสดงผลเป็น "จริง"
ระบบจะแสดงรายการจุดประสิทธิภาพสำหรับตัวแปลงรหัสที่เร่งฮาร์ดแวร์ทั้งหมด รายการนี้อาจว่างเปล่าหากตัวแปลงรหัสไม่เป็นไปตามจุดประสิทธิภาพมาตรฐานต่ำสุด
โปรดทราบว่าอุปกรณ์ที่อัปเกรดเป็น Android 10 (ระดับ API 29) ขึ้นไปโดยไม่อัปเดตอิมเมจของผู้ให้บริการจะไม่มีข้อมูลจุดประสิทธิภาพ เนื่องจากข้อมูลนี้มาจาก HAL ของผู้ให้บริการ ในกรณีนี้ getSupportedPerformancePoints() จะแสดงผลเป็น Null