This article is based on "how to integrate Audio/voice in the RPE in Ezsdk.pdf" arrangement, it is recommended that the reader directly download, refer to the original file. Original File Download Link:
http://download.csdn.net/detail/guo8113/8122945
PS: This article is only a reference document to customize the supplement, but at present I did not complete the transplant, for reference only. Reprint Please specify: http://blog.csdn.net/guo8113/article/details/40820897
DVR_RDK RPE Add additional audio encoding
DM8168 in the audio algorithm (DVR-RDK has integrated AAC enc, DEC) using the RPE (remote program Call) mechanism, the introduction of this mechanism can refer to the document in Ti_tools/rpe, or refer to the author's blog and thesis. 1. Update the build environment variable
/remote-processor-execute/makerules/env.mk
L42:
#####################################################
# Codecs Paths
#####################################################
# AACDEC-AAC Decoder
Aaclcdec_path =$ (external_sw_root)/c674x-aaclcdec_01_41_00_00_elf
Aaclcdec_include =$ (Aaclcdec_path)/packages
# AACENC-AAC Encoder
Aaclcenc_path =$ (external_sw_root)/c674x_aaclcenc_01_00_01_00_elf
Aaclcenc_include =$ (Aaclcenc_path)/packages
#
# <integrator>: Add more codec Pathshere.
#
2. Add codec to compile list:
Ti_tools/rpe/remote-processor-execute/src/config/codecs.mk
Include_codec_interfaces = Aaclcdecaaclcenc
3. Updating the client configuration file
Ti_tools/rpe/remote-processor-execute/src/config/client_config.c
/* GET structure definitions for Aaclcaudio Decoder Interface */
#include <ti/sdo/codecs/aaclcdec/iaacdec.h>
#include <ti/sdo/codecs/aaclcenc/imp4aacenc.h>
Because the AAC enc and DEC are already integrated, the classes that use the XDm interface have already been defined, and if you want to run other codec at the same time, you may need to add them.
4. Update the server configuration file
ti_tools/rpe/remote-processor-execute/src/config/server_config_c67x.c
(1) Imitate the const Xdmserver_serverconfig ti_aacdec_serverconfig{} to write your own classconfigratiion
(2) Update:
Const rpe_serverconfig*rpe_serverconfigarray[] =
{
(const rpe_serverconfig *) & Ti_aacdec_serverconfig,
(const rpe_serverconfig *) & Ti_aacenc_serverconfig,
& Rpe_endserverconfig
};
Of course, include the necessary header files as well.
5. Modify/dvr_rdk/rules.make
L101 Line:
# Audio Framework (RPE) and Codecs
Rpe_path: =$ (ti_sw_root)/rpe/remote-processor-execute
Aaclcdec_path: =$ (ti_sw_root)/codecs/c674x_aaclcdec_01_41_00_00_elf
Aaclcenc_path: =$ (ti_sw_root)/codecs/c674x_aaclcenc_01_00_01_00_elf_patched
L301:
Rpe_build_vars =ipc_path= "${ipc_path}" \
Bios_path= "${bios_path}" \
Xdc_path= "${xdc_path}" \
Xdais_path= "${xdais_path}" \
Syslink_path= "${syslink_path}" \
Kernel_path= "${kerneldir}" \
Codesourcery_path= "${codegen_path_a8}" \
cgt_arm_prefix= "${cstool_prefix}" \
codegen_path_dsp= "${CODEGEN_PATH_DSP}" \
codegen_path_dspelf= "${CODEGEN_PATH_DSP}" \
Rootdir= "${rpe_path}" \
aaclcdec_path= "${aaclcdec_path}" \
Aaclcenc_path= "${aaclcenc_path}"
L373:
Export Aaclcdec_path
Export Aaclcenc_path
6. Add a library
Dvr_rdk/makerules/rules_c674.mk
L192:
Lib_paths + = $ (Rtslib_path) \
$ (aaclcdec_path)/packages/ti/sdo/codecs/aaclcdec/lib/aacdec_tii_lc_elf.l64p\
$ (Aaclcenc_path)/packages/ti/sdo/codecs/aaclcenc/lib/mp4aacenc_tij_lc_elf.l67
Add include directory:dvr_rdk/makerules/env.mk
Aaclcdec_include =$ (Aaclcdec_path)/packages
Aaclcenc_include =$ (Aaclcenc_path)/packages
7. Specify the build containing path of RPE on arm side
dvr_rdk/makerules/ includes_a8.mk
L18:
rpe_inc=-i$ (Rpe_path)/include-i$ (Rpe_path)/src/include-i$ (Aaclcdec_path)/packages-i$ (Aaclcenc_PATH)/packages-I $ (Xdais_path)/packages
8. Dvrrdk_03.00.00.00/dvr_rdk/mcfw/src_bios6/bios_c6xdsp.cfg not sure
program.sectmap["Aacencprogram"] = "Dsp_code_mem";
DM8168 adding DSP Audio codec algorithm--integration of existing voice or video codec