0001-wave511-fix-building-issue-and-support-the-vendor-co.patch 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212
  1. From 1764dcc4a161e44e822029b1cc5c3bbc40f052e5 Mon Sep 17 00:00:00 2001
  2. From: Andy Hu <andy.hu@starfivetech.com>
  3. Date: Fri, 18 Nov 2022 12:49:12 +0800
  4. Subject: [PATCH] wave511: fix building issue and support the vendor code
  5. building
  6. ---
  7. wave511/wave511/WaveDecDriver.mak | 3 +-
  8. wave511/wave511/WaveDecode-ffmpeg.mak | 2 +-
  9. wave511/wave511/WaveDecode.mak | 2 +-
  10. wave511/wave511/WaveDecodeMult.mak | 2 +-
  11. wave511/wave511/WaveDecode_buildroot.mak | 46 +++++++++++++++++++-
  12. wave511/wave511/build_for_vdec.sh | 12 +++--
  13. wave511/wave511/sample_v2/helper/vpuhelper.c | 19 +++++---
  14. 7 files changed, 72 insertions(+), 14 deletions(-)
  15. diff --git a/wave511/wave511/WaveDecDriver.mak b/wave511/wave511/WaveDecDriver.mak
  16. index 2323cd7..a2dc1e5 100644
  17. --- a/wave511/wave511/WaveDecDriver.mak
  18. +++ b/wave511/wave511/WaveDecDriver.mak
  19. @@ -27,7 +27,8 @@ obj-m := vdec.o
  20. else
  21. -KERNELDIR := ../../../work/linux
  22. +#KERNELDIR := ../../../work/linux
  23. +KERNELDIR := /lib/modules/$(shell uname -r)/build
  24. PWD := $(shell pwd)
  25. diff --git a/wave511/wave511/WaveDecode-ffmpeg.mak b/wave511/wave511/WaveDecode-ffmpeg.mak
  26. index 05e642d..b19dd3e 100644
  27. --- a/wave511/wave511/WaveDecode-ffmpeg.mak
  28. +++ b/wave511/wave511/WaveDecode-ffmpeg.mak
  29. @@ -59,7 +59,7 @@ ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  30. endif
  31. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  32. - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  33. + CROSS_CC_PREFIX =
  34. PLATFORM = riscvlinux
  35. endif
  36. CC = $(CROSS_CC_PREFIX)gcc
  37. diff --git a/wave511/wave511/WaveDecode.mak b/wave511/wave511/WaveDecode.mak
  38. index 46cf8ab..3d0fb78 100644
  39. --- a/wave511/wave511/WaveDecode.mak
  40. +++ b/wave511/wave511/WaveDecode.mak
  41. @@ -57,7 +57,7 @@ ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  42. endif
  43. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  44. - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  45. + CROSS_CC_PREFIX =
  46. PLATFORM = riscvlinux
  47. endif
  48. CC = $(CROSS_CC_PREFIX)gcc
  49. diff --git a/wave511/wave511/WaveDecodeMult.mak b/wave511/wave511/WaveDecodeMult.mak
  50. index f882100..ea3b06e 100644
  51. --- a/wave511/wave511/WaveDecodeMult.mak
  52. +++ b/wave511/wave511/WaveDecodeMult.mak
  53. @@ -69,7 +69,7 @@ ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  54. endif
  55. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  56. - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  57. + CROSS_CC_PREFIX =
  58. PLATFORM = riscvlinux
  59. endif
  60. diff --git a/wave511/wave511/WaveDecode_buildroot.mak b/wave511/wave511/WaveDecode_buildroot.mak
  61. index 4343925..4af9c88 100644
  62. --- a/wave511/wave511/WaveDecode_buildroot.mak
  63. +++ b/wave511/wave511/WaveDecode_buildroot.mak
  64. @@ -11,6 +11,10 @@ PRODUCT := WAVE511
  65. $(shell cp sample_v2/component_list_decoder.h sample_v2/component/component_list.h)
  66. +TARGET_DIR=../../target
  67. +STAGING_DIR=$(TARGET_DIR)
  68. +INSTALL=install
  69. +
  70. USE_PTHREAD = yes
  71. USE_RTL_SIM = no
  72. LINT_HOME = etc/lint
  73. @@ -57,7 +61,8 @@ ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedLinux")
  74. endif
  75. ifeq ("$(BUILD_CONFIGURATION)", "EmbeddedRiscvLinux")
  76. - CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  77. +# CROSS_CC_PREFIX = riscv64-buildroot-linux-gnu-
  78. + CROSS_CC_PREFIX =
  79. PLATFORM = riscvlinux
  80. endif
  81. CC = $(CROSS_CC_PREFIX)gcc
  82. @@ -166,3 +171,42 @@ obj/%.o: %.c $(MAKEFILE)
  83. lint:
  84. "$(LINT_HOME)/flint" -i"$(LINT_HOME)" $(DEFINES) $(INCLUDES) $(VPATH2) linux_std.lnt $(HAPS_RULE) $(NONOS_RULE) $(SOURCES_COMMON)
  85. +install:
  86. + @echo install ...
  87. + $(INSTALL) -D -m 0777 vdi/linux/driver/load.sh $(TARGET_DIR)/root/wave511/vdec_load.sh
  88. + $(INSTALL) -D -m 0777 vdi/linux/driver/unload.sh $(TARGET_DIR)/root/wave511/vdec_unload.sh
  89. + $(INSTALL) -D -m 0644 libsfdec.so $(TARGET_DIR)/usr/lib/libsfdec.so
  90. + $(INSTALL) -D -m 0644 ../firmware/chagall.bin $(TARGET_DIR)/lib/firmware/chagall.bin
  91. + @echo "install STAGING_DIR ..."
  92. + $(INSTALL) -D -m 0644 sample_v2/component_list_decoder.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component_list_decoder.h
  93. + $(INSTALL) -D -m 0644 sample_v2/component_list_encoder.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component_list_encoder.h
  94. + $(INSTALL) -D -m 0644 sample_v2/helper/misc/pbu.h $(STAGING_DIR)/usr/include/wave511/sample_v2/helper/misc/pbu.h
  95. + $(INSTALL) -D -m 0644 sample_v2/helper/misc/header_struct.h $(STAGING_DIR)/usr/include/wave511/sample_v2/helper/misc/header_struct.h
  96. + $(INSTALL) -D -m 0644 sample_v2/helper/misc/json_output.h $(STAGING_DIR)/usr/include/wave511/sample_v2/helper/misc/json_output.h
  97. + $(INSTALL) -D -m 0644 sample_v2/helper/misc/debug.h $(STAGING_DIR)/usr/include/wave511/sample_v2/helper/misc/debug.h
  98. + $(INSTALL) -D -m 0644 sample_v2/helper/misc/bw_monitor.h $(STAGING_DIR)/usr/include/wave511/sample_v2/helper/misc/bw_monitor.h
  99. + $(INSTALL) -D -m 0644 sample_v2/helper/main_helper.h $(STAGING_DIR)/usr/include/wave511/sample_v2/helper/main_helper.h
  100. + $(INSTALL) -D -m 0644 sample_v2/component/component.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component/component.h
  101. + $(INSTALL) -D -m 0644 sample_v2/component/cnm_app_internal.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component/cnm_app_internal.h
  102. + $(INSTALL) -D -m 0644 sample_v2/component/cnm_app.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component/cnm_app.h
  103. + $(INSTALL) -D -m 0644 sample_v2/component/component_list.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component/component_list.h
  104. + $(INSTALL) -D -m 0644 sample_v2/component_list_all.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component_list_all.h
  105. + $(INSTALL) -D -m 0644 sample_v2/component_encoder/encoder_listener.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component_encoder/encoder_listener.h
  106. + $(INSTALL) -D -m 0644 sample_v2/component_decoder/decoder_listener.h $(STAGING_DIR)/usr/include/wave511/sample_v2/component_decoder/decoder_listener.h
  107. + $(INSTALL) -D -m 0644 vdi/vdi_osal.h $(STAGING_DIR)/usr/include/wave511/vdi/vdi_osal.h
  108. + $(INSTALL) -D -m 0644 vdi/linux/driver/vmm.h $(STAGING_DIR)/usr/include/wave511/vdi/linux/driver/vmm.h
  109. + $(INSTALL) -D -m 0644 vdi/linux/driver/vpu.h $(STAGING_DIR)/usr/include/wave511/vdi/linux/driver/vpu.h
  110. + $(INSTALL) -D -m 0644 vdi/mm.h $(STAGING_DIR)/usr/include/wave511/vdi/mm.h
  111. + $(INSTALL) -D -m 0644 vdi/vdi.h $(STAGING_DIR)/usr/include/wave511/vdi/vdi.h
  112. + $(INSTALL) -D -m 0644 config.h $(STAGING_DIR)/usr/include/wave511/config.h
  113. + $(INSTALL) -D -m 0644 vpuapi/product.h $(STAGING_DIR)/usr/include/wave511/vpuapi/product.h
  114. + $(INSTALL) -D -m 0644 vpuapi/coda9/coda9_vpuconfig.h $(STAGING_DIR)/usr/include/wave511/vpuapi/coda9/coda9_vpuconfig.h
  115. + $(INSTALL) -D -m 0644 vpuapi/coda9/coda9.h $(STAGING_DIR)/usr/include/wave511/vpuapi/coda9/coda9.h
  116. + $(INSTALL) -D -m 0644 vpuapi/coda9/coda9_regdefine.h $(STAGING_DIR)/usr/include/wave511/vpuapi/coda9/coda9_regdefine.h
  117. + $(INSTALL) -D -m 0644 vpuapi/vpuapi.h $(STAGING_DIR)/usr/include/wave511/vpuapi/vpuapi.h
  118. + $(INSTALL) -D -m 0644 vpuapi/vpuconfig.h $(STAGING_DIR)/usr/include/wave511/vpuapi/vpuconfig.h
  119. + $(INSTALL) -D -m 0644 vpuapi/wave/wave5.h $(STAGING_DIR)/usr/include/wave511/vpuapi/wave/wave5.h
  120. + $(INSTALL) -D -m 0644 vpuapi/wave/wave5_regdefine.h $(STAGING_DIR)/usr/include/wave511/vpuapi/wave/wave5_regdefine.h
  121. + $(INSTALL) -D -m 0644 vpuapi/vpuerror.h $(STAGING_DIR)/usr/include/wave511/vpuapi/vpuerror.h
  122. + $(INSTALL) -D -m 0644 vpuapi/vputypes.h $(STAGING_DIR)/usr/include/wave511/vpuapi/vputypes.h
  123. + $(INSTALL) -D -m 0644 vpuapi/vpuapifunc.h $(STAGING_DIR)/usr/include/wave511/vpuapi/vpuapifunc.h
  124. diff --git a/wave511/wave511/build_for_vdec.sh b/wave511/wave511/build_for_vdec.sh
  125. index b23aba7..8e00d12 100755
  126. --- a/wave511/wave511/build_for_vdec.sh
  127. +++ b/wave511/wave511/build_for_vdec.sh
  128. @@ -1,5 +1,9 @@
  129. #!/bin/bash
  130. -source set_env.sh
  131. +#source set_env.sh
  132. +export ARCH=riscv
  133. +export SUBARCH=riscv
  134. +export CROSS_COMPILE=
  135. +
  136. CP="cp -rdvp"
  137. OUTPUT=vdec_driver
  138. DRI_OPT=$OUTPUT/driver
  139. @@ -19,9 +23,9 @@ make -f WaveDecode-ffmpeg.mak
  140. $CP $DEC_FFMPEG_BIN $OUTPUT
  141. make -f WaveDecode-ffmpeg.mak clean
  142. -make -f WaveDecDriver.mak
  143. -$CP $DRI_SRC/vdec.ko $DRI_OPT
  144. -make -f WaveDecDriver.mak clean
  145. +#make -f WaveDecDriver.mak
  146. +#$CP $DRI_SRC/vdec.ko $DRI_OPT
  147. +#make -f WaveDecDriver.mak clean
  148. make -f WaveDecode.mak
  149. $CP $DEC_BIN $OUTPUT
  150. diff --git a/wave511/wave511/sample_v2/helper/vpuhelper.c b/wave511/wave511/sample_v2/helper/vpuhelper.c
  151. index d655562..8c8e888 100644
  152. --- a/wave511/wave511/sample_v2/helper/vpuhelper.c
  153. +++ b/wave511/wave511/sample_v2/helper/vpuhelper.c
  154. @@ -1418,9 +1418,12 @@ Int32 GetEncOpenParam(EncOpenParam *pEncOP, TestEncConfig *pEncConfig, ENC_CFG *
  155. return 0;
  156. if (pEncCfg)
  157. strcpy(pEncConfig->yuvFileName, pCfg->SrcFileName);
  158. - else
  159. - sprintf(pEncConfig->yuvFileName, "%s%s", yuvDir, pCfg->SrcFileName);
  160. -
  161. + else {
  162. + if (snprintf(pEncConfig->yuvFileName, sizeof(pEncConfig->yuvFileName), "%s%s", yuvDir, pCfg->SrcFileName) >=
  163. + sizeof(pEncConfig->yuvFileName)) {
  164. + fprintf(stderr, "yuvFileName overflow -- string is truncated\n");
  165. + }
  166. + }
  167. if (pCfg->waveCfg.roiEnable) {
  168. strcpy(pEncConfig->roi_file_name, pCfg->waveCfg.roiFileName);
  169. if (!strcmp(pCfg->waveCfg.roiQpMapFile, "0") || pCfg->waveCfg.roiQpMapFile[0] == 0) {
  170. @@ -1487,7 +1490,10 @@ Int32 GetEncOpenParam(EncOpenParam *pEncOP, TestEncConfig *pEncConfig, ENC_CFG *
  171. if (parseAvcCfgFile(pCfg, pEncConfig->cfgFileName) == 0)
  172. return 0;
  173. pEncConfig->picQpY = pCfg->PicQpY;
  174. - sprintf(pEncConfig->yuvFileName, "%s/%s", yuvDir, pCfg->SrcFileName);
  175. + if (snprintf(pEncConfig->yuvFileName, sizeof(pEncConfig->yuvFileName), "%s/%s", yuvDir, pCfg->SrcFileName) >=
  176. + sizeof(pEncConfig->yuvFileName)) {
  177. + fprintf(stderr, "yuvFileName overflow -- string is truncated\n");
  178. + }
  179. if(pCfg->frameCropLeft || pCfg->frameCropRight || pCfg->frameCropTop || pCfg->frameCropBottom)
  180. pCfg->frameCroppingFlag = 1;
  181. @@ -1497,7 +1503,10 @@ Int32 GetEncOpenParam(EncOpenParam *pEncOP, TestEncConfig *pEncConfig, ENC_CFG *
  182. if (parseMp4CfgFile(pCfg, pEncConfig->cfgFileName) == 0)
  183. return 0;
  184. pEncConfig->picQpY = pCfg->VopQuant;
  185. - sprintf(pEncConfig->yuvFileName, "%s/%s", yuvDir, pCfg->SrcFileName);
  186. + if (snprintf(pEncConfig->yuvFileName, sizeof(pEncConfig->yuvFileName), "%s/%s", yuvDir, pCfg->SrcFileName) >=
  187. + sizeof(pEncConfig->yuvFileName)) {
  188. + fprintf(stderr, "yuvFileName overflow -- string is truncated\n");
  189. + }
  190. if (pCfg->ShortVideoHeader == 1) {
  191. pEncOP->bitstreamFormat = STD_H263;
  192. bitFormat = STD_H263;
  193. --
  194. 2.36.0