Further to my question, I investigated the codecs exposed as part of AOSP
distribution and have found that the top-3 vendors viz., Qualcomm, Samsung and TI have adopted an internal color conversion to handle the Surface
recording scenario. Some useful links are as below:
Qualcomm's V4L2
based codec implementation:
In Qualcomm video ecnoders, for Surface
recording there is a color conversion and hence, the actual YUV
data is present in the buffer pointers. There is a differentiation in handling between this scenario i.e. Surface
recording and Camera
scenario with a Gralloc
source as can be observed from this note.
TI's Video Encoders:
H.264
Encoder opening a color conversion module forOMX_COLOR_FormatAndroidOpaque
.H.264
Encoder: Conversion from Platform Opaque toNV12
format.MPEG-4
Video Encoder: Opening of color conversion module for Opaque color format.
Samsung Video Encoders:
In Samsung's case, there is no differentiation between gralloc
source scenarios as can be observed from Exynos_OSAL_GetInfoFromMetaData
.