Dear,
I am working with dm8148 and RDK V3.5. I want to change the third stream in Tristream full feature usecase to H264. As I understood, the three buffers from IPCIn Video will be put in the enclink, the encode link will base on the encode parameters to use the proper encoder such as h264, MPEG4 or MJPEG. For that, I modified some part as below:
1. multich_tristream_fullfeature.c: setting the third channel in encPrm same as first channel.
2. ti_mcfw_ipcbits.c: correct the streamType and codecType follow the H264.
3. - stream_env_ctrl.c: fSetStreamConfig
- file_msg_drv.c: fSetStreamConfig
- wis-streamer.cpp
modify to make the correct stream format.
4. mem_mng.h, mem_mng.c: correct the mem layout, we use the same name of MJPEG constant setting for third stream, just change the value follow the MP4 setting.
5. cache_mng.c: modify the Cache_mng_default with first element was changed from VIDEO_MJPG to VIDEO_MP4.
6. ti_venc.h: change the value of VENC_PRIMARY_CHANNELS to 3
#define VENC_PRIMARY_CHANNELS (3)
#define VENC_CHN_MAX (VENC_PRIMARY_CHANNELS + 1)
7. system_linkId.h:
//#define SYSTEM_LINK_ID_VENC_1 VIDEO_LINK(SYSTEM_LINK_COMMON_LINKS_MAX_ID+2)
#define SYSTEM_LINK_ID_VENC_1 VIDEO_LINK(SYSTEM_LINK_COMMON_LINKS_MAX_ID+3)
I tried many ways and looked the source code carefully but I could not success to make the system run correctly.
I always got the error:
[host] Error code: -1 at 429
[m3video] Extended error 20c000 for reqObjIndex 0
[host] Error code: -1 at 429
[m3video] 15819:WARN
[m3video] ENCLINK:ERROR in Enclink_h264EncodeFrameBatch.Status[-1] for IVAHD_0
[m3video] 15819:WARN
[m3video] ENC : IVAHDID : 0 ENCLINK:ERROR in EncLink_SubmitBatch.Status[-1]
I logged the buffer size of channel 3 in ti_mcfw_ipcbits.c but it has just available in some first frame, after that it is always 0, at that time error also happen.
I guess I missed some important things but it is really hard to figure it out. I wasted some weeks for this issues, please give me some hints or some ideas if you can.
Thank you very much!