Other Parts Discussed in Thread: OMAP3530
Hi,
I'm trying to take advantage of the Motion Vector Access API in the H.264 Encoder for the OMAP35. It is supposed to supply an array containing the motion vectors that the encoder found while encoding the frame. However, it simply doesn't work.
The codec I'm using is named H.264 Baseline Profile Encoder, Build ID 2.01.013, and is located within the DVSDK at the path:
dvsdk_3_00_02_44/cs1omap3530_1_00_01/packages/ti/sdo/codecs/h264enc .
The Motion Vector Access API is detailed thoroughly in Appendix A of the included User Guide. However, when trying to activate it, none of the expected outcomes described there actually occur. That is, when setting dynParams.mvDataEnable = 1, the number of requested output buffers (from the codec) is supposed to change from 1 to 2 but it does not. Even if ignoring that problem and giving the encoder two buffers, the encoder process call does not fill the second buffer with vector data.
I have tried upgrading to the latest version of the codec from the TI website, 2.02.00. With that version the number of buffers still does not change correctly, but if I ignore that, and give the encoder two buffers anyway, then I do get some numbers - but they don't look correct. For example, the first 10 vectors received appear as follows:
(0,-2)(0,0)(1429,0)(5,3)(0,0)(4603,0)(5,3)(0,66)(8556,0)(4,2)
Note the large numbers every 3 pairs.
Also for some unknown reason this new codec (which is for the DM6446 and is supposed to work with the OMAP3530) runs extremely slowly, at about half realtime speed (approx 80 msec per PAL D1 frame as opposed to ~40 with the current version). I only replaced the codec directory with the new one, the files determining memory layout etc. were not changed.
Thanks for any help,
-itay