안녕하세요.
전파협회 과정 1팀입니다.
현재 Telechips TCC8050 기반 보드에서 GStreamer를 사용한 RTSP H.264 스트림 디코딩을 구현 중입니다.
소프트웨어 디코더(avdec_h264, libav)를 사용한 결과 CPU 점유율이 너무 높아 실시간 처리가 어렵기 때문에, 하드웨어 VPU 기반 H.264 디코더를 사용하고자 합니다.
현재 확인된 사항 :
- V4L2 기반 디코더를 BSP에서 확인
-
v4l2-core 일부 소스 존재
-
그러나 tcc의 디코더 드라이버(v4l2 mem-to-mem) 는 보이지 않음
-
-
- GStreamer-OMX 레시피를 통해 omx 관련 플러그인으로 시도했지만,
- 하드웨어 디코더용 드라이버가 없어 연동 불가
그런데 linux-telechips 5.4.159 기준:
drivers/media/platform 경로에 Telechips용 VPU 디코더 드라이버 소스가 존재하지 않으며
menuconfig에서는 vicodec 테스트용 드라이버와 일부 타 SoC용 mem-to-mem 항목만 보일 뿐, /dev/video10 장치를 디코더 기능으로 활성화할 수 있는 관련 설정 항목은 존재하지 않습니다.
Kconfig 파일에서 해당 항목이 누락된 것이 아닌지 확인해보았지만, 관련 드라이버 디렉토리 자체가 존재하지 않는 것으로 보입니다.
그래서 /dev/videoX 디바이스 중 V4L2 M2M 디코더가 생성이 어려운 상황입니다(output 기능으로만 있음)
root@telechips-tcc8050-main:~# v4l2-ctl --list-devices
11980000.dwc_otg (gadget):
/dev/video0
vicodec (platform:vicodec):
/dev/video1
/dev/video2
/dev/video3
Telechips video output (vout:0):
/dev/video10
root@telechips-tcc8050-main:~#
현재 /drivers/media/platform에는 VPU관련하여 tcc 텔레칩스관련 코드가 보이지 않습니다.
iamyeju@DESKTOP-NGNQNNT:~/topst/build-main/tmp/work/tcc8050_main-telechips-linux/linux-telechips/5.4.159-r0/git/drivers/media/platform$ ls
Kconfig cros-ec-cec marvell-ccic omap3isp renesas-ceu.c sh_veu.c tccvout vimc
Makefile davinci meson pxa_camera.c rockchip sh_vou.c tegra-cec vivid
am437x exynos-gsc mtk-jpeg qcom s3c-camif sti ti-vpe vsp1
aspeed-video.c exynos4-is mtk-mdp rcar-fcp.c s5p-cec stm32 via-camera.c xilinx
atmel fsl-viu.c mtk-vcodec rcar-vin s5p-g2d sunxi via-camera.h
cadence imx-pxp.c mtk-vpu rcar_drif.c s5p-jpeg tcc-isp vicodec
cec-gpio imx-pxp.h mx2_emmaprp.c rcar_fdp1.c s5p-mfc tcc-mipi-csi2 video-mux.c
coda m2m-deinterlace.c omap rcar_jpu.c seco-cec tccvin2 vim2m.c
vicodec (소프트웨어 가상 디코더)와 tcc-vout-video (출력 디바이스)만 존재합니다
이에 다음 과 같이 문의드립니다.
-
TCC8050용 H.264 VPU 하드웨어 디코더 드라이버 소스 코드가 별도로 제공되는것인지
mtk-vpu.c 는 있는데 tcc-vpu.c가 따로 있을것이라 예상했지만 없습니다. 이렇게 사용하는 것이 아닌지요?
dts, dtsi 장치 트리 파일에 vpu 관련하여서도 보이지 않습니다. -
GStreamer에서 사용할 수 있는 v4l2h264dec 등의 플러그인 또는 다른 사용 가이드가 있는지 여쭤봅니다.
+추가
iamyeju@DESKTOP-NGNQNNT:~/topst/yocto/meta-topst/recipes-kernel/linux$ grep -i vpu linux-telechips_5.4.bbappend
RDEPENDS_kernel-modules_remove = "kernel-modules-vpu"
echo "# CONFIG_TCC_VPU_DRV is not set" >> ${WORKDIR}/defconfig
iamyeju@DESKTOP-NGNQNNT:~/topst/yocto/meta-topst/recipes-kernel/linux$