Probe hardware rate transitions and clear stale call port commands

This commit is contained in:
evgeny committed 2026-10-14 23:13:45 +02:00
1 parent 96e8f6c0ac
commit ea5ef4abc2
2 files changed
+15 -4

No files matched your search

@@ -8,9 +8,16 @@ class CallVideoProbe : Instrumentation() {
override fun onCreate(arguments: Bundle?) { super.onCreate(arguments); start() }
override fun onStart() {
try {
val decoders = CallVideoCodec.probeDecoders()
val codecs = CallVideoCodec.probe()
check(codecs.isNotEmpty()) { "No conforming encoder/decoder pair" }
finish(0, Bundle().apply { putString("codecs", codecs.toString()) })
check(codecs.isNotEmpty() && decoders.isNotEmpty()) { "No verified encoders or decoders" }
for ((codec, entry) in codecs) {
val f = CallVideoFormat(1, 640, 480, codec = codec, level = entry.level, profile = entry.profile)
for (rate in listOf(4_000_000, 300_000, 4_000_000)) {
CallVideoCodec(f, rate, entry.name).use { it.prepare() }
}
}
finish(0, Bundle().apply { putString("codecs", codecs.toString()); putString("decoders", decoders.toString()) })
} catch (e: Exception) {
android.util.Log.e("CallVideoProbe", "probe failed", e)
finish(1, Bundle().apply { putString("error", e.toString()) })