Hi ,
I am working on DM8148 EVM ,i am using EZSDK 5.03 .I am trying to develop an OMX application for displaying video simultaneously on HDMI and LCD displays .
I am considering OMX Capture-Encode demo for doing this .
I have connected the OMX components in this way
VFCC->DEI->port0->VFDC->HDMI
DEI->port1->Scalar->VFDC->LCD
->VENC->H264 encoded file .
I have written an OMX application (Capture_Display_HDMI_LCD) which connects the above components .when i run this application the Scalar component is not going into IDLE state .
Below is the OMX application log
./capture_display_hdmi_lcd_a8host_debug.xv5T -o sample.h264 -m 1080p -f 30 -b 1000000 -d 0 -n 1000 output file: sample.h264bit_rate: 1000000frame_rate: 30num_frames: 1000mode: 1080pdisplay_id: 0 Capture-Encode example =============================== OMX_Init completed UIAClient is ready to send a UIA configuration commandUIAClient received UIA_CONFIGURE_ACKUIAClient is done sending requestsUIAClient is ready to send a UIA configuration commandUIAClient received UIA_CONFIGURE_ACKUIAClient is done sending requests openeing file capture compoenent is created control TVP compoenent is created Buffer Size computed: 3110400set input port params (width = 1920, height = 1080) applying skip mask enable capture output port got eventEnable/Disable Event dei compoenent is created set input port params (width = 1920, height = 1080) set output port params (width = 1920, height = 1080)set output port params (width = 1920, height = 1080)set number of channe got eventEnable/Disable Event enable dei output port 0 got eventEnable/Disable Event enable dei output port 1 got eventEnable/Disable Event scalar compoenent is created set input port params (width = 1920, height = 1080) set output port params (width = 800, height = 480) set output port params (width = 1920, height = 1080) set number of channels set input resolution set output resolution enable scalar input port got eventEnable/Disable Event enable scalar output port 1got eventEnable/Disable Event enable scalar output port 2 got eventEnable/Disable Event encoder compoenent is created found handle 0x135f20 for component OMX.TI.VPSSM3.VFDC got display handle found handle 0x139a28 for component OMX.TI.VPSSM3.CTRL.DCfound handle 0x13d2b0 for component OMX.TI.VPSSM3.VFDC got display handle found handle 0x140db8 for component OMX.TI.VPSSM3.CTRL.DCBuffer Size computed: 4147200set input port params (width = 1920, height = 1080)setting input and output memory type to defaultBuffer Size computed: 17280set input port params (width = 1920, height = 1080)setting input and output memory type to defaultenable input port got eventEnable/Disable Event enable input port for LCD VFDCgot eventEnable/Disable Event connect call for capture-Dei connect call for dei-scalar connect call for dei-display connect call for scalar-LCD VFDC comp connect call for scalar-encode componentgot eventState changed to: OMX_StateIdle Capture outport buffers allocated got eventState changed to: OMX_StateIdle Capture is in IDLE state Dei input port use buffer done DEI outport buffers allocated got eventState changed to: OMX_StateIdle DEI is in IDLE state Scalar input port use buffer done scalar outport buffers allocated
Here are my questions .
1. Can the Scalar component have two output ports?
2. Does the Scalar component take only YUV420SP video data format as an input ?
3. how should i connect the VENC component to the output port of Scalar ,if it does the chroma conversion from YUV420SP to YUV422I ?As the VENC Component expects YUV420SP video data format at its input port .
4. Why the Scalar component in the above use case is not going into IDLE state?
Can anyone help me out to get a better understanding of Scalar component .any help is appreciated .
Thanks,
N Sivaramkrishna .
Neeruganti,
1. I don't know this for a fact, but I don't think that you can get two outputs from one input on the scaler. I think input 0 goes with output 0, input 1 with output 1, etc. If you enabled input 0, but output 0 and 1, that may explain why you don't get to the idle state.
2. I have been able to feed both YUV420SP and YCbCr input on the scalar with the 8148. With the 8168, the scaler does not transition to idle when I specify a YCbCr as an input format. It only seems to work with YUV420SP.
3. I don't think connecting the VENC to the same Scalar output as the VFDC will work. If the scaler can output YUV420SP (which I have not tested) you could probably connect two inputs of the scaler (port 0 and port 1) to Dei port 1 (you can do this by doing OMX_UseBuffer with the same buffers for both scaler input an dpassing the Dei port1 output buffer to both scaler inputs). You could configure channel 0 of the scaler to the VFDC and channel 1 to the VENC. This assumes you can set output 1 of the scaler to be YUV420SP.
4. See #1.
Bernard