Hi,
HEVC encoder (1.0.0.44) works good for me on single DSP doing live stream for few days without any issues. But it doesn't work on multiple DSPs - produces wrong HEVC video and hangs after few process calls.
Here you can find logs and output (MPEG-TS stream) of HEVC running on 16 cores:
drive.google.com/.../view
Notes about the implementation:
- I implemented all the synchronization primitives reqested throug multicore API and required for multi-DSP algorithm
- I tested all the shared between both DSPs buffers - they really point to the same memory but addresses on different DSPs are different because of different OB registers usage.
- Output buffer is also the same shared between both DSPs.
- In logs you can see all keyCreate callbacks and their results.
- In logs you can see beginning of each process call: process inputID=1 outBuf=@64b9cbc4
- In logs you can see all shm sync callbacks.
- In logs you can see all read and write mailbox callbacks.
Questions:
1) Do you see any problems that cause the hang of encoder?
2) Why there is no shm sync callbacks that sync shared between DSP memory (DDR_CACHED)?
3) Mailbox write initates interrupt on another DSP. This interrupt callback terminates execution of process call task on aonther DSP and queries\reads mailboxes. Is any additional synchronization between process call taks and interrupt callback required?
Regards,
Andrey Lisnevich