This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

Problem with OMX Scalar component

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.h264
bit_rate: 1000000
frame_rate: 30
num_frames: 1000
mode: 1080p
display_id: 0
 Capture-Encode example
===============================
 OMX_Init completed
 UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
UIAClient is ready to send a UIA configuration command
UIAClient received UIA_CONFIGURE_ACK
UIAClient is done sending requests
 openeing file
 capture compoenent is created
 control TVP compoenent is created
Buffer Size computed: 3110400
set 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 1
got 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.DC
found handle 0x13d2b0 for component OMX.TI.VPSSM3.VFDC
 got display handle
found handle 0x140db8 for component OMX.TI.VPSSM3.CTRL.DC
Buffer Size computed: 4147200
set input port params (width = 1920, height = 1080)setting input and output memory type to defaultBuffer Size computed: 17280
set 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 VFDC
got 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 component
got 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