ตัวแปลงรหัสสื่อ

ตั้งแต่ 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() จะแสดงผลเป็นค่าว่าง