android: 录像标注日志给出完整判据 + 补充重启后真机验证记录
录像首帧日志原来只打印标记数量,无法判断"少了的标记是为什么少的"。现在一并 打印判据(probes 数量、trace 模式、minPos/maxPos、minC/maxC),录像里缺 max/min 时可直接从日志定位原因(追踪被关、极值尚未算出、重启清空了测点等)。 排查记录(重要):本轮一度以为录像丢了极值标记,实测日志 `annotation: 2 markers ... trace=BOTH minPos=159 maxPos=16269` 说明 probes=0、 2 个标记正好是 max+min ——标记本身是齐的,是我的读法错了(中途重装 APK 清空了 测点,我误把 2 当成"两个测点")。因此保留并强化了这条日志。 补充真机验证(重启冷启动 + 60s 稳定性): - 重启后 USB 权限被系统清空、重新授权后一次成功,15.1fps、无重枚举 - 录像 99 帧 / 0 丢弃 / 1.6MB,极值标记确认烧入 - 长时间运行 15.1fps 稳定、开增强(8 档)单帧 9.2~9.4ms - 照片/分析面板/底部面板三方数值完全一致 (同帧照片 max 36.0 min 20.4 Pt1 21.7 Pt2 26.1 ↔ 面板 36.0/20.4/24.5 + 21.7/26.1) - 文档记录:判断自绘画面帧率不能用 dumpsys gfxinfo(看不到 lockCanvas 绘制), 必须用内置 MAG160C/render 日志。99 项测试全绿。
This commit is contained in:
@@ -279,10 +279,19 @@ class LiveViewModel(app: Application) : AndroidViewModel(app) {
|
||||
// user can add or remove probes while recording.
|
||||
rec.marks = probesAsMarks()
|
||||
if (rec.frameCount == 0) {
|
||||
// evidence the recording really carries annotations: the first
|
||||
// frame logs how many markers and which extremes were burned in
|
||||
// Evidence the recording really carries annotations, and why the
|
||||
// count is what it is: the first frame logs how many markers were
|
||||
// burned in plus the inputs that decide it, so a video that is
|
||||
// missing its max/min can be diagnosed from the log alone
|
||||
// (trace mode set to 关闭, no extreme measured yet, probes cleared
|
||||
// by a restart, ...).
|
||||
val st = _state.value
|
||||
com.mag160c.thermal.media.DebugLog.log(
|
||||
"rec", "annotation: ${rec.marks.size} markers burned into video frames",
|
||||
"rec",
|
||||
"annotation: ${rec.marks.size} markers burned into video frames " +
|
||||
"(probes=${st.probes.size} trace=${st.traceMode} " +
|
||||
"minPos=${st.minPos} maxPos=${st.maxPos} " +
|
||||
"minC=${st.minTempC} maxC=${st.maxTempC})",
|
||||
)
|
||||
}
|
||||
rec.offerFrame(bmp)
|
||||
|
||||
Reference in New Issue
Block a user