NVIDIA 缓冲实用程序 nvbuf_utils 提供了一个封装器,用于简化应用程序/插件在缓冲和转换、合成或混合用例中的使用。
transform unit sample 演示了如何使用 nvbuf_utils 通过 VIC 或 GPU 将像素格式从一种转换为另一种。支持的像素格式、过滤器、合成和其他属性在 nvbuf_utils 中描述。
支持的像素格式包括
$ cd /usr/src/jetson_multimedia_api/samples/unittest_samples/transform_unit_sample $ make
$ ./transform_sample <in-file> <in-pix-fmt> <in-width> <in-height> <out-file> <out-pixfmt> <enable-gpu>
输入
$ ./transform_sample --help
$ ./transform_sample ../../data/Video/sample_outdoor_car_1080p_10fps.yuv yuv420 1920 1080 sample_outdoor_car_1080p_10fps_nv12.yuv nv12 0
$ ./transform_sample ../../data/Video/sample_outdoor_car_1080p_10fps.yuv yuv420 1920 1080 sample_outdoor_car_1080p_10fps_nv12.yuv nv12 1
以下步骤显示了本示例的流程。
该示例使用 nvbuf_utils 函数
元素 | 描述 |
---|---|
NvBufferMemMap | 获取平面的内存映射虚拟地址。 |
NvBufferMemUnMap | 取消映射平面的内存映射虚拟地址。 |
NvBufferGetParams | 获取缓冲区参数。 |
NvBufferCreateEx | 分配硬件缓冲区。 |
NvBufferMemSyncForCpu | 同步 CPU 的硬件内存缓存。 |
NvBufferMemSyncForDevice | 同步设备的硬件内存缓存。 |
NvBufferTransform | 将一个 DMA 缓冲区转换为另一个 DMA 缓冲区。 |
NvBufferDestroy | 销毁硬件缓冲区。 |