I am working with a TI8148 rev 3.0 on a custom board using the 5.05.01.04 EZSDK. My code is based on the OMX capture_encode example. The configuration is:
- the capture component is receiving RGB888 video on vin0 and producing YUV420 which is connected to the DEI input port.
- the DEI output port 0 is configured for YCbYCr and is connected to the display component
- the DEI output port 1 is configured for YUV420 and is connected to the H.264 encoder
As long as I configure the DEI input and output frame size to be the same, it works fine. I can also configure DEI output port 0 to a different frame size, it up-scales or down-scales as expected and still works fine. However if I set DEI output port 1 to scale either up or down, the DEI component refuses to process any input frames. I have tried 720P->1080P, 720P->480P, 1080P->720P and the result is always the same. It gets through the component initialization and start sequence but never produces a single buffer empty completion even though many buffers have been passed to it.
I have tried swapping assignment of the ports and dei still hangs when scaling is requested on output port 1.
This code worked on a Ti8168, so I believe that the configuration is correct. The one difference is that capture was receiving YUV data on the 8168 version, but I assume that shouldn't matter since its still YUV420 by the time it gets to the DEI.
So is there some limitation on the 8148 part that would prevent this from working? If so, is there some other method to up-scale and down-scale the video for the h.264 encoder?
One other note, I have cranked up the clocks to the OPP166 rates for the most part.
Thanks in advance for any help you can provide.