From ec8e1c94de16680f287b7d56b3674269ad7ed707 Mon Sep 17 00:00:00 2001 From: Andy Hu Date: Fri, 18 Nov 2022 12:51:32 +0800 Subject: [PATCH] wave420l: fix building issue and support the vendor code building --- wave420l/code/Wave420Enc.mak | 2 +- wave420l/code/WaveEncoder_buildroot.mak | 47 ++++++++++++++++++++++++- wave420l/code/build.sh | 13 ++++--- wave420l/code/sample/helper/vpuhelper.c | 24 +++++++++---- wave420l/code/theoraparser/Makefile | 2 +- 5 files changed, 75 insertions(+), 13 deletions(-) diff --git a/wave420l/code/Wave420Enc.mak b/wave420l/code/Wave420Enc.mak index f719fa8..8b23cd4 100644 --- a/wave420l/code/Wave420Enc.mak +++ b/wave420l/code/Wave420Enc.mak @@ -43,7 +43,7 @@ ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux") endif ifeq ("$(BUILD_CONFIGURATION)", "RiscvLinux") - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu- + CROSS_CC_PREFIX = PLATFORM = riscvlinux USE_FFMPEG = no USE_PTHREAD = yes diff --git a/wave420l/code/WaveEncoder_buildroot.mak b/wave420l/code/WaveEncoder_buildroot.mak index a6ea84d..1f6b938 100755 --- a/wave420l/code/WaveEncoder_buildroot.mak +++ b/wave420l/code/WaveEncoder_buildroot.mak @@ -43,7 +43,8 @@ ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux") endif ifeq ("$(BUILD_CONFIGURATION)", "RiscvLinux") - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu- +# CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu- + CROSS_CC_PREFIX = PLATFORM = riscvlinux USE_FFMPEG = no USE_PTHREAD = yes @@ -273,3 +274,47 @@ endif force_dependency : true +TARGET_DIR=../../target +STAGING_DIR=$(TARGET_DIR) +INSTALL=install + +install: + @echo install ... + $(INSTALL) -D -m 0777 vdi/linux/driver/load.sh $(TARGET_DIR)/root/wave420l/venc_load.sh + $(INSTALL) -D -m 0777 vdi/linux/driver/unload.sh $(TARGET_DIR)/root/wave420l/venc_unload.sh + $(INSTALL) -D -m 0644 libsfenc.so $(TARGET_DIR)/usr/lib/libsfenc.so + $(INSTALL) -D -m 0644 ../firmware/monet.bin $(TARGET_DIR)/lib/firmware/monet.bin + $(INSTALL) -D -m 0644 cfg/encoder_defconfig.cfg $(TARGET_DIR)/lib/firmware/encoder_defconfig.cfg + @echo "install STAGING_DIR ..." + $(INSTALL) -D -m 0644 vpuapi/vpuconfig.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/vpuconfig.h + $(INSTALL) -D -m 0644 vpuapi/product.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/product.h + $(INSTALL) -D -m 0644 vpuapi/vputypes.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/vputypes.h + $(INSTALL) -D -m 0644 vpuapi/vpuapi.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/vpuapi.h + $(INSTALL) -D -m 0644 vpuapi/vpuapifunc.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/vpuapifunc.h + $(INSTALL) -D -m 0644 vpuapi/coda9/coda9_vpuconfig.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/coda9/coda9_vpuconfig.h + $(INSTALL) -D -m 0644 vpuapi/coda9/coda9.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/coda9/coda9.h + $(INSTALL) -D -m 0644 vpuapi/coda9/coda9_regdefine.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/coda9/coda9_regdefine.h + $(INSTALL) -D -m 0644 vpuapi/wave/coda7q/coda7q_regdefine.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/coda7q/coda7q_regdefine.h + $(INSTALL) -D -m 0644 vpuapi/wave/coda7q/coda7q.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/coda7q/coda7q.h + $(INSTALL) -D -m 0644 vpuapi/wave/wave4/wave4.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/wave4/wave4.h + $(INSTALL) -D -m 0644 vpuapi/wave/wave4/wave4_regdefine.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/wave4/wave4_regdefine.h + $(INSTALL) -D -m 0644 vpuapi/wave/wave5/wave5.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/wave5/wave5.h + $(INSTALL) -D -m 0644 vpuapi/wave/wave5/wave5_regdefine.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/wave5/wave5_regdefine.h + $(INSTALL) -D -m 0644 vpuapi/wave/common/common.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/common/common.h + $(INSTALL) -D -m 0644 vpuapi/wave/common/common_vpuconfig.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/common/common_vpuconfig.h + $(INSTALL) -D -m 0644 vpuapi/wave/common/common_regdefine.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/wave/common/common_regdefine.h + $(INSTALL) -D -m 0644 vpuapi/vpuerror.h $(STAGING_DIR)/usr/include/wave420l/vpuapi/vpuerror.h + $(INSTALL) -D -m 0644 sample/helper/misc/pbu.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/misc/pbu.h + $(INSTALL) -D -m 0644 sample/helper/misc/skip.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/misc/skip.h + $(INSTALL) -D -m 0644 sample/helper/misc/getopt.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/misc/getopt.h + $(INSTALL) -D -m 0644 sample/helper/misc/header_struct.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/misc/header_struct.h + $(INSTALL) -D -m 0644 sample/helper/misc/debug.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/misc/debug.h + $(INSTALL) -D -m 0644 sample/helper/msvc/inttypes.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/msvc/inttypes.h + $(INSTALL) -D -m 0644 sample/helper/msvc/stdint.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/msvc/stdint.h + $(INSTALL) -D -m 0644 sample/helper/main_helper.h $(STAGING_DIR)/usr/include/wave420l/sample/helper/main_helper.h + $(INSTALL) -D -m 0644 vdi/mm.h $(STAGING_DIR)/usr/include/wave420l/vdi/mm.h + $(INSTALL) -D -m 0644 vdi/linux/driver/vmm.h $(STAGING_DIR)/usr/include/wave420l/vdi/linux/driver/vmm.h + $(INSTALL) -D -m 0644 vdi/linux/driver/vpu.h $(STAGING_DIR)/usr/include/wave420l/vdi/linux/driver/vpu.h + $(INSTALL) -D -m 0644 vdi/vdi.h $(STAGING_DIR)/usr/include/wave420l/vdi/vdi.h + $(INSTALL) -D -m 0644 vdi/vdi_osal.h $(STAGING_DIR)/usr/include/wave420l/vdi/vdi_osal.h + $(INSTALL) -D -m 0644 config.h $(STAGING_DIR)/usr/include/wave420l/config.h diff --git a/wave420l/code/build.sh b/wave420l/code/build.sh index 14fcf3d..c5f80b0 100755 --- a/wave420l/code/build.sh +++ b/wave420l/code/build.sh @@ -1,5 +1,10 @@ #!/bin/bash -. ./set_env.sh +# . ./set_env.sh +export ARCH=riscv +export SUBARCH=riscv +export CROSS_COMPILE= +export BUILD_CONFIGURATION=RiscvLinux + CP="cp -rdvp" OUTPUT=venc_driver DRI_OPT=$OUTPUT/driver @@ -15,9 +20,9 @@ if [ ! -d $DRI_OPT ];then mkdir -p $DRI_OPT fi -make -f Wave420Driver.mak -$CP $DRI_SRC/venc.ko $DRI_OPT -make -f Wave420Driver.mak clean +# make -f Wave420Driver.mak +# $CP $DRI_SRC/venc.ko $DRI_OPT +# make -f Wave420Driver.mak clean make -f Wave420Enc.mak $CP $ENC_BIN $OUTPUT diff --git a/wave420l/code/sample/helper/vpuhelper.c b/wave420l/code/sample/helper/vpuhelper.c index 711375b..688dbf6 100644 --- a/wave420l/code/sample/helper/vpuhelper.c +++ b/wave420l/code/sample/helper/vpuhelper.c @@ -1674,8 +1674,12 @@ Int32 GetEncOpenParam(EncOpenParam *pEncOP, TestEncConfig *pEncConfig, ENC_CFG * pEncConfig->picQpY = pCfg->PicQpY; if (pEncCfg) strcpy(pEncConfig->yuvFileName, pCfg->SrcFileName); - else - sprintf(pEncConfig->yuvFileName, "%s%s", yuvDir, pCfg->SrcFileName); + else { + if (snprintf(pEncConfig->yuvFileName, sizeof(pEncConfig->yuvFileName), "%s%s", yuvDir, pCfg->SrcFileName) >= + sizeof(pEncConfig->yuvFileName)) { + fprintf(stderr, "yuvFileName overflow -- string is truncated\n"); + } + } #ifdef SUPPORT_980_RC_LIB if(pEncOP->EncStdParam.avcParam.svcExtension == TRUE) @@ -1699,8 +1703,12 @@ Int32 GetEncOpenParam(EncOpenParam *pEncOP, TestEncConfig *pEncConfig, ENC_CFG * pEncConfig->picQpY = pCfg->VopQuant; if (pEncCfg) strcpy(pEncConfig->yuvFileName, pCfg->SrcFileName); - else - sprintf(pEncConfig->yuvFileName, "%s%s", yuvDir, pCfg->SrcFileName); + else { + if (snprintf(pEncConfig->yuvFileName, sizeof(pEncConfig->yuvFileName), "%s%s", yuvDir, pCfg->SrcFileName) >= + sizeof(pEncConfig->yuvFileName)) { + fprintf(stderr, "yuvFileName overflow -- string is truncated\n"); + } + } if (pCfg->ShortVideoHeader == 1) { pEncOP->bitstreamFormat = STD_H263; bitFormat = STD_H263; @@ -1711,8 +1719,12 @@ Int32 GetEncOpenParam(EncOpenParam *pEncOP, TestEncConfig *pEncConfig, ENC_CFG * return 0; if (pEncCfg) strcpy(pEncConfig->yuvFileName, pCfg->SrcFileName); - else - sprintf(pEncConfig->yuvFileName, "%s%s", yuvDir, pCfg->SrcFileName); + else { + if (snprintf(pEncConfig->yuvFileName, sizeof(pEncConfig->yuvFileName), "%s%s", yuvDir, pCfg->SrcFileName) >= + sizeof(pEncConfig->yuvFileName)) { + fprintf(stderr, "yuvFileName overflow -- string is truncated\n"); + } + } if (pEncConfig->bitstreamFileName[0] == 0 && pCfg->BitStreamFileName[0] != 0) sprintf(pEncConfig->bitstreamFileName, "%s", pCfg->BitStreamFileName); diff --git a/wave420l/code/theoraparser/Makefile b/wave420l/code/theoraparser/Makefile index 0a8686f..1d904da 100644 --- a/wave420l/code/theoraparser/Makefile +++ b/wave420l/code/theoraparser/Makefile @@ -11,7 +11,7 @@ ifeq ("$(BUILD_CONFIGURATION)", "NonOS") endif ifeq ("$(BUILD_CONFIGURATION)", "RiscvLinux") - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu- + CROSS_CC_PREFIX = endif CC = $(CROSS_CC_PREFIX)gcc -- 2.36.0