数据定义
视频输出模块输出数据结构由数据包额外信息extData、数据包大小和实际数据三部分组成。该数据通过回调函数提供给开发者,并通过VmiCmd枚举中的VIDEO_RETURN_VIDEO_DATA命令字指定。使用示例如下:
VmiDataType module = DATA_VIDEO; VmiCmd cmd = VIDEO_RETURN_VIDEO_DATA; VideoData videoData; uint8_t* data = &videoData; DataCallback(module, cmd, data, sizeof(VideoData));
VideoData定义
struct VideoData {
ExtDataVideo extData; // 码流包额外信息
uint32_t size; // 码流包大小
uint8_t data[0]; // 码流数据
} __attribute__((packed));
ExtDataVideo定义
struct FrameSize {
uint32_t width = 720; // 720: 默认720P
uint32_t height = 1280; // 1280: 默认720P
uint32_t widthAligned = 720; // 720: 默认不做对齐
uint32_t heightAligned = 1280; // 1280: 默认不做对齐
} __attribute__((packed));
struct VideoLatency {
uint64_t startCaptureTimestamp; // 抓图开始时间点
uint64_t endCaptureTimestamp; // 抓图完成时间点
uint64_t startEncodeTimestamp; // 编码开始时间点
uint64_t endEncodeTimestamp; // 编码完成时间点
} __attribute__((packed));
struct ExtDataVideo {
int64_t timestamp; // 帧渲染完成的时间戳
uint8_t orientation; // 当前帧的旋转方向
FrameSize size; // 当前图像大小
VideoLatency latencyInfo; // 抓图和编码时间点
uint32_t frameRate; // 当前屏幕刷新率
};
父主题: 视频输出开发