* Revert "NV12 buffer shape helpers (#36683)"
This reverts commit 13efc421c4.
* camerad: calculate buffer sizes with VENUS helpers
* copy header:
* assert aligned
* python nv12 info
* debug
* handle padding
* use the helper
22 lines
829 B
Python
22 lines
829 B
Python
# Python version of system/camerad/cameras/nv12_info.h
|
|
# Calculations from third_party/linux/include/msm_media_info.h (VENUS_BUFFER_SIZE)
|
|
|
|
def align(val: int, alignment: int) -> int:
|
|
return ((val + alignment - 1) // alignment) * alignment
|
|
|
|
def get_nv12_info(width: int, height: int) -> tuple[int, int, int, int]:
|
|
"""Returns (stride, y_height, uv_height, buffer_size) for NV12 frame dimensions."""
|
|
stride = align(width, 128)
|
|
y_height = align(height, 32)
|
|
uv_height = align(height // 2, 16)
|
|
|
|
# VENUS_BUFFER_SIZE for NV12
|
|
y_plane = stride * y_height
|
|
uv_plane = stride * uv_height + 4096
|
|
size = y_plane + uv_plane + max(16 * 1024, 8 * stride)
|
|
size = align(size, 4096)
|
|
size += align(width, 512) * 512 # kernel padding for non-aligned frames
|
|
size = align(size, 4096)
|
|
|
|
return stride, y_height, uv_height, size
|