hi_video_frame
Description
Defines a source video frame.
Prototype
typedef struct {
hi_u32 width;
hi_u32 height;
hi_video_field field;
hi_pixel_format pixel_format;
hi_video_format video_format;
hi_compress_mode compress_mode;
hi_dynamic_range dynamic_range;
hi_color_gamut color_gamut;
hi_u32 header_stride[HI_MAX_COLOR_COMPONENT];
hi_u32 width_stride[HI_MAX_COLOR_COMPONENT];
hi_u32 height_stride[HI_MAX_COLOR_COMPONENT];
hi_u64 header_phys_addr[HI_MAX_COLOR_COMPONENT];
hi_u64 phys_addr[HI_MAX_COLOR_COMPONENT];
hi_void* ATTRIBUTE header_virt_addr[HI_MAX_COLOR_COMPONENT];
hi_void* ATTRIBUTE virt_addr[HI_MAX_COLOR_COMPONENT];
hi_u32 time_ref;
hi_u64 pts;
hi_u64 user_data[HI_MAX_USER_DATA_NUM];
hi_u32 frame_flag;
hi_video_supplement supplement;
} hi_video_frame;
Members
Member |
Description |
|---|---|
width |
Image width. |
height |
Image height. |
field |
Field mode. Reserved. |
pixel_format |
Pixel format. |
video_format |
Video format. |
compress_mode |
Video compression mode. |
dynamic_range |
Dynamic range. Reserved. |
color_gamut |
Color gamut. Reserved. |
header_stride |
Compression header stride. Reserved. |
width_stride |
Width stride of an output image component. For a YUV image, this member indicates the stride of the Y, U, and V components. For an RGB image, this member indicates the stride of the R, G, and B components. |
height_stride |
Height stride of an output image component. For a YUV image, this member indicates the stride of the Y, U, and V components. For an RGB image, this member indicates the stride of the R, G, and B components. This parameter is reserved for VI video capture, ISP system control, VPSS video processing, VENC video encoding, and JPEGE image encoding. |
header_phys_addr |
Physical address of the compression header. Reserved. |
phys_addr |
Physical address. Reserved. |
header_virt_addr |
Virtual address of the compression header. Reserved. |
virt_addr |
Start virtual address of an image in the device buffer. For an input YUV image, virt_addr[0] is the start address of the image or Y component, virt_addr[1] is the start address of the U component, and virt_addr[2] is the start address of the V component. For an output YUV or RGB image, virt_addr[0] is the start address of the image on the device, and virt_addr[1] and virt_addr[2] are reserved. |
time_ref |
Sequence number of an image frame. This parameter is reserved in the decoding scenario. This parameter is reserved in the JPEGE scenario. In the VENC scenario, set this parameter to an even number in ascending order based on the frame sequence. For example, set this parameter to 2 for the first frame, 4 for the second frame, and so on. |
pts |
Image presentation timestamp (PTS). |
user_data |
Private data. Reserved. |
frame_flag |
|
supplement |
Supplementary information about an image. |
Considerations
In general, 10-bit data is compactly stored in the memory in non-compression mode.
For 10-bit YUV data, the first 8 bits and last 2 bits are stored separately in segment-based compressed mode.
For 10-bit tile 64 x 16 data, which is video decoder hardware (VDH) output, the first 8 bits and last 2 bits are stored separately in the memory, regardless of whether the data is compressed or not.