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