Metadata文件config_static_metadata_project.h中size的配置影响着很多CTS测试项的结果,这里解读一下关于size的配置。
Example:
68 CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_RAW16, MINT64)
69 CONFIG_ENTRY_VALUE(4160, MINT64) // width
70 CONFIG_ENTRY_VALUE(3120, MINT64) // height
71 CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64) // output
72 CONFIG_ENTRY_VALUE(33333333, MINT64) // frame duration
73 CONFIG_ENTRY_VALUE(33333333, MINT64) // stall duration
74 CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_YCbCr_420_888, MINT64)
75 CONFIG_ENTRY_VALUE(4160, MINT64) // width
76 CONFIG_ENTRY_VALUE(3120, MINT64) // height
77 CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64) // output
78 CONFIG_ENTRY_VALUE(33333333, MINT64) // frame duration
79 CONFIG_ENTRY_VALUE(0, MINT64) // stall duration
80 CONFIG_ENTRY_VALUE(HAL_PIXEL_FORMAT_BLOB, MINT64)
81 CONFIG_ENTRY_VALUE(4160, MINT64) // width
82 CONFIG_ENTRY_VALUE(3120, MINT64) // height
83 CONFIG_ENTRY_VALUE(MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_OUTPUT, MINT64) // output
84 CONFIG_ENTRY_VALUE(33333333, MINT64) // frame duration
85 CONFIG_ENTRY_VALUE(0, MINT64)
- Format size: HAL_PIXEL_FORMAT_RAW16:看Camera APP是否需要raw16 数据,如果不需要就可以不配。如果需要,就要配置raw16 size, 这里面的raw16的含义是所有raw的能力,只要想有raw数据的输出,就要配置raw16,只能填一个size,该size要等于或者接近于active array size。
HAL_PIXEL_FORMAT_BLOB:该format用于capture的size
HAL_PIXEL_FORMAT_YCbCr_420_888:该format用于preview/video的size
只要配置了YCbCr_420_888 size,就要配置相同的BLOB size,不然CTS会有fai,且size要16对齐。
- MTK_SCALER_AVAILABLE_STREAM_CONFIGURATIONS_xxx:OUTPUT表示HAL层回给APP的数据,INPUT是APP回灌给HAL层的数据(APP raw reprocess),这个要根据实际需求配置
- frame duration:单位ns,与size大小无关,和fps有关,如果fps为30的话,那frame duration就得为 33333333, 若fps为24,则frame duration为41666667,计算方法就是用1S除以帧率再换算成ns,此值需要和驱动中对应size的帧率相匹配。
- stall duration:单位ns,HAL_PIXEL_FORMAT_YCbCr_420_888的stall duration需要配置成0,不然会有CTS fail,BOLB 的stall duration配置成和frame duration相同。