要将一个 int64_t 类型的时间戳存放在 AVFrame 的 opaque 字段中,你可以按照以下步骤进行编码和解码:
编码:
- 创建一个 AVFrame 对象,并分配内存空间。
- 将时间戳赋值给 AVFrame 的 opaque 字段。
int64_t timestamp = ...; // 获取时间戳
AVFrame* frame = av_frame_alloc();
frame->opaque = (void*)timestamp;
解码:
- 获取 AVFrame 的 opaque 字段的值。
- 将其强制转换回 int64_t 类型即可获取原始的时间戳。
AVFrame* frame = ...; // 获取 AVFrame 对象
int64_t timestamp = (int64_t)frame->opaque;
需要注意的是,opaque 字段仅提供了一种通用的指针字段,你需要确保在使用时对其类型进行正确的转换。另外,还要根据实际情况处理内存管理和释放问题,以避免资源泄漏。
这只是一个简单示例,请根据具体情况适应并扩展代码。
内容由零声教学AI助手提供,问题来源于学员提问