mason.huo 3a782f6fba wave521, wave511: fix VPU issue when forced to stop | 2 years ago | |
---|---|---|
.. | ||
code | 2 years ago | |
README.md | 2 years ago |
单路解码 ./dec_test –output ./out.dat –input tv0.265 –codec 12
2路解码 ./multi_instance_dec_test –codec 0,0 –input bd_8b_01.cfg_0.264-0,bd_8b_01.cfg_0.264-1 –output bd_8b_01.cfg_0.yuv-0,bd_8b_01.cfg_0.yuv-1 –instance-num 2 –enable-wtl 1,1
4路解码 ./multi_instance_dec_test –codec 0,0,0,0 –input bd_8b_01.cfg_0.264-0,bd_8b_01.cfg_0.264-1,bd_8b_01.cfg_0.264-2,bd_8b_01.cfg_0.264-3 –output bd_8b_01.cfg_0.yuv-0,bd_8b_01.cfg_0.yuv-1,bd_8b_01.cfg_0.yuv-2,bd_8b_01.cfg_0.yuv-3 –instance-num 4 –enable-wtl 1,1,1,1
4.支持ffmpeg parser/demuxer ./ffmpeg_dec_test –codec 12 –output hevc_fhd_inter_8b_11.cfg_0.yuv –input media/hevc_fhd_inter_8b_11.cfg_0.mkv
VDEC默认使用cma方式从通用的CMA空间分配mem。如果想给VDEC指定特定的预留空间,可以在dts文件中做预留,同时,在文件code/vdi/linux/driver/vpu.c中,打开VPU_SUPPORT_RESERVED_VIDEO_MEMORY宏。预留方式简单示例:
freedom-u-sdk/HiFive_U-Boot/arch\riscv/dts/hifive_u74_nvdla_iofpga.dts :
reserved_memory: reserved-memory {
#address-cells = <2>;
#size-cells = <2>;
ranges;
vpu_reserved: framebuffer@d8000000 {
reg = <0x0 0xd8000000 0x0 0x20000000>;
};
};
vpu_dec:vpu_dec@118F0000 {
compatible = "c&m,cm511-vpu";
reg = <0 0x118F0000 0 0x10000>;
memory-region = <&vpu_reserved>;
interrupt-parent = <&plic>;
interrupts = <23>;
clocks = <&vpuclk>;
clock-names = "vcodec";
status = "okay";
};
驱动源码中有关模块时钟开启/关闭/复位等逻辑,作为临时代码,后期需要被内核相关接口替换。