Open stack vs vendor stack: feature matrix
Release gates
Rules in docs/status/release.yaml. RC3: every vendor function a streamer calls works on every gate SoC. Release 1: RC3 green and the release image ran 14 days without a reset on at least 1 camera per SoC (0 unplanned reboots, 0 oops).
🟢 GREEN RC3
1787 of 1787 streamer-function cells work, 0 missing. Milestone RC3.
| SoC | streamer functions that work | progress | missing |
|---|---|---|---|
| T10 | 228/228 | 0 | |
| T20 | 228/228 | 0 | |
| T21 | 252/252 | 0 | |
| T23 | 290/290 | 0 | |
| T31 | 319/319 | 0 | |
| T40 | 217/217 | 0 | |
| T41 | 253/253 | 0 |
🔴 RED Release 1
Not started: the 14-day counter starts when RC3 is published and runs only on the image built from the RC3 tag. Image -, soak as of 2026-10-26 19:23. Stable days = since the later of: image first ran, last unplanned reboot, last oops (best camera per SoC). Milestone Release 1.
| SoC | cameras | stable days | progress | unplanned reboots | oops |
|---|---|---|---|---|---|
| T10 | – | 0.0/14 | 0 | 0 | |
| T20 | – | 0.0/14 | 0 | 0 | |
| T21 | – | 0.0/14 | 0 | 0 | |
| T23 | – | 0.0/14 | 0 | 0 | |
| T31 | – | 0.0/14 | 0 | 0 | |
| T40 | – | 0.0/14 | 0 | 0 | |
| T41 | – | 0.0/14 | 0 | 0 |
Reset events of the release image (0)
- none
Priorities for streamers
Gaps in functions that timps, prudynt or raptor call, per SoC, sorted by the number of streamers (p prudynt, r raptor, t timps; † source only). Below the table: how much of the vendor API each area covers.
T10 no gap in a function a streamer calls
14 further gaps no streamer calls (lower priority)
- ❌ miss
Decoder_* - ❌ miss
Encoder_Get/SetChnCrop - ❌ miss
Encoder_Get/SetChnH264Demask - ❌ miss
Encoder_Get/SetChnH264Denoise - ❌ miss
Encoder_Get/SetChnH264FrmUsedMode - ❌ miss
Encoder_Get/SetChnRcAttr - ❌ miss
Encoder_PadFrame - ❌ miss
Encoder_SetPadFrameAttr - ⚠ cache
Encoder_Get/SetChangeRef - ⚠ cache
Encoder_Get/SetChnDemask - ⚠ cache
Encoder_Get/SetChnHSkip - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus - ⚠ cache
Encoder_Get/SetH264TransCfg - ⚠ cache
Encoder_SetChnHSkipBlackEnhance
T20 no gap in a function a streamer calls
13 further gaps no streamer calls (lower priority)
- ❌ miss
Decoder_* - ❌ miss
Encoder_Get/SetChnCrop - ❌ miss
Encoder_Get/SetChnH264Demask - ❌ miss
Encoder_Get/SetChnH264Denoise - ❌ miss
Encoder_Get/SetChnH264FrmUsedMode - ❌ miss
Encoder_Get/SetChnRcAttr - ❌ miss
Encoder_PadFrame - ❌ miss
Encoder_SetPadFrameAttr - ⚠ cache
Encoder_Get/SetChangeRef - ⚠ cache
Encoder_Get/SetChnDemask - ⚠ cache
Encoder_Get/SetChnHSkip - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus - ⚠ cache
Encoder_SetChnHSkipBlackEnhance
T21 no gap in a function a streamer calls
7 further gaps no streamer calls (lower priority)
- ❌ miss
Decoder_* - ❌ miss
Encoder_Get/SetChnCrop - ❌ miss
Encoder_PadFrame - ❌ miss
Encoder_SetChnRcTrigLevel - ❌ miss
Encoder_SetPadFrameAttr - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus - ⚠ cache
Encoder_SetChnHSkipBlackEnhance
T23 no gap in a function a streamer calls
7 further gaps no streamer calls (lower priority)
- ❌ err
Decoder_* - ❌ err
ISP_Tuning_Get/SetDrawBlock - ❌ err
ISP_Tuning_SetWB_ALGO - ❌ err
ISP_Tuning_SwitchBin - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus - ⚠ cache
Encoder_Get/Setframelossthd - ⚠ cache
Encoder_SetMultiSectionMode
T30 no gap in a function a streamer calls 153 streamer-used functions unknown
153 streamer-used functions of unknown state (audit pending)
- ?
AI_Disablep† r† t - ?
AI_DisableAgcp† r† t - ?
AI_DisableChnp† r† t - ?
AI_DisableHpfp† r† t - ?
AI_DisableNsp† r† t - ?
AI_Enablep† r† t - ?
AI_EnableAgcp† r† t - ?
AI_EnableChnp† r† t - ?
AI_EnableHpfp† r† t - ?
AI_EnableNsp† r† t - ?
AI_Get/SetChnParamp† r† t - ?
AI_Get/SetGainp† r† t - ?
AI_Get/SetPubAttrp† r† t - ?
AI_Get/SetVolp† r† t - ?
AI_GetFramep† r† t - ?
AI_PollingFramep† r† t - ?
AI_ReleaseFramep† r† t - ?
Encoder_CreateChnp† r† t - ?
Encoder_CreateGroupp† r† t - ?
Encoder_DestroyChnp† r† t - ?
Encoder_DestroyGroupp† r† t - ?
Encoder_GetStreamp† r† t - ?
Encoder_PollingStreamp† r† t - ?
Encoder_RegisterChnp† r† t - ?
Encoder_ReleaseStreamp† r† t - ?
Encoder_RequestIDRp† r† t - ?
Encoder_StartRecvPicp† r† t - ?
Encoder_StopRecvPicp† r† t - ?
Encoder_UnRegisterChnp† r† t - ?
FrameSource_CreateChnp† r† t - ?
FrameSource_DestroyChnp† r† t - ?
FrameSource_DisableChnp† r† t - ?
FrameSource_EnableChnp† r† t - ?
FrameSource_Get/SetChnAttrp† r† t - ?
ISP_AddSensorp† r† t - ?
ISP_Closep† r† t - ?
ISP_DelSensorp† r† t - ?
ISP_DisableSensorp† r† t - ?
ISP_DisableTuningp† r† t - ?
ISP_EnableSensorp† r† t - ?
ISP_EnableTuningp† r† t - ?
ISP_Openp† r† t - ?
ISP_Tuning_Get/SetAeCompp† r† t - ?
ISP_Tuning_Get/SetAntiFlickerAttrp† r† t - ?
ISP_Tuning_Get/SetContrastp† r† t - ?
ISP_Tuning_Get/SetHiLightDepressp† r† t - ?
ISP_Tuning_Get/SetISPRunningModep† r† t - ?
ISP_Tuning_Get/SetMaxAgainp† r† t - ?
ISP_Tuning_Get/SetMaxDgainp† r† t - ?
ISP_Tuning_Get/SetSaturationp† r† t - ?
ISP_Tuning_Get/SetWBp† r† t - ?
ISP_Tuning_GetEVAttrp† r† t - ?
ISP_Tuning_GetSensorFPSp† r† t - ?
ISP_Tuning_GetTotalGainp† r† t - ?
ISP_Tuning_SetBrightnessp† r† t - ?
ISP_Tuning_SetSensorFPSp† r† t - ?
ISP_Tuning_SetSharpnessp† r† t - ?
ISP_Tuning_SetSinterStrengthp† r† t - ?
ISP_Tuning_SetTemperStrengthp† r† t - ?
IVS_DestroyChnp† r† t - ?
IVS_DestroyGroupp† r† t - ?
IVS_DestroyMoveInterfacep† r† t - ?
IVS_StopRecvPicp† r† t - ?
IVS_UnRegisterChnp† r† t - ?
OSD_CreateGroupp† r† t - ?
OSD_CreateRgnp† r† t - ?
OSD_DestroyGroupp† r† t - ?
OSD_DestroyRgnp† r† t - ?
OSD_Get/SetGrpRgnAttrp† r† t - ?
OSD_Get/SetRgnAttrp† r† t - ?
OSD_RegisterRgnp† r† t - ?
OSD_SetPoolSizep† r† t - ?
OSD_ShowRgnp† r† t - ?
OSD_Startp† r† t - ?
OSD_UnRegisterRgnp† r† t - ?
System_Bindp† r† t - ?
System_Exitp† r† t - ?
System_GetVersionp† r† t - ?
System_Initp† r† t - ?
System_UnBindp† r† t - ?
AO_SetVolMutep† r† - ?
Encoder_FlushStreamp† r† - ?
Encoder_Get/SetChnAttrRcModer† t - ?
Encoder_Get/SetChnFrmRatep† r† - ?
Encoder_GetChnAttrp† r† - ?
Encoder_Queryr† t - ?
FrameSource_Get/SetChnFifoAttrp† r† - ?
ISP_Tuning_Get/SetAeHistp† r† - ?
ISP_Tuning_Get/SetAeWeightp† r† - ?
ISP_Tuning_Get/SetAwbHistp† r† - ?
ISP_Tuning_Get/SetAwbWeightp† r† - ?
ISP_Tuning_Get/SetGammap† r† - ?
ISP_Tuning_Get/SetISPHflipp† t - ?
ISP_Tuning_Get/SetISPVflipp† t - ?
ISP_Tuning_GetBrightnessp† r† - ?
ISP_Tuning_GetExprr† t - ?
ISP_Tuning_GetSharpnessp† r† - ?
ISP_Tuning_SetISPBypassp† r† - ?
IVS_CreateChnr† t - ?
IVS_CreateGroupr† t - ?
IVS_CreateMoveInterfacer† t - ?
IVS_Get/SetParamr† t - ?
IVS_GetResultr† t - ?
IVS_PollingResultr† t - ?
IVS_RegisterChnr† t - ?
IVS_ReleaseResultr† t - ?
IVS_StartRecvPicr† t - ?
OSD_UpdateRgnAttrDatap† r† - ?
SU_Base_GetVersionp† r† - ?
System_GetCPUInfop† r† - ?
System_GetTimeStampr† t - ?
System_RebaseTimeStampp† r† - ?
AENC_* / ADEC_*r† - ?
AI_DisableAecRefFramer† - ?
AI_EnableAecRefFramer† - ?
AI_GetFrameAndRefr† - ?
AI_SetVolMuter† - ?
AO_CacheSwitchr† - ?
AO_DisableAgcr† - ?
AO_DisableHpfr† - ?
AO_EnableAgcr† - ?
AO_EnableHpfr† - ?
AO_PauseChnr† - ?
AO_QueryChnStatr† - ?
AO_ResumeChnr† - ?
AO_Soft_Muter† - ?
AO_Soft_UNMuter† - ?
Encoder_Get/SetMaxStreamCntr† - ?
Encoder_GetChnEncTyper† - ?
Encoder_GetFdr† - ?
Encoder_SetGOPSizer† - ?
FrameSource_GetTimedFramer† - ?
FrameSource_SnapFramer† - ?
ISP_Get/SetSensorRegisterr† - ?
ISP_Tuning_Awb_Get/SetRgbCoefftr† - ?
ISP_Tuning_Get/SetAfHistr† - ?
ISP_Tuning_Get/SetColorfxModet - ?
ISP_Tuning_Get/SetIntegrationTimet - ?
ISP_Tuning_GetAFMetricesr† - ?
ISP_Tuning_GetRawDRCp† - ?
ISP_Tuning_GetWB_Statisr† - ?
ISP_Tuning_SetRawDRCp† - ?
ISP_Tuning_SetSceneModet - ?
ISP_Tuning_SetVideoDropr† - ?
ISP_Tuning_WaitFramer† - ?
IVS_CreateBaseMoveInterfacer† - ?
IVS_DestroyBaseMoveInterfacer† - ?
IVS_ReleaseDatar† - ?
OSD_SetRgnAttrWithTimestampr† - ?
OSD_Stopr† - ?
System_GetBindbyDestr† - ?
System_ReadReg32r† - ?
System_WriteReg32r†
10 further gaps no streamer calls (lower priority)
- ❌ miss
Decoder_* - ❌ miss
Encoder_Get/SetChnCrop - ❌ miss
Encoder_PadFrame - ❌ miss
Encoder_SetPadFrameAttr - ❌ miss
ISP_Tuning_SetISPLDC - ⚠ cache
Encoder_Get/SetChangeRef - ⚠ cache
Encoder_Get/SetChnHSkip - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus - ⚠ cache
Encoder_SetChnHSkipBlackEnhance - ⚠ cache
ISP_Tuning_SetTemperDnsCtl
T31 no gap in a function a streamer calls
2 further gaps no streamer calls (lower priority)
- ❌ miss
FB_* - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus
T32 no OpenIMP build yet 178 vendor functions are called by a streamer (the first build has to provide them)
AI_Disablep† r† t†AI_DisableAgcp† r† t†AI_DisableChnp† r† t†AI_DisableHpfp† r† t†AI_DisableNsp† r† t†AI_Enablep† r† t†AI_EnableAgcp† r† t†AI_EnableChnp† r† t†AI_EnableHpfp† r† t†AI_EnableNsp† r† t†AI_Get/SetChnParamp† r† t†AI_Get/SetGainp† r† t†AI_Get/SetPubAttrp† r† t†AI_Get/SetVolp† r† t†AI_GetFramep† r† t†AI_PollingFramep† r† t†AI_ReleaseFramep† r† t†AO_Disablep† r† t†AO_DisableChnp† r† t†AO_Enablep† r† t†AO_EnableChnp† r† t†AO_FlushChnBufp† r† t†AO_Get/SetGainp† r† t†AO_Get/SetPubAttrp† r† t†AO_Get/SetVolp† r† t†AO_SendFramep† r† t†Encoder_CreateChnp† r† t†Encoder_CreateGroupp† r† t†Encoder_DestroyChnp† r† t†Encoder_DestroyGroupp† r† t†Encoder_GetStreamp† r† t†Encoder_PollingStreamp† r† t†Encoder_RegisterChnp† r† t†Encoder_ReleaseStreamp† r† t†Encoder_RequestIDRp† r† t†Encoder_StartRecvPicp† r† t†Encoder_StopRecvPicp† r† t†Encoder_UnRegisterChnp† r† t†FrameSource_CreateChnp† r† t†FrameSource_DestroyChnp† r† t†
top 40 by number of streamers
T33 no OpenIMP build yet 178 vendor functions are called by a streamer (the first build has to provide them)
AI_Disablep† r† t†AI_DisableAgcp† r† t†AI_DisableChnp† r† t†AI_DisableHpfp† r† t†AI_DisableNsp† r† t†AI_Enablep† r† t†AI_EnableAgcp† r† t†AI_EnableChnp† r† t†AI_EnableHpfp† r† t†AI_EnableNsp† r† t†AI_Get/SetChnParamp† r† t†AI_Get/SetGainp† r† t†AI_Get/SetPubAttrp† r† t†AI_Get/SetVolp† r† t†AI_GetFramep† r† t†AI_PollingFramep† r† t†AI_ReleaseFramep† r† t†AO_Disablep† r† t†AO_DisableChnp† r† t†AO_Enablep† r† t†AO_EnableChnp† r† t†AO_FlushChnBufp† r† t†AO_Get/SetGainp† r† t†AO_Get/SetPubAttrp† r† t†AO_Get/SetVolp† r† t†AO_SendFramep† r† t†Encoder_CreateChnp† r† t†Encoder_CreateGroupp† r† t†Encoder_DestroyChnp† r† t†Encoder_DestroyGroupp† r† t†Encoder_GetStreamp† r† t†Encoder_PollingStreamp† r† t†Encoder_RegisterChnp† r† t†Encoder_ReleaseStreamp† r† t†Encoder_RequestIDRp† r† t†Encoder_StartRecvPicp† r† t†Encoder_StopRecvPicp† r† t†Encoder_UnRegisterChnp† r† t†FrameSource_CreateChnp† r† t†FrameSource_DestroyChnp† r† t†
top 40 by number of streamers
T40 no gap in a function a streamer calls
6 further gaps no streamer calls (lower priority)
- ❌ miss
Decoder_* - ❌ miss
EmuFrameSource_* - ❌ miss
ISP_SetAeAlgoFunc - ❌ miss
ISP_SetAwbAlgoFunc - ❌ miss
SU_ADC_Init - ⚠ cache
Encoder_Get/SetFisheyeEnableStatus
T41 no gap in a function a streamer calls
37 further gaps no streamer calls (lower priority)
- ❌ miss
Decoder_* - ❌ miss
EmuFrameSource_* - ❌ miss
Encoder_Get/SetChnSeiAttr - ❌ miss
Encoder_Get/SetFisheyeEnableStatus - ❌ miss
Encoder_SetAvpuBsSize - ❌ miss
Encoder_SetFrameRelease - ❌ miss
ISP_Get/SetCsccrMode - ❌ miss
ISP_Get/SetInternalChnAttr - ❌ miss
ISP_LDC_Get/SetAttr - ❌ miss
ISP_LDC_INIT - ❌ miss
ISP_RAW_RwControl - ❌ miss
ISP_SET_GPIO_INIT_OR_FREE - ❌ miss
ISP_SET_GPIO_STA - ❌ miss
ISP_SetAeAlgoFunc - ❌ miss
ISP_SetAwbAlgoFunc - ❌ miss
ISP_SetVicDoneCbFunc - ❌ miss
ISP_StartNightMode - ❌ miss
ISP_Tuning_Get/SetDrawBlock - ❌ miss
ISP_Tuning_Get/SetFaceAeWeiget - ❌ miss
ISP_Tuning_GetAeBv - ❌ miss
ISP_Tuning_GetAEFlickerFlag - ❌ miss
ISP_Tuning_GetAFMetricesInfo - ❌ miss
ISP_Tuning_GetAfStatistics - ❌ miss
ISP_Tuning_GetFaceAeLuma - ❌ miss
ISP_Tuning_SetTmoFaceae - ❌ miss
ISP_WDR_OPEN - ❌ miss
OSD_Get/SetRgnAttr_ISP - ❌ miss
OSD_GetRegionLuma - ❌ miss
SU_ADC_Init - ❌ err
SU_Base_SetWkupMode - ❌ miss
SU_Battery_GetCapacity - ❌ miss
SU_Battery_GetEvent - ❌ miss
SU_Battery_GetStatus - ❌ miss
SU_Battery_GetVoltageUV - ⚠ cache
Encoder_Get/SetChnRoiAttr - ⚠ cache
Encoder_SetChnMapRoi - ⚠ cache
ISP_Tuning_Get/SetAeConvergeStep
Long-term backlog
Separate from the streamer priorities: vendor functions that are missing, partial or of unknown state and that no streamer calls today, per SoC, grouped by area with the suggested action (implement / documented ENOTSUP / not applicable). For T32/T33 (no build yet) all vendor functions no streamer calls.
T10 — 18 functions no streamer calls today
Encoder (and decoder) (15)
implement (15): Decoder_*, Encoder_Get/SetChangeRef, Encoder_Get/SetChnCrop, Encoder_Get/SetChnDemask, Encoder_Get/SetChnH264Demask, Encoder_Get/SetChnH264Denoise, Encoder_Get/SetChnH264FrmUsedMode, Encoder_Get/SetChnHSkip, Encoder_Get/SetChnRcAttr, Encoder_Get/SetFisheyeEnableStatus, Encoder_Get/SetH264TransCfg, Encoder_PadFrame, Encoder_SetChnHSkipBlackEnhance, Encoder_SetChnRcTrigLevel, Encoder_SetPadFrameAttr
System / sysutils / log (3)
implement (3): Phys_to_Virt, Sp_Alloc, Virt_to_Phys
T20 — 17 functions no streamer calls today
Encoder (and decoder) (14)
implement (14): Decoder_*, Encoder_Get/SetChangeRef, Encoder_Get/SetChnCrop, Encoder_Get/SetChnDemask, Encoder_Get/SetChnH264Demask, Encoder_Get/SetChnH264Denoise, Encoder_Get/SetChnH264FrmUsedMode, Encoder_Get/SetChnHSkip, Encoder_Get/SetChnRcAttr, Encoder_Get/SetFisheyeEnableStatus, Encoder_PadFrame, Encoder_SetChnHSkipBlackEnhance, Encoder_SetChnRcTrigLevel, Encoder_SetPadFrameAttr
System / sysutils / log (3)
implement (3): Phys_to_Virt, Sp_Alloc, Virt_to_Phys
T21 — 10 functions no streamer calls today
Encoder (and decoder) (7)
implement (7): Decoder_*, Encoder_Get/SetChnCrop, Encoder_Get/SetFisheyeEnableStatus, Encoder_PadFrame, Encoder_SetChnHSkipBlackEnhance, Encoder_SetChnRcTrigLevel, Encoder_SetPadFrameAttr
System / sysutils / log (3)
implement (3): Phys_to_Virt, Sp_Alloc, Virt_to_Phys
T23 — 27 functions no streamer calls today
ISP tuning (2)
implement (2): ISP_Tuning_Get/SetDrawBlock, ISP_Tuning_SwitchBin
AE / AWB / AF (1)
implement (1): ISP_Tuning_SetWB_ALGO
Encoder (and decoder) (8)
implement (8): Decoder_*, Encoder_Get/SetFisheyeEnableStatus, Encoder_Get/Setframelossthd, Encoder_PadFrame, Encoder_SetChnRcTrigLevel, Encoder_SetMultiSectionMode, Encoder_SetPadFrameAttr, Encoder_SetRdBufShare
OSD (2)
implement (2): OSD_Alloc, OSD_UpdateRgnAttrData_ISP
System / sysutils / log (14)
implement (14): ISPOSD_Alloc, MemPool_GetById, MemPool_InitPool, Phys_to_Virt, PoolAlloc, PoolAlloc_Dump, PoolAlloc_Get_Attr, PoolAlloc_Set_Attr, PoolFlushCache, PoolFree, PoolPhys_to_Virt, PoolVirt_to_Phys, Sp_Alloc, Virt_to_Phys
T30 — 79 functions no streamer calls today
ISP tuning (4)
implement (4): ISP_Tuning_GetSceneMode, ISP_Tuning_SetFWFreeze, ISP_Tuning_SetISPLDC, ISP_Tuning_SetTemperDnsCtl
AE / AWB / AF (2)
implement (2): ISP_Tuning_AE_Get/SetROI, ISP_Tuning_SetExpr
Encoder (and decoder) (20)
implement (20): Decoder_*, Encoder_Get/SetChangeRef, Encoder_Get/SetChnColor2Grey, Encoder_Get/SetChnCrop, Encoder_Get/SetChnDenoise, Encoder_Get/SetChnHSkip, Encoder_Get/SetChnROI, Encoder_Get/SetFisheyeEnableStatus, Encoder_Get/SetH264TransCfg, Encoder_Get/SetH265TransCfg, Encoder_Get/SetJpegeQl, Encoder_Get/SetMbRC, Encoder_Get/SetQpgMode, Encoder_Get/SetSuperFrameCfg, Encoder_InsertUserData, Encoder_PadFrame, Encoder_SetChnHSkipBlackEnhance, Encoder_SetChnRcTrigLevel, Encoder_SetChnResizeMode, Encoder_SetPadFrameAttr
FrameSource (6)
implement (6): FrameSource_Get/SetDelay, FrameSource_Get/SetFrameDepth, FrameSource_Get/SetMaxDelay, FrameSource_GetFrame, FrameSource_ReleaseFrame, FrameSource_SetSource
Audio (12)
implement (12): AI_DisableAec, AI_EnableAec, AO_ClearChnBuf, AO_Disable, AO_DisableChn, AO_Enable, AO_EnableChn, AO_FlushChnBuf, AO_Get/SetGain, AO_Get/SetPubAttr, AO_Get/SetVol, AO_SendFrame
System / sysutils / log (35)
implement (31): Phys_to_Virt, Sp_Alloc, SU_ADC_DisableChn, SU_ADC_EnableChn, SU_ADC_Exit, SU_ADC_GetChnValue, SU_Base_DisableAlarm, SU_Base_EnableAlarm, SU_Base_Get/SetAlarm, SU_Base_Get/SetTime, SU_Base_GetDevID, SU_Base_GetModelNumber, SU_Base_PollingAlarm, SU_Base_Raw2SUTime, SU_Base_Reboot, SU_Base_Suspend, SU_Base_SUTime2Raw, SU_CIPHER_ConfigHandle, SU_CIPHER_CreateHandle, SU_CIPHER_Decrypt, SU_CIPHER_DestroyHandle, SU_CIPHER_Encrypt, SU_CIPHER_Exit, SU_CIPHER_Init, SU_Key_CloseEvent, SU_Key_DisableEvent, SU_Key_EnableEvent, SU_Key_OpenEvent, SU_Key_ReadEvent, SU_LED_Command, Virt_to_Phys
not applicable (4): SU_Battery_GetCapacity, SU_Battery_GetEvent, SU_Battery_GetStatus, SU_Battery_GetVoltageUV
T31 — 19 functions no streamer calls today
Encoder (and decoder) (2)
implement (2): Encoder_ClearPoolId, Encoder_Get/SetFisheyeEnableStatus
FrameSource (3)
implement (3): FB_*, FrameSource_ClearPoolId, FrameSource_SetFrameDepthCopyType
System / sysutils / log (14)
implement (14): MemPool_GetById, MemPool_InitPool, MemPool_Release, Phys_to_Virt, PoolAlloc, PoolAlloc_Dump, PoolAlloc_Get_Attr, PoolAlloc_Set_Attr, PoolFlushCache, PoolFree, PoolPhys_to_Virt, PoolVirt_to_Phys, Sp_Alloc, Virt_to_Phys
T32 — 316 functions no streamer calls today
ISP tuning (56)
implement (56): ISP_AddSensor_Free, ISP_AddSensor_Process, ISP_Get/SetCsccrMode, ISP_Get/SetInternalChnAttr, ISP_GET_DriverMode, ISP_GetFrameDropOnce, ISP_GPIOSwitchConfig, ISP_GPIOSwitchTrigger, ISP_HB_GetAttr, ISP_HB_SetAttr, ISP_LDC_Get/SetAttr, ISP_LDC_GetMode, ISP_LDC_INIT, ISP_LDC_OfflineCreateJob, ISP_LDC_OfflineCreateJobExt, ISP_LDC_OfflineDestroyJob, ISP_LDC_OfflineInit, ISP_LDC_OfflineSubmitTask, ISP_LDC_OfflineUpdateLutToJob, ISP_LDC_OnlineGetFunc, ISP_LDC_OnlineGetLut, ISP_LDC_OnlineGetLutBufMode, ISP_LDC_OnlineGetState, ISP_LDC_OnlineGetStrength, ISP_LDC_OnlineInit, ISP_LDC_OnlineSetLut, ISP_LDC_OnlineSetLutBufMode, ISP_LDC_OnlineSetState, ISP_LDC_OnlineSetStrength, ISP_LDC_SetMode, ISP_OneShotDisable, ISP_OneShotDropCnt, ISP_OneShotEnable, ISP_OneShotTick, ISP_OSD_Alloc, ISP_PM_GetMode, ISP_PM_SetMode, ISP_PM_SetOneByOneCallback, ISP_PM_WaitAllDone, ISP_SetCameraInputMode, ISP_SetFrameDropOnce, ISP_StartNightMode, ISP_Tuning_Get/SetDrawBlock, ISP_Tuning_Get/SetISPCSCAttr, ISP_Tuning_Get/SetModule_Ratio, ISP_Tuning_Get/SetStatisConfig, ISP_Tuning_Get/SetWdrOutputMode, ISP_Tuning_GetAutoZoom, ISP_Tuning_GetBcshRGBOffsetAttr, ISP_Tuning_GetMaskBlock, ISP_Tuning_GetMultiSensorEffect, ISP_Tuning_SetBcshRGBOffsetAttr, ISP_Tuning_SetMultiSensorEffect, ISP_Tuning_SetTmoFaceae, ISP_Tuning_WaitFrameDone, ISP_WDR_OPEN
AE / AWB / AF (27)
implement (27): ISP_SetAeAlgoFunc, ISP_SetAwbAlgoFunc, ISP_Tuning_Get/SetAeExpList, ISP_Tuning_Get/SetAeExprInfo, ISP_Tuning_Get/SetAwbAttr, ISP_Tuning_Get/SetAwbCtTrendOffset, ISP_Tuning_Get/SetFaceAe, ISP_Tuning_Get/SetFaceAeWeiget, ISP_Tuning_Get/SetFaceAwb, ISP_Tuning_GetAEFlickerFlag, ISP_Tuning_GetAeLightCompensation, ISP_Tuning_GetAeOnlyReadAttr, ISP_Tuning_GetAeStartAttr, ISP_Tuning_GetAeStatistics, ISP_Tuning_GetAeTargetAttr, ISP_Tuning_GetAFMetricesInfo, ISP_Tuning_GetAfStatistics, ISP_Tuning_GetAwbGlobalStatistics, ISP_Tuning_GetAwbOnlyReadAttr, ISP_Tuning_GetFaceAeLuma, ISP_Tuning_GetMultiSensorAeEffect, ISP_Tuning_GetMultiSensorAWBEffect, ISP_Tuning_SetAeLightCompensation, ISP_Tuning_SetAeStartAttr, ISP_Tuning_SetAeTargetAttr, ISP_Tuning_SetMultiSensorAeEffect, ISP_Tuning_SetMultiSensorAWBEffect
Encoder (and decoder) (73)
implement (73): Encoder_ClearPoolId, Encoder_Get/SetChangeRef, Encoder_Get/SetChnColor2Grey, Encoder_Get/SetChnCrop, Encoder_Get/SetChnDenoise, Encoder_Get/SetChnFrmUsedMode, Encoder_Get/SetChnHSkip, Encoder_Get/SetChnROI, Encoder_Get/SetFisheyeEnableStatus, Encoder_Get/SetGDRCfg, Encoder_Get/SetH264TransCfg, Encoder_Get/SetH265TransCfg, Encoder_Get/SetMbRC, Encoder_Get/SetQpgMode, Encoder_Get/SetSuperFrameCfg, Encoder_GetGOPSize, Encoder_GetH264Vui, Encoder_GetH265Vui, Encoder_GetJpegQp, Encoder_GetMotionQuality, Encoder_GetPskipCfg, Encoder_GetSrdCfg, Encoder_InputJpege, Encoder_InputJpege_Ex, Encoder_InsertUserData, Encoder_KernEnc_GetStatus, Encoder_KernEnc_GetStream, Encoder_KernEnc_Release, Encoder_KernEnc_Stop, Encoder_MappingTransform, Encoder_MultiProcessExit, Encoder_MultiProcessInit, Encoder_PadFrame, Encoder_RequestGDR, Encoder_RequestPskip, Encoder_SetAutoVui, Encoder_SetChnHSkipBlackEnhance, Encoder_SetChnMapRoi, Encoder_SetChnQpBoundsPerFrame, Encoder_SetChnQpgAI, Encoder_SetChnQpgAI_Yuv, Encoder_SetChnQpgAIEnable, Encoder_SetChnQpgAIEnable_Yuv, Encoder_SetChnRcTrigLevel, Encoder_SetChnResizeMode, Encoder_SetGOPSize, Encoder_SetH264Vui, Encoder_SetH265Vui, Encoder_SetIvpuBsSize, Encoder_SetJpegBsSize, Encoder_SetJpegMultiSectionMode, Encoder_SetJpegQp, Encoder_SetMotionQuality, Encoder_SetMotionQuality_Yuv, Encoder_SetMotionQualityEnable, Encoder_SetMotionQualityEnable_Yuv, Encoder_SetMultiSectionMode, Encoder_SetPadFrameAttr, Encoder_SetPskipCfg, Encoder_SetRdBufShare, Encoder_SetSrdCfg, Encoder_VbmAlloc, Encoder_VbmAlloc_Ex, Encoder_VbmFree, Encoder_VbmFree_Ex, Encoder_VbmP2V, Encoder_VbmV2P, Encoder_YuvEncode, Encoder_YuvEncode_Ex, Encoder_YuvExit, Encoder_YuvExit_Ex, Encoder_YuvInit, Encoder_YuvInit_Ex
FrameSource (25)
implement (25): FrameSource_ClearPoolId, FrameSource_CreateJoint, FrameSource_DequeueBuffer, FrameSource_DestroyJoint, FrameSource_ExternInject_CreateChn, FrameSource_ExternInject_DestroyChn, FrameSource_ExternInject_DisableChn, FrameSource_ExternInject_EnableChn, FrameSource_GetChnAttr_Expand, FrameSource_GetDirectMode, FrameSource_GetFrameEx, FrameSource_GetJointByHandler, FrameSource_PM_Resume, FrameSource_PM_Suspend, FrameSource_QueueBuffer, FrameSource_ReleaseFrameEx, FrameSource_SetChnAttr_Expand, FrameSource_SetDirectMode, FrameSource_SetFrameDepthCopyType, FrameSource_SetIvdcMemLine, FrameSource_SetJointBackground, FrameSource_SetYuvAlign, FrameSource_SnapRaw_End, FrameSource_SnapRaw_Start, FrameSource_UpdateChnLut
OSD (20)
implement (20): ISP_Tuning_Get/SetOSDAttr, ISP_Tuning_Get/SetOSDBlock, ISP_Tuning_GetOsdRgnAttr, OSD_Alloc, OSD_AttachToGroup, OSD_CreateRgn_ISP, OSD_DestroyRgn_ISP, OSD_DetachToGroup, OSD_Exit_ISP, OSD_Get/SetRgnAttr_ISP, OSD_GetRgnAttr_ISPPic, OSD_Init_ISP, OSD_RgnCreate_Query, OSD_RgnRegister_Query, OSD_SetGroupCallback, OSD_SetMosaic, OSD_SetPoolSize_ISP, OSD_SetRgnAttr_PicISP, OSD_ShowRgn_ISP, OSD_UpdateRgnAttrData_ISP
Audio (25)
implement (25): AI_DisableAlgo, AI_DisableDrcAndEq, AI_DisableGetRaw, AI_DisableHs, AI_DisableLpf, AI_EnableAlgo, AI_EnableDrcAndEq, AI_EnableGetRaw, AI_EnableHs, AI_EnableLpf, AI_Get/SetDigitalGain, AI_GetAlgoOrder, AI_GetFrameAndRaw, AI_SetAlgoOrder, AI_SetLpfCoFrequency, AO_DisableAlgo, AO_DisableDrcAndEq, AO_DisableNs, AO_EnableAlgo, AO_EnableDrcAndEq, AO_EnableNs, AO_Get/SetDigitalGain, AO_GetAlgoOrder, AO_SetAlgoOrder, Audio_Select_Codec
System / sysutils / log (90)
implement (90): alloc_init, alloc_unit, Buf_Alloc, Buf_CreatePool, Buf_DestroyPool, Buf_Free, Buf_Paddr2Vaddr, Buf_Vaddr2Paddr, create_units, destroy_units, DQbuffer, free_unit, ISPOSD_Alloc, MemPool_GetById, MemPool_InitPool, MemPool_Release, Phys_to_Virt, PoolAlloc, PoolAlloc_Dump, PoolAlloc_Get_Attr, PoolAlloc_Set_Attr, PoolFlushCache, PoolFree, PoolPhys_to_Virt, PoolVirt_to_Phys, Sp_Alloc, SU_ADC_DisableChn, SU_ADC_EnableChn, SU_ADC_Exit, SU_ADC_GetChnValue, SU_ADC_Init, SU_Base_CtlPwrDown, SU_Base_DisableAlarm, SU_Base_DisableAlarmTimeMs, SU_Base_EnableAlarm, SU_Base_EnableAlarmTimeMs, SU_Base_Get/SetAlarm, SU_Base_Get/SetTime, SU_Base_GetAlarmTimeMs, SU_Base_GetDevID, SU_Base_GetModelNumber, SU_Base_GetTimeMs, SU_Base_GetWakeupCount, SU_Base_GetWkupMode, SU_Base_PollingAlarm, SU_Base_Raw2SUTime, SU_Base_Reboot, SU_Base_SetAlarmTimeMs, SU_Base_SetWkupMode, SU_Base_Shutdown, SU_Base_Suspend, SU_Base_SUTime2Raw, SU_CIPHER_ConfigHandle, SU_CIPHER_CreateHandle, SU_CIPHER_Decrypt, SU_CIPHER_DES_Exit, SU_CIPHER_DES_Init, SU_CIPHER_DES_Test, SU_CIPHER_DestroyHandle, SU_CIPHER_Encrypt, SU_CIPHER_Exit, SU_CIPHER_Free_Buffer, SU_CIPHER_Init, SU_CIPHER_Malloc_Buffer, SU_Key_CloseEvent, SU_Key_DisableEvent, SU_Key_EnableEvent, SU_Key_OpenEvent, SU_Key_ReadEvent, SU_LED_Command, SU_PM_AddThreadListen, SU_PM_DeInit, SU_PM_DelThreadListen, SU_PM_DumpList, SU_PM_EventSend, SU_PM_Get_CPUOnlineNums, SU_PM_GetEvent, SU_PM_GetListenLockNums, SU_PM_Init, SU_PM_InitListenLock, SU_PM_ReleaseWakeLock, SU_PM_RequestWakeLock, SU_PM_Set_CPUOnline, SU_PM_Sleep, SU_PM_TheadSuspend, SU_PM_ThreadResume, SU_PM_WaitThreadSuspend, System_MemPoolFree, System_MemPoolRequest, Virt_to_Phys
T33 — 324 functions no streamer calls today
ISP tuning (59)
implement (59): ISP_AddSensor_Free, ISP_AddSensor_Process, ISP_Get/SetCsccrMode, ISP_Get/SetInternalChnAttr, ISP_GET_DriverMode, ISP_GetFrameDropOnce, ISP_GPIOSwitchConfig, ISP_GPIOSwitchTrigger, ISP_HB_GetAttr, ISP_HB_SetAttr, ISP_LDC_Get/SetAttr, ISP_LDC_GetMode, ISP_LDC_INIT, ISP_LDC_OfflineCreateJob, ISP_LDC_OfflineCreateJobExt, ISP_LDC_OfflineDestroyJob, ISP_LDC_OfflineInit, ISP_LDC_OfflineSubmitTask, ISP_LDC_OfflineUpdateLutToJob, ISP_LDC_OnlineGetFunc, ISP_LDC_OnlineGetLut, ISP_LDC_OnlineGetLutBufMode, ISP_LDC_OnlineGetState, ISP_LDC_OnlineGetStrength, ISP_LDC_OnlineInit, ISP_LDC_OnlineSetLut, ISP_LDC_OnlineSetLutBufMode, ISP_LDC_OnlineSetState, ISP_LDC_OnlineSetStrength, ISP_LDC_SetMode, ISP_OneShotDisable, ISP_OneShotDropCnt, ISP_OneShotEnable, ISP_OneShotTick, ISP_OSD_Alloc, ISP_PM_GetMode, ISP_PM_SetMode, ISP_PM_SetOneByOneCallback, ISP_PM_WaitAllDone, ISP_RawCaptureGuardBegin, ISP_RawCaptureGuardEnd, ISP_SetCameraInputMode, ISP_SetFrameDropOnce, ISP_StartNightMode, ISP_Tuning_Get/SetDrawBlock, ISP_Tuning_Get/SetISPCSCAttr, ISP_Tuning_Get/SetModule_Ratio, ISP_Tuning_Get/SetStatisConfig, ISP_Tuning_Get/SetWdrOutputMode, ISP_Tuning_GetAutoZoom, ISP_Tuning_GetBcshRGBOffsetAttr, ISP_Tuning_GetISPRunningModeWithFd, ISP_Tuning_GetMaskBlock, ISP_Tuning_GetMultiSensorEffect, ISP_Tuning_SetBcshRGBOffsetAttr, ISP_Tuning_SetMultiSensorEffect, ISP_Tuning_SetTmoFaceae, ISP_Tuning_WaitFrameDone, ISP_WDR_OPEN
AE / AWB / AF (27)
implement (27): ISP_SetAeAlgoFunc, ISP_SetAwbAlgoFunc, ISP_Tuning_Get/SetAeExpList, ISP_Tuning_Get/SetAeExprInfo, ISP_Tuning_Get/SetAwbAttr, ISP_Tuning_Get/SetAwbCtTrendOffset, ISP_Tuning_Get/SetFaceAe, ISP_Tuning_Get/SetFaceAeWeiget, ISP_Tuning_Get/SetFaceAwb, ISP_Tuning_GetAEFlickerFlag, ISP_Tuning_GetAeLightCompensation, ISP_Tuning_GetAeOnlyReadAttr, ISP_Tuning_GetAeStartAttr, ISP_Tuning_GetAeStatistics, ISP_Tuning_GetAeTargetAttr, ISP_Tuning_GetAFMetricesInfo, ISP_Tuning_GetAfStatistics, ISP_Tuning_GetAwbGlobalStatistics, ISP_Tuning_GetAwbOnlyReadAttr, ISP_Tuning_GetFaceAeLuma, ISP_Tuning_GetMultiSensorAeEffect, ISP_Tuning_GetMultiSensorAWBEffect, ISP_Tuning_SetAeLightCompensation, ISP_Tuning_SetAeStartAttr, ISP_Tuning_SetAeTargetAttr, ISP_Tuning_SetMultiSensorAeEffect, ISP_Tuning_SetMultiSensorAWBEffect
Encoder (and decoder) (78)
implement (78): Decoder_*, Encoder_ClearPoolId, Encoder_Get/SetChangeRef, Encoder_Get/SetChnColor2Grey, Encoder_Get/SetChnCrop, Encoder_Get/SetChnDenoise, Encoder_Get/SetChnFrmUsedMode, Encoder_Get/SetChnHSkip, Encoder_Get/SetChnROI, Encoder_Get/SetFisheyeEnableStatus, Encoder_Get/SetGDRCfg, Encoder_Get/SetH264TransCfg, Encoder_Get/SetH265TransCfg, Encoder_Get/SetMbRC, Encoder_Get/SetQpgMode, Encoder_Get/SetSuperFrameCfg, Encoder_GetChnRfcDropFrameLines, Encoder_GetChnRfcRatio, Encoder_GetGOPSize, Encoder_GetH264Vui, Encoder_GetH265Vui, Encoder_GetJpegQp, Encoder_GetMotionQuality, Encoder_GetPskipCfg, Encoder_GetSrdCfg, Encoder_InputJpege, Encoder_InputJpege_Ex, Encoder_InsertUserData, Encoder_KernEnc_GetStatus, Encoder_KernEnc_GetStream, Encoder_KernEnc_Release, Encoder_KernEnc_Stop, Encoder_MappingTransform, Encoder_MultiProcessExit, Encoder_MultiProcessInit, Encoder_PadFrame, Encoder_RequestGDR, Encoder_RequestPskip, Encoder_SetAutoVui, Encoder_SetChnHSkipBlackEnhance, Encoder_SetChnMapRoi, Encoder_SetChnQpBoundsPerFrame, Encoder_SetChnQpgAI, Encoder_SetChnQpgAI_Yuv, Encoder_SetChnQpgAIEnable, Encoder_SetChnQpgAIEnable_Yuv, Encoder_SetChnRcTrigLevel, Encoder_SetChnResizeMode, Encoder_SetChnRfcDropFrameLines, Encoder_SetChnRfcRatio, Encoder_SetGOPSize, Encoder_SetH264Vui, Encoder_SetH265Vui, Encoder_SetIvpuBsSize, Encoder_SetJpegBsSize, Encoder_SetJpegMultiSectionMode, Encoder_SetJpegQp, Encoder_SetMotionQuality, Encoder_SetMotionQuality_Yuv, Encoder_SetMotionQualityEnable, Encoder_SetMotionQualityEnable_Yuv, Encoder_SetMultiSectionMode, Encoder_SetPadFrameAttr, Encoder_SetPskipCfg, Encoder_SetRdBufShare, Encoder_SetSrdCfg, Encoder_VbmAlloc, Encoder_VbmAlloc_Ex, Encoder_VbmFree, Encoder_VbmFree_Ex, Encoder_VbmP2V, Encoder_VbmV2P, Encoder_YuvEncode, Encoder_YuvEncode_Ex, Encoder_YuvExit, Encoder_YuvExit_Ex, Encoder_YuvInit, Encoder_YuvInit_Ex
FrameSource (27)
implement (27): FrameSource_ClearPoolId, FrameSource_CreateChn_Ext, FrameSource_CreateJoint, FrameSource_DequeueBuffer, FrameSource_DestroyJoint, FrameSource_ExternInject_CreateChn, FrameSource_ExternInject_DestroyChn, FrameSource_ExternInject_DisableChn, FrameSource_ExternInject_EnableChn, FrameSource_GetChnAttr_Expand, FrameSource_GetDirectMode, FrameSource_GetFrameEx, FrameSource_GetJointByHandler, FrameSource_PM_Resume, FrameSource_PM_Suspend, FrameSource_QueueBuffer, FrameSource_ReleaseFrameEx, FrameSource_SetChnAttr_Expand, FrameSource_SetDirectMode, FrameSource_SetFrameDepthCopyType, FrameSource_SetIvdcMemLine, FrameSource_SetJointBackground, FrameSource_SetSubStreamOnlineMode, FrameSource_SetYuvAlign, FrameSource_SnapRaw_End, FrameSource_SnapRaw_Start, FrameSource_UpdateChnLut
OSD (20)
implement (20): ISP_Tuning_Get/SetOSDAttr, ISP_Tuning_Get/SetOSDBlock, ISP_Tuning_GetOsdRgnAttr, OSD_Alloc, OSD_AttachToGroup, OSD_CreateRgn_ISP, OSD_DestroyRgn_ISP, OSD_DetachToGroup, OSD_Exit_ISP, OSD_Get/SetRgnAttr_ISP, OSD_GetRgnAttr_ISPPic, OSD_Init_ISP, OSD_RgnCreate_Query, OSD_RgnRegister_Query, OSD_SetGroupCallback, OSD_SetMosaic, OSD_SetPoolSize_ISP, OSD_SetRgnAttr_PicISP, OSD_ShowRgn_ISP, OSD_UpdateRgnAttrData_ISP
Audio (25)
implement (25): AI_DisableAlgo, AI_DisableDrcAndEq, AI_DisableGetRaw, AI_DisableHs, AI_DisableLpf, AI_EnableAlgo, AI_EnableDrcAndEq, AI_EnableGetRaw, AI_EnableHs, AI_EnableLpf, AI_Get/SetDigitalGain, AI_GetAlgoOrder, AI_GetFrameAndRaw, AI_SetAlgoOrder, AI_SetLpfCoFrequency, AO_DisableAlgo, AO_DisableDrcAndEq, AO_DisableNs, AO_EnableAlgo, AO_EnableDrcAndEq, AO_EnableNs, AO_Get/SetDigitalGain, AO_GetAlgoOrder, AO_SetAlgoOrder, Audio_Select_Codec
System / sysutils / log (88)
implement (88): alloc_init, alloc_unit, Buf_Alloc, Buf_CreatePool, Buf_DestroyPool, Buf_Free, Buf_Paddr2Vaddr, Buf_Vaddr2Paddr, create_units, destroy_units, DQbuffer, free_unit, ISPOSD_Alloc, MemPool_GetById, MemPool_InitPool, MemPool_Release, Phys_to_Virt, PoolAlloc, PoolAlloc_Dump, PoolAlloc_Get_Attr, PoolAlloc_Set_Attr, PoolFlushCache, PoolFree, PoolPhys_to_Virt, PoolVirt_to_Phys, Sp_Alloc, SU_ADC_DisableChn, SU_ADC_EnableChn, SU_ADC_Exit, SU_ADC_GetChnValue, SU_ADC_Init, SU_Base_CtlPwrDown, SU_Base_DisableAlarm, SU_Base_DisableAlarmTimeMs, SU_Base_EnableAlarm, SU_Base_EnableAlarmTimeMs, SU_Base_Get/SetAlarm, SU_Base_Get/SetTime, SU_Base_GetAlarmTimeMs, SU_Base_GetDevID, SU_Base_GetModelNumber, SU_Base_GetTimeMs, SU_Base_GetWakeupCount, SU_Base_GetWkupMode, SU_Base_PollingAlarm, SU_Base_Raw2SUTime, SU_Base_Reboot, SU_Base_SetAlarmTimeMs, SU_Base_SetWkupMode, SU_Base_Shutdown, SU_Base_Suspend, SU_Base_SUTime2Raw, SU_CIPHER_ConfigHandle, SU_CIPHER_CreateHandle, SU_CIPHER_Decrypt, SU_CIPHER_DES_Exit, SU_CIPHER_DES_Init, SU_CIPHER_DES_Test, SU_CIPHER_DestroyHandle, SU_CIPHER_Encrypt, SU_CIPHER_Exit, SU_CIPHER_Init, SU_Key_CloseEvent, SU_Key_DisableEvent, SU_Key_EnableEvent, SU_Key_OpenEvent, SU_Key_ReadEvent, SU_LED_Command, SU_PM_AddThreadListen, SU_PM_DeInit, SU_PM_DelThreadListen, SU_PM_DumpList, SU_PM_EventSend, SU_PM_Get_CPUOnlineNums, SU_PM_GetEvent, SU_PM_GetListenLockNums, SU_PM_Init, SU_PM_InitListenLock, SU_PM_ReleaseWakeLock, SU_PM_RequestWakeLock, SU_PM_Set_CPUOnline, SU_PM_Sleep, SU_PM_TheadSuspend, SU_PM_ThreadResume, SU_PM_WaitThreadSuspend, System_MemPoolFree, System_MemPoolRequest, Virt_to_Phys
T40 — 32 functions no streamer calls today
AE / AWB / AF (2)
implement (2): ISP_SetAeAlgoFunc, ISP_SetAwbAlgoFunc
Encoder (and decoder) (2)
implement (2): Decoder_*, Encoder_Get/SetFisheyeEnableStatus
FrameSource (1)
implement (1): EmuFrameSource_*
OSD (1)
implement (1): OSD_Init_ISP
System / sysutils / log (26)
implement (26): SU_ADC_DisableChn, SU_ADC_EnableChn, SU_ADC_Exit, SU_ADC_GetChnValue, SU_ADC_Init, SU_Base_DisableAlarm, SU_Base_EnableAlarm, SU_Base_Get/SetAlarm, SU_Base_Get/SetTime, SU_Base_PollingAlarm, SU_Base_Reboot, SU_Base_Suspend, SU_CIPHER_ConfigHandle, SU_CIPHER_CreateHandle, SU_CIPHER_Decrypt, SU_CIPHER_DES_Exit, SU_CIPHER_DES_Init, SU_CIPHER_DES_Test, SU_CIPHER_DestroyHandle, SU_CIPHER_Encrypt, SU_CIPHER_Exit, SU_CIPHER_Init, SU_Key_DisableEvent, SU_Key_EnableEvent, SU_Key_ReadEvent, SU_LED_Command
T41 — 37 functions no streamer calls today
ISP tuning (12)
implement (12): ISP_Get/SetCsccrMode, ISP_Get/SetInternalChnAttr, ISP_LDC_Get/SetAttr, ISP_LDC_INIT, ISP_RAW_RwControl, ISP_SET_GPIO_INIT_OR_FREE, ISP_SET_GPIO_STA, ISP_SetVicDoneCbFunc, ISP_StartNightMode, ISP_Tuning_Get/SetDrawBlock, ISP_Tuning_SetTmoFaceae, ISP_WDR_OPEN
AE / AWB / AF (9)
implement (9): ISP_SetAeAlgoFunc, ISP_SetAwbAlgoFunc, ISP_Tuning_Get/SetAeConvergeStep, ISP_Tuning_Get/SetFaceAeWeiget, ISP_Tuning_GetAeBv, ISP_Tuning_GetAEFlickerFlag, ISP_Tuning_GetAFMetricesInfo, ISP_Tuning_GetAfStatistics, ISP_Tuning_GetFaceAeLuma
Encoder (and decoder) (7)
implement (7): Decoder_*, Encoder_Get/SetChnRoiAttr, Encoder_Get/SetChnSeiAttr, Encoder_Get/SetFisheyeEnableStatus, Encoder_SetAvpuBsSize, Encoder_SetChnMapRoi, Encoder_SetFrameRelease
FrameSource (1)
implement (1): EmuFrameSource_*
OSD (2)
implement (1): OSD_Get/SetRgnAttr_ISP
not applicable (1): OSD_GetRegionLuma
System / sysutils / log (6)
implement (2): SU_ADC_Init, SU_Base_SetWkupMode
not applicable (4): SU_Battery_GetCapacity, SU_Battery_GetEvent, SU_Battery_GetStatus, SU_Battery_GetVoltageUV
API coverage at a glance
Works (device-tested or vendor no-op) / functions that exist in the SoC's vendor API; functions the vendor API does not have are not counted. Click an area for the full function table.
| Area | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 |
|---|---|---|---|---|---|---|---|---|---|---|
| ISP tuning | 67/67 67✅ 0🔧 0⚠ 0? | 66/67 66✅ 1🔧 0⚠ 0? | 64/66 64✅ 2🔧 0⚠ 0? | 78/97 78✅ 16🔧 3⚠ 0? | 0/67 0✅ 13🔧 2⚠ 52? | 83/87 83✅ 4🔧 0⚠ 0? | 0/113 no build | 0/116 no build | 60/71 60✅ 11🔧 0⚠ 0? | 59/78 59✅ 3🔧 16⚠ 0? |
| AE / AWB / AF | 25/27 25✅ 2🔧 0⚠ 0? | 27/27 27✅ 0🔧 0⚠ 0? | 29/29 29✅ 0🔧 0⚠ 0? | 48/51 48✅ 2🔧 1⚠ 0? | 0/26 0✅ 4🔧 0⚠ 22? | 47/49 47✅ 2🔧 0⚠ 0? | 0/41 no build | 0/41 no build | 21/29 21✅ 6🔧 2⚠ 0? | 28/39 28✅ 0🔧 11⚠ 0? |
| Encoder | 38/70 38✅ 0🔧 31⚠ 1? | 40/70 40✅ 0🔧 29⚠ 1? | 51/67 51✅ 0🔧 16⚠ 0? | 72/90 72✅ 1🔧 13⚠ 4? | 0/67 0✅ 3🔧 19⚠ 45? | 42/45 42✅ 0🔧 2⚠ 1? | 0/116 no build | 0/128 no build | 46/59 46✅ 3🔧 10⚠ 0? | 48/74 48✅ 9🔧 17⚠ 0? |
| FrameSource | 18/18 18✅ 0🔧 0⚠ 0? | 18/18 18✅ 0🔧 0⚠ 0? | 18/18 18✅ 0🔧 0⚠ 0? | 22/22 22✅ 0🔧 0⚠ 0? | 0/19 0✅ 0🔧 0⚠ 19? | 22/30 22✅ 1🔧 5⚠ 2? | 0/47 no build | 0/49 no build | 22/33 22✅ 6🔧 5⚠ 0? | 24/36 24✅ 7🔧 5⚠ 0? |
| OSD | 16/17 16✅ 1🔧 0⚠ 0? | 16/17 16✅ 1🔧 0⚠ 0? | 16/17 16✅ 1🔧 0⚠ 0? | 36/42 36✅ 4🔧 0⚠ 2? | 0/17 0✅ 1🔧 0⚠ 16? | 16/17 16✅ 1🔧 0⚠ 0? | 0/44 no build | 0/44 no build | 28/43 28✅ 14🔧 0⚠ 1? | 26/42 26✅ 13🔧 3⚠ 0? |
| IVS | 18/18 18✅ 0🔧 0⚠ 0? | 18/18 18✅ 0🔧 0⚠ 0? | 18/18 18✅ 0🔧 0⚠ 0? | 18/18 18✅ 0🔧 0⚠ 0? | 0/18 0✅ 0🔧 0⚠ 18? | 18/18 18✅ 0🔧 0⚠ 0? | 0/18 no build | 0/18 no build | 18/18 18✅ 0🔧 0⚠ 0? | 18/18 18✅ 0🔧 0⚠ 0? |
| Audio | 68/68 68✅ 0🔧 0⚠ 0? | 68/68 68✅ 0🔧 0⚠ 0? | 70/70 70✅ 0🔧 0⚠ 0? | 77/77 77✅ 0🔧 0⚠ 0? | 0/90 0✅ 22🔧 0⚠ 68? | 96/96 96✅ 0🔧 0⚠ 0? | 0/127 no build | 0/127 no build | 99/99 99✅ 0🔧 0⚠ 0? | 106/107 106✅ 1🔧 0⚠ 0? |
| System | 20/48 20✅ 25🔧 0⚠ 3? | 20/48 20✅ 25🔧 0⚠ 3? | 20/48 20✅ 25🔧 0⚠ 3? | 21/60 21✅ 25🔧 0⚠ 14? | 0/50 0✅ 1🔧 0⚠ 49? | 22/64 22✅ 28🔧 0⚠ 14? | 0/104 no build | 0/102 no build | 21/50 21✅ 1🔧 1⚠ 27? | 19/55 19✅ 30🔧 6⚠ 0? |
| All areas | 270/333 270✅ 28🔧 31⚠ 4? | 273/333 273✅ 27🔧 29⚠ 4? | 286/333 286✅ 28🔧 16⚠ 3? | 372/457 372✅ 48🔧 17⚠ 20? | 0/354 0✅ 44🔧 21⚠ 289? | 346/406 346✅ 36🔧 7⚠ 17? | 0/610 no build | 0/625 no build | 315/402 315✅ 41🔧 18⚠ 28? | 328/449 328✅ 63🔧 58⚠ 0? |
Matrix
| Feature | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 |
|---|---|---|---|---|---|---|---|---|---|---|
| ISP core and image pipeline | ||||||||||
| 1 | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | 🔧 🚧 | 📋 | ✅changed | ✅changed |
| 2 | ✅+ | ✅+ | ✅+ | ✅+ | 🔧new | ✅+ | ? | 📋 | ✅+RC2 | ✅+RC2 |
| 3 | ✅+ | ✅ | ✅+ | ✅ | ? | ✅ | ? | 📋 | ✅RC2 | — |
| Exposure (AE) | ||||||||||
| 4 | ✅ | ✅ | ✅+ | ✅ | ? | ✅changed | ? | 📋 | ✅RC2 | ✅changed |
| 5 | ✅ | ✅ | ✅+ | ✅ | ? | ✅ | ? | 📋 | ✅RC2 | ✅changed |
| 6 | ✅ | ✅ | ✅+ | ✅ | 🔧new | ✅ | ? | 📋 | ✅RC2 | ✅changed |
| 7 | ✅ | ✅ | ✅ | ✅ | 🔧new | ✅ | ? | 📋 | ✅RC2 | ✅changed |
| Colour and image quality | ||||||||||
| 8 | ✅ | ✅ | ✅+ | ✅ | ? | ✅changed | ? | 📋 | ✅RC2 | ✅changed |
| 9 | ✅ | ✅ | ✅+ | ✅ | ? | ✅ | ? | 📋 | ✅+new | ✅RC2 |
| 10 | ✅ | ✅ | ✅ | ✅+ | ? | ✅ | ? | 📋 | ✅RC2 | ✅changed |
| 11 | ✅ | ✅ | ✅ | ✅ | ? | ✅ | ? | 📋 | ✅RC2 | ✅ |
| 12 | ✅ | ✅ | ✅+ | ✅ | 🔧new | ✅ | ? | 📋 | ✅new | ✅changed |
| 13 | ✅ | ✅ | ✅ | ✅ | ?changed | ✅ | ? | 📋 | ✅RC2 | ✅ |
| 14 | ✅ | ✅+ | ✅+ | ✅+ | ?changed | ✅ | ? | 📋 | ✅RC2 | ✅RC2 |
| 15 | ✅ | ✅+ | ✅+ | ✅+ | ?changed | ✅ | ? | 📋 | — | ✅+new |
| 16 | ✅+ | ✅+ | ✅+ | ✅ | ?changed | ✅changed | ? | 📋 | ✅RC2 | ✅RC2 |
| 17 | ✅+ | ✅+ | ✅+ | ✅ | ?changed | ✅ | ? | 📋 | — | ✅RC2 |
| 18 | ✅+ | ✅ | ✅+ | ✅ | ? | ✅ | ? | 📋 | — | —changed |
| 19 | ✅ | ✅ | ✅ | ✅ | ? | ✅ | ? | 📋 | ✅RC2 | ✅ |
| 20 | ✅ | ✅ | ✅ | ✅ | 🔧new | ✅RC2 | ? | 📋 | ✅RC2 | ✅RC2 |
| 21 | — | — | — | ✅ | ? | ✅ | ? | 📋 | ✅RC2 | ✅RC2 |
| Video encoder and streams | ||||||||||
| 22 | ✅ | ✅ | ✅ | ✅+ | 🔧 | ✅ | 🔧 🚧 | 📋 | ✅changed | ✅ |
| 23 | — | — | — | — | ❌ | ✅ | ? | 📋 | ✅RC2 | ✅ |
| 24 | ✅ | ✅ | ✅+ | ✅ | 🔧 | ✅ | 🔧 🚧 | 📋 | ✅RC2 | ✅changed |
| 25 | ✅ | ✅ | ✅ | ✅ | 🔧 | ✅ | ? | 📋 | ✅changed | ✅ |
| 26 | ✅+ | ✅ | ✅ | ✅ | 🔧 | ✅changed | ? | 📋 | ✅RC2 | ✅changed |
| 27 | ✅ | ✅ | ✅ | ✅ | ? | ✅ | ? | 📋 | ✅RC2 | ✅RC2 |
| 28 | ✅ | ✅ | ✅ | ✅ | ? | ✅ | ❌ | 📋 | ✅+changed | ✅ |
| 29 | ✅ | ✅+ | ✅ | ✅ | ? | ✅+ | ❌ | 📋 | ✅new | ✅changed |
| 30 | ✅ | ✅ | ✅+ | ✅ | 🔧 | ✅ | 🔧 🚧 | 📋 | ✅changed | ✅ |
| Audio (documentation only, no tests) | ||||||||||
| 31 | ✅ | ✅ | ✅ | ✅ | ? | ✅ | ❌ | 📋 | ✅RC2 | — |
| 32 | ✅ | ✅ | ✅ | ✅ | ? | ✅ | ❌ | 📋 | 🔧RC2 | — |
| 33 | ✅ | ✅ | ✅ | ✅ | ? | ✅+ | ❌ | 📋 | 🔧RC2 | — |
| Memory, size, load | ||||||||||
| 34 | ✅+ | ✅+ | ✅+ | ✅+ | ? | ✅+ | ❌ | 📋 | ✅+RC2 | ✅+changed |
| 35 | ✅ | ✅ | ✅+ | ✅+ | ? | ✅+ | ? | 📋 | ✅RC2 | ✅changed |
| 36 | ✅ | ✅ | ✅+ | ✅+ | ? | ✅ | ? | 📋 | ✅RC2 | ✅ |
| 37 | — | — | ✅+ | ✅+ | ? | — | ? | 📋 | —changed | —changed |
| 38 | ✅ | ✅ | ✅+ | ✅ | ? | ✅changed | ? | 📋 | ✅RC2 | ✅changed |
| Stability, helper libraries, telemetry | ||||||||||
| 39 | ✅+ | ✅+ | ✅+ | ✅+ | ? | — | ? | 📋 | — | ✅ |
| 40 | — | — | — | — | — | ✅+ | ? | 📋 | ✅RC2 | ✅ |
| 41 | ✅ | ✅ | ✅ | ⚠️changed | ? | ⚠️changed | ? | 📋 | ✅RC2 | ✅RC2 |
| 42 | ✅+ | ✅+ | ✅+ | ✅+ | ? | ✅+ | ❌ | 📋 | ✅+RC2 | ✅+ |
| 43 | ✅ | ✅ | ✅+ | ✅ | 🔧new | ✅ | ❌ | 📋 | ✅RC2 | ✅ |
| 44 | ✅+ | ✅+ | ✅+ | ✅+ | ? | ✅+ | ❌ | 📋 | ✅RC2 | ✅RC2 |
| Region of interest | ||||||||||
| 45 | ✅ | ✅ | ✅+ | ✅ | ? | ✅+ | ❌ | 📋 | ✅RC2 | ✅+RC2 |
Matrix details
Video encoder and streams
22. H.264
- Encoder path with a test pattern (2026-10-19,
claude/testbild, hook not yet merged, host-fed pattern at the FrameSource, device runs): T40/T41 H.264 1080p/720p/360p luma PSNR 56-57 dB, SSIM >= 0.998, chroma bit-exact, checker 16/235 exact, I2D 90 as well; T20/T21/T23/T31 H.264 luma PSNR 51-66 dB, bar chroma difference 0, no colour swap or orientation error. T23 H.264 320x180: P-frame job timeout (also without the pattern, open).
24. JPEG / MJPEG / snapshot
- 2026-10-06 (all SoCs): a JPEG channel in the group of a video channel feeds itself from the frame source when the video channel is not polled for 300 ms (libimp feeds every bound channel); T20/T21/T23: apitest JPEG polling, marker check and live
SetJpegeQlPASS without an H.264 reader [beyond vendor, see OPENIMP_BEYOND_VENDOR.md]
- Test pattern and range (2026-10-19): JPEG T40/T41 PSNR 55 dB, SSIM >= 0.997, chroma at most 1 code off (quantisation); T20/T21/T23/T31 JPEG PSNR 51-56 dB. JPEG range: the ISP delivers full-range data (BT.709) and neither the vendor libraries nor OpenIMP convert; the Y 16..238 once seen came from the sensor's Bayer test pattern (host regression test only, no code change).
28. OSD: text, bitmap, rectangle, line, cover
- OSD after I2D (2026-10-19, in next 92232a1): the group OSD draws on the I2D-rotated frame (vendor order FrameSource -> OSD -> encoder) at its 32-aligned pitch; regions are given in rotated-stream coordinates, bitmaps are not pre-rotated. Device-tested T41 .34 (upright at 0/90/180/270 in H.264 ch0/ch1 and the ch1 JPEG) and T40 Eufy (upright at 16,16 in all six I2D variants, H.264 and JPEG).
29. IVS / motion detection
- Motion with the open stack (2026-10-18/19): T41 .34: 8/8 PTZ moves detected, latency 0.5-0.7 s, 0 false alarms in 600 s static, CPU about 1 %, no gaps > 0.2 s on ch1, 0 oops. T40 Eufy (2026-10-19, by day, PTZ pans): 6/8 pans detected (latency 0.31-0.92 s), 2 missed, 50 false snapshots in 12 bursts in 600 s static (T41: 0), CPU cost about 0.4 percentage points, ch1 without gaps > 0.2 s, 0 oops. The T40 cell is ⚠️ (misses and false alarms; the night run of 2026-10-18 with the IR-cut toggle was not assessable).
30. Frame source / VBM pool
- 2026-10-06:
GetFrame/SnapFramewait up to 2 s like the vendor libimp on T20/T21/T23/T31 (apitest 16/16 frames); T20:REQBUFS= pool size andSET_BANKSas the vendor, the capture thread no longer sleeps inDQBUFwithout a queued buffer (apps that callSetFrameDepthgot no frames before);Encoder_GetFdreturns a pollable pipe; two IVS groups; T23: the pool rmem is parked atDisableChnas on T21 (40 streamer restarts, 0 oopses on a T23 camera)
Stability, helper libraries, telemetry
45. Encoder ROI (region QP)
- Rules (all SoCs with ROI): window deltas -25..+25; spread of all deltas at most 25; picture QP plus delta inside 0..51 and the rate control's min/max QP; requests beyond that are clamped with a one-time warning (
SetChnRoiAttrreturns -1 for a delta outside -26..25 or an absolute QP outside 0..51)
API coverage per function
ISP tuning — 160 rows (54 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ISP_Bypass_Bind | – | – | – | – | – | – | – | – | ✅ | – | – |
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ rt | ✅ | r† | |
audit: reaches the driver/kernel; userspace implementation T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest agg47 stock 2026-10-27 .184 (API round trip, no visible effect expected) T41: apitest issue-116 2026-10-26 .34: SetDefaultBinPath ret=0 before AddSensor, AddSensor 0, EnableSensor 0; QEMU T41: the set file is the one tisp_init loads Used by (per SoC): T23: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ rt | ✅ | r† | |
T41: 40-byte request {ch, 3 entries}, device-tested (claude/t41-driver-gaps, in agg-35); T31: stock lsize/fmark semantics, the ISP drops the frames (open-tx-isp claude/release-t31-framedrop; 29.6 fps to 14.8/7.4 fps, disabled restores, lsize 32 refused) T41: 40-byte request {ch, 3 entries}, device-tested (claude/t41-driver-gaps, in agg-35); T31: stock lsize/fmark semantics, the ISP drops the frames (open-tx-isp claude/release-t31-framedrop; 29.6 fps to 14.8/7.4 fps, disabled restores, lsize 32 refused) T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest agg47-cases 2026-10-26 .184 (API round trip, no visible effect expected) Used by (per SoC): T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ✅ rt | p† | |
T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest ispbypass 2026-10-27 .34 (#125 branch, in next): Set 0 ret 0 (was -4095), Set 1 refused -1, Get stays 0, frames flow; real bypass needs the VIC MDMA path (#125) Used by (per SoC): T32: p†; T33: p†; T41: p† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ | 📋 | 📋 | ✅ rt | ✅ | r† | |
T41: claude/t41-isp-round2 (not in agg-25); not device-tested; T23: bus type read at the stock offset (was "There isn't sensor!"); apitest read PASS, write skipped; T41: request with vinum at 32 and bus type at 36, device-tested (claude/t41-driver-gaps, in agg-35) T10: apitest agg47-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest agg47-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest agg47-cases 2026-10-26 .24 (API round trip, no visible effect expected) T23: apitest agg47-cases 2026-10-26 .30 (API round trip, no visible effect expected) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest issue-113 2026-10-26 .26 (open-tx-isp 3e9a5d2c + OpenIMP 662b0d8c): chip id 0xcb3a read, same-value write round trip PASS; QEMU T31 equal T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest agg47-cases 2026-10-26 .184 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | – | r† | |
T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide Used by (per SoC): T32: r†; T33: r†; T40: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ISP_GetRaw | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | – | – | ❌ miss | – | |
T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 aud ∅ | – | 🔧 aud ∅ | – | – | – | ❌ miss | – | |
T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 aud ∅ | – | 🔧 aud ∅ | – | – | – | ❌ miss | – | |
T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 aud ∅ | – | – | 📋 | 📋 | 🔧 host ∅ | – | – | |
audit: reaches the driver/kernel T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | – | ✅ rt | – | r† | |
T40: apitest rc3-cases 2026-10-26 .184 (API round trip, no visible effect expected) Used by (per SoC): T40: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | – | |
T23: driver routes 0x8000102 (agg-25), apitest PASS 2026-10-10; T31: the argument is the IMPISPFixedContrastAttr pointer (not a mode): with the tuning session open it goes to the driver as control 0x8000102 like the vendor (apitest PASS 2026-10-10, host test tests/t31/fixed_contrast_test.c); the open T31 driver handler dropped the 3 bytes before, it now calls tisp_set_bcsh_fixed_contrast like the stock s_ctrl (open-tx-isp claude/gaps-t23-t31-drv; mode, y low and the fixed value reach the BCSH MJPEG range; only matters for the MJPEG path); module build only, device test of the effect pending; Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ISP_SetPreDqtime | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| ISP_SetScalerLv | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| – | – | – | 🔧 aud ∅ | – | – | – | – | – | – | – | |
audit: reaches the driver/kernel | |||||||||||
| – | – | – | 🔧 host ∅ | – | – | – | – | – | – | – | |
T23: ioctl (claude/t23t31-cacheonly, not in agg-25) | |||||||||||
| – | – | – | – | – | – | – | – | – | ❌ miss | – | |
T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 aud ∅ | – | – | – | – | – | – | – | |
audit: reaches the driver/kernel | |||||||||||
| ✅ rt | ✅ rt | ✅ | ✅ no-op | 🔧 qemu ↷ | ✅ rt | – | – | – | – | r† | |
T23: stock driver also no-op (OEM-same); T31: vendor library logic (AE block of control 0x800002c, move.txt limits, IDR on disable), host-tested; the stock T31 driver ignores the control T10: apitest issue-109 2026-10-27 .31 + QEMU: ret 0 (was -1); vendor 3.12.0 logic (SYSTEM_TAB block, same as T31), picture effect not measured, no move.txt in the image (vendor alike) T20: apitest issue-109 2026-10-27 .107 + QEMU: ret 0 (was -1); vendor 3.12.0 logic (SYSTEM_TAB block, same as T31), picture effect not measured, no move.txt in the image (vendor alike) T21: apitest movestate 2026-10-27 .24 (movestate-t21-t30, in next): IT max 2246 -> 1347 -> 2246, frames flow T30: QEMU T30 2026-10-27 (movestate-t21-t30): IT max 1916 -> 1149 -> 1916 (no T30 camera) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47-cases 2026-10-26 .26 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T31: takes the enable flag like the vendor (the stub always wrote 1); imgfx A/B against the old library on the T31 camera T23: apitest agg47 2026-10-26 .30 T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T31: wired to the driver (agg-25) T23: apitest agg47 2026-10-26 .30 T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ | ✅ no-op | 🔧 qemu ↷ | ✅ rt | – | – | – | – | r† | |
T23: stock driver also no-op (OEM-same); T31: vendor library logic (AE block of control 0x800002c, move.txt limits, IDR on disable), host-tested; the stock T31 driver ignores the control T10: apitest issue-109 2026-10-27 .31 + QEMU: ret 0 (was -1); vendor 3.12.0 logic (SYSTEM_TAB block, same as T31), picture effect not measured, no move.txt in the image (vendor alike) T20: apitest issue-109 2026-10-27 .107 + QEMU: ret 0 (was -1); vendor 3.12.0 logic (SYSTEM_TAB block, same as T31), picture effect not measured, no move.txt in the image (vendor alike) T21: apitest movestate 2026-10-27 .24 (movestate-t21-t30, in next): IT max 2246 -> 1347 -> 2246, frames flow T30: QEMU T30 2026-10-27 (movestate-t21-t30): IT max 1916 -> 1149 -> 1916 (no T30 camera) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47-cases 2026-10-26 .26 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 T31: apitest rc3-cases 2026-10-26 .26 Used by (per SoC): T23: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ rt | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-26 .184 (API round trip, no visible effect expected) T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T23: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | 🔧 aud ≈ | – | 🔧 aud ≈ | 📋 | 📋 | ✅ | ✅ rt | r† | |
T41: vendor 1.2.6 error ladder (claude/t41-isp-round2, not in agg-25); not device-tested; T40: Get dev, Set host (only the Get is device-tested on cam-K 2026-10-10, OpenIMP vs vendor library) T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest rc3-cases 2026-10-26 .34 (API round trip, no visible effect expected) Used by (per SoC): T32: r†; T33: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅+ | – | ? | – | – | – | – | – | t | |
T21: B/W, negative and vivid change the picture (imgfx); SEPIA works (beyond vendor, was -1): CCM saturation 0 plus a tinted CSC matrix, dU/dV +10/+9 and +17/+19 in two runs; T10/T20 re-test pending (RC imgfx ran in the dark) T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest agg47-cases 2026-10-26 .24 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: t; T20: t; T21: t; T30: t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest agg47 2026-10-26 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ rt | – | ✅ | – | – | – | – | r† | |
audit: reaches the driver/kernel T23: apitest rc3-cases 2026-10-26 .30 (API round trip, no visible effect expected) T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T23: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† t | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r† t; T31: r† t | |||||||||||
| – | – | – | ❌ err | – | – | 📋 | 📋 | – | ❌ miss | – | |
T23: 0x8000180 on the stock mscaler draw table (open-tx-isp claude/gaps-t23-t31-drv, class c; emulator-identical to the stock handlers including the stock Get slip of colour byte 23; a draw block above 5 is refused, beyond stock); host build only, device test pending; the stored block has no image effect yet (the MSCA update that programs it is not run, as for the mask blocks); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: 0x8000180 on the stock mscaler draw table (open-tx-isp claude/gaps-t23-t31-drv, class c; emulator-identical to the stock handlers including the stock Get slip of colour byte 23; a draw block above 5 is refused, beyond stock); host build only, device test pending; the stored block has no image effect yet (the MSCA update that programs it is not run, as for the mask blocks); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: issue #9 (open): [T23] Backlog: ISP tuning API, 2 functions that no streamer calls T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| – | – | ✅ | ✅ | – | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T21: p† r† t; T23: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T31: wired to driver 0x80000e3 / 0x80000e7 (agg-25); agg-34: the crop crash is fixed (guard against windows the MSCA would upscale); device-tested on 2026-10-10: a valid window zooms both streams (proven), a too-small window is refused with -EINVAL without a hang, the window survives a restart and a flip, hence dev; T23: dev after the 2026-10-09 crop fixes (crop off, lock release, window that does not fit is dropped); T10/T20/T21 crop device-tested but not a vendor call there (T20/T10: a window set before stream-on is applied and survives substream restarts; the release of the window at tuning-session close is not verified) T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅+ | ? | ✅ | – | – | – | – | p† r† | |
T23: applied at once (beyond stock); curve test, falling curve rejected, restore ok on cam-B 2026-10-05 T10: apitest rc3-cases 2026-10-26 .31 T20: apitest issue-121 2026-10-27 .107 (open-tx-isp b4d8eae0): Get returns the active curve (128/129 points, was all 0); same curve written back: luma unchanged; x^0.3 vs linear Y 131.6 vs 42.3 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | p† r† | |
T41: vendor 1.2.6 error ladder (claude/t41-isp-round2, not in agg-25); not device-tested; T40: Get dev, Set host (only the Get is device-tested on cam-K 2026-10-10, OpenIMP vs vendor library) T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47-cases 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47-cases 2026-10-26 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| ISP_Tuning_Get/SetHLDCAttr | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| – | – | – | ✅ rt | – | ✅ rt | 📋 | 📋 | 🔧 host ∅ | ✅ | r† t t† | |
audit: reaches the driver/kernel; used by: T23/T31: raptor†; T41: raptor†, timps T23: apitest agg47 stock 2026-10-27 .30 (API round trip, no visible effect expected) T31: apitest next+ko/libimp swap 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest agg47 2026-10-26 .34 Used by (per SoC): T23: r†; T31: r†; T32: r† t†; T33: r† t†; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | – | ? | – | – | – | – | – | t | |
audit: reaches the driver/kernel T10: apitest agg47-cases 2026-10-26 .31 T20: apitest inttime 2026-10-27 .107, night (open-tx-isp 4e961167, #128): 30 -> 240 lines Y 5.6 -> 37.3, readback 30/240; AE no longer overrides the manual time T21: apitest issue-110 2026-10-27 .24 (open-tx-isp 28b26d20, stock libimp): Get mode/it/max 0/1350/2246, manual 30 read back; Set 30->240 lines Y 16.1->78.9; QEMU T21 equal (beyond vendor: stock T21 ignores the block) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: t; T20: t; T21: t; T30: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T41: vendor 1.2.6 error ladder (claude/t41-isp-round2, not in agg-25); not device-tested T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | ✅ rt | – | ✅ rt | – | – | – | – | r† | |
T31: wired to driver 0x80000e3 / 0x80000e7 (agg-25); T10/T20/T21 crop device-tested but not a vendor call there T23: apitest issue-122 2026-10-27 .30 (open-tx-isp a6b4ab2e): Get 0 (was 0xffffffff), Set same value 0 (was -1); QEMU equal T31: apitest issue-117 2026-10-27 .26 (open-tx-isp a6b4ab2e): Set of the value read (DISABLE) 0, was -1; ENABLE without a *-cust-t31.bin stays -1 like the vendor; QEMU equal Used by (per SoC): T23: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ rt | – | – | – | – | p† t | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-26 .26 (API round trip, no visible effect expected) Used by (per SoC): T10: p† t; T20: p† t; T21: p† t; T23: p† t; T30: p† t; T31: p† t | |||||||||||
| ✅ | ✅ | – | – | 🔧 host ↷ | – | – | – | – | – | – | |
T10/T20 3.12.0: apitest PASS on T10 and T20 (set both flips, read back, restore). The vendor sends one module-control word (0x80000e2 through the 0xc00c56c6 ioctl), which the open T20 driver does not serve; OpenIMP uses the ISPHflip/ISPVflip pair (V4L2 flip controls) instead; T30 1.0.5 (2026-10-10): the same pair of flip controls as T20 (the vendor sends the module-control word 0x80000e2, which the open drivers do not serve); host test with a fake tuning ioctl, no T30 device T10: apitest rc3-cases 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ rt | – | – | – | – | p† t | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-26 .26 (API round trip, no visible effect expected) Used by (per SoC): T10: p† t; T20: p† t; T21: p† t; T23: p† t; T30: p† t; T31: p† t | |||||||||||
| – | – | – | ✅ no-op | – | ✅ | – | – | ✅ | – | r† | |
T23: stock tx-isp-t23.ko leaves 0x80000e5 unhandled (-1) T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T23: r†; T31: r†; T40: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | 🔧 aud ≈ | – | |
audit: reaches the driver/kernel T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | 🔧 host ≈ | 🔧 aud ≈ | – | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T21: tuning 0x80000e2 (agg-25); T41: driver rejects 0x8000072 (-EINVAL); T40: Get dev, Set host (only the Get is device-tested on cam-K 2026-10-10, OpenIMP vs vendor library) T21: tuning 0x80000e2 (agg-25); T41: driver rejects 0x8000072 (-EINVAL); T40: Get dev, Set host (only the Get is device-tested on cam-K 2026-10-10, OpenIMP vs vendor library) T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| ✅ rt | ✅ | ✅ rt | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 (API round trip, no visible effect expected) T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47 2026-10-26 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest agg47 2026-10-26 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | 🔧 aud ≈ | – | – | – | – | – | – | – | |
audit: reaches the driver/kernel | |||||||||||
| – | – | – | 🔧 aud ≈ | – | – | – | – | – | – | – | |
audit: reaches the driver/kernel | |||||||||||
| ✅ | ✅ | ✅ | – | 🔧 qemu ↷ | – | – | – | – | – | p† | |
T10+T20: reach the driver (agg-25, T20 vendor layout); T10 shares the build T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest agg47-cases 2026-10-26 .24 T30: apitest agg47-cases 2026-10-26 QEMU (no camera) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: p†; T20: p†; T21: p†; T30: p† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest issue-90 runtime swap 2026-10-27 .34 (open-tx-isp 42691882 + OpenIMP c34c0196): 256-bin sum = 2880x1620, 5-bin split follows histThresh, zones 1..226 | |||||||||||
| ✅ | ✅ | ✅ | – | 🔧 qemu ↷ | – | – | – | – | – | p† | |
T10+T20: reach the driver (agg-25, T20 vendor layout); T10 shares the build T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest agg47-cases 2026-10-26 .24 T30: apitest agg47-cases 2026-10-26 QEMU (no camera) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: p†; T20: p†; T21: p†; T30: p† | |||||||||||
| – | – | – | – | – | – | – | – | – | ✅ | – | |
T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | ✅ rt | – | – | – | – | r† | |
T31: reaches the WDR tool block (agg-25) T31: apitest issue-118 2026-10-27 .26 (open-tx-isp a6b4ab2e): after WDR_ENABLE(0) Get 0 mode 0 (was -1), Get/Set same value PASS; QEMU equal Used by (per SoC): T31: r† | |||||||||||
| ✅ | ✅ | – | – | 🔧 host ↷ | – | – | – | – | – | – | |
T10/T20 3.12.0: V4L2 control 0x98e912 with the vendor's mode cache (an unchanged mode returns 0 without the driver). apitest PASS on T10 and T20 for Get and Set of the current mode; switching WDR on was not run: the driver refuses (-EPERM) without a WDR frame buffer, as the stock module; T30 1.0.5: V4L2 control 0x8000169 with the vendor's mode cache (an unchanged mode returns 0 without the driver; a failed Get returns the cached mode with the error); host test with a fake ioctl; whether the open T30 driver serves the control is not checked T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ no-op | – | |
T41: the stock driver has no handler (empty tisp_set/get_wdr_output_mode); the open driver refuses with EOPNOTSUPP, so libimp accepts the value and reads it back (default 0), like the vendor no-op but with readback; apitest PASS on the T41 test board (2026-10-17) T41: the stock driver has no handler (empty tisp_set/get_wdr_output_mode); the open driver refuses with EOPNOTSUPP, so libimp accepts the value and reads it back (default 0), like the vendor no-op but with readback; apitest PASS on the T41 test board (2026-10-17) T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T23: stock autozoom control 0x80000e8 (open-tx-isp agg-28), host/build-tested only; T41: driver has no stock handler, refuses; T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T23: stock autozoom control 0x80000e8 (open-tx-isp agg-28), host/build-tested only; T41: driver has no stock handler, refuses; T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T23: apitest rc3gaps2 2026-10-27 .30 T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T40: apitest agg47-cases 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | ✅ no-op | – | ✅ | – | – | – | – | r† | |
T23: the stock T23 module has no BLC attr control (-1 as stock; apitest N/A); T31: apitest PASS T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: reaches the driver/kernel; T40: returned -1 on cam-K 2026-10-10 (vendor library returns the value); fixed after RC1: the getters return the vendor per-input cache (host-tested) audit: reaches the driver/kernel; T40: returned -1 on cam-K 2026-10-10 (vendor library returns the value); fixed after RC1: the getters return the vendor per-input cache (host-tested) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47 2026-10-26 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest agg47 2026-10-26 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | ✅ | ✅ | r† | |
T23: apitest rc3-cases 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T40: apitest agg47 2026-10-26 .184 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | – | – | ✅ | – | – | |
T40: apitest rc3-cases 2026-10-26 .184 | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 host ∅ | – | – | 📋 | 📋 | – | 🔧 host ∅ | – | |
T23: 0x8000183 in claude/t23-awb-runtime only (not in agg-25); T23: 0x8000183 on the stock mscaler mask table (open-tx-isp agg-28, emulator-identical); the stored masks have no image effect yet (the mscaler update that consumes them is not run) T23: 0x8000183 in claude/t23-awb-runtime only (not in agg-25); T23: 0x8000183 on the stock mscaler mask table (open-tx-isp agg-28, emulator-identical); the stored masks have no image effect yet (the mscaler update that consumes them is not run) T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | – | ? | – | – | – | – | – | p† | |
T10+T20: reach the driver (agg-25, T20 vendor layout); T10 shares the build T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-26 .24 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: p†; T20: p†; T21: p†; T30: p† | |||||||||||
| ✅ | ✅ | ✅ | – | ? | – | – | – | – | – | – | |
audit: reaches the driver/kernel T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T30: issue #22 (open): [T30] Backlog: ISP tuning API, 5 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
T41: driver claude/t41-connect (agg-25); host tests 58/58; used by: T23/T31: timps; T41: raptor†, timps; T40: device-tested on cam-K 2026-10-10 (OpenIMP vs vendor library) T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T23: t; T31: t; T32: r† t†; T33: r† t†; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47 2026-10-26 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | – | – | – | – | – | – | – | – | |
T10/T20/T21 (4 builds each) and T23/T31: declared in the SDK header, exported by none of the vendor libimp builds (nm); a vendor-stack application cannot link it either | |||||||||||
| ✅ | ✅ | ✅ no-op | – | 🔧 host ↷ | – | – | – | – | – | – | |
T21: exported like the vendor libimp; control 0x8000163 is accepted by the OEM kernel without effect; T10/T20 (class c, 2026-10-10): the vendor sends control 0x98e903 (CUSTOM_ANTI_FOG); agg-37: exported; the open driver (`claude/agg37-drv`) serves the control with a safe preset that does not touch the Iridix state that hung cameras earlier (DefogStrength remains the alternative); host test only, device test pending. T21: apitest PASS (ret 0); T30 1.0.5: the enum goes out as control 0x8000163, the same code as T21; host test with a fake ioctl, driver behaviour on T30 not checked T21: exported like the vendor libimp; control 0x8000163 is accepted by the OEM kernel without effect; T10/T20 (class c, 2026-10-10): the vendor sends control 0x98e903 (CUSTOM_ANTI_FOG); agg-37: exported; the open driver (`claude/agg37-drv`) serves the control with a safe preset that does not touch the Iridix state that hung cameras earlier (DefogStrength remains the alternative); host test only, device test pending. T21: apitest PASS (ret 0); T30 1.0.5: the enum goes out as control 0x8000163, the same code as T21; host test with a fake ioctl, driver behaviour on T30 not checked T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 | |||||||||||
| – | – | – | ✅ rt | – | ✅ | 📋 | 📋 | ✅ rt | ✅ rt | p† r r† | |
T23: stock autozoom control 0x80000e8: crop window and scaler output into the channel MSCA record (agg-28; windows outside the picture, below 64x64 or odd are refused, beyond stock), host/build-tested only; T31: programs scaler/crop, refuses size change; T41: driver has no stock handler, refuses; used by: T23: raptor; T31: prudynt†, raptor†; T41: prudynt†; T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T23: stock autozoom control 0x80000e8: crop window and scaler output into the channel MSCA record (agg-28; windows outside the picture, below 64x64 or odd are refused, beyond stock), host/build-tested only; T31: programs scaler/crop, refuses size change; T41: driver has no stock handler, refuses; used by: T23: raptor; T31: prudynt†, raptor†; T41: prudynt†; T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T23: apitest rc3gaps2 2026-10-27 .30 (API round trip, no visible effect expected) T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest agg47-cases 2026-10-26 .184 (API round trip, no visible effect expected) T41: apitest next+ko/libimp swap 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T23: r; T31: p† r†; T32: p† r†; T33: p† r†; T41: p† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅+ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
T21: acts (beyond vendor: AE target scaled by value/128, open-tx-isp claude/release-t21-brightness); imgfx Y 28.8/117.7/193.0 for 30/128/225; the vendor kernel only stores the value T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47 2026-10-26 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest agg47 2026-10-26 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | – | 🔧 host ↷ | – | – | – | – | – | – | |
T21: exported like the vendor (cap 200 %); reaches the open driver DPC ratio (control 0x8000062); not individually device-tested; T31: none of the 28 vendor libimp builds (1.1.1-1.1.6) exports it, the header set does not declare it either; T10/T20 3.12.0 (0x60138): the same call as T21, capped at 200 %, here mapped onto the open driver DPC ratio (0x8000062); apitest PASS (return code) on T10, T20, T21; the picture effect was not measured; T30 1.0.5: capped at 200 %, mapped onto the DPC ratio control (0x8000062) like T21; host test with a fake tuning ioctl T10: apitest rc3-cases 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 | |||||||||||
| ISP_Tuning_SetFixedContraster | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| ✅ rt | ✅ rt | ✅ rt | – | ? | – | – | – | – | – | – | |
audit: reaches the driver/kernel T10: apitest agg47-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest agg47-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest agg47-cases 2026-10-26 .24 (API round trip, no visible effect expected) T30: issue #22 (open): [T30] Backlog: ISP tuning API, 5 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ rt | – | – | ✅ rt | – | p† r† | |
audit: reaches the driver/kernel T10: apitest ispbypass_old 2026-10-27 .31 (open-tx-isp + OpenIMP next, #119/#126): ENABLE (full ISP, the streamer call) ret 0, DISABLE (real bypass) refused with -1 like the vendor T21, nothing touched, frames flow; real bypass = #129 T20: apitest ispbypass_old 2026-10-27 .107 (open-tx-isp + OpenIMP next, #119/#126): ENABLE (full ISP, the streamer call) ret 0, DISABLE (real bypass) refused with -1 like the vendor T21, nothing touched, frames flow; real bypass = #129 T21: apitest ispbypass_old 2026-10-27 .24 (open-tx-isp + OpenIMP next, #119/#126): ENABLE (full ISP, the streamer call) ret 0, DISABLE (real bypass) refused with -1 like the vendor T21, nothing touched, frames flow; real bypass = #129 T23: apitest ispbypass_old 2026-10-27 .30 (open-tx-isp + OpenIMP next, #119/#126): ENABLE (full ISP, the streamer call) ret 0, DISABLE (real bypass) refused with -1 like the vendor T21, nothing touched, frames flow; real bypass = #129 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest ispbypass_old 2026-10-27 .26 (open-tx-isp + OpenIMP next, #119/#126): ENABLE (full ISP, the streamer call) ret 0, DISABLE (real bypass) refused with -1 like the vendor T21, nothing touched, frames flow; real bypass = #129 T40: apitest rc3-cases 2026-10-26 .184 (API round trip, no visible effect expected) T40: issue #62 (closed): [T40] ISP tuning: audit of 2 streamer-used functions of unknown state Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T40: p† r† | |||||||||||
| – | – | – | – | ❌ miss | – | – | – | – | – | – | |
T30: issue #22 (open): [T30] Backlog: ISP tuning API, 5 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | – | 🔧 qemu ↷ | – | – | – | – | – | – | |
audit: reaches the driver/kernel T10: apitest agg47-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest agg47-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest agg47-cases 2026-10-26 .24 (API round trip, no visible effect expected) T30: apitest agg47-cases 2026-10-26 QEMU (no camera) T30: issue #22 (open): [T30] Backlog: ISP tuning API, 5 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 host ∅ | – | – | 📋 | 📋 | – | ✅ | r† | |
T23: 0x8000183 in claude/t23-awb-runtime only (not in agg-25); T41: driver has no handler, fails with -EPERM since agg-25 (was silent 0); vendor behaviour unverified; T23: 0x8000183 on the stock mscaler mask table (open-tx-isp agg-28, emulator-identical); the stored masks have no image effect yet (the mscaler update that consumes them is not run); T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T23: 0x8000183 in claude/t23-awb-runtime only (not in agg-25); T41: driver has no handler, fails with -EPERM since agg-25 (was silent 0); vendor behaviour unverified; T23: 0x8000183 on the stock mscaler mask table (open-tx-isp agg-28, emulator-identical); the stored masks have no image effect yet (the mscaler update that consumes them is not run); T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest agg47 2026-10-26 .34 Used by (per SoC): T32: r†; T33: r†; T41: r† | |||||||||||
| ✅ | 🔧 host ≈ | – | – | – | – | – | – | – | – | – | |
T10/T20 (class c): the vendor writes bits 2..4 of an ISP lens-shading register through a userspace mapping (3.12.0 0x62930); agg-37: exported, driver control 0x80000a3 (mesh-scale field of register 0x380) in `claude/agg37-drv`; host test only, device test pending T10/T20 (class c): the vendor writes bits 2..4 of an ISP lens-shading register through a userspace mapping (3.12.0 0x62930); agg-37: exported, driver control 0x80000a3 (mesh-scale field of register 0x380) in `claude/agg37-drv`; host test only, device test pending T10: apitest rc3-cases 2026-10-26 .31 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls | |||||||||||
| ✅ | ✅ rt | ✅ no-op | – | ? | – | – | – | – | – | p† | |
T10+T20: reach the driver (agg-25, T20 vendor layout); T10 shares the build; T21: imgfx 2026-10-05: no picture change; vendor no-op or measurement issue (which one: unverified) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: p†; T20: p†; T21: p†; T30: p† | |||||||||||
| – | – | – | ✅ no-op | – | ✅ | 📋 | 📋 | – | ✅ rt | r† | |
T23: the stock module has no handler for 0x80000e9 either (-EINVAL as stock); T41: driver has no handler, fails with -EPERM (was silent 0); vendor behaviour unverified; T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T23: the stock module has no handler for 0x80000e9 either (-EINVAL as stock); T41: driver has no handler, fails with -EPERM (was silent 0); vendor behaviour unverified; T41 (2026-10-10): deferred, live MSCA reprogramming carries a hang risk T31: apitest rc3-cases 2026-10-26 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest rc3-cases 2026-10-26 .34 (API round trip, no visible effect expected) Used by (per SoC): T23: r†; T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ no-op | – | ? | – | – | – | – | – | t | |
T21: vendor kernel no-op (imgfx: no picture change, same on the vendor stack by design) T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest scene 2026-10-27 .24 (#120): ret 0, NIGHT/AUTO no picture change on the open and the stock stack (stock oem-t21 handler returns 0 without effect) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state Used by (per SoC): T10: t; T20: t; T21: t; T30: t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
T41: reaches the sensor (agg-25); -EOPNOTSUPP on the gc5603 of cam-F T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: gate1026 .184 2026-10-26 (open-tx-isp 2acd1afa, OpenIMP d2b40b9c): 100x, 0 oops, apitest PASS T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ no-op | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
T21: imgfx 2026-10-05: no picture change; vendor no-op or measurement issue (which one: unverified) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47 2026-10-26 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ run | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: called by timps on the fleet .107, .163 (T20), soak agg46; not an individual device test T21: apitest rc3-cases 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | – | ⚠ cache | – | – | – | – | – | – | |
T10+T20: newly exported (agg-25); T30 1.0.5 (the vendor sends the temper type through control 0x8000167 and ignores night mode): stored in the same cache as the T30 SetTemperDnsAttr, no driver control; host test T10: apitest agg47-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest agg47-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest agg47-cases 2026-10-26 .24 (API round trip, no visible effect expected) T30: issue #22 (open): [T30] Backlog: ISP tuning API, 5 functions that no streamer calls | |||||||||||
| ✅ | ✅ run | ✅ run | ✅ run | ? | ✅ run | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: called by timps on the fleet .107, .163 (T20), soak agg46; not an individual device test T21: called by timps on the fleet .24 (T21), soak agg46; not an individual device test T23: called by timps on the fleet .124, .28, .30, .23 (T23), soak agg46; not an individual device test T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: called by timps on the fleet .145, .151, .25, .26, .29, .33, .21, .224 (T31), soak agg46; not an individual device test Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
all: callback after 2/4/6 s without frames (agg-25); host-tested; video demand rule T10: apitest agg47-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest agg47-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest agg47-cases 2026-10-26 .24 (API round trip, no visible effect expected) T23: apitest agg47-cases 2026-10-26 .30 (API round trip, no visible effect expected) T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest agg47-cases 2026-10-26 .26 (API round trip, no visible effect expected) T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest agg47-cases 2026-10-26 .184 (API round trip, no visible effect expected) T40: issue #62 (closed): [T40] ISP tuning: audit of 2 streamer-used functions of unknown state T41: apitest agg47-cases 2026-10-26 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ❌ err | – | – | 📋 | 📋 | ✅ | ✅ rt | p† | |
T23: the agg-36 driver rejects 0x8000185 (-EINVAL); a handler exists in open-tx-isp claude/gaps-t23-t31-drv (tisp_switch_bin around the driver's IQ loader: file, header, size and CRC checks, day and night banks swapped under the AE/AWB pause; module build only), held back because the bank swap must be reworked first (review: memcpy over live banks); T40/T41 (claude/switchbin-t4x, 2026-10-10): control 0x80000a5 from the vendor T40 1.3.1 and T41 1.2.6 libimp disassembly (ioctl 0xc0105436 / 0xc0105435, payload IMPISPBinAttr, 68 / 132 bytes, vendor check order and return codes); T40 device-tested on the Eufy (sc830ai, vendor kernel driver): switch to a copy of the bin, back, and enable 0 return 0, the stream keeps decoding cleanly, picture unchanged; T41 library host-tested only, the T41 kernel side is in open-tx-isp claude/switchbin-t41 (module build and host test, no device test yet; the vendor T41 module was not tested) T23: the agg-36 driver rejects 0x8000185 (-EINVAL); a handler exists in open-tx-isp claude/gaps-t23-t31-drv (tisp_switch_bin around the driver's IQ loader: file, header, size and CRC checks, day and night banks swapped under the AE/AWB pause; module build only), held back because the bank swap must be reworked first (review: memcpy over live banks); T40/T41 (claude/switchbin-t4x, 2026-10-10): control 0x80000a5 from the vendor T40 1.3.1 and T41 1.2.6 libimp disassembly (ioctl 0xc0105436 / 0xc0105435, payload IMPISPBinAttr, 68 / 132 bytes, vendor check order and return codes); T40 device-tested on the Eufy (sc830ai, vendor kernel driver): switch to a copy of the bin, back, and enable 0 return 0, the stream keeps decoding cleanly, picture unchanged; T41 library host-tested only, the T41 kernel side is in open-tx-isp claude/switchbin-t41 (module build and host test, no device test yet; the vendor T41 module was not tested) T23: issue #9 (open): [T23] Backlog: ISP tuning API, 2 functions that no streamer calls T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T41: apitest rc3-cases 2026-10-26 .34 (API round trip, no visible effect expected) Used by (per SoC): T32: p†; T33: p†; T41: p† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | r† | |
T10+T20+T21: waits for the frame end (agg-25; T20 ms, not jiffies); T23: stock 24-byte block, driver routed (agg-25), no device test T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest issue-110 2026-10-27 .24 (open-tx-isp 28b26d20): frame count 49->50, -ETIMEDOUT on timeout; QEMU 96->97 T23: apitest agg47-cases 2026-10-26 .30 T30: issue #14 (open): [T30] ISP tuning: audit of 41 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ∅ | ✅ | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | ✅ | 📋 | 📋 | ✅ rt | ✅ | r† | |
T41: driver control, device-tested (claude/t41-driver-gaps, in agg-35) T41: driver control, device-tested (claude/t41-driver-gaps, in agg-35) T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-26 .184 (API round trip, no visible effect expected) Used by (per SoC): T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T41: driver control, device-tested (claude/t41-driver-gaps, in agg-35) T41: driver control, device-tested (claude/t41-driver-gaps, in agg-35) T32: issue #31 (open): [T32] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T33: issue #46 (open): [T33] ISP tuning: 36 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | – | |
audit: userspace implementation T31: apitest next+ko/libimp swap 2026-10-27 .26 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ∅ | ❌ miss | – | |
T32: issue #39 (open): [T32] Backlog: ISP tuning API, 56 functions that no streamer calls T33: issue #54 (open): [T33] Backlog: ISP tuning API, 59 functions that no streamer calls T41: issue #75 (open): [T41] Backlog: ISP tuning API, 12 functions that no streamer calls | |||||||||||
AE / AWB / AF — 72 rows (23 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| – | – | – | 🔧 aud ∅ | – | 🔧 aud ∅ | 📋 | 📋 | ❌ miss | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T40: issue #65 (open): [T40] Backlog: AE / AWB / AF API, 2 functions that no streamer calls T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | 🔧 aud ∅ | – | 🔧 aud ∅ | 📋 | 📋 | ❌ miss | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T40: issue #65 (open): [T40] Backlog: AE / AWB / AF API, 2 functions that no streamer calls T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified; used by: T10/T20: prudynt†; T21/T23/T31: prudynt†, raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T30: issue #23 (open): [T30] Backlog: AE / AWB / AF API, 2 functions that no streamer calls Used by (per SoC): T10: p†; T20: p†; T21: p† r†; T23: p† r†; T31: p† r† | |||||||||||
| ✅ rt | ✅ rt | – | – | 🔧 host ↷ | – | – | – | – | – | – | |
T10+T20: newly exported (agg-25); T30 1.0.5: tuning control 0x8000001 (rgain << 16 | bgain), as T20; host test with a fake ioctl T10: apitest agg47-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest agg47-cases 2026-10-26 .107 (API round trip, no visible effect expected) | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | ✅ | ✅ | r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; T41: driver claude/t41-connect (agg-25); host tests 58/58 T10: apitest rc3-cases 2026-10-26 .31 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T40: gate1026 .184 2026-10-26 (open-tx-isp 2acd1afa, OpenIMP d2b40b9c): 100x, 0 oops, apitest PASS T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | – | – | – | – | – | |
T23: the vendor libimp 1.3.0 does not export it (only IMP_ISP_MultiCamera_Tuning_AwbSync, which sends control 0x8000011 for sensor 1 only); the stock kernel module rejects 0x8000011 in s_ctrl and g_ctrl (-1, checked in the emulator on the stock module), so the open driver's -EINVAL is the vendor behaviour (class a) | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | p† r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified Used by (per SoC): T23: p† r†; T31: p† r† | |||||||||||
| ✅ | ✅ | – | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r† t; T20: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | – | – | – | – | – | – | ⚠ cache | – | |
T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ≈ | ✅ rt | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: apitest issue-90 runtime swap 2026-10-27 .34 (open-tx-isp 42691882 + OpenIMP c34c0196): mode on/off with the calibration list reads back, frames flow, mode 7 refused T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: reaches the driver/kernel T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: device-tested through main-matrix feature #4 (AE control) | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r† | |||||||||||
| – | – | ✅ | ✅ | – | ✅ | – | – | – | – | p p† r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified; used by: T23: prudynt; T31: prudynt†, raptor† T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: p; T31: p† r† | |||||||||||
| – | – | – | – | – | – | – | – | ✅ | ✅ | – | |
audit: reaches the driver/kernel; T40: Get and Set device-tested on cam-K 2026-10-10 (OpenIMP vs vendor library) T41: device-tested through main-matrix feature #4 (AE control) | |||||||||||
| – | – | – | – | – | – | – | – | ✅ | – | – | |
T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 | |||||||||||
| 🔧 host ≈ | ✅ | ✅ | – | 🔧 host ↷ | – | – | – | – | – | – | |
T10+T20+T21: newly exported (agg-25); T10 shares the T20 build; T30 1.0.5: tuning control 0x8000022, as T20/T21; host test with a fake ioctl | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified; T41: driver claude/t41-connect (agg-25); host tests 58/58 T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #32 (open): [T32] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T33: issue #47 (open): [T33] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | r† | |
T23: AF statistics chain from the stock module, off by default (source_af=0); no device test; T31: reconstructed AF chain; metrics/zone/weight/hist verified on cam-A 2026-10-05, Get->Set roundtrip 0; T23: AF statistics on by default since open-tx-isp agg-28 (source_af=1 as stock); apitest PASS on a T23 camera, no measurable CPU cost T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r† | |||||||||||
| – | – | ✅ | ✅ | – | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T23: AF statistics chain from the stock module, off by default (source_af=0); no device test; T31: reconstructed AF chain; metrics/zone/weight/hist verified on cam-A 2026-10-05, Get->Set roundtrip 0; T41: driver control, device-tested (claude/t41-driver-gaps, in agg-35); T23: AF statistics on by default since open-tx-isp agg-28 (source_af=1 as stock); apitest PASS on a T23 camera, no measurable CPU cost T23: AF statistics chain from the stock module, off by default (source_af=0); no device test; T31: reconstructed AF chain; metrics/zone/weight/hist verified on cam-A 2026-10-05, Get->Set roundtrip 0; T41: driver control, device-tested (claude/t41-driver-gaps, in agg-35); T23: AF statistics on by default since open-tx-isp agg-28 (source_af=1 as stock); apitest PASS on a T23 camera, no measurable CPU cost T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #32 (open): [T32] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T33: issue #47 (open): [T33] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T21: r†; T23: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: reaches the driver/kernel T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: device-tested through main-matrix feature #8 (White balance (AWB, presets, manual)) | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T23: the open AWB reads the cluster/trend objects like the stock module (open-tx-isp agg-28, emulator-identical); apitest roundtrip PASS, the runtime effect is host/emulator-tested only T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | – | – | – | ✅ | – | |
T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T23: the open AWB reads the cluster/trend objects like the stock module (open-tx-isp agg-28, emulator-identical); apitest roundtrip PASS, the runtime effect is host/emulator-tested only T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ✅ | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ no-op | ? | ✅ no-op | – | – | – | – | p† r† | |
T23+T31: stock driver also no-op (OEM-same) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ no-op | ? | ✅ no-op | 📋 | 📋 | ✅ | ✅ | p† r† | |
T23+T31: stock driver also no-op (OEM-same) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #32 (open): [T32] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T33: issue #47 (open): [T33] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | – | |
T23: stock handlers routed (open-tx-isp agg-25), no device test T23: apitest agg47 2026-10-26 .30 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ≈ | ✅ | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: apitest issue-90 runtime swap 2026-10-27 .34 (open-tx-isp 42691882 + OpenIMP c34c0196): target 40 Y 98.2->88.4, target 180 ->105.8, off restores; Get returns the request (beyond vendor) T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ∅ | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| ✅ run | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T10: called by timps on the fleet .31 (T10), soak agg46; not an individual device test T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | p† | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: p†; T31: p† | |||||||||||
| – | – | – | – | – | – | – | – | – | ✅ | – | |
T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | – | – | – | ❌ miss | – | |
T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| ISP_Tuning_GetAEEvList | – | – | – | – | – | – | – | – | – | ✅ | – |
| – | – | – | – | – | – | – | – | – | ✅ | – | |
T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | p p† r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified; used by: T23: prudynt; T31: prudynt†, raptor† T23: apitest agg47-cases 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: p; T31: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | ✅ | ✅ | – | ✅ | – | – | – | – | p† r† t | |
audit: reaches the driver/kernel T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T21: p† r† t; T23: p† r† t; T31: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: reaches the driver/kernel T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest issue-90 runtime swap 2026-10-27 .34 (open-tx-isp 42691882 + OpenIMP c34c0196): 256-bin sum = 2880x1620, 5-bin split follows histThresh, zones 1..226 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| ✅ no-op | ✅ no-op | ✅ | ✅ | – | ✅ | – | – | – | – | p† r† | |
T10+T20: the stock T10/T20 kernel module does not serve cid 0x800002f; -1 as on the vendor stack (apitest N/A) T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T31: p† r† | |||||||||||
| – | – | ✅ | ✅ | ? | ✅ | – | – | – | – | r† | |
T23: AF statistics chain from the stock module, off by default (source_af=0); no device test; T31: reconstructed AF chain; metrics/zone/weight/hist verified on cam-A 2026-10-05, Get->Set roundtrip 0; T23: AF statistics on by default since open-tx-isp agg-28 (source_af=1 as stock); apitest PASS on a T23 camera, no measurable CPU cost T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T21: r†; T23: r†; T30: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T40: gate1026 .184 2026-10-26 (open-tx-isp 2acd1afa, OpenIMP d2b40b9c): 100x, 0 oops, apitest PASS T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T40: gate1026 .184 2026-10-26 (open-tx-isp 2acd1afa, OpenIMP d2b40b9c): 100x, 0 oops, apitest PASS T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | r† | |
T23: AF statistics chain from the stock module, off by default (source_af=0); no device test; T31: reconstructed AF chain; metrics/zone/weight/hist verified on cam-A 2026-10-05, Get->Set roundtrip 0; T23: AF statistics on by default since open-tx-isp agg-28 (source_af=1 as stock); apitest PASS on a T23 camera, no measurable CPU cost T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | – | – | – | – | p† r r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; used by: T23: raptor; T31: prudynt†, raptor† T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T23: r; T31: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: reaches the driver/kernel T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | t t† | |
T40/T41: vendor 1.3.1 / 1.2.6 ABI `(IMPVI_NUM, IMPISPAWBStatisInfo *)`, 2700-byte block (three 15x15 u32 planes: zone means of the raw pre-WB R, G, B AWB statistics, stock `tisp_awb_get_zone`), 0 only with a block that holds statistics (T41: open driver `-EAGAIN` unless from a frame of the running stream within 1 s, needs open-tx-isp `claude/awbstats`; T40 vendor kernel driver: an all-zero block is -1), capability symbol `OpenIMP_Cap_AwbStatistics` (`claude/awbstats`, device-tested 2026-10-12: Eufy T40 identical to the vendor libimp, lamp response; T41 static); used by: timps 1.10.2 (night colour trigger) T32: issue #32 (open): [T32] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T33: issue #47 (open): [T33] AE / AWB / AF: 4 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T32: t†; T33: t†; T40: t; T41: t | |||||||||||
| ✅ | ✅ | – | ✅ | – | ✅ | – | – | – | – | p† r† t | |
T10+T20: vendor T20 ids/ABI (agg-25); T10 shares the build; T23/T31: vendor 1.1.x ABI `(IMPISPAWBZone *)`, 675-byte block with the stock scaling (`claude/awbzone`, device-tested 2026-10-12 on both), 0 only with fresh statistics (driver `-EAGAIN` otherwise, needs open-tx-isp `claude/awbzone`), capability symbol `OpenIMP_Cap_AwbZone`; T40/T41: no vendor `GetAwbZone` (`GetAwbStatistics`); used by: T10/T20: prudynt†; T23/T31: prudynt†, raptor†, timps 1.10.2 (night colour trigger) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: p†; T20: p†; T23: p† r† t; T31: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | r† t | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ miss | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T41: issue #76 (open): [T41] Backlog: AE / AWB / AF API, 11 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | ✅ | ✅ | – | ✅ | – | – | – | – | r† | |
audit: reaches the driver/kernel T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T21: r†; T23: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | r† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #15 (open): [T30] AE / AWB / AF: audit of 11 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r† | |||||||||||
| – | – | – | ✅ run | – | ✅ run | – | – | – | – | p† t | |
audit: reaches the driver/kernel T23: called by timps on the fleet .124, .28, .30, .23 (T23), soak agg46; not an individual device test T31: called by timps on the fleet .145, .151, .25, .26, .29, .33, .21, .224 (T31), soak agg46; not an individual device test Used by (per SoC): T23: p† t; T31: p† t | |||||||||||
| – | – | – | ✅ rt | – | ✅ rt | – | – | – | – | r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified T23: apitest agg47-cases 2026-10-26 .30 (API round trip, no visible effect expected) T31: apitest agg47-cases 2026-10-26 .26 (API round trip, no visible effect expected) Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | ✅ rt | – | ✅ rt | – | – | – | – | r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test T23: apitest rc3-cases 2026-10-26 .30 (API round trip, no visible effect expected) T31: apitest rc3-cases 2026-10-26 .26 (API round trip, no visible effect expected) Used by (per SoC): T23: r†; T31: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | – | – | – | – | r† | |
T23: stock handlers routed (open-tx-isp agg-25), no device test; _Sec/MultiCamera_ variants unverified T10: apitest expr 2026-10-27 .31 (#130): 240 lines -> 240, Y 64 -> 92; 10000 us -> 227 lines (44 us/line) (beyond vendor SDK) T20: apitest expr 2026-10-27 .107 (#130): 240 lines read back 240, Y 122 -> 191 (30 -> 240 lines); 10000 us -> 338 lines; AUTO restores (beyond vendor SDK) T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #23 (open): [T30] Backlog: AE / AWB / AF API, 2 functions that no streamer calls T31: apitest agg47 2026-10-26 .26 Used by (per SoC): T23: r†; T31: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #40 (open): [T32] Backlog: AE / AWB / AF API, 27 functions that no streamer calls T33: issue #55 (open): [T33] Backlog: AE / AWB / AF API, 27 functions that no streamer calls | |||||||||||
| – | – | – | ❌ err | – | ✅ | – | – | – | – | – | |
T23: 0x800000c accepted like stock (open-tx-isp claude/gaps-t23-t31-drv): mode 0..2 stored in the AWB light-source flag, other modes logged, always returns 0; the four AWB threshold registers are not rewritten, because the AWB of the open driver runs on the wide thresholds that stock mode 1 writes and has no IQ-threshold window to switch to, so the call has no effect (class d); host build only, device test pending; T31: the driver has tisp_s_awb_algo (connected per static audit); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: 0x800000c accepted like stock (open-tx-isp claude/gaps-t23-t31-drv): mode 0..2 stored in the AWB light-source flag, other modes logged, always returns 0; the four AWB threshold registers are not rewritten, because the AWB of the open driver runs on the wide thresholds that stock mode 1 writes and has no IQ-threshold window to switch to, so the call has no effect (class d); host build only, device test pending; T31: the driver has tisp_s_awb_algo (connected per static audit); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: issue #10 (open): [T23] Backlog: AE / AWB / AF API, 1 function that no streamer calls T31: apitest agg47 2026-10-26 .26 | |||||||||||
Encoder (and decoder) — 131 rows (55 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ❌ miss | ❌ miss | ❌ miss | ❌ err | ❌ miss | – | – | 📋 | ❌ miss | ❌ miss | – | |
T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: issue #66 (open): [T40] Backlog: Encoder (and decoder) API, 2 functions that no streamer calls T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ? | 📋 | 📋 | – | – | – | |
T31: issue #28 (open): [T31] Backlog: Encoder (and decoder) API, 2 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
all: drops the encoded stream nobody fetched (agg-25) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ⚠ cache | ⚠ cache | ✅ | ✅ | ⚠ cache | – | 📋 | 📋 | – | – | – | |
T10/T20: stored and read back with the vendor return codes (SetChangeRef -1 on an idle channel, GetChangeRef -1 on an idle channel; apitest PASS on T10, T20); T21 (2026-10-10, host test): SetChangeRef -1 on an idle channel; GetChangeRef answers 0 on an idle channel and, as the vendor (T21 1.0.33 and T30 1.0.5, same code), logs "unsupport to change ref channel" and returns -1 on every created channel without writing the value (it used to return the stored value); the vendor passes it to the i264e reference code (param 12), which only the HSkip reference modes read; the Helix path codes no HSkip structure (class c). Disassembly: T21 1.0.33 0x48bd4/0x48d90, T20 3.12.0 0x4b05c/0x4b220; T30 1.0.5 (same vendor code as T21): SetChangeRef stores the flag of a created channel (-1 for an idle one); GetChangeRef is 0 for an idle channel and -1 for a created one (the vendor logs "unsupport to change ref channel"); host test; T30 1.0.5 (same vendor code as T21): SetChangeRef stores the flag of a created channel (-1 for an idle one); GetChangeRef is 0 for an idle channel and -1 for a created one (the vendor logs "unsupport to change ref channel"); host test T10/T20: stored and read back with the vendor return codes (SetChangeRef -1 on an idle channel, GetChangeRef -1 on an idle channel; apitest PASS on T10, T20); T21 (2026-10-10, host test): SetChangeRef -1 on an idle channel; GetChangeRef answers 0 on an idle channel and, as the vendor (T21 1.0.33 and T30 1.0.5, same code), logs "unsupport to change ref channel" and returns -1 on every created channel without writing the value (it used to return the stored value); the vendor passes it to the i264e reference code (param 12), which only the HSkip reference modes read; the Helix path codes no HSkip structure (class c). Disassembly: T21 1.0.33 0x48bd4/0x48d90, T20 3.12.0 0x4b05c/0x4b220; T30 1.0.5 (same vendor code as T21): SetChangeRef stores the flag of a created channel (-1 for an idle one); GetChangeRef is 0 for an idle channel and -1 for a created one (the vendor logs "unsupport to change ref channel"); host test; T30 1.0.5 (same vendor code as T21): SetChangeRef stores the flag of a created channel (-1 for an idle one); GetChangeRef is 0 for an idle channel and -1 for a created one (the vendor logs "unsupport to change ref channel"); host test T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T10+T20+T21: codes grey pictures (agg-25) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| ❌ miss | ❌ miss | ❌ miss | ✅ | ❌ miss | – | 📋 | 📋 | – | – | – | |
audit: userspace implementation; T10/T20/T21: the vendor libimp exports it without a header (i264e_set_param, x/y/w/h multiples of 16); OpenIMP does not (miss, found by `make export-check` 2026-10-11, a link shim is an open question) T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ⚠ cache | ⚠ cache | – | – | – | – | – | – | – | – | – | |
T10/T20 3.12.0 (0x49160/0x492d8): three words stored in rcAttr.attrDemask without a created check, as the vendor (apitest PASS on T10, T20); the vendor also pokes an i264e flag word, the Helix path has no demask stage (class c) T10/T20 3.12.0 (0x49160/0x492d8): three words stored in rcAttr.attrDemask without a created check, as the vendor (apitest PASS on T10, T20); the vendor also pokes an i264e flag word, the Helix path has no demask stage (class c) T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T21: done as the vendor: libimp 1.0.33 clears the denoise type at init (channel_i264e_encoder_init picks encoder mode 4 from get_cpu_id() 11..14, i264e_validate_parameters keeps denoise only for mode 1), so on the vendor T21 dnType reads back 0 and the encoder runs one Helix job per picture; dnType >= 3 with enable set at CreateChn is -1; IQp/PQp are kept. OpenIMP T21 does the same (2026-10-10: PC420 vendor stack vs open stack, readback equal, size and fps equal, ffmpeg decode clean). T10/T20 (vendor 3.12.0 has no such gate): type, IQp and PQp stored and read back as the vendor (2026-10-10: the T20 build also defines PLATFORM_T21 and read dnType back as 0 like T21; fixed, host test `p2_t1x_test_t20`; apitest roundtrip PASS on T20), not applied; the vendor encodes every frame twice with attrDenoise.enable set at CreateChn and dnType 1/2, a first pass at slice QP dnIQp (I) / dnPQp (P; type 2 forces slice type I) before the normal pass (i264e_reconfig_dn_set, i264e_slice_write). Not built: the pass-1 job needs a trace on a T20 camera, stability first T21: done as the vendor: libimp 1.0.33 clears the denoise type at init (channel_i264e_encoder_init picks encoder mode 4 from get_cpu_id() 11..14, i264e_validate_parameters keeps denoise only for mode 1), so on the vendor T21 dnType reads back 0 and the encoder runs one Helix job per picture; dnType >= 3 with enable set at CreateChn is -1; IQp/PQp are kept. OpenIMP T21 does the same (2026-10-10: PC420 vendor stack vs open stack, readback equal, size and fps equal, ffmpeg decode clean). T10/T20 (vendor 3.12.0 has no such gate): type, IQp and PQp stored and read back as the vendor (2026-10-10: the T20 build also defines PLATFORM_T21 and read dnType back as 0 like T21; fixed, host test `p2_t1x_test_t20`; apitest roundtrip PASS on T20), not applied; the vendor encodes every frame twice with attrDenoise.enable set at CreateChn and dnType 1/2, a first pass at slice QP dnIQp (I) / dnPQp (P; type 2 forces slice type I) before the normal pass (i264e_reconfig_dn_set, i264e_slice_write). Not built: the pass-1 job needs a trace on a T20 camera, stability first T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 T41: issue #71 (closed): [T41] Encoder (and decoder): 4 streamer-used API gaps Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | 🔧 host ↷ | – | 📋 | 📋 | – | – | – | |
T23: stored in the channel attribute (claude/t23-enc-rest, not in agg-25); T10/T20/T21: three words stored/read as the vendor (also before CreateChn; NULL and channel >= limit -1), apitest PASS on T10, T20, T21; as on T23 the frame reuse/skip of the OEM channel thread is not reproduced, OpenIMP paces every channel at its frame rate; T30 1.0.5: the three words are stored as given, also before CreateChn (same vendor code as T21); host test T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ✅ | – | – | ✅ | ✅ | – | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| ❌ miss | ❌ miss | – | – | – | – | – | – | – | – | – | |
T10/T20 (class d, 2026-10-10): only the 3.9.0 libimp exports the H264-named variants; 3.12.0 and the header of OpenIMP use ChnDemask/ChnDenoise/ChnFrmUsedMode, and the 3.9.0 IMPEncoderRcAttr/CHNAttr layout differs from the one OpenIMP implements, so these calls would be dead code (an app built for 3.9.0 breaks on the structures first) T10/T20 (class d, 2026-10-10): only the 3.9.0 libimp exports the H264-named variants; 3.12.0 and the header of OpenIMP use ChnDemask/ChnDenoise/ChnFrmUsedMode, and the 3.9.0 IMPEncoderRcAttr/CHNAttr layout differs from the one OpenIMP implements, so these calls would be dead code (an app built for 3.9.0 breaks on the structures first) T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls | |||||||||||
| ❌ miss | ❌ miss | – | – | – | – | – | – | – | – | – | |
T10/T20 (class d): 3.9.0-only name, see Encoder_Get/SetChnH264Demask T10/T20 (class d): 3.9.0-only name, see Encoder_Get/SetChnH264Demask T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls | |||||||||||
| ❌ miss | ❌ miss | – | – | – | – | – | – | – | – | – | |
T10/T20 (class d): 3.9.0-only name, see Encoder_Get/SetChnH264Demask T10/T20 (class d): 3.9.0-only name, see Encoder_Get/SetChnH264Demask T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls | |||||||||||
| ⚠ cache | ⚠ cache | ✅ | ✅ | ⚠ cache | – | 📋 | 📋 | – | – | – | |
T10/T20 3.12.0 (0x49dc8/0x4a078): needs a created channel, skipType up to maxHSkipType, six words stored (apitest PASS on T10, T20); unlike T21 the IDR period is not applied (the OEM pushes it to i264e param 9; class c); T30 1.0.5: the six words are stored, also for an idle channel, which reads back as zeros as in the vendor (up to maxHSkipType, 0 until CreateChn); unlike T21 the IDR period is not handed to the encoder on T30 (the CreateChn path does not do it either), so it stays a cache until a T30 device run; host test; T21 (2026-10-10, host test; T21 1.0.33 0x478f0/0x47ba0): an idle (not yet created) channel is accepted as the vendor does, SetChnHSkip stores the six words without the maxHSkipType check and without reaching the encoder, GetChnHSkip answers all zero with 0 (both used to be -1); T21 (2026-10-10, host test; T21 1.0.33 0x478f0/0x47ba0): an idle (not yet created) channel is accepted as the vendor does, SetChnHSkip stores the six words without the maxHSkipType check and without reaching the encoder, GetChnHSkip answers all zero with 0 (both used to be -1) T10/T20 3.12.0 (0x49dc8/0x4a078): needs a created channel, skipType up to maxHSkipType, six words stored (apitest PASS on T10, T20); unlike T21 the IDR period is not applied (the OEM pushes it to i264e param 9; class c); T30 1.0.5: the six words are stored, also for an idle channel, which reads back as zeros as in the vendor (up to maxHSkipType, 0 until CreateChn); unlike T21 the IDR period is not handed to the encoder on T30 (the CreateChn path does not do it either), so it stays a cache until a T30 device run; host test; T21 (2026-10-10, host test; T21 1.0.33 0x478f0/0x47ba0): an idle (not yet created) channel is accepted as the vendor does, SetChnHSkip stores the six words without the maxHSkipType check and without reaching the encoder, GetChnHSkip answers all zero with 0 (both used to be -1); T21 (2026-10-10, host test; T21 1.0.33 0x478f0/0x47ba0): an idle (not yet created) channel is accepted as the vendor does, SetChnHSkip stores the six words without the maxHSkipType check and without reaching the encoder, GetChnHSkip answers all zero with 0 (both used to be -1) T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ❌ miss | ❌ miss | – | – | – | – | – | – | – | – | – | |
T10/T20 (class d): 3.9.0-only call (IMPEncoderRcAttr of that SDK generation), see Encoder_Get/SetChnH264Demask T10/T20 (class d): 3.9.0-only call (IMPEncoderRcAttr of that SDK generation), see Encoder_Get/SetChnH264Demask T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅+ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T10: EFE ROI registers per the OEM slice init, device-tested 2026-10-09; T20: dev (apitest PASS; H.264 check: QP51 region blocky, QP15 fine); T21: the vendor 1.0.33 never programs IMP ROIs; OpenIMP applies them by default (beyond vendor), device-tested; T23: the native Helix encoder programs the regions like T21 (the vendor 1.3.0 writes the same registers), device-tested 2026-10-10, QP map and VA-API/strict ffmpeg clean; from agg-34 all Helix paths keep the stream valid H.264: deltas -25..+25, spread at most 25, absolute QPs in `[max_qp - 25, min_qp + 25]` (`Helix_H264_RoiSanitize`); before, a relative -26 or an absolute QP more than 25 from the macroblock QP gave broken pictures in hardware decoders (VA-API, VLC, browsers); details: docs/ROI.md T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| – | – | – | – | – | – | – | – | ✅ | ⚠ cache | – | |
not in the T31 vendor API (T31 column stays n.a.): OpenIMP exports it on T31 as a beyond-vendor ROI through the AVPU QP table, device-tested (dev), default on, `OPENIMP_T31_ROI=0` refuses the call; T40: experimental, off unless `OPENIMP_T40_ROI=1`, code only, not device-tested; T41 (also `SetChnMapRoi`): cache, the windows/map are stored and the EP2 QP table is written (off unless `OPENIMP_T41_ROI=1`), but the T41 AVPU ignores the table (no effect on bit rate or picture in FixQP/CBR, docs/ROI.md); same valid-H.264 clamp as the Helix paths (docs/ROI.md) T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | – | 🔧 host ∅ | ❌ miss | – | |
T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| ⚠ cache | ⚠ cache | ⚠ cache | ⚠ cache | ⚠ cache | ⚠ cache | 📋 | 📋 | ⚠ cache | ❌ miss | – | |
T23+T31: kept for getter only (documented in source); class d: the flag only has an effect in the vendor's closed fisheye/i264e path, which OpenIMP does not contain (T31: closed IVS fisheye module; T23: i264e creation option of the OEM session); T10/T20/T21: a flag in the channel record, settable only on an idle channel (-1 once created), exactly as the vendor (disassembly T21 0x45454, T20 0x4776c); apitest PASS on T10, T20, T21; class d like T23/T31; T30 1.0.5: flag kept, settable before CreateChn only, as T21 (the closed fisheye motion search of the vendor encoder is not in the Helix path); host test; vendor check 2026-10-10 (libimp T23 1.3.0 and T31 1.1.6 disassembly): T31 1.1.6 sets the flag in the channel record only while the channel does not exist (channel below 9, else -1), as OpenIMP does; T23 1.3.0 likewise; the flag is read later by the closed encoder code T23+T31: kept for getter only (documented in source); class d: the flag only has an effect in the vendor's closed fisheye/i264e path, which OpenIMP does not contain (T31: closed IVS fisheye module; T23: i264e creation option of the OEM session); T10/T20/T21: a flag in the channel record, settable only on an idle channel (-1 once created), exactly as the vendor (disassembly T21 0x45454, T20 0x4776c); apitest PASS on T10, T20, T21; class d like T23/T31; T30 1.0.5: flag kept, settable before CreateChn only, as T21 (the closed fisheye motion search of the vendor encoder is not in the Helix path); host test; vendor check 2026-10-10 (libimp T23 1.3.0 and T31 1.1.6 disassembly): T31 1.1.6 sets the flag in the channel record only while the channel does not exist (channel below 9, else -1), as OpenIMP does; T23 1.3.0 likewise; the flag is read later by the closed encoder code T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T31: issue #28 (open): [T31] Backlog: Encoder (and decoder) API, 2 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: issue #66 (open): [T40] Backlog: Encoder (and decoder) API, 2 functions that no streamer calls T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| – | – | – | ⚠ cache | – | – | – | – | – | – | – | |
T23: kept for getter only (documented in source); class d: the vendor re-encodes oversized frames at a higher QP inside its closed encoder; the Helix session has no such hook (would need a re-encode path in the encoder, low value); vendor check 2026-10-10 (libimp T23 1.3.0 and T31 1.1.6 disassembly): T23 1.3.0 validates and stores the threshold for the closed encoder; T31 1.1.6 exports no frame-loss function (n.a.) T23: kept for getter only (documented in source); class d: the vendor re-encodes oversized frames at a higher QP inside its closed encoder; the Helix session has no such hook (would need a re-encode path in the encoder, low value); vendor check 2026-10-10 (libimp T23 1.3.0 and T31 1.1.6 disassembly): T23 1.3.0 validates and stores the threshold for the closed encoder; T31 1.1.6 exports no frame-loss function (n.a.) T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | – | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ⚠ cache | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T10: no chroma-offset register, stays 0; T20: chroma QP offset via PPS + reg 0x40120 (claude/t1x-roi), verified on a camera, no colour shift; T21: chroma QP offset, PPS rewrite; not device-tested T10: no chroma-offset register, stays 0; T20: chroma QP offset via PPS + reg 0x40120 (claude/t1x-roi), verified on a camera, no colour shift; T21: chroma QP offset, PPS rewrite; not device-tested T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| – | – | ✅ no-op | ✅ no-op | ? | – | 📋 | 📋 | – | – | r† | |
T21+T23: checked and dropped like the vendor libimp, Get returns zeros (T23 vendor 1.3.0: channel below 9 and non-NULL return 0, nothing stored, Get zero-fills the 8 bytes; matched 2026-10-10, device-tested on a T23 camera) T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | – | – | – | – | ✅ | – | |
T10+T20+T21: reaches the running codec live (host test; apitest 2026-10-06: marker check and live change PASS on T20/T21); T41: live and at CreateChn (host) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: gate1026 .184 2026-10-26 (open-tx-isp 2acd1afa, OpenIMP d2b40b9c): 100x, 0 oops, apitest PASS T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ no-op | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T10 (2026-10-10, from the disassembly notes in docs/T20_RC.md, not device-tested): the vendor library is the T20 build, but its T10 rate controller has no macroblock part, so the call is stored and read back and changes nothing, as in OpenIMP (src/rc_t10; matched, no-op); T20: switches the macroblock QP table (agg-25) T10 (2026-10-10, from the disassembly notes in docs/T20_RC.md, not device-tested): the vendor library is the T20 build, but its T10 rate controller has no macroblock part, so the call is stored and read back and changes nothing, as in OpenIMP (src/rc_t10; matched, no-op); T20: switches the macroblock QP table (agg-25) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | ✅ no-op | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T21: kept without range check as the vendor libimp (nothing reads it there); apitest roundtrip PASS; real QPG after the release T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| – | – | – | – | – | ✅ | – | – | ✅ | ✅ | – | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
T10+T20: reaches the rate control (T20 apitest PASS); T21: mode DISCARD refused (the Helix eprc has no frame discard), the software modes follow after the release T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T21: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | t | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 Used by (per SoC): T31: t | |||||||||||
| – | – | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | r† | |
T31: claude/t23-enc-rest (not in agg-25) T31: apitest enc 2026-10-27 .26 (OpenIMP eb6aedda): IMPEncoderStreamInfo header layout (vendor record is shifted by 4 bytes), iNumBytes 3993 of 4003, counters sum to 640x368, QP 20/20/23; JPEG size + quality 75 Used by (per SoC): T31: r† | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | – | |
T23: as the OEM stores it, re-encode on overshoot (claude/t23-enc-rest, not in agg-25) T23: apitest agg47 2026-10-26 .30 | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation; T21/T23/T31: pipe + pump thread (new 2026-10-06, was a stub): poll(POLLIN) within 1 s, apitest PASS; T20/T10 not in the vendor API T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | 🔧 host ↷ | – | 📋 | 📋 | – | – | – | |
T10/T20/T21: the channel GOP length of a created channel (the vendor reads i264e param 7); an idle channel answers 0 and leaves the struct alone on T21, -1 on T20; apitest PASS on T10, T20, T21; T30 1.0.5: a created channel reads its maxGop; an idle channel answers 0 and leaves the struct alone (as T21); host test T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | – | |
audit: userspace implementation; T20/T21/T23: emits a user_data_unregistered SEI (OEM UUID) in front of the next picture, found in the next 30 frames (apitest PASS); T10 shares the T20 build, not re-tested T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ❌ miss | ❌ miss | ❌ miss | ? | ❌ miss | – | 📋 | 📋 | – | – | – | |
T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | ✅ | 🔧 aud ∅ | – | ✅ | – | – | ✅ | 🔧 aud ∅ | – | |
audit: reaches the driver/kernel; T21/T23/T31: honours the input channel bitmap and polls all selected channels (apitest PASS) T21: apitest rc3gaps2 2026-10-27 .24 T31: apitest rc3gaps2 2026-10-27 .26 T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | – | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | – | – | 🔧 host ↷ | – | |
T41: exported by the OpenIMP build (corrected 2026-10-26 from miss) | |||||||||||
| – | – | – | – | – | – | – | – | – | ❌ miss | – | |
T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | – | – | ✅ | – | |
T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | ✅ | – | – | ✅ | ✅ | p† r† | |
vendor T31 1.1.6 / T40 1.3.1 / T41 1.2.6 (disassembled): stores the share channel in the channel record (kept over CreateChn, set to -1 by DestroyChn; a negative value is valid and means no sharing) and CreateChn reads it for a JPEG channel only: the JPEG channel borrows the video channel's stream manager and stream contexts and skips building its own pool of stream buffers (CreateChn fails when that video channel does not exist yet; T41 also refuses the MMA option). OpenIMP: same value handling, argument checks and return codes (-1 on T31/T40, 0x80040001 on T41, both channel numbers below the channel limit); CreateChn only logs a warning where the vendor would fail. There is nothing to share: OpenIMP JPEG channels own no stream buffer pool (JPEG is software on T40/T41, T31 uses one hardware-JPEG stream buffer for all JPEG channels), so sharing would save no rmem; measured on a T40 camera (video 640x360 plus a JPEG channel in the same group, with and without the call): JPEG channel cost about 24-72 kB of free memory either way, snapshots valid, H.264 decodes without errors in software and VA-API decoders. Host tests for T31/T40/T41, device test T40 only vendor T31 1.1.6 / T40 1.3.1 / T41 1.2.6 (disassembled): stores the share channel in the channel record (kept over CreateChn, set to -1 by DestroyChn; a negative value is valid and means no sharing) and CreateChn reads it for a JPEG channel only: the JPEG channel borrows the video channel's stream manager and stream contexts and skips building its own pool of stream buffers (CreateChn fails when that video channel does not exist yet; T41 also refuses the MMA option). OpenIMP: same value handling, argument checks and return codes (-1 on T31/T40, 0x80040001 on T41, both channel numbers below the channel limit); CreateChn only logs a warning where the vendor would fail. There is nothing to share: OpenIMP JPEG channels own no stream buffer pool (JPEG is software on T40/T41, T31 uses one hardware-JPEG stream buffer for all JPEG channels), so sharing would save no rmem; measured on a T40 camera (video 640x360 plus a JPEG channel in the same group, with and without the call): JPEG channel cost about 24-72 kB of free memory either way, snapshots valid, H.264 decodes without errors in software and VA-API decoders. Host tests for T31/T40/T41, device test T40 only T31: apitest rc3gaps2 2026-10-27 .26 T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T31: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| – | – | – | – | – | ✅ | 📋 | 📋 | ✅ | ✅ | t t† | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 T41: issue #71 (closed): [T41] Encoder (and decoder): 4 streamer-used API gaps Used by (per SoC): T31: t; T32: t†; T33: t†; T40: t; T41: t | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | – | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 | |||||||||||
| – | – | – | – | – | ✅ | – | – | ✅ | ✅ | – | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| ⚠ cache | ⚠ cache | ⚠ cache | ✅ | ⚠ cache | – | 📋 | 📋 | – | – | – | |
T10/T20/T21: returns 0, stores the flag of a created channel (the vendor pushes it to i264e param 10, read only by the HSkip code; class c); apitest PASS on T10, T20, T21; T30 1.0.5: the flag is kept for a created channel, 0 for an idle one (as T21); host test T10/T20/T21: returns 0, stores the flag of a created channel (the vendor pushes it to i264e param 10, read only by the HSkip code; class c); apitest PASS on T10, T20, T21; T30 1.0.5: the flag is kept for a created channel, 0 for an idle one (as T21); host test T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: apitest agg47 2026-10-26 .30 T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | ⚠ cache | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | ✅ | r† | |
T23: as the OEM stores it, re-encode on overshoot (claude/t23-enc-rest, not in agg-25); T41: written into rcAttr copy, codec not updated (T23: loss threshold kept only) T23: as the OEM stores it, re-encode on overshoot (claude/t23-enc-rest, not in agg-25); T41: written into rcAttr copy, codec not updated (T23: loss threshold kept only) T23: apitest agg47 2026-10-26 .30 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T41: apitest rc3gaps2 2026-10-27 .34 T41: issue #71 (closed): [T41] Encoder (and decoder): 4 streamer-used API gaps Used by (per SoC): T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | – | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 | |||||||||||
| – | – | – | – | – | ✅ | 📋 | 📋 | ✅ | ✅ | t t† | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 T41: issue #71 (closed): [T41] Encoder (and decoder): 4 streamer-used API gaps Used by (per SoC): T31: t; T32: t†; T33: t†; T40: t; T41: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ✅ | – | |
audit: userspace implementation T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | t | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 Used by (per SoC): T31: t | |||||||||||
| ? | ? | ❌ miss | ? | ? | – | 📋 | 📋 | – | – | – | |
T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | ? | ✅ | 📋 | 📋 | ✅ | ✅ | – | |
audit: userspace implementation T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ✅ | 📋 | 📋 | ✅ | ✅ | t t† | |
audit: userspace implementation T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T31: t; T32: t†; T33: t†; T40: t; T41: t | |||||||||||
| – | – | – | – | – | ✅ no-op | – | – | ✅ no-op | ❌ miss | – | |
T31: vendor stores num/den and a helper hands the source frame back early; OpenIMP returns every frame as soon as the AVPU has consumed it, so the ratio has nothing to change (class a: no visible effect, matched) T31: vendor stores num/den and a helper hands the source frame back early; OpenIMP returns every frame as soon as the AVPU has consumed it, so the ratio has nothing to change (class a: no visible effect, matched) T31: apitest rc3gaps2 2026-10-27 .26 T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: issue #77 (open): [T41] Backlog: Encoder (and decoder) API, 9 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | – | 📋 | 📋 | – | – | r† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | ⚠ cache | – | – | 📋 | 📋 | – | – | – | |
T23: kept for getter only (documented in source); class d: slice/section split of the vendor i264e encoder, the Helix session cannot be given it; vendor check 2026-10-10 (libimp T23 1.3.0 and T31 1.1.6 disassembly): T23 1.3.0 range-checks the arguments and stores them in the global block the closed i264e reads; T31 1.1.6 exports no multi-section function (n.a.) T23: kept for getter only (documented in source); class d: slice/section split of the vendor i264e encoder, the Helix session cannot be given it; vendor check 2026-10-10 (libimp T23 1.3.0 and T31 1.1.6 disassembly): T23 1.3.0 range-checks the arguments and stores them in the global block the closed i264e reads; T31 1.1.6 exports no multi-section function (n.a.) T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ❌ miss | ❌ miss | ❌ miss | ? | ❌ miss | – | 📋 | 📋 | – | – | – | |
T10: issue #3 (open): [T10] Backlog: Encoder (and decoder) API, 15 functions that no streamer calls T20: issue #5 (open): [T20] Backlog: Encoder (and decoder) API, 14 functions that no streamer calls T21: issue #7 (open): [T21] Backlog: Encoder (and decoder) API, 7 functions that no streamer calls T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T30: issue #24 (open): [T30] Backlog: Encoder (and decoder) API, 20 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | – | 📋 | 📋 | – | – | – | |
T23: issue #11 (open): [T23] Backlog: Encoder (and decoder) API, 8 functions that no streamer calls T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #16 (open): [T30] Encoder (and decoder): audit of 21 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #33 (open): [T32] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T33: issue #48 (open): [T33] Encoder (and decoder): 25 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | – | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | t | |
T23: apitest agg47 2026-10-26 .30 T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T23: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #41 (open): [T32] Backlog: Encoder (and decoder) API, 73 functions that no streamer calls T33: issue #56 (open): [T33] Backlog: Encoder (and decoder) API, 78 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | t | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 Used by (per SoC): T23: t | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | – | |
audit: reaches the driver/kernel T23: apitest agg47 2026-10-26 .30 | |||||||||||
FrameSource — 48 rows (18 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| – | – | – | – | – | – | – | – | ❌ miss | ❌ miss | – | |
T40: issue #67 (open): [T40] Backlog: FrameSource API, 1 function that no streamer calls T41: issue #78 (open): [T41] Backlog: FrameSource API, 1 function that no streamer calls | |||||||||||
| – | – | – | – | – | ❌ miss | – | – | – | – | – | |
T31: issue #29 (open): [T31] Backlog: FrameSource API, 3 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | – | |
audit: userspace implementation T31: apitest next+ko/libimp swap 2026-10-27 .26 | |||||||||||
| – | – | – | – | – | ? | 📋 | 📋 | – | – | – | |
T31: issue #29 (open): [T31] Backlog: FrameSource API, 3 functions that no streamer calls T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
T10+T20+T21+T23+T31: = SetMaxDelay(maxdepth) (agg-25); FIFO_DATA_PRIORITY refused for maxdepth>0; T41: FIFO attr stored, no FIFO behind it T10+T20+T21+T23+T31: = SetMaxDelay(maxdepth) (agg-25); FIFO_DATA_PRIORITY refused for maxdepth>0; T41: FIFO attr stored, no FIFO behind it T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T10+T20+T21+T23+T31: real delay FIFO (agg-25); T10 shares the T20 build; FIFO_DATA_PRIORITY refused for maxdepth>0; T41: host (vendor 1.2.6 semantics in src/t40/openimp_p1.c, delay cache; host test only, `export-check` 2026-10-11) T10+T20+T21+T23+T31: real delay FIFO (agg-25); T10 shares the T20 build; FIFO_DATA_PRIORITY refused for maxdepth>0; T41: host (vendor 1.2.6 semantics in src/t40/openimp_p1.c, delay cache; host test only, `export-check` 2026-10-11) T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #25 (open): [T30] Backlog: FrameSource API, 6 functions that no streamer calls T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | – | – | – | – | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p p† r r† t | |
T41: GetFrame follows the frame depth as the vendor (not the shared capture queue); used by: T10/T20/T21/T31/T41: prudynt†, raptor†; T23: prudynt, raptor, timps T41: GetFrame follows the frame depth as the vendor (not the shared capture queue); used by: T10/T20/T21/T31/T41: prudynt†, raptor†; T23: prudynt, raptor, timps T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #25 (open): [T30] Backlog: FrameSource API, 6 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 libimp swap 2026-10-27 .34 (depth semantics of the vendor 1.2.5 GetFrame: depth 0 -> no frame, N held, third waits 2 s -> 0x80012000) T41: issue #72 (closed): [T41] FrameSource: 1 streamer-used API gap Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p r t; T31: p† r†; T32: p† r†; T33: p† r†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T40/T41: real hardware I2D rotate/flip/mirror since 2026-10-18 (`claude/i2d-t4x`, src/t40/p1_i2d.h + openimp_p1.c, marker `OpenIMP_Cap_I2dRotate`); T41 device-tested on .34, T40 host only (see row 21). Before: SetI2dAttr returned -1 T40/T41: real hardware I2D rotate/flip/mirror since 2026-10-18 (`claude/i2d-t4x`, src/t40/p1_i2d.h + openimp_p1.c, marker `OpenIMP_Cap_I2dRotate`); T41 device-tested on .34, T40 host only (see row 21). Before: SetI2dAttr returned -1 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T10+T20+T21+T23+T31: real delay FIFO (agg-25); T10 shares the T20 build; FIFO_DATA_PRIORITY refused for maxdepth>0; T41: host (vendor 1.2.6 semantics in src/t40/openimp_p1.c, delay cache; host test only, `export-check` 2026-10-11) T10+T20+T21+T23+T31: real delay FIFO (agg-25); T10 shares the T20 build; FIFO_DATA_PRIORITY refused for maxdepth>0; T41: host (vendor 1.2.6 semantics in src/t40/openimp_p1.c, delay cache; host test only, `export-check` 2026-10-11) T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #25 (open): [T30] Backlog: FrameSource API, 6 functions that no streamer calls T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | – | ✅ | r† | |
T23+T31: real memory pools (claude/t23t31-cacheonly, not in agg-25); T41: pool id recorded only T23+T31: real memory pools (claude/t23t31-cacheonly, not in agg-25); T41: pool id recorded only T23: apitest agg47 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T41: apitest fspool 2026-10-27 .34 (OpenIMP 5270cc46): real rmem pool from MemPoolRequest, ch1 capture buffers inside the pool, 3 cycles, pool free after Destroy, too-small pool refused at EnableChn T41: issue #72 (closed): [T41] FrameSource: 1 streamer-used API gap Used by (per SoC): T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r r† t | |
audit: reaches the driver/kernel; userspace implementation; used by: T10/T20/T21/T31/T41: raptor†; T23: raptor, timps; all: GetFrame/SnapFrame wait up to 2 s like the vendor libimp (T20 REQBUFS/SET_BANKS fix, T21/T23/T31 wait), apitest PASS T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #25 (open): [T30] Backlog: FrameSource API, 6 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r t; T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T10+T20+T21+T23+T31: agg-25; T41: host (vendor 1.2.6 semantics in src/t40/openimp_p1.c, delay cache; host test only, `export-check` 2026-10-11) T10+T20+T21+T23+T31: agg-25; T41: host (vendor 1.2.6 semantics in src/t40/openimp_p1.c, delay cache; host test only, `export-check` 2026-10-11) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r r† t | |
audit: reaches the driver/kernel; used by: T10/T20/T21/T31/T41: raptor†; T23: raptor, timps T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #25 (open): [T30] Backlog: FrameSource API, 6 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r t; T31: r†; T32: r†; T33: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | t | |
audit: userspace implementation T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T31: t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ? | 📋 | 📋 | – | – | – | |
T31: issue #29 (open): [T31] Backlog: FrameSource API, 3 functions that no streamer calls T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | ? | 🔧 aud ↷ | – | – | – | – | – | |
audit: userspace implementation T30: issue #25 (open): [T30] Backlog: FrameSource API, 6 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | 📋 | – | – | – | |
T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 aud ↷ | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T41: copies the next consumer frame, packed NV12; T20/T21/T23/T31: waits up to 2 s like the vendor; T40: device-tested on cam-K 2026-10-10 (OpenIMP vs vendor library) T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #17 (open): [T30] FrameSource: audit of 8 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #34 (open): [T32] FrameSource: 15 vendor functions the first OpenIMP build has to provide T33: issue #49 (open): [T33] FrameSource: 15 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #42 (open): [T32] Backlog: FrameSource API, 25 functions that no streamer calls T33: issue #57 (open): [T33] Backlog: FrameSource API, 27 functions that no streamer calls | |||||||||||
OSD — 43 rows (19 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ISP_Get/SetDrawAttr | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| ISP_Get/SetOSDAttr | – | – | – | – | – | – | – | – | 🔧 host ∅ | – | – |
| ISP_Get/SetSingleOSDAttr | – | – | – | – | – | – | – | – | ✅ | – | – |
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T41: ENOTSUP stub (returns -1) T41: ENOTSUP stub (returns -1) T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34: isposd: picture visible in FS ch0 (Y 111 -> 234), hide/destroy back to the background, frames flow; needs open-tx-isp next 8d3504c8 (ISP OSD) and the OpenIMP next libimp; stock agg47 ko draws nothing T41: issue #73 (closed): [T41] OSD: 5 streamer-used API gaps Used by (per SoC): T23: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T41: ENOTSUP stub (returns -1) T41: ENOTSUP stub (returns -1) T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34: isposd: picture visible in FS ch0 (Y 111 -> 234), hide/destroy back to the background, frames flow; needs open-tx-isp next 8d3504c8 (ISP OSD) and the OpenIMP next libimp; stock agg47 ko draws nothing T41: issue #73 (closed): [T41] OSD: 5 streamer-used API gaps Used by (per SoC): T23: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | 🔧 host ∅ | – | |
T23: 0x8000181 on the stock mscaler OSD attribute bytes (open-tx-isp claude/gaps-t23-t31-drv, class c; emulator-identical to the stock handlers); host build only, device test pending; no image effect yet (the MSCA update that programs the OSD blocks is not run); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: 0x8000181 on the stock mscaler OSD attribute bytes (open-tx-isp claude/gaps-t23-t31-drv, class c; emulator-identical to the stock handlers); host build only, device test pending; no image effect yet (the MSCA update that programs the OSD blocks is not run); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T23: issue #12 (open): [T23] Backlog: OSD API, 5 functions that no streamer calls T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | 🔧 host ∅ | – | |
T23: 0x8000182 on the stock mscaler OSD block table (open-tx-isp claude/gaps-t23-t31-drv, class c; emulator-identical to the stock Set including its stale-size quirk; the Get reports the requested block, stock always reports block 0 because it clears its local first; a block above 7 is refused, beyond stock; a block beyond the channel limits is logged and ignored, the call still returns 0, as stock); host build only, device test pending; no image effect yet (the MSCA update that programs the OSD blocks is not run); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: 0x8000182 on the stock mscaler OSD block table (open-tx-isp claude/gaps-t23-t31-drv, class c; emulator-identical to the stock Set including its stale-size quirk; the Get reports the requested block, stock always reports block 0 because it clears its local first; a block above 7 is refused, beyond stock; a block beyond the channel limits is logged and ignored, the call still returns 0, as stock); host build only, device test pending; no image effect yet (the MSCA update that programs the OSD blocks is not run); Not in agg-36: the open-tx-isp branch claude/gaps-t23-t31-drv is held back until its T23 SwitchBin is reworked (review: memcpy over live banks), so the agg-36 driver still behaves as before (cell unchanged). T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T23: issue #12 (open): [T23] Backlog: OSD API, 5 functions that no streamer calls T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | 🔧 host ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T41: 2 insns, returns ? T41: 2 insns, returns ? T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34: isposd: picture visible in FS ch0 (Y 111 -> 234), hide/destroy back to the background, frames flow; needs open-tx-isp next 8d3504c8 (ISP OSD) and the OpenIMP next libimp; stock agg47 ko draws nothing T41: issue #73 (closed): [T41] OSD: 5 streamer-used API gaps Used by (per SoC): T23: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T41: ENOTSUP stub (returns -1) T41: ENOTSUP stub (returns -1) T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34 T41: issue #73 (closed): [T41] OSD: 5 streamer-used API gaps Used by (per SoC): T23: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | r† | |
T41: ENOTSUP stub (returns -1) T41: ENOTSUP stub (returns -1) T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T41: apitest next+ko/libimp swap 2026-10-27 .34: isposd: picture visible in FS ch0 (Y 111 -> 234), hide/destroy back to the background, frames flow; needs open-tx-isp next 8d3504c8 (ISP OSD) and the OpenIMP next libimp; stock agg47 ko draws nothing T41: issue #73 (closed): [T41] OSD: 5 streamer-used API gaps Used by (per SoC): T23: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ? | – | – | 📋 | 📋 | – | – | – | |
T23: issue #12 (open): [T23] Backlog: OSD API, 5 functions that no streamer calls T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls | |||||||||||
| 🔧 host ↷ | 🔧 host ↷ | 🔧 host ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 📋 | 📋 | 🔧 host ↷ | ✅ | – | |
T10/T20/T21: system_attach() as the vendor wrapper (src->to becomes src->from->to, rolled back on error, -1); host test with a fake bind table; the apitest skips it (deprecated, the chain is built with IMP_System_Bind); T30 1.0.5: the same system_attach() wrapper as T21 (disassembly compared); the T21 host test with a fake bind table also runs against the T30 build T10/T20/T21: system_attach() as the vendor wrapper (src->to becomes src->from->to, rolled back on error, -1); host test with a fake bind table; the apitest skips it (deprecated, the chain is built with IMP_System_Bind); T30 1.0.5: the same system_attach() wrapper as T21 (disassembly compared); the T21 host test with a fake bind table also runs against the T30 build T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: device-tested through main-matrix feature #28 (OSD: text, bitmap, rectangle, line, cover) | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 aud ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 aud ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 host ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; T40: the PIC/COVER test uses the set path; Get not checked, so host T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | 🔧 aud ↷ | – | – | 📋 | 📋 | 🔧 host ↷ | ❌ miss | – | |
T23: picture type works (apitest isposd .30, #127); line/rect/cover draw blocks are stored only, no MSCA draw path yet T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: issue #79 (open): [T41] Backlog: OSD API, 2 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | – | – | – | ❌ miss | – | |
T23: declared in the 1.1.x/1.3.0 headers but exported by none of the 8 vendor libimp builds (nm); a vendor-stack application cannot link it either T23: declared in the 1.1.x/1.3.0 headers but exported by none of the 8 vendor libimp builds (nm); a vendor-stack application cannot link it either T41: issue #79 (open): [T41] Backlog: OSD API, 2 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 aud ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ? | 🔧 aud ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T23: issue #12 (open): [T23] Backlog: OSD API, 5 functions that no streamer calls T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T40: issue #68 (open): [T40] Backlog: OSD API, 1 function that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
audit: userspace implementation T23: apitest agg47 2026-10-26 .30 T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 host ∅ | – | |
T23: ISP OSD pictures from the pool (claude/t23t31-cacheonly, not in agg-25) T23: ISP OSD pictures from the pool (claude/t23t31-cacheonly, not in agg-25) T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | 🔧 aud ∅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 aud ∅ | – | |
T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | 🔧 host ∅ | 🔧 aud ∅ | – | |
T23: apitest isposd 2026-10-27 .30 (open-tx-isp 8cb942a7, #127): luma 111.3 -> 234.0, hide 111.2, destroy, frames flow; stock agg47 ko draws nothing T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): static audit against the vendor libimp.a, no host test of its own; no camera run yet | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: reaches the driver/kernel T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #18 (open): [T30] OSD: audit of 14 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #35 (open): [T32] OSD: 19 vendor functions the first OpenIMP build has to provide T33: issue #50 (open): [T33] OSD: 19 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| – | – | – | ? | – | – | 📋 | 📋 | – | – | – | |
T23: issue #12 (open): [T23] Backlog: OSD API, 5 functions that no streamer calls T32: issue #43 (open): [T32] Backlog: OSD API, 20 functions that no streamer calls T33: issue #58 (open): [T33] Backlog: OSD API, 20 functions that no streamer calls | |||||||||||
IVS — 17 rows (17 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation; all: two IVS groups as every vendor libimp (CreateGroup checks group < 2); group 1 move/base-move device-tested on T20/T21 T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #19 (open): [T30] IVS: audit of 17 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #36 (open): [T32] IVS: 17 vendor functions the first OpenIMP build has to provide T33: issue #51 (open): [T33] IVS: 17 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
Audio — 79 rows (45 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| – | – | – | – | – | – | – | – | – | – | – | |
T10/T20 (4 builds each) and T31 (28 builds): declared in the SDK header, exported by none of the vendor libimp builds (nm) | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
T10: apitest rc3-cases 2026-10-27 .31 (T41-audio: AENC G.711A and ADEC round trip of a microphone frame; custom codec registration SKIP as on every SoC) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (T41-audio: AENC G.711A and ADEC round trip of a microphone frame; custom codec registration SKIP as on every SoC) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (T41-audio: AENC G.711A and ADEC round trip of a microphone frame; custom codec registration SKIP as on every SoC) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | – | – | – | – | – | |
T10/T20 (4 builds each) and T31 (28 builds): declared in the SDK header, exported by none of the vendor libimp builds (nm) | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: raptor†, timps; T21/T23/T41: raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T23: apitest rc3-cases 2026-10-27 .30 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r† t; T20: r† t; T21: r†; T23: r†; T31: r† t; T32: r† t†; T33: r† t†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T23: apitest rc3-cases 2026-10-27 .30 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | ✅ | – | |
T23: apitest rc3-cases 2026-10-27 .30 T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ✅ | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T23: apitest rc3-cases 2026-10-27 .30 T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; T10/T20/T21/T23/T31: device-tested 2026-10-10 (mono 16 kHz recording, AEC test) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ rt | ✅ rt | r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: raptor†, timps; T21/T23/T41: raptor†; T10/T20/T21/T23/T31: device-tested 2026-10-10 (mono 16 kHz recording, AEC test) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r† t; T20: r† t; T21: r†; T23: r†; T31: r† t; T32: r† t†; T33: r† t†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: reaches the driver/kernel T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T23: apitest rc3-cases 2026-10-27 .30 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | ✅ | – | |
T23: apitest rc3-cases 2026-10-27 .30 T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation; T10/T20/T21/T23/T31: device-tested 2026-10-10 (mono 16 kHz recording, AEC test) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ✅ | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T23: apitest rc3-cases 2026-10-27 .30 T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | ✅ | – | – | ✅ | – | – | – | – | t | |
audit: reaches the driver/kernel; userspace implementation T21: apitest rc3-cases 2026-10-27 .24 T31: apitest next+ko/libimp swap 2026-10-27 .26 Used by (per SoC): T21: t; T31: t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ | ✅ | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; Set dev, Get host on T10/T20/T21/T31 where the cell was aud (2026-10-10 AEC test: SetVol/SetGain called, getter not checked); T21: a microphone gain above 0 drives the noise floor up (hardware, open and vendor stack alike) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; Set dev, Get host on T10/T20/T21/T31 where the cell was aud (2026-10-10 AEC test: SetVol/SetGain called, getter not checked) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; T10/T20/T21/T23/T31: device-tested 2026-10-10 (mono 16 kHz recording, AEC test) T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ✅ | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ rt | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T23: apitest rc3-cases 2026-10-27 .30 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T23: apitest rc3-cases 2026-10-27 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T23: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | ✅ | – | – | – | – | – | |
audit: userspace implementation T31: apitest next+ko/libimp swap 2026-10-27 .26 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
T23+T31 (+T41, untested): takes effect: IMP_AI_EnableHpf designs the filter for the cut-off like the vendor and hands a float biquad to libaudioProcess-neo (beyond the original library); apitest roundtrip PASS, no audio test (shared test cameras) T23: apitest rc3-cases 2026-10-27 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T23: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: reaches the driver/kernel; userspace implementation; T41: software mute as in the vendor library (no ioctl); API-level test only 2026-10-10 (rc 0, invalid argument -1), the T41 test board has no audio hardware T10: apitest rc3-cases 2026-10-26 .31 T20: apitest rc3-cases 2026-10-26 .107 T21: apitest rc3-cases 2026-10-27 .24 T23: apitest rc3-cases 2026-10-27 .30 T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
all: implemented with vendor semantics, default off (OPENIMP_AO_CACHE=1 = vendor default on); quiet device test open (audio output only on T31) T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: raptor†, timps; T21/T23/T41: raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r† t; T20: r† t; T21: r†; T23: r†; T31: r† t; T32: r† t†; T33: r† t†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | ✅ rt | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: userspace implementation; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor†; T10/T20/T21/T23/T31: device-tested 2026-10-10 (known signal played at several volumes and recorded back; AEC test); T41: no audio hardware on the test board (no microphone, no speaker), results are API-level only T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | ✅ | – | – | 📋 | 📋 | – | ✅ rt | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: userspace implementation; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor†; T10/T20/T21/T23/T31: device-tested 2026-10-10 (known signal played at several volumes and recorded back; AEC test); T41: no audio hardware on the test board (no microphone, no speaker), results are API-level only T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ✅ rt | ✅ rt | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor† T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor†; Set dev, Get host on T10/T20/T21/T31 where the cell was aud (2026-10-10 AEC test: SetVol/SetGain called, getter not checked) T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: userspace implementation T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ rt | ✅ rt | p† r† t t† | |
audit: reaches the driver/kernel; used by: T10/T20/T31: prudynt†, raptor†, timps; T21/T23/T41: prudynt†, raptor†; T10/T20/T21/T23/T31: device-tested 2026-10-10 (known signal played at several volumes and recorded back; AEC test); T41: no audio hardware on the test board (no microphone, no speaker), results are API-level only T30: issue #26 (open): [T30] Backlog: Audio API, 12 functions that no streamer calls T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #69 (open): [T40] Backlog: Audio API, 12 functions that no streamer calls T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r†; T23: p† r†; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† | |
audit: userspace implementation T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T23: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | p† r† | |
audit: reaches the driver/kernel; userspace implementation; T41: software mute as in the vendor library (no ioctl); API-level test only 2026-10-10 (rc 0, invalid argument -1), the T41 test board has no audio hardware T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: reaches the driver/kernel; userspace implementation; T41: software mute as in the vendor library (no ioctl); API-level test only 2026-10-10 (rc 0, invalid argument -1), the T41 test board has no audio hardware T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ rt | ✅ rt | ✅ rt | ✅ | ? | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
audit: reaches the driver/kernel; userspace implementation; T41: software mute as in the vendor library (no ioctl); API-level test only 2026-10-10 (rc 0, invalid argument -1), the T41 test board has no audio hardware T10: apitest rc3-cases 2026-10-26 .31 (API round trip, no visible effect expected) T20: apitest rc3-cases 2026-10-26 .107 (API round trip, no visible effect expected) T21: apitest rc3-cases 2026-10-27 .24 (API round trip, no visible effect expected) T30: issue #20 (open): [T30] Audio: audit of 33 streamer-used functions of unknown state T31: apitest rc3-cases 2026-10-27 .26 (API round trip, no visible effect expected) T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest rc3-cases 2026-10-27 .184 (API round trip, no visible effect expected) T40: issue #63 (closed): [T40] Audio: audit of 16 streamer-used functions of unknown state T41: apitest rc3-cases 2026-10-27 .34 (API round trip, no visible effect expected) Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | 🔧 host ↷ | – | |
T32: issue #44 (open): [T32] Backlog: Audio API, 25 functions that no streamer calls T33: issue #59 (open): [T33] Backlog: Audio API, 25 functions that no streamer calls T41: OpenIMP claude/t4x-api-gaps (2026-10-26): host test; no camera run yet | |||||||||||
| – | – | – | – | 🔧 aud ↷ | ✅ rt | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
vendor dmic.c rebuilt (T31 oss2 and T40/T41 OSS3 ioctls); T40/T41 refuse Enable when the audio module has dmic_enable=0 (the driver would oops, seen in QEMU); stream path (Enable..GetFrame, gain, AEC) is not run without a DMIC board T31: apitest dmic 2026-10-27 .26 + QEMU T31: API round trip (argument validation, Set/Get, not-enabled paths), no DMIC hardware on the test board T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest dmic 2026-10-27 .184 + QEMU T40: API round trip (argument validation, Set/Get, not-enabled paths), no DMIC hardware on the test board T40: issue #61 (closed): [T40] Audio: 2 streamer-used API gaps T41: apitest dmic 2026-10-27 .34 + QEMU T41: API round trip (argument validation, Set/Get, not-enabled paths), no DMIC hardware on the test board T41: issue #74 (closed): [T41] Audio: 2 streamer-used API gaps Used by (per SoC): T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| – | – | – | – | 🔧 aud ↷ | – | 📋 | 📋 | ✅ rt | ✅ rt | r† | |
vendor dmic.c rebuilt (T31 oss2 and T40/T41 OSS3 ioctls); T40/T41 refuse Enable when the audio module has dmic_enable=0 (the driver would oops, seen in QEMU); stream path (Enable..GetFrame, gain, AEC) is not run without a DMIC board T32: issue #37 (open): [T32] Audio: 50 vendor functions the first OpenIMP build has to provide T33: issue #52 (open): [T33] Audio: 50 vendor functions the first OpenIMP build has to provide T40: apitest dmic 2026-10-27 .184 + QEMU T40: API round trip (argument validation, Set/Get, not-enabled paths), no DMIC hardware on the test board T40: issue #61 (closed): [T40] Audio: 2 streamer-used API gaps T41: apitest dmic 2026-10-27 .34 + QEMU T41: API round trip (argument validation, Set/Get, not-enabled paths), no DMIC hardware on the test board T41: issue #74 (closed): [T41] Audio: 2 streamer-used API gaps Used by (per SoC): T30: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
System / sysutils / log — 108 rows (64 with a gap or unknown state)
| Vendor function | T10 | T20 | T21 | T23 | T30 | T31 | T32 | T33 | T40 | T41 | Used by |
|---|---|---|---|---|---|---|---|---|---|---|---|
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | – | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | – | ✅ | – | – | ✅ | ✅ | – | |
T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest agg47-cases 2026-10-26 .24 T23: apitest agg47-cases 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T40: apitest agg47-cases 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | – | ✅ | – | – | ✅ | ✅ | – | |
T10: apitest agg47-cases 2026-10-26 .31 T20: apitest agg47-cases 2026-10-26 .107 T21: apitest agg47-cases 2026-10-26 .24 T23: apitest agg47-cases 2026-10-26 .30 T31: apitest next+ko/libimp swap 2026-10-27 .26 T40: apitest agg47-cases 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | ? | 📋 | 📋 | – | – | – | |
T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| ? | ? | ? | ? | ? | ? | 📋 | 📋 | – | – | – | |
T10: issue #4 (open): [T10] Backlog: System / sysutils / log API, 3 functions that no streamer calls T20: issue #6 (open): [T20] Backlog: System / sysutils / log API, 3 functions that no streamer calls T21: issue #8 (open): [T21] Backlog: System / sysutils / log API, 3 functions that no streamer calls T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ? | – | ? | 📋 | 📋 | – | – | – | |
T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| ? | ? | ? | ? | ? | ? | 📋 | 📋 | – | – | – | |
T10: issue #4 (open): [T10] Backlog: System / sysutils / log API, 3 functions that no streamer calls T20: issue #6 (open): [T20] Backlog: System / sysutils / log API, 3 functions that no streamer calls T21: issue #8 (open): [T21] Backlog: System / sysutils / log API, 3 functions that no streamer calls T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | ? | 🔧 aud ∅ | 📋 | 📋 | ? | 🔧 aud ∅ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no ADC node (/dev/ingenic_adc_aux_0 or /dev/jz_adc_aux_0; the vendor libsysutils opens the same nodes) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | ? | 🔧 aud ∅ | 📋 | 📋 | ? | 🔧 aud ∅ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no ADC node (/dev/ingenic_adc_aux_0 or /dev/jz_adc_aux_0; the vendor libsysutils opens the same nodes) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | ? | 🔧 aud ∅ | 📋 | 📋 | ? | 🔧 aud ∅ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no ADC node (/dev/ingenic_adc_aux_0 or /dev/jz_adc_aux_0; the vendor libsysutils opens the same nodes) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | 🔧 aud ∅ | ? | 🔧 aud ∅ | 📋 | 📋 | ? | 🔧 aud ∅ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no ADC node (/dev/ingenic_adc_aux_0 or /dev/jz_adc_aux_0; the vendor libsysutils opens the same nodes) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | ❌ miss | ❌ miss | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls T41: issue #80 (open): [T41] Backlog: System / sysutils / log API, 6 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no /dev/rtc0 (the vendor libsysutils opens the same node) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no /dev/rtc0 (the vendor libsysutils opens the same node) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no /dev/rtc0 (the vendor libsysutils opens the same node) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no /dev/rtc0 (the vendor libsysutils opens the same node) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | – | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | – | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
T20+T21+T23+T31: apitest N/A on the test boards, no /dev/rtc0 (the vendor libsysutils opens the same node) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | – | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | ❌ err | – | |
T41: writes the mode number to /sys/power/state; neo PR #1 covers related struct overflows, unmerged T41: writes the mode number to /sys/power/state; neo PR #1 covers related struct overflows, unmerged T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T41: issue #80 (open): [T41] Backlog: System / sysutils / log API, 6 functions that no streamer calls | |||||||||||
| 🔧 host ↷ | 🔧 host ↷ | 🔧 host ↷ | 🔧 host ↷ | 🔧 host ↷ | 🔧 host ↷ | 📋 | 📋 | 🔧 host ↷ | 🔧 host ↷ | – | |
agg-37: OpenIMP exports it in `libimp.so` on every SoC (sync, then SIGTERM to init = reboot by default; `OPENIMP_SU_SHUTDOWN=poweroff` sends SIGUSR2, `=vendor` the vendor SIGCHLD); host test with a fake kill, not run on a camera. Before agg-37: kill(1,SIGCHLD) does not power off busybox init; fix in neo PR #1 (SIGUSR2), unmerged; no streamer uses it; class d: lives in libsysutils (not OpenIMP); the vendor does sync() + kill(1, SIGCHLD) exactly like it, busybox init ignores SIGCHLD agg-37: OpenIMP exports it in `libimp.so` on every SoC (sync, then SIGTERM to init = reboot by default; `OPENIMP_SU_SHUTDOWN=poweroff` sends SIGUSR2, `=vendor` the vendor SIGCHLD); host test with a fake kill, not run on a camera. Before agg-37: kill(1,SIGCHLD) does not power off busybox init; fix in neo PR #1 (SIGUSR2), unmerged; no streamer uses it; class d: lives in libsysutils (not OpenIMP); the vendor does sync() + kill(1, SIGCHLD) exactly like it, busybox init ignores SIGCHLD T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | – | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 T41: apitest next+ko/libimp swap 2026-10-27 .34 | |||||||||||
| – | – | – | – | ? | – | – | – | – | ❌ miss | – | |
T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T41: issue #80 (open): [T41] Backlog: System / sysutils / log API, 6 functions that no streamer calls | |||||||||||
| – | – | – | – | ? | – | – | – | – | ❌ miss | – | |
T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T41: issue #80 (open): [T41] Backlog: System / sysutils / log API, 6 functions that no streamer calls | |||||||||||
| – | – | – | – | ? | – | – | – | – | ❌ miss | – | |
T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T41: issue #80 (open): [T41] Backlog: System / sysutils / log API, 6 functions that no streamer calls | |||||||||||
| – | – | – | – | ? | – | – | – | – | ❌ miss | – | |
T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T10 (4 builds, 3.9.0/3.12.0), T20 (4 builds, 3.9.0/3.12.0), T21 (4 builds, 1.0.33), T23 (8 builds) and T31 (28 builds): declared in the SDK header, exported by no vendor libsysutils (nm of every build); a vendor-stack application cannot link it either; OpenIMP/libsysutils match that (no battery driver on these SoCs) T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T41: issue #80 (open): [T41] Backlog: System / sysutils / log API, 6 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | – | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | – | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest agg47 2026-10-26 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: apitest next+ko/libimp swap 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest agg47 2026-10-26 .184 | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | 🔧 aud ↷ | ? | 🔧 aud ↷ | 📋 | 📋 | ? | 🔧 aud ↷ | – | |
audit: sysfs/ioctl/syscall path T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: issue #70 (open): [T40] Backlog: System / sysutils / log API, 26 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | – | – | – | 📋 | 📋 | – | – | – | |
T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: reaches the driver/kernel; userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r† t; T20: r† t; T21: r† t; T23: r† t; T30: r† t; T31: r† t; T32: r† t†; T33: r† t†; T40: r† t; T41: r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| – | – | – | – | – | ✅ | 📋 | 📋 | – | – | – | |
T31: real memory pools (claude/t23t31-cacheonly, not in agg-25) T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
| – | – | – | ✅ | – | ✅ | 📋 | 📋 | ✅ | ✅ | – | |
T23+T31: real memory pools (claude/t23t31-cacheonly, not in agg-25) T23+T31: real memory pools (claude/t23t31-cacheonly, not in agg-25) T23: apitest rc3gaps2 2026-10-27 .30 T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† | |
audit: userspace implementation T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r†; T20: p† r†; T21: p† r†; T23: p† r†; T30: p† r†; T31: p† r†; T32: p† r†; T33: p† r†; T40: p† r†; T41: p† r† | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | p† r† t t† | |
audit: userspace implementation T10: apitest agg47 2026-10-26 .31 T20: apitest agg47 2026-10-26 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest agg47 2026-10-26 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest gate1026 (open-tx-isp 2acd1afa) 2026-10-26 .184 T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: p† r† t; T20: p† r† t; T21: p† r† t; T23: p† r† t; T30: p† r† t; T31: p† r† t; T32: p† r† t†; T33: p† r† t†; T40: p† r† t; T41: p† r† t | |||||||||||
| ✅ | ✅ | ✅ | ✅ | ? | ✅ | 📋 | 📋 | ✅ | ✅ | r† | |
audit: reaches the driver/kernel T10: apitest rc3gaps2 2026-10-27 .31 T20: apitest rc3gaps2 2026-10-27 .107 T21: apitest rc3gaps2 2026-10-27 .24 T23: apitest rc3gaps2 2026-10-27 .30 T30: issue #21 (open): [T30] System / sysutils / log: audit of 12 streamer-used functions of unknown state T31: apitest rc3gaps2 2026-10-27 .26 T32: issue #38 (open): [T32] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T33: issue #53 (open): [T33] System / sysutils / log: 12 vendor functions the first OpenIMP build has to provide T40: apitest rc3gaps2 2026-10-27 .184 T40: issue #64 (closed): [T40] System / sysutils / log: audit of 1 streamer-used functions of unknown state T41: apitest rc3gaps2 2026-10-27 .34 Used by (per SoC): T10: r†; T20: r†; T21: r†; T23: r†; T30: r†; T31: r†; T32: r†; T33: r†; T40: r†; T41: r† | |||||||||||
| ? | ? | ? | ? | ? | ? | 📋 | 📋 | – | – | – | |
T10: issue #4 (open): [T10] Backlog: System / sysutils / log API, 3 functions that no streamer calls T20: issue #6 (open): [T20] Backlog: System / sysutils / log API, 3 functions that no streamer calls T21: issue #8 (open): [T21] Backlog: System / sysutils / log API, 3 functions that no streamer calls T23: issue #13 (open): [T23] Backlog: System / sysutils / log API, 14 functions that no streamer calls T30: issue #27 (open): [T30] Backlog: System / sysutils / log API, 35 functions that no streamer calls T31: issue #30 (open): [T31] Backlog: System / sysutils / log API, 14 functions that no streamer calls T32: issue #45 (open): [T32] Backlog: System / sysutils / log API, 90 functions that no streamer calls T33: issue #60 (open): [T33] Backlog: System / sysutils / log API, 88 functions that no streamer calls | |||||||||||
History of the function audit and notes
As of: 2026-10-10 (re-audit against agg-34; the cells below were set on 2026-10-06 from the release-candidate test day and changed since only where noted). The cells were updated from the release-candidate test day: every row/SoC whose apitest call passed on a camera of that SoC (T20, T21, T23, T31) is now **dev**; the cells changed by hand (vendor no-ops, functions that became real, functions that were fixed) are listed in the notes of the row. T10 and T41 cells were not re-measured (T10 mirrors T20 and was not re-tested; T41 is not part of the release).
State of the work: OpenIMP claude/agg-34 (2a1b1cd), open-tx-isp claude/agg-34 (b15ef235). Re-audit 2026-10-10: every row with a cache/stub/error/missing/? cell on T10/T20/T21/T23/T31 was checked against the exported symbols of the agg-34 libimp.so builds (T10 uses the T20 build) and the agg-34 source; the only function that became real since agg-27 is IMP_Log_Set_Option (now host on T10/T20/T21/T23/T31), the other gap rows are unchanged (still cache-only/error by design or not exported); ISP_Tuning_Get/SetFrontCrop T31 is now dev (night of 2026-10-10). The T41 column and the T41 count row were not touched (other agents work on T41). The counts are recomputed by a local helper script (parses the full lists; not in the repo). Source of the function list and of the base classes: the audit NOT_CONNECTED_2026-10-05.md (OpenIMP/open-tx-isp agg-24, built libimp.so/libsysutils.so, vendor header sets: T10/T20 331 functions, T21 330, T23 704 incl. _Sec/MultiCamera_ variants, T31 405, T41 445). Rows are ALL vendor IMP_*/SU_* functions of the audit (Get/Set pairs share a row). Per area the first table shows only rows with at least one gap (cache-only, stub, error, missing, ?); the collapsible full list below it shows every row.
Gap work 2026-10-10 (branch claude/gaps-t23-t31, T23 and T31 only): the vendor libimp/libsysutils of every build (8 T23, 28 T31) were checked for the gap functions. Not exported by any vendor build, so now n.a. instead of missing: T23 OSD_GetRegionLuma, SU_Battery_* (T23, T31), T31 ISP_Tuning_SetDPStrength, Decoder_*, EmuFrameSource_*, ADEC_ReleaseDecoder, AENC_ReleaseEncoder (declared in some headers only). Vendor no-op matched: T23 Encoder_Get/SetH265TransCfg (drops the value, Get zero-fills; device-tested), T31 Encoder_SetFrameRelease. Implemented: T31 ISP_SetFixedContraster (attr pointer as control 0x8000102 like the vendor; host test, device-tested; T23 now dev too). Remaining gaps are class c (T23 driver has no handler for the controls of ISP_Tuning_SwitchBin, AwbSync, SetWB_ALGO, Get/SetOSDAttr, Get/SetOSDBlock, Get/SetDrawBlock) or class d (fisheye flag, frame-loss threshold, multi-section mode, FB_*, SU_Base_Shutdown); see the notes of the rows.
Gap work 2026-10-10 (branch claude/gaps-t23-t31-b, T23 and T31, host work only, device test pending; driver side in open-tx-isp claude/gaps-t23-t31-drv, which is not in agg-36 (held back until its T23 SwitchBin is reworked), so the T23 class c cells keep their previous state; vendor libimp T23 1.3.0 and T31 1.1.6 disassembly, stock tx-isp-t23.ko in the emulator): class a (vendor behaviour matched): T23 ISP_Tuning_AwbSync (not exported by libimp 1.3.0; the stock kernel rejects the control too; now n.a.). Class b (OpenIMP): none, the T23 entry points already pass all controls to the driver. Class c (open-tx-isp, emulator-identical where the stock code could be run): T23 ISP_Tuning_Get/SetDrawBlock, Get/SetOSDAttr, Get/SetOSDBlock (stored on the stock mscaler object, no image effect yet, as the mask blocks), ISP_Tuning_SwitchBin (tisp_switch_bin rewritten around the IQ loader), ISP_Tuning_SetWB_ALGO (accepted as stock, stub: the open AWB has no threshold window to switch); T31 ISP_SetFixedContraster (the driver handler now calls tisp_set_bcsh_fixed_contrast). Class d (not worth it): T23 and T31 Encoder_Get/SetFisheyeEnableStatus, T23 Encoder_Get/Setframelossthd and SetMultiSectionMode (T31 1.1.6 exports neither), T31 FB_* (only the 1.1.5-zrt display builds export them), SU_Base_Shutdown (libsysutils, vendor-identical). Counts: T23 gaps 15 to 7, T31 8 to 8 (SetFixedContraster was not counted as a gap; its cell is host now).
Gap work 2026-10-10 (branch claude/gaps-t1x, T10/T20/T21, vendor export check only, host-only, no device session): the 4 vendor libimp builds per SoC (T10 3.9.0/3.12.0, T20 3.9.0/3.12.0, T21 1.0.33) and their libsysutils were checked with nm. Exported by none, so now n.a.: ISP_Tuning_SaveAllParam (T10/T20/T21), ADEC_ReleaseDecoder/AENC_ReleaseEncoder (T10/T20), SU_Battery_* (T10/T20/T21). Gaps in functions: T10 28 to 21, T20 27 to 20, T21 14 to 9. Everything else stays open; the vendor libimp does export ChangeRef, FrmUsedMode, GOPSize, HSkipBlackEnhance, OSD_AttachToGroup, Decoder_* (T21), and the T10/T20 H264 variants, WDRAttr, ISPHVflip, MeshShadingScale, AntiFogAttr, DPStrength (T10/T20), so these are classes b/c and not yet worked (low priority: no streamer uses them).
Gap work 2026-10-10 (branch claude/gaps-t1x-impl, T10/T20/T21, vendor disassembly of libimp T21 1.0.33 and T10/T20 3.12.0, device-tested): the 3.12.0 libimp of T10 and T20 is one and the same binary. Per function: **(a/b) done**: Encoder_Get/SetChnFrmUsedMode (T10/T20/T21; stored like the vendor, also before CreateChn), Encoder_GetGOPSize (T10/T20/T21; idle channel answers 0 on T21, -1 on T20), ISP_Tuning_SetDPStrength (T10/T20, T21 now device-tested), ISP_Tuning_Get/SetISPHVflip and Get/SetWDRAttr (T10/T20; the WDR switch is the V4L2 control 0x98e912 with the vendor's mode cache, the HV flip uses the ISP flip pair because the open T20 driver does not serve the vendor's module-control word), OSD_AttachToGroup (T10/T20/T21; system_attach() splice, host test). **Stored, effect only in the closed vendor encoder (cache, classes c/d)**: Encoder_Get/SetChangeRef, SetChnHSkipBlackEnhance, Get/SetFisheyeEnableStatus (T10/T20/T21, vendor return codes and idle/created rules matched), Get/SetChnDemask and Get/SetChnHSkip (T10/T20). **Not worth it / not possible**: Decoder_* (class d: no decoder in the open stack, no user), ChnH264Demask/Denoise/FrmUsedMode and ChnRcAttr (class d: exported only by the 3.9.0 libimp, an older ABI generation than OpenIMP implements), SetAntiFogAttr T10/T20 (class c: the antifog Iridix preset path of the open driver hung cameras), SetMeshShadingScale (class c: the vendor writes an ISP register through a userspace mapping, no driver control), SU_Base_Shutdown (class d, unchanged). Device results with the apitest (agg-34 plus these changes, libimp from /tmp, streamer restarted, config md5 unchanged, 0 oopses): T20 148 PASS / 0 FAIL / 2 N/A / 2 SKIP, T21 155 / 0 / 2 / 2, T10 147 / 1 / 2 / 2 (the one FAIL is the pre-existing SetSuperFrameCfg read-back on T10). Gaps by row: T10 21 to 15, T20 20 to 14, T21 8 to 5.
Gap work 2026-10-10 (branch claude/gaps-t30, T30, host and build only, no T30 camera; vendor libimp 1.0.5 disassembled and compared with T21 1.0.33 and T31 1.1.6): the T30 build now exports 317 of the 334 vendor names (was 271; export check of build-t30.sh, audio 68 of 68). No streamer (timps, prudynt, raptor RVD) imports any of the 63 names that were missing (prudynt has one commented-out IMP_Encoder_SetFisheyeEnableStatus call), so no streamer-used T30 function was open. Per function: **(a/b) done, host-tested**: Encoder_Get/SetChnFrmUsedMode, Encoder_GetGOPSize, ISP_Tuning_SetDPStrength, SetAntiFogAttr, Get/SetAeStrategy, Awb_Get/SetCwfShift, Get/SetWDRAttr and Get/SetISPHVflip (the T30 libimp has the same code as T20/T21 for these; the ISP calls use the same tuning controls with a fake-ioctl host test, whether the open T30 driver serves each control is not checked), OSD_AttachToGroup (same wrapper as T21); the 21 DMIC_* functions by compiling the T31 implementation into the T30 build (the T30 libimp disassembles like T31 apart from buffer sizing; the T30 oss2 audio driver has the same DMIC ioctls; one microphone per device on T30; host test with a fake /dev/dsp; the AEC calls are compared, not run). **Stored only (cache)**: Encoder_Get/SetChangeRef, SetChnHSkipBlackEnhance, Get/SetFisheyeEnableStatus, Get/SetChnHSkip (the IDR period is not handed to the T30 encoder) and ISP_Tuning_SetTemperDnsCtl; three more vendor exports that have no matrix row are exported the same way (Encoder_SetPoolSize, Encoder_SetChnRcTrigLevel, ISP_Tuning_SetAFThreshold). **Wishlist (c, needs a T30 device or driver work)**: Decoder_* (8; Helix/Radix decoding), Encoder_Get/SetChnCrop (the vendor crops in 16-pixel units inside its encoder; the SPS-level crop of the Helix path needs a device check), ISP_Tuning_SetISPLDC (an LDC ioctl sequence on the ISP node). **Not worth it (d)**: Encoder_Enable/DisableAllNCUDenoise (register access of T30-class chips), Encoder_PadFrame and SetPadFrameAttr (external frame injection), Encoder_Get/SetRencFirstFrameMult (parameter of the closed re-encode controller, no default known); these 8 names are not matrix rows. Found on the way: the T21 build returns the stored value for GetChangeRef of a created channel, while the same vendor code (T21 1.0.33, T30 1.0.5) fails there with "unsupport to change ref channel", and the T21 Get/SetChnHSkip refuse an idle channel that the vendor accepts (reported, not changed for T21). T30 gaps: 54 to 19 (11 missing, 8 cache-only), 13 functions host and 22 aud, 0 streamer-used gaps.
Gap work 2026-10-10 (branch claude/gaps-t1x-c, T10/T20/T21, vendor disassembly, host tests only, the cameras were in a soak): three vendor deviations fixed. **T21 GetChangeRef** on a created channel returned the stored value; the vendor (T21 1.0.33 0x48d90, T30 1.0.5 identical; T10/T20 3.12.0 0x4b220 read the value) logs "unsupport to change ref channel" and returns -1, now matched. **T21 Get/SetChnHSkip** rejected an idle channel; the vendor (0x478f0/0x47ba0) stores without the maxHSkipType check (Set) and answers all zero (Get), now matched; T10/T20 stay -1 on an idle channel as their vendor. **T10/T20 Get/SetChnDenoise** read dnType back as 0 because the T20 build also defines PLATFORM_T21; T10/T20 now keep type and QPs like the 3.12.0 vendor (no two-pass encode, cell stays cache). Remaining gap rows re-checked against the disassembly: all are classes c/d (closed vendor encoder, driver control missing, 3.9.0-only names, vendor-equal defect), none is a cheap a/b item; T10 SetMbRC is a matched no-op (the vendor T10 controller has no macroblock part).
Not re-measured in this update: T10 (not re-tested on the open stack), T41 (its fixes live in claude/release-t41, not in the release), the _Sec and MultiCamera_ variants of T23 (the apitest exercises the base function), and every function the apitest skips on purpose. T10 uses the T20 userspace build (and the T20 SDK tuning code in the driver), so its cells mirror T20 unless the note says otherwise. T30 and T40 are tabled since 2026-10-10 (see the T30/T40 paragraph below).
T30/T40 columns (added 2026-10-10, host/build evidence only; no T30 camera, T40 device results only from the cam-K run of 2026-10-10). Vendor function lists: T30 = the export list of the vendor libimp 1.0.5 (fixture tests/t30/fixtures/t30_vendor_1.0.5_imp_exports.txt, 334 names; headers timps/include/T30/1.0.5/zh); T40 = the vendor headers 1.3.1 (timps/include/T40/1.3.1/en; the T40 board runs vendor libimp 1.3.0). Open side: nm -D of build/t30/libimp.so built from next (ed7bd82, 594,232 B; build-t30.sh export check: 271 of 334 vendor exports, audio 68 of 68; after the gap work of 2026-10-10 on claude/gaps-t30: 317 of 334, audio 68 of 68) and of the T40 libimp.so built from claude/t40-t41-api (9035e30, 375,752 B). Cell rules: n.a. = not in that vendor list; miss = in the vendor list but not exported; err = exported as an ENOTSUP shim (T40, src/t40/openimp_p3_compat.c: all OSD, IVS, DMIC, ISP-OSD, CCM, gamma, mask, module control, sensor attr and SnapFrame calls; the T40 contributor's gate in docs/T40_STATUS.md says the same: P4 surfaces not used by the gate return ENOTSUP); host = covered by a host test of the shared code (T40: the camera-input trio in tests/t40, the ISP control and FrameSource delay/I2D calls in tests/t41, which build the shared src/t40 code with -DPLATFORM_T41); ? = exported, behaviour not audited and not run on a camera. Nothing is dev on T30 (host or aud cells only come from the gap work of 2026-10-10, host tests and disassembly comparisons); the T40 dev cells come from the cam-K run of 2026-10-10; SU_* cells are ? (libsysutils is not part of the libimp build). A ? on T30/T40 does not by itself move a row into the gap lists and the ► mark counts only cache/stub/err/miss on T30/T40. Used-by for T40: timps is binary-verified (nm of the T40 timpsd), the prudynt/raptor entries are the per-row source-derived ones (†) and were not re-derived for T40. Earlier finding (export coverage only): the only function raptor needed on T40 and OpenIMP lacked was SetCameraInputMode/SetCameraInputSelect; they are now implemented (9035e30, host test only, no camera) and show as host. Counted as ENOTSUP shims the streamer-used T40 gaps are many more (see below), so that earlier finding does not hold at the behaviour level. 15 vendor functions that had no row yet were added (T40: ISP_Bypass_Bind, ISP_GetCameraInputMode, ISP_SetCameraInputSelect, ISP_Get/SetDrawAttr, ISP_Get/SetOSDAttr, ISP_Get/SetSingleOSDAttr, ISP_GetRaw, ISP_SetPreDqtime, ISP_SetScalerLv, ISP_Tuning_Get/SetAeSpeed, Get/SetFaceAwb, Get/SetHLDCAttr, GetISPBypass, SetFixedContraster; T30: ISP_Tuning_SetISPLDC). Not tabled: names that the vendor T30 1.0.5 libimp exports without a header (24 names, for example IMP_Alloc*, undistort and pad-frame calls), SU_ADC_Init and the IMP_LOG_* macros.
- **T21 imgfx findings without a row of their own (2026-10-06 update):** the 2026-10-05 run found no change for Sinter/Temper strength, Sepia, Vivid and the ISP bypass bits. Sepia has worked since 2026-10-06 (beyond vendor, see
ISP_Tuning_Get/SetColorfxMode); in the later imgfx run on a T21 camera B/W, sepia, negative, vivid, the CSC modes and the sinter/temper/DPC strengths changed the picture. Brightness, antifog and scene mode are vendor no-ops on T21 except that brightness now acts through the AE target (beyond vendor). ISP flip andSetWBauto gave a magenta picture in imgfx on T21 (timps' own flip path is fine): open, not a missing function; to be repeated in daylight. - **OSD, behaviour rather than a missing function:** on T21 the IPU blend is ineffective for about 2 s after a wake from idle;
claude/t21-osd-first-jpeg(in agg-26) withholds JPEG frames without a confirmed overlay, so the first snapshot after a start now has the OSD (device-tested 2026-10-05, first snapshot about 2 s later). The original stack shows the same missing first-snapshot OSD; the root cause (IPU/OSD group/clock) is not found. T21 OSD can still appear late after a start (2-3 min seen with several starts): unverified cause. - **IVS:** no vendor IVS function is marked missing or incomplete in the audit. (The IVS GetParam/SetParam overflow found on 2026-10-05 is in raptor-hal, not in OpenIMP.)
- **Not determined:** whether the T41 vendor handles
SetScalerLv/SetMaskBlock(the open driver has no handler); T10 device effect of every T20/T21 fix; the _Sec/MultiCamera_ variants after the T23 fixes; vendor semantics of absolute-QP ROI under CBR on T20; T41 DMIC, ISP-OSD and I2D functions were not looked at again after the audit (all still error/missing); the T10/T20/T21GetChnRcAttr-style missing encoder calls were not re-checked. - **Release-candidate imgfx run (2026-10-06):** it ran in the dark (night mode), so cases without a clear luma effect cannot be judged. The colour functions of T10/T20/T21/T31 must be repeated with daylight or room light before they are called dev; only the T21 brightness batch and the T21/T31 batches taken with light are used above.
- **SU time/alarm/ADC:** apitest shows N/A on the test boards because the nodes are missing (
/dev/rtc0, the ADC nodes); the vendor libsysutils opens the same nodes, so this is a board property, not a gap. - **Device API run on agg47 (2026-10-26,
tools/apitest, reference text "apitest agg47 2026-10-26 <ip>" in the row):** one camera per SoC (T10 .31, T20 .107, T21 .24, T23 .30, T31 .26, T40 .184, T41 .34) with the apitest (all non-image functions, microphone only, no AO call), imgfx statistics (in-memory picture measurement) and, on T40, the t40_devtest PASS lines. Images: .31 .107 .24 .30 .26 = open-tx-isp 3a3a0506 + OpenIMP b511f82f; .184 and .34 = open-tx-isp 8d3504c8 + OpenIMP 9f2e8497. PASS promoted aud/host/? cells to dev; FAIL set err (each is a release-gate item); cells that record a cache/stub were not promoted. T40 .184: GetAfStatistics, GetAFMetricesInfo and Awb_GetRgbCoefft oops the T40 driver (not called in the run, FAIL recorded). T40/T41 functions of OpenIMP 9f2e8497 thatdocs/api_exports.jsondoes not list yet were not merged (export list refresh pending).
History (update log, long notes)
As of: 2026-10-25, RC2 (v2026.10.25-rc2 = OpenIMP next 7c30aa99 plus documentation, open-tx-isp next 1bf4549d plus documentation; this code runs on all 19 test cameras as image agg46 since 2026-10-25; the soak of 2026-10-24/25 on the T40/T41 cameras was clean); before that 2026-10-24, evening (T40 reload/quality/cells/CSC/night merges, T41 RC parameters rounds 3-4 and colour check, T31 front crop; OpenIMP next f55f620f, open-tx-isp next e5030fd4; soak of this state running); before that 2026-10-24, third pass (T41 defog fix and default on, NR/DPC/module size/CPU load/buffer sharing/RC parameters; OpenIMP next 518df91, open-tx-isp next 091e1fa2); before that 2026-10-24, second pass (T41 reload/WDR/crop/telemetry/ROI/DPC, T40 AE/AWB/day-night from the merged quality branch, T31 MXU2 AWB); before that 2026-10-24 (T40/T41/T31 updated from the A/B runs against the vendor stack and the merges since 2026-10-19, see the first Summary entry; T40/T41 columns re-evaluated row by row against the newest device evidence, see the first Summary entry; T40/T41 I2D, JPEG pitch, OSD after I2D, T40 PTS and device tests: see the #20-#29 entries marked 2026-10-19), before that 2026-10-12 (T40 night branch, see the first update below), 2026-10-11 aggregate agg-36 after RC1 (OpenIMP and open-tx-isp claude/agg-36; build and host tests, no soak yet; device results only where a cell says so). Before that: RC1 v2026.10.11-rc1: openimp fe9307c (agg-35 687a68e4 + docs), open-tx-isp 191be6c5 (agg-35 6e464ac7 + docs); overnight soak clean. Detail: 2026-10-10 evening (release candidate agg-35, see the update paragraph in the summary; before that agg-34: OpenIMP agg-34 2a1b1cd and open-tx-isp agg-34 b15ef235 on top of next, mandatory device tests of the night 2026-10-09/10 included; the per-cell details below are a chronological test log, newest results win). Camera mapping of the older sections: cam-A = T31, cam-B = T23, cam-C = T20, cam-D = T21, cam-E = T10, cam-F = T41; cam-G and cam-H are further T23 cameras (other sensors) that run the same stack. The agg-32 soak has its own letters (see the changelog). Addendum 2026-10-10 afternoon: front crop vs flip, AeComp T20/T31, agg-34.1 (T31 WDR statistics ring, regression fix, T21/T23/T20/T10 not affected), T41 experimental notes; T20/T21 encoder ROI QA flake is timing only (ROI applies at the next IDR).
Branch names in brackets (claude/...) and the tags [-all-N] are historic: those branches were merged into next and deleted. Where a cell says "not yet in an aggregate", "device test pending" or "opt-in", check the summary below and the defaults table in OPENIMP_BEYOND_VENDOR.md first.
See also: the section "API coverage per function" below (generated: vendor IMP/SU functions per SoC, what works, what is open, what the streamers need); OPENIMP_BEYOND_VENDOR.md (integration notes for streamer authors on everything marked beyond vendor).
Summary
- RC2 (v2026.10.25-rc2, 2026-10-25; OpenIMP next 7c30aa99, open-tx-isp next 1bf4549d, plus documentation): changes against RC1 (v2026.10.11-rc1): OpenIMP 278 and open-tx-isp 634 commits; the rendered matrix marks every cell that is new or better than at RC1 (badge "RC2", filter "only changes since RC1", count per SoC). This pass: T40 #3 boot guard ✅ (dry run), #42 libalog/libsysutils ✅+ (not needed by OpenIMP), #32 AO and #33 AEC 🔧 "not RC2-relevant, sound tests pending" (no "?" left in the T40 column), #41 long-term stability ✅ for T40 and T41 on the overnight soak of 2026-10-24/25 (.32, .34, .184 clean; log
audit/logs1024/soak-agg4z.log); T31 #41 stays ⚠️ (.33 hang on the old agg43 image; .29 multi-day run until 2026-10-29). Known RC2 limitations (kept ⚠️): T40 #9 manual CCM has only a small effect, T40 #12 sharpness is 4-5 % below the vendor, T40 #29 pans not re-tested. Release note: RELEASE_NOTES_RC2.md. - Test pattern (beyond vendor, 2026-10-19): synthetic test picture modes 1-4 (pattern, moving, motion test, sensor pattern) with runtime API, control socket and host evaluation tools; per-SoC status table, usage and limits in TESTPATTERN.md.
- Update 2026-10-25, evening (T30 in QEMU, open-tx-isp next): the T30 image (thingino qemu_t30x, sc4236 model) boots in our QEMU; six driver/t30 bugs fixed (isp-m0 proc read oops, sensor module export, calibration control oops, AE IRQ after sensor rmmod, reload soft lockup, unknown-sensor release oops). T30 #2 reload ? -> 🔧 (10 cycles clean in QEMU); #6, #7, #12, #20, #43 ? -> 🔧 (controls reach the driver in QEMU, partly implemented). No T30 camera: no device result, frames-to-encoder not run. Details: open-tx-isp CHANGELOG.
- Update 2026-10-25, after RC2 (OpenIMP next c524c3a0, open-tx-isp next 136e8b99): T41 #15 defog ✅ -> ✅+ (strength API beyond vendor, device-tested on .32). T40 #29 motion ⚠️ -> ✅ (8/8 pans on agg46, 0 false results); T40 #9 CCM ⚠️ -> ✅+ (vendor applies only R->R of a manual CCM, open the full matrix); T40 #12 BCSH/sharpness ⚠️ -> ✅ (OEM rounding fix + DMSC day follow, day colour after night fixed, open-tx-isp 6d63667b); T40 counts now 5 ✅+ / 33 ✅ / 0 ⚠️. T41 rate control (#26, symbol unchanged ✅): FixQP now uses the vendor dynamic lambda for H.264 and H.265 (P sizes vendor-equal, OpenIMP 9ca0c894/e95ade0f), and H.265 FixQP streams decode again (PPS cu_qp_delta_enabled_flag 1 like the vendor). T23 test pattern mode 5 (ISP middle, OpenIMP 4ce343bd + open-tx-isp mdns_ref_hold 7970b5dc) and
OpenIMP_TestPattern_Supported(c5fedf2a): see TESTPATTERN.md / 2 🔧 (#32/#33, no sound test) / 5 —. open-tx-isp next f18148ff: T40 SetISPRunningMode no longer reports a false error. T40: AE/AWB now also follow a sub-stream-only consumer (open-tx-isp 7458b67e, device-tested on .184; #10 stays ✅). T31:t31_mxu2_cpmtext only. Counts T41 before 4 ✅+ / 34 ✅ / 1 ⚠️ / 6 —, now 5 ✅+ / 33 ✅ / 1 ⚠️ / 6 —. - Update 2026-10-24, evening (basis: OpenIMP next f55f620f, open-tx-isp next e5030fd4; the fleet soak of exactly this state runs until 2026-10-25 10:00, #41 stays ⚠️ for T31/T40/T41 until it is evaluated): merged since the third pass: open-tx-isp T40 reload/unload fixes, framechan release after a dead client, tuning-control oops fixes (
SetModuleControl,SetMask,SetWdrOutputMode, CCM/CSC/Gamma getters,SetScalerLv), AE EV fan-out, AE caps andAeTargetComp, DRC/Sinter/Temper ratios, CSC to BCSH, DMSC night follow, module size, T31 front-crop upscale and AWB IRQ stack, ISP IRQ quiesce beforerequest_irqon T31/T23/T21 (QEMU finding, compiled only on T23/T21); OpenIMP T40 encoder query/telemetry, AI volume/gain,SetDefaultParam, T41 RC parameters rounds 3-4 (read-back, I-model scale, SC_PREVENTION gate), buffer sharing, versioned telemetry. T40: #2 reload ⚠️ -> ✅+ (30/30 cycles, the vendor module oopses on rmmod), #5 AE compensation 🔧 -> ✅ (HLC/BLC strength still no effect), #6 limits/FPS 🔧 -> ✅, #10 day/night ⚠️ -> ✅ (DMSC follows the night bank: dark+IR p50 8 against vendor 11, before 25), #13 mirror/flip 🔧 -> ✅ like vendor (the vendor ignores the sensor flip on the sc830ai too), #14 WDR/ADR/DRC 🔧 -> ✅ (DRC ratio visible; ADR bypass small effect, noted), #16 NR 🔧 -> ✅ (Temper ratio = vendor formula), #19 privacy mask 🔧 -> ✅ (ch0 on the open driver), #20 crop/scaler/CSC ⚠️ -> ✅ like vendor (same CSC registers, no ch0 change on either stack), #27 RC parameters ? -> ✅ (default-parameter comparison, user decision), #31 audio input ? -> ✅ (microphone; #32/#33 need no sound test for RC2), #35 module size ⚠️ -> ✅ (accepted: 404 KB against 230 KB xz because of lifted chains, duplicate paths and diagnostics), #43 getters 🔧 -> ✅, #44 telemetry 🔧 -> ✅; #9 CCM/LSC 🔧 -> ⚠️ (LSC and GetGamma work, CCM set/read-back works but its picture effect is small), #12 stays ⚠️ (open picture softer: day edge energy 5.5 against 6.8). T41: #27 RC parameters ⚠️ -> ✅ (user decision: scene-change recovery is faster than the vendor's); colour/CCM/AWB are vendor parity by chart measurement (cells unchanged). T31: #20 front crop ⚠️ -> ✅ (enlarging up to 2.0x by default, device-tested on a T31L; beyond 2.0x refused, the MSCA hangs there), #41 stays ⚠️ (the 10-17 reboot analysed, mitigation merged, unproven). Function tables: T40SetScalerLv,Get/SetCCMAttr,Get/SetISPCSCAttr,GetGammaAttr,Get/SetModuleControl,Get/SetWdrOutputMode,Module_Ratio,AeExprInfoandGet/SetSensorFPShost -> dev (T40 dev 118 -> 134, host 112 -> 96; gaps unchanged at 56). Open for T40: #29 motion pans are device-proven on the merged code of 2026-10-19 (8/8) but not re-run on the final build, cell stays ⚠️; #3 and #42 unknown, #32/#33 without sound test. Counts T40 before: 2 ✅+ / 16 ✅ / 7 ⚠️ / 9 🔧 / 5 — / 6 ?, now 3 ✅+ / 29 ✅ / 4 ⚠️ / 0 🔧 / 5 — / 4 ?. Counts T41 before: 4 ✅+ / 33 ✅ / 2 ⚠️ / 6 —, now 4 ✅+ / 34 ✅ / 1 ⚠️ / 6 —. Counts T31 before: 9 ✅+ / 32 ✅ / 2 ⚠️ / 2 —, now 9 ✅+ / 33 ✅ / 1 ⚠️ / 2 —. - Update 2026-10-24, third pass (basis: OpenIMP next 518df91, open-tx-isp next 091e1fa2): merged since the second pass: open-tx-isp T41 defog root-cause fix and defog default on, T41 size switches, T41 live crop envelope, T40 quality, T31 MXU2 AWB default; OpenIMP T41 RC parameters like the vendor libimp, ROI under FixQP, encoder telemetry, DPC tool. T41: #15 defog 🔧 -> ✅ (diamond lattice fixed: the translated chain read its tables from the wrong rodata image; defog registers equal the vendor dump, defog now on by default; the strength sweep was not tested), #16 NR ⚠️ -> ✅ (the night softness was the missing defog, NR itself has lower noise than the vendor and no detail loss), #17 DPC ⚠️ -> ✅ (true-dark test: DPC on removes all hot pixels, 332 peaks remain with the module bypassed; default = ratio 128 = vendor), #35 module size ⚠️ -> ✅ (836 KB against the vendor 778 KB, accepted for RC2: the +7 % are functions the vendor module lacks), #38 CPU load ⚠️ -> ✅ (the /proc/stat system column hides the vendor kernel-thread time on these
NO_HZ_FULLkernels; spinner method: the open stack leaves about 4 % more CPU free), #37 buffer sharing ? -> — (the vendor has no reference-frame sharing on T40/T41;SetAvpuBsShareand the vendor stream-slot default are in an unmerged branch, pending), #27 RC parameters stays ⚠️ (APIs vendor-equal now, IP/PB delta and the other stored-only parameters under RE). T40 #37 ? -> — (same finding). Open stability issue: .34 rebooted twice under 1080p + 360p at 25 fps 8000 kbit/s and .32 once during load tests; cause not found, #41 stays ⚠️, investigation running. T40 quality follow-ups (sharpness, night) and T41 #27 are running. Counts T41 before: 4 ✅+ / 28 ✅ / 6 ⚠️ / 1 🔧 / 0 ❌ / 5 — / 1 ?, now 4 ✅+ / 33 ✅ / 2 ⚠️ / 0 🔧 / 0 ❌ / 6 — / 0 ?. Counts T40 before: 2 ✅+ / 16 ✅ / 7 ⚠️ / 9 🔧 / 4 — / 7 ?, now 2 ✅+ / 16 ✅ / 7 ⚠️ / 9 🔧 / 5 — / 6 ?. Counts T31 unchanged at 9 ✅+ / 32 ✅ / 2 ⚠️ / 2 —. - Update 2026-10-24, second pass (RC2 agent results; basis: OpenIMP next 958f7f3, open-tx-isp next 9730342f):
claude/t40-qualityis now merged into open-tx-isp next (the "not merged" remarks of the entry below about it, T31 MXU2 AWB and T41 diagnostics are overtaken; defog strength is unchanged). T41: #2 reload ⚠️ -> ✅+ (49 cycles in one boot on .34, no oops, no leak; the vendor leaks a page per stream start and keeps a stale i2c client), #14 WDR/ADR/DRC 🔧 -> ✅ (DRC strength effect measured, WDR is flag-only on a linear sensor like the vendor), #20 front crop ⚠️ -> ✅ (live crop ch0 1920x1080 and ch1 up to 1280x720 on the device, driver envelope default now 1920x1080; theSetScalerLvcurve levels show no visible effect at 4.5:1 and have no vendor A/B), #44 telemetry ⚠️ -> ✅ (Encoder_Queryreal values plus beyond-vendorOpenIMP_Encoder_GetTelemetry), #45 ROI ⚠️ -> ✅+ (works under FixQP, where the vendor shows no effect; all "no effect under FixQP" statements removed), #17 DPC 🔧 -> ⚠️ (effect measured: DPC on halves the isolated peaks; default against ratio 128 still undecided, a re-test in a dark slot is running). T40 (Eufy .184, A/B with the vendor stack, mergedclaude/t40-quality): #4 AE ⚠️ -> ✅ (day luma 119 against 122, light step settles in under 1 s, dark-step luma 124 against 105), #8 AWB ⚠️ -> ✅ (R/G 0.98, B/G 1.00 against 1.00 / 1.02, grey deviation 16 / 13 % against 12 / 11 %), #10 day/night 🔧 -> ⚠️ (switching measured; forced night luma -16 %, black level p1 17 against 7), #12 BCSH stays ⚠️ (sharpness -28 %), #16 NR stays 🔧 (strength effect not measured), #2 stays ⚠️ (rmmod of the open module has hung the SoC; no reload test since 2026-10-13). Only the module build was tested on the camera; the image build and a soak are still to come. T31: the AWB statistics sweeps run through the MXU2 vector unit by default (t31_awb_impl=2, selected after a load-time self-test, bit-exact, device-tested on a T31X .21 and a T31L .29, about 2.4 times faster sweeps;t31_awb_impl=0/1switch it off); notes in #8 and #38, symbols unchanged. Counts T41 before: 2 ✅+ / 25 ✅ / 9 ⚠️ / 3 🔧 / 0 ❌ / 5 — / 1 ?, now 4 ✅+ / 28 ✅ / 6 ⚠️ / 1 🔧 / 0 ❌ / 5 — / 1 ?. Counts T40 before: 2 ✅+ / 14 ✅ / 8 ⚠️ / 10 🔧 / 4 — / 7 ?, now 2 ✅+ / 16 ✅ / 7 ⚠️ / 9 🔧 / 4 — / 7 ?. Counts T31 unchanged at 9 ✅+ / 32 ✅ / 2 ⚠️ / 2 —. - Update 2026-10-24 (T40/T41/T31 re-evaluated against the A/B runs with the vendor stack and the merges since 2026-10-19; basis: OpenIMP next 567eebd, open-tx-isp next 2c29ce79): merged into next since 2026-10-19: T41 EV-unit fix in the per-frame tone worker (gamma/CCM/BCSH/ADR/TMO, brightness and saturation at the vendor level), reduced ISP IRQ mask, MXU3 TMO map (
tmo_map_impl=2) by default, defog default off (diamond artefacts), night/day bank applied from the AE statistics IRQ when idle and after the first AE exposure (automatic night and automatic return to day work); T31isp_memopt=1stripe fix (vendor-equal MDNS patch) and the AE minimum EV step; T40 bind oops fix (antiflicker SET smashed the caller's saved register ins_ctrl), IQ bin path from the sensor name. Not merged (local branches only, the cells stay as they were): T40 image qualityclaude/t40-quality(AWB/day colours at the vendor level, night picture and sharpness still open), T31 MXU2 AWBclaude/t31-mxu2-stats(CPM-gated, self-test passed on one camera, no timing figures yet), T41 diagnosticsclaude/t41-gaps, T4x defog strengthclaude/t4x-defog-strength. T41 (A/B on .32 gc5603 and .34 sc5336, agg4x, one run per stack, deltas below 5 % are noise): day luma/saturation/contrast/edges, colour temperature, AE settling (31-34 s against 33-34 s), automatic night after 7-8 s and automatic return to day are at the vendor level or better (the vendor stack does not return to day by itself on .32), night noise better on .32; ISP interrupts 25-45 % below the vendor, timpsd RSS 35-45 % below. Cells changed: #10 day/night ⚠️ -> ✅, #15 defog ❌ -> 🔧 (chain runs, effect measured at ratio 255, default off, strength API not merged), #38 CPU load ✅+ -> ⚠️ (system CPU on .32 7.6 % against 2.2 %). Still not like the vendor: night edge energy -35 % on .32, night noise +19 % and lower-cabinet grey balance on .34, ISP module +31 % (746 against 568 kB), first snapshot after idle too dark on .34, a forced day mode leaves the AWB at 5000 K,t41_isr_framedownis inert in the native build. Counts T41: 3 ✅+ / 24 ✅ / 9 ⚠️ / 2 🔧 / 1 ❌ / 5 — / 1 ? before, now 2 ✅+ / 25 ✅ / 9 ⚠️ / 3 🔧 / 0 ❌ / 5 — / 1 ?. T40 (Eufy .184, A/B with the vendor stack): the image of next with the defaultenable_core_ops_cb=0is clearly worse than the vendor (orange cast because the vendor AWB is never triggered, day luma -12 %, AE 5-10 times slower, forced night picture -69 %, soft picture -45 % edge energy);claude/t40-qualitybrings day colour, day luma and AE speed to the vendor level but is not merged and night/sharpness stay open, so the AE/AWB/BCSH/day-night cells stay ⚠️/🔧. Changed: #36 MemFree ? -> ✅ (38.7 against 39.3 MB). #35 numbers updated (2173 against 764 kB). Counts T40: 2 ✅+ / 13 ✅ / 8 ⚠️ / 10 🔧 / 4 — / 8 ? before, now 2 ✅+ / 14 ✅ / 8 ⚠️ / 10 🔧 / 4 — / 7 ?. T31 (notes only, no symbol changes): memopt=1 stripes gone, AE minimum EV step, fleet CPU 8 % against 18 % with the vendor libimp, 22 h and 18 h soaks clean; counts unchanged at 9 ✅+ / 32 ✅ / 2 ⚠️ / 2 —. - Update 2026-10-19 (T40/T41 column audit, docs only): all 45 rows of the T40 and T41 columns were re-evaluated against the newest device evidence (open-tx-isp and OpenIMP
next, audit notes of 2026-10-17..19); older T40/T41 paragraphs below are history, the cells and the detail bullets of #1-#45 are current. T40 (Eufy T40XP / sc830ai, open drivertx_isp_t40; the H.265, mask and first-run results of 2026-10-10/11 come from the vendor ISP driver and say so): 2 ✅+, 13 ✅, 8 ⚠️, 10 🔧, 4 —, 8 ?, 0 ❌ (before: 1 / 7 / 2 / 7 / 6 / 19 / 3). Newly device-proven on the open driver: anti-flicker, vendor AE per frame with the sensor limits (20 fps under timps), AutoZoom/crop, I2D rotation, ch1 sub-stream, H.264 300 s regression, restart cycles, JPEG, OSD, capped rate control, PTS. T40 AWB (gray-world default,ct_detectbehindt40_awb_ctd) and the per-frame AE (needsenable_core_ops_cb=1, gain 4-5x above the vendor) are ⚠️; #26 and #29 (rate control, motion) are owned by the T40 CBR/motion re-measurement and were not touched. T41 (Vanhua .32 gc5603, Cinnado .34 sc5336): 3 ✅+, 24 ✅, 9 ⚠️, 2 🔧, 1 ❌, 5 —, 1 ? (before: 3 / 27 / 4 / 0 / 6 / 4 / 1). The T41 "not supported" cells were checked against the driver: CCM, gamma, CSC and module control are implemented and device-tested (✅), DPC and DRC ratio exist in the driver without a device measurement (🔧), crop/AutoZoom works (⚠️), defog is still refused (❌), scene/colour effects do not exist in the vendor T41 library (—). Corrections the other way: module size (#35, T40 3015 KB and T41 1004 KB against 980/779 KB vendor), module reload (#2 T41, heap bug), day/night (#10 T41, night bank not swapped), ROI under FixQP (#45 T41), stability (#41). The table-versus-detail inconsistencies (rows 10, 12, 13, 19, 20, 41, 44) are resolved; the generator reports none. - Update 2026-10-15 (agg-39 candidates, device-tested on their branches, aggregate
claude/agg39built and host-tested, no soak yet): T41ISP_Tuning_WaitFrameDonereturns -1/ETIMEDOUTwhen no frame arrives (deviation from the vendor, which returns 0), runs outside the library lock (a parallelGetBrightnesstook up to 1780 ms before, now < 0.1 ms) and logs no syslog line for timeouts; frames are counted while frame source channel 0 runs, so timps without a client makes every wait time out (cam-F, 2026-10-14) [claude/t41-wfd-timeout]. T40PollingStreamreturns within its deadline without frames (Eufy T40, 35 results as before) [claude/t40-poll-timeout]. T21: sensor exposure/gain written only on change in open-tx-isp, i2c IRQs 50–51/s → 0–2/s, picture unchanged (cam-D, 2026-10-14) [open-tx-isp claude/t21-i2c-cache]; libimp Helix per-frame path back to-Os, no CPU difference (cam-D, 2026-10-14) [claude/t21-os-revert];OPENIMP_EPRC_MBRC=1device-tested on cam-D (2026-10-15): macroblock QP spread like the vendor, P-frames within scene drift, default still off innext[claude/t21-mbrc-default, not in agg39]. The T21 "CBR substream overshoot" was a measurement artefact (whole pull incl. audio; video track 528 kbit/s at 512). - Update 2026-10-12 (agg-38, build and host tests, no soak): OpenIMP
claude/agg-38= agg-37 +claude/awbstats/awbzone,claude/t31-rc-collapse,claude/oimp-thread-names,claude/t21-cpu-fix,claude/t40-night,claude/t41-isp-handlers,claude/funcsearch-run4; T40ISP_StartNightModeandISP_Bypass_Binddev from the Eufy T40 run ofclaude/funcsearch-run5(same requests as the merged code). The cells of the branch updates below are merged; progress table recounted. - Update 2026-10-12 (
claude/awbstats, device-tested on the Eufy T40 and the T41, not in an aggregate):ISP_Tuning_GetAwbStatisticsis dev on T40 and T41: vendor ABI and semantics verified (2700-byte block of three 15x15 u32 planes, zone means of the raw pre-WB R, G, B statistics), 0 only with a block that holds statistics (T41 open driver-EAGAINunless fresh; all-zero block -1), new symbolOpenIMP_Cap_AwbStatistics; T40 gives the same numbers as the vendor libimp on the same scene. Needs the open-tx-ispclaude/awbstatsdriver on T41. Used by timps 1.10.2 (night colour trigger). - Update 2026-10-12 (
claude/awbzone, device-tested on T31 and T23, not in an aggregate):ISP_Tuning_GetAwbZoneis dev on T23 and T31 with the vendor block and scaling (truncated zone means of the AWB statistics, stockTiziano_awb_fpga), returns 0 only with fresh statistics (open driver-EAGAINotherwise) and exportsOpenIMP_Cap_AwbZone; T40/T41 stay n.a. (no vendorGetAwbZone, per-zone AWB statistics areGetAwbStatistics). Needs the open-tx-ispclaude/awbzonedriver. Used by timps 1.10.2 (night colour trigger). - Update 2026-10-12 (T40 night,
claude/t40-night, host only, no camera): fixes of the Eufy T40XP FAILs of 2026-10-11 from the vendor 1.3.1 disassembly:GetHVFlipandGetBcshHueanswer the vendor cache,GetISPRunningModereads the payload word,Encoder_Queryvendor fields; the HVFLIP/hue/running-mode picture checks of 2026-10-11 measured stale frames (devtest fixed). New on T40 (host):Encoder_Get/SetChnSeiAttr(SEI in front of the slice),ISP_Get/SetDrawAttr,ISP_StartNightMode,OSD_SetGroupCallback,OSD_Get/SetRgnAttr_ISP,AI/AO_Get/SetDigitalGain;Encoder_SetFrameReleasestores the ratio (no-op as on T31). AlsoISP_WDR_OPEN,ISP_Bypass_Bind,ISP_GetRaw(host). Device test script for the next run:tests/t40/devtestphases 4, 0x100, 0x200, 0x400, 0x800, 0x1000, 0x2000. T40 gaps 72 -> 56. - Update 2026-10-11 (T41 ISP handlers, branch
claude/t41-isp-handlersin OpenIMP and open-tx-isp, host tests and module build only, not in an aggregate): T41ISP_Tuning_Get/SetAwbConvergeStep,Get/SetAwbCtTrendOffset,GetAeEvList/GetAEEvList,GetAeAtList,Get/SetTmoCurve,Get/SetStatisConfig,WaitFrameDoneandGetHVFlip(the 1.0.1 name ofGetHVFLIP) are host (exported with the vendor 1.2.6 control numbers, routed in the open driver).Get/SetAeConvergeStepis cache: stored in the AE parameters like the vendor, but only the recovered vendor AE reads it; the default open AE keeps its own step. Still miss:GetAeBvandGetAEFlickerFlag(vendor-AE internal state the open AE does not keep).StatisConfigstores the AE histogram thresholds and the AF part only (no AF on the test board), the AWB part moves the AWB zone grid. T41 gaps 147 (was 160). Device run 2026-10-12 (cam-F, T41/gc5603, vendor-free open stack with the branch module and libimp, streamer running; the gaps number is unchanged): dev forGet/SetAwbConvergeStep,Get/SetAwbCtTrendOffset,GetAeEvList/GetAEEvList,GetAeAtList,Get/SetStatisConfig(a geometry change of the AWB grid while streaming gives -EBUSY, an unchanged geometry 0, the stored record stays unchanged after a refused set) andGetHVFlip: libimp calls (imptest) and raw/dev/isp-m0requests (isptest/t41c) read back what was set, bad arguments give -EINVAL/-EFAULT, 0 kernel errors.Get/SetAeConvergeStepstays cache (set value read back; only the recovered vendor AE uses it). Still host, NOT proven:Get/SetTmoCurveget/set/bad-argument paths pass, but the mean luma did not change with a curve scaled to 60 % (the TMO map is not running in this configuration,t41_tmo_frames=0), so no visible effect;WaitFrameDonereturns 0 but its frame counter does not advance while streaming (it moves only for the first frames after a stream start), so every wait runs into its timeout; to be fixed in the driver.Set AwbCtTrendOffsetchanged the mean U by less than 1 level in a dim scene (inconclusive for the colour effect, to be repeated in daylight). - Update 2026-10-11 (agg-37, build and host tests, no soak): OpenIMP
claude/agg-37= agg-36 + size work, T10/T20SetAntiFogAttr/SetMeshShadingScale, T40 HEVC FixQP and 4K drain, the function-finder branches (T40 ISP controls, T40Fisheye, T40 ROI andMapRoiopt-in, T41ISPBypass,make export-check/release-check). Corrections: T41Encoder_Get/SetChnRoiAttrandSetChnMapRoiare cache, not host (the table is written behindOPENIMP_T41_ROI=1, but the T41 AVPU ignores it); T23Decoder_*is err (the decoder ran in the OEM Helix worker, which is off by default since agg-37). Also in agg-37: T10/T20SetChnRcTrigLeveland the T41 run-time bit-rate retarget (claude/agg37-rc-live),SU_Base_Shutdownexported by OpenIMP on every SoC (reboot by default, host). Gap counts (progress table): T10 33 (was 34), T20 31 (was 32), T21 15 (was 16), T23 21 (was 14), T31 7 (was 8), T41 160 (was 158). - Update 2026-10-11 (function finder,
make export-check): the T41 cells ofFrameSource_Get/SetDelay,Get/SetMaxDelay,Get/SetI2dAttr,GetTimedFrame,Get/SetChnFifoAttrand ofISP_Tuning_Get/SetModuleControl,Get/SetAutoZoom,Get/SetMaskBlock,SetScalerLvwere stale (error/cache): the T41 build exports real code (vendor 1.2.6 semantics; the kernel side of AutoZoom/MaskBlock/ScalerLv needs the open driver handlers). Corrected to host (implemented, not run on a camera).Encoder_Get/SetChnCropis exported by the vendor libimp of T10/T20/T21 but not by OpenIMP: cells corrected from n.a. to missing (T10/T20/T21 function count +2). T40: 11 OSD rows (OSD_AttachToGroup,RgnCreate_Query,RgnRegister_Query,SetMosaic, and the*_ISPcalls behind the device-tested ISP-OSD) were missing in the cell but are exported by the T40 build: corrected to host (T40 progress-table gaps 85 -> 74). New check:make export-checkcompares the exports of each builtlibimp.sowith the vendor export lists (tools/export-check/) and with theIMP_names used by streamer sources. - Update 2026-10-11 (agg-36, after RC1; build and host tests of the aggregate, no soak): T40 rate control, AVPU command lists and H.265 (device-tested on their branch), T40 ISP-drawn OSD,
Get/SetMaskandSwitchBin(device-tested), T40 BCSH getters from the vendor cache (host), T41SwitchBin,AutoZoom,SetMaskBlock,SetScalerLv(host and module build),SetbufshareChnas the vendor (T31/T40/T41), log levelOPENIMP_LOG_LEVEL, IVS post order, T30 gap work (317 of 334 exports), T10/T20/T21 and T23 vendor return codes. The T23 driver rows of the second T23/T31 gap pass stay as before (that driver branch is held back). The T40 open items below about CBR, H.265,GetBrightness, the pixel format andP1_INNERare fixed in agg-36. Gap counts after this update (progress table): T23 14 (was 15), T30 19 (was 54), T40 109 (was 120), T41 177 (was 179); T10 32, T20 30, T21 14, T31 8 unchanged. - Update 2026-10-10 evening (agg-35: OpenIMP 687a68e4, open-tx-isp 6e464ac7, built 2026-10-10; soaked 2026-10-10 18:04 to 2026-10-11 08:00 on 10 cameras: clean (0 oopses, 0 unexplained reboots, 0 streamer restarts, VA-API 54/54). RC1 = this code plus docs; features that exist only in later branches (agg-36) are not in this matrix.
- T40, first OpenIMP device run (cam-K, T40XP, vendor kernel driver
tx_isp_t40, vendor libimp 1.3.0, OpenIMP viaLD_LIBRARY_PATH, 2026-10-10; every result is OpenIMP vs vendor): PASS/dev:AddSensor/EnableSensor; FrameSource ch0 3840x2160 and ch1 640x360 withGetFrame(timestamps monotonic, non-zero); H.264 on ch0 and ch1 (10 s, clean strict decode); OSD PIC and COVER (OpenIMP draws COVER on NV12, the vendor library fails with "COVER cannot support this format"); IVS move (20 s);FrameSource_SnapFrame; JPEG on ch1 (software JPEG since 257ba9d); ISPGetSensorAttr, Gamma get, CCM get, ModuleControl get,AeScenceAttrget/set;GetCameraInputMode. Fixed during the run: the stream timestamp was 0 (a5d9b03); JPEG was a grey placeholder (257ba9d). - T40 open (re-checked on the open stack 2026-10-19, Eufy .184): the CBR deficit is gone (see row 26: mean within 2 % of the target with real content);
GetBrightnessworks (128 default, 100 afterSetBrightness(100)); the pixel-format word is 0 as in the vendor library;P1_INNERwrites nothing to stderr; still open: the frame size is 16-line aligned (353280 B for 640x360, vendor 345600 B). H.265: see its row. JPEG at 4K not tested (out of memory in the test process, 60 MB RAM). Vendor note:GetAeExpListhung the vendor kernel driver; the magenta cast seen with timps stopped was the IR cut left open, not the library. Only the functions above are dev; the rest of T40 stays host or?. The combined Get/Set rows of Gamma, CCM and ModuleControl are host (Get dev, Set host), since only the Get is device-tested. - T41 audio and driver controls:
AI_SetVolMute,AO_SetVolMute,AO_Soft_Mute/AO_Soft_UNMuteare a software mute as in the vendor library (the vendor uses no ioctl); API-level test only (rc 0, invalid argument -1), host in the tables, because the T41 test board has no audio hardware (no microphone, no speaker). The driver controlsFrameDrop,SensorRegister,ISP_WDR_ENABLE/_GETandAfWeightare device-tested (claude/t41-driver-gaps, in agg-35).Get/SetWdrOutputModehas no stock handler in the driver (explained, counted as vendor no-op).AutoZoom,SetMaskBlockandSetScalerLvstay deferred: live MSCA reprogramming carries a hang risk. - Audio on T10, T20, T21, T23, T31 (AEC device test 2026-10-10): audio output (
IMP_AOenable/SendFrame, playback of a known signal at several volumes,SetVol) played a signal that was recorded back; audio input (IMP_AIenable/GetFrame,SetVol/SetGain, mono 16 kHz) recorded it;EnableAecreturns 0. The AO/AI rows and the single-call cells are dev for these five SoCs; the combined Get/Set volume and gain rows stay as they were (host where they were aud). T21: a microphone gain above 0 drives the noise floor up (hardware, open and vendor stack alike). T41: no audio hardware on the test board, the T41 AI, AO and AEC rows are—(the earlier T41 microphone figures were the noise floor of an unconnected input). - Gap counts after this update (progress table): T40 120 gaps (was 171; 74 by row), T41 179 gaps (was 187; 123 by row).
T30 and T40 columns (added 2026-10-10) were added from host/build evidence only (no T30 camera; the T40 cells were host evidence until the cam-K run of 2026-10-10). T40: first OpenIMP device run done on cam-K (2026-10-10, T40XP, vendor kernel driver, vendor libimp 1.3.0 side by side; headers are 1.3.1). In the function tables T30 has 347 vendor functions with 19 gaps (after the gap work of 2026-10-10: 11 missing exports, 8 stored only; before: 54, all missing exports) and T40 has 398 with 120 gaps after the cam-K run (92 missing, 28 error: DMIC, ISP-OSD, mask and the open items below; OSD, IVS, CCM, gamma, sensor attr and SnapFrame are implemented since agg-35); the other T30/T40 cells are ? (exported, not audited, not run), host or (T30) aud.
Release candidate agg-34 (2026-10-09 evening, device results of the night 2026-10-09/10 added)
- Final agg-34 after the review fixes (S1 T31 front crop survives the ISP session, S2 T31 zoom only with a scaled main stream, S3 Helix absolute ROI no longer worse than the slice QP): OpenIMP 2a1b1cd, open-tx-isp b15ef235 (test images with these on all 10 test cameras since 2026-10-09 night). The first state of the candidate was:
- State: OpenIMP
agg-34(838f8147) = agg-32 (8980cae) + the encoder ROI clamp (fec3e69, 8545fb9) + the reviewed DeepSeek patches (11abe42 and 17 patches); open-tx-ispagg-34(da9baf1e) = agg-32 (3cf9bdac) + front-crop fixes for T31, T23, T20 and T10 (d940ba20 to 10bac52f, 164225e5) + T20isp-m0reports the reachable analog gain cap (da9baf1e). The first release still covers T10, T20, T21, T23 and T31; T41 is experimental and not part of it. - Soak of agg-32 (2026-10-07 16:07 to 2026-10-09 11:31, 43.4 h, stopped early by the user): 0 unplanned reboots, 0 oopses, 0 guard trips, 0 snapshot failures and no memory trend on the cameras without user interaction. The only reboots were a planned OTA and two crashes from enabling a front crop on T31 (fixed in agg-34, see below). The numeric picture check found the T20 day/night regression, the T10 black frame in the dark and the T41 channel-1 colour/exposure problem (known issues below).
- Encoder ROI (region QP): T31 has an ROI that the vendor library does not have (
IMP_Encoder_SetChnRoiAttrthrough the AVPU QP table, beyond vendor): device-tested, delta -10 gives 2.7x the bit rate, a relative -20 becomes -19 (clamped), 0 decoder errors in 20 VA-API checks; the night run of 2026-10-10 went through 20 phases (deltas, absolute QPs, clamp, off/on) with the stream valid in VA-API and in strict ffmpeg (-err_detect). Known deviation: under FixQP 42 a window of absolute 5 or relative -25 drives the P-frames to QP about 14 almost frame-wide (bit rate about x4, stream stays valid). T10/T20/T21 applySetChnROIon the Helix/NVPU: device-tested (T21 by default, beyond vendor); T20/T10 absolute ROI re-tested on 2026-10-10: valid H.264, no inversion (fix S3). All ROI paths now keep the stream valid H.264: everymb_qp_deltalies in -25..+25 (a relative -26 or an absolute QP far from the picture QP produced broken pictures in hardware decoders such as VA-API, VLC and browsers), picture QP plus delta stays inside the rate control's min/max QP. T23: regions on the native Helix encoder, device-tested on 2026-10-10 (QP map shows the window, streams valid in VA-API and strict ffmpeg). T40/T41: on by default since 2026-10-18 (T40 FixQP and CBR, T41 CBR/VBR only; no effect under FixQP on T41). Rules and numbers:docs/ROI.md,docs/OPENIMP_BEYOND_VENDOR.md. - Front crop: T10/T20/T21/T23 device-tested on 2026-10-09 after the fixes (T23: crop off unlocks the window, a window that does not fit is dropped instead of hanging the MSCA, the lock is released with the ISP session, module parameter
fcrop_upscale_pct; T20/T10: a window set before stream-on is kept while no downscaled channel is open, is applied at stream on and survives substream restarts (device-tested 2026-10-10); the release of the window at tuning-session close is not verified). T31: the crash is fixed (the kernel refuses a window the MSCA would have to upscale with -EINVAL; scaler steps and latch are written; module parameterfcrop_upscale_pct); device-tested on 2026-10-10: a valid window zooms both streams (proven), too-small windows are rejected without a hang, and the window survives a restart and a flip. - DeepSeek patches (17, reviewed, plus one corrected): struct sizes and layouts of the vendor ABI (T40/T41 encoder stream, channel attributes, frame info, sensor info, OSD attributes), encoder group bounds (6 like the vendor on T20/T21/T30/T31/T41, 8 kept on T23/T40), T31 IVS channel 64,
OSD_SetPoolSize(0),GetDefaultBinPath, idempotent IVS group create/destroy, polling-stream guards. Host tests andmake checkare green on all SoCs and the cross-builds pass; the combined agg-34 ran on the test cameras in the night 2026-10-09/10 (mandatory tests passed, streamer smoke on 9 cameras 50 of 50 without aPollingStreamspin); not yet checked separately on cameras: OSD groups, IVS, T31SnapFrameoffsets and the T41 OSD size. - T20 day/night: the driver reported an analog gain cap of 158 in
isp-m0while the AE stops at 128, so a streamer waiting for the cap never saw it reached and stayed in Day mode in the dark.isp-m0now reports the smaller of the two: device-tested on T20 on 2026-10-10 (maximum analog gain 128). The streamer needs its matching change (timps 5bc4eff) for the switch to work; day/night with both is not yet confirmed. On T10 (jxh42)isp-m0still reports 144 at boot (128 once it is set explicitly): open finding. - Streamer smoke test on 9 cameras (night 2026-10-09/10): 50 of 50 checks passed, no
PollingStreamspin (the streamer CPU stayed normal at stream restarts).
Known issues (agg-34)
- T41 sub-channel (ch1): green or flat frames at each day/night switch and the exposure of channel 1 does not follow channel 0 (channel 0 is fine). T41 is experimental and not part of the first release.
- T20 day/night needs the open-tx-isp fix (da9baf1e) and the streamer change (timps 5bc4eff); with agg-32 alone both T20 cameras stayed in Day mode in the dark. Not yet confirmed on a camera with both.
- T10 analog gain cap:
isp-m0of the jxh42 camera reports a maximum analog gain of 144 at boot (128 once set explicitly); T20 reports 128 (fixed). Open. - ROI under FixQP: with FixQP 42 an absolute 5 or relative -25 window lowers the P-frames to QP about 14 almost frame-wide (bit rate about x4); the stream is valid, but a streamer should not offer the extremes on a fixed-QP stream.
- T20/T10 front crop: the release of the window at tuning-session close is not verified.
- T10: the soak saw a few rounds where the camera switched to Day in the dark and delivered a black frame (3 events in 44 h).
- 720p main stream shows only the top-left corner when the streamer reads
/proc/jz/sensor/sensor0/*before the sensor is started (streamer side; seen on T21 and T20). - Streamer ROI limit: the library keeps ROI streams valid H.264 from agg-34 on (a relative QP of -26 used to break Intel VA-API, VLC, Firefox and Edge from the ROI row on); a streamer that offers -26 should offer -25 as its lowest value.
Release candidate agg-27/agg-28 (2026-10-06 evening; the apitest figures below are from that day)
- State: OpenIMP
agg-27(affb8ff) and open-tx-ispagg-28(79b754b4). Release plan:nextgoes toaperto(fast-forward) after the long soak, taggedvYYYY.MM.DD. The first release covers T20, T21, T23 and T31; T10 is part of it but was not re-tested on the open stack today (its cells mirror T20 and were not re-measured); T41 is not part of the first release (experimental, see below). - Device results of the day (apitest, one call per vendor function; the camera streamer was stopped, the release libimp and the release-candidate modules were loaded from RAM): T20 on two cameras 212 PASS / 0 FAIL / 17 N/A / 30 SKIP, T21 on two cameras 228 PASS / 0 FAIL, T23 304 PASS / 4 FAIL (the four AF getters, off by default in that run; with the new default
source_af=1they pass on a second T23 camera), T31 274 PASS / 1 FAIL (see known issues). N/A means the node or API does not exist on the board or in the vendor library (no RTC/ADC node, SU battery functions not exported, T20GetAeZone, T23GetBlcAttr), SKIP means the call is deliberately not exercised (writes hardware registers, reboot, cipher). 0 kernel oopses on every camera. - What the code level "dev" means in the function tables below: the call passed apitest or imgfx on a camera of that SoC on 2026-10-06 (or an earlier documented device test). Cells of T10 were not touched by this run. The imgfx colour run of the release candidate was made in the dark (night mode), so its colour verdicts are not used; the colour image functions have to be repeated in daylight.
- New since the last matrix:
GetFrame/SnapFramewait up to 2 s like the vendor library on T20/T21/T23/T31 and the T20 capture no longer stalls (apps that callSetFrameDepthget frames);Encoder_GetFd(pipe plus pump thread); a JPEG channel feeds itself from the frame source when its video channel is not polled; two IVS groups;InsertUserDataSEI;PollingModuleStreamhonours the channel bitmap; T20 encoder ROI and chroma QP offset; T21SetBrightnessacts and SEPIA works (both beyond vendor); T31SetFrameDropwith the stock semantics; T23 release defaults (stock-like start/stop set, STREAMOFF drain wait), VBM pool parking and MSCA scratch buffer, AF statistics on by default, 19 ISP getters. - Vendor no-ops that are matched, not "fixed": T21
SetAntiFogAttrandSetSceneMode(the OEM kernel accepts and ignores them), T20/T10GetAeZone(the stock module does not serve the control), T23GetBlcAttr/SetScalerLv(no handler in the stock module). T23 H.265 stays refused: there is no HEVC hardware (n.a.).
Known issues of the agg-27 candidate (older; superseded where agg-34 says so)
- T23 crop hang: the pipeline stops after a FrameSource crop change (hard hang, found with the crop test); under investigation. It is a release blocker. Fixed in agg-34 (open-tx-isp 25b1d8c7, 164225e5; device-tested on T23, retest on the release image pending).
- T31 H.264 stalled after the JPEG channel was torn down: fixed: two threads polled the same encoder channel at once (
AL_Codec_Encode_Processconcurrently);IMP_Encoder_PollingStreamnow serialises per channel (openimpclaude/release-fix275c2ccef), apitest on T31 FAIL 0 with the fix; goes into the next candidate (agg-29). - T41 is not part of the first release: MSCA channel 1 scaling registers are staged only (a downscale above 4:1 gives garbage, buffers with index 1 and above show a band), a restart of the output hangs the SoC (watchdog reboot at 1280x720 / 1440x810 on channel 1), 38 tuning IDs are still missing (gamma, CCM, CSC, module control, auto zoom, manual exposure, DRC, DPC, defog ratio, mask, scaler level), flip is not reset on restore, the FIFO delay of the frame source is missing. The T41 branches
claude/release-t41(OpenIMP) andclaude/t41-ch1-fix(driver) are not merged. T41 apitest on that branch: 255 PASS / 12 FAIL. - T21: the IPU needs about 2 s after a wake before the OSD blend takes effect; the first snapshot is withheld until the overlay is confirmed (beyond vendor), the cause is not found. The OSD in the live stream after a wake is checked after the candidate tests.
- T23: the sporadic Helix encode error (errno 5): 0 errors in 6 days on cam-B since the 0102 fix (syslog: 342, 32, 37 and 419 errors on 10-01..10-04, then 0 from 10-05 to 10-10); provisionally closed, still observed; no real WDR, as before.
What is complete
- All five original test cameras (cam-A T31, cam-B T23, cam-C T20, cam-D T21, cam-E T10) run fully on the open kernel driver, OpenIMP and timps from flashed images; cam-F (T41) runs the same stack from the
apertofull OTA image; no Ingenic/neo helper libraries any more, and on T23 no helixd and no vendor libimp either. - Core functions are backed by evidence: H.264 on all six SoCs (soaks up to 2 h 53 without errors), HEVC on T31, hardware JPEG/MJPEG, second stream, OSD (text, bitmap, rectangle, line), real motion detection, day/night, flip.
- Beyond the vendor: reload/stop robustness (0 oops in 10 cycles each), smaller libimp (~0.5–0.6 MB instead of 1.0–1.3 MB), more free video memory on T21 (2.76 MB instead of ~1.2 MB), T31 module smaller than vendor, T21 controls and noise reduction take effect (the vendor ignores them), T31 AEC with −18 dB echo, reference-frame sharing on T21/T23 (~1.5 MB less video memory, on by default).
Open items from 2026-10-04 (still valid unless the release-candidate section above says otherwise)
- T23: the frequent Helix frame drops had a fixed cause (a residual interrupt treated as an error by the bounded-wait kernel patch; 60 min with 0 errors after the fix); the sporadic single encode error (errno 5): 0 errors in 6 days on cam-B since the 0102 fix (syslog: 342, 32, 37 and 419 errors on 10-01..10-04, then 0 from 10-05 to 10-10); provisionally closed, still observed. The root cause of the cold-start snapshot 503 on a second channel (stale MSCA FIFOs) is fixed in the driver (
msca_fifo_rearm, 260 cold-start cycles without a failure) and awaits its soak before it entersnext. Real WDR is missing (dynamic ADR is lifted, no WDR sensor mode). - T41 (cam-F): runs the fully open stack with H.264 (main stream High 1080p ok) and H.265; AE compensation, gain/exposure caps and 2D noise reduction work through OpenIMP; DRC, DPC, defog, WDR, CCM, gamma, HLC and BLC are not supported on T41 (the driver says so). Open: crop, temper effect, ioctl hardening awaits its device test, live flip (timps does not call
SetHVFLIPlive), night column noise of the gc5603 (ISP), short IVS gaps (~1.2 s), OOM with three parallel streams and 30 MB rmem (26 MB works in the current image; the kernel command line needs an environment-partition image),AddSensorEBUSY after an OOM kill; day/night, AE/AWB quality, audio untested. - T10 (cam-E): AE/AWB quality and image controls only partly documented.
- T21: a 4th module reload in one boot crashed once (under investigation);
ae_it_max_usacts, which is beyond the vendor and kept by decision. - Rate control: T10/T20 run the OEM-style controller for CBR/VBR (SMART is mapped to VBR); T10/T20/T21 accept QP steps, staticTime/changePos/qualityLvl without all of them acting on every path; T31 CBR writes no filler NAL.
- AEC: only T31 is device-tested (T23 implemented, device test open; no speaker tests on the shared test cameras). Audio output only on T31.
- Not yet exposed by timps (static caps; on T41 AE compensation and sinter are wired, the gain/exposure caps follow): DPC strength, defog/Iridix floor, DRC strength and the scene/colour effects; the timps side is decided by the timps maintainers.
- T30 has no device in the test campaign (it builds against a real kernel; not device-verified here); T40 has one camera (cam-K) since 2026-10-10.
- Opt-in and not device-tested:
OPENIMP_EPRC_QP_DOWN1,OPENIMP_T23_HELIX_BSF.OPENIMP_EPRC_MBRC(ported, 0 oracle deviations): T21 device-tested 2026-10-15 on cam-D (macroblock QP spread like the vendor), T23 device test (docs/T23_EPRC.md) not finished; opt-in.
Defaults in next that older cells may still call opt-in or pending: T20/T10 OEM rate controller on, T10 super-frame fix on, T20 I-aware P budget on for CBR, T21 vendor-identical eprc on, T31 Allegro RC core on, reference sharing on T21/T23 on, motion detection v2 on (OPENIMP_MOTION_V2=0 = vendor algorithm), T23 vendor AE as default (source_ae_oem=1), isp_mmap_pool_kb=0 on T10/T20 (+8 MB free RAM), rmem peak logging and shortfall hints.
State on 2026-10-04: all test cameras run full OTA images built from thingino aperto (Lu-Fi forks pinned to open-tx-isp next 40cc77ec and OpenIMP next db760431) since 2026-10-04 17:39-17:47, with timps v1.9.31 and the kernel VPU/rmem patches as merged upstream; cam-F (T41) rootfs rev7 with rmem 26M. A 24 h soak has run since 17:50 (5 h so far: 0 streamer restarts, 0 encoder/VPU errors, 0 oops); the first release tag follows after it.
Not adopted: OSD edge flush, reference sharing on T10/T20/T31 (not in that SoC's encoder; the vendor has none either).
Legend
nextT30/T40 columns added 2026-10-10. Evidence basis: host and build evidence only. There is no T30 camera in the lab, so no T30 cell is better than 🔧 (code present, or a live result documented by the T30 contributor in docs/T30_STATUS.md, not repeated by us) and nothing is ✅. T40 cells rest on the branch claude/t40-t41-api (merged into agg-35, not yet in next) and, since 2026-10-10, on the cam-K device run: host tests, the cross-build and the exported symbols of its libimp.so, plus the T40 contributor's live gate in docs/T40_STATUS.md (2026-07-30, stock tx_isp_t40 driver). T40: first OpenIMP device run on cam-K (2026-10-10): T40XP board, vendor kernel driver tx_isp_t40, vendor libimp 1.3.0, OpenIMP loaded via LD_LIBRARY_PATH; every T40 result is OpenIMP versus the vendor library; the cells that run as dev are exactly the functions listed in the update paragraph at the top. The rest stays host or ?. ? = nothing documented or only an exported symbol without a test; — on T40 = the call does not exist in the T40 1.3.1 vendor headers. Camera letters: none for T30 (no camera); cam-K = T40 (T40XP). The function tables below hold the per-call detail.
Generated from docs/status/ and docs/api_evidence.json by tools/gen_feature_matrix_html.py; do not edit by hand.