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.

Issue in playback of recorded video on S-Video output

Hi,

We are observing some issues in playback of interlaced encoded video on S-Video output.

Steps:

--------

1. We recorded 480i video from DVD player in field separated mode and in buffer frame format.

2. Play the recorded video on S-Video using below command

echo 0 > /sys/devices/platform/vpss/display2/enabled
echo svideo > /sys/devices/platform/vpss/display2/output
echo 1 > /sys/devices/platform/vpss/display2/enabled

gst-launch filesrc location="sample.avi" ! avidemux name=demux ! queue ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)720,height=(int)480' ! v4l2sink device="/dev/video3"


Observation

----------------

Top field is seen 3/4th and bottom field is seen 1/4th of the display with some black bar on the top.

Expected

-------------

Both top field and bottom field to be played as a single complete frame without any separation.

Please help us in resolving this issue

Regards,

Geetha.M

  • Hello,

    Could you post a image of what you see on the display?

    Could you try to use omx_mdeiscaler instead of omx_scaler?


    There is one more issue when omx_h264dec +omx_mdeiscaler is used some artifacts could be observer.

    In gstreamer folder omx_h264dec . c file commend this line:
    // paramPort.format.video.nFrameHeight = height;
    replace it with:
    paramPort.format.video.nFrameHeight = (height + 15) & 0xFFFFFFF0;

    But after this change, it is require the caps filter to be set after the omx_mdeiscaler element.

    BR
    Margarita
  • Hi Margarita,

    Now video is getting displayed in full screen on S-Video output but video playback is getting stuck after using omx_mdeiscaler element,

    Let us know your input to resolve this issue.

    Regards,

    Geetha Rajammal.M

  • Hello,

    Could you post the pipeline which you used when you are seeing the video on full screen?
    Do you have the overlay package?

    BR
    Margarita
  • Hi Margarita,

    Gstreamer pipeline used to view video playback in full screen using omx_mdeiscaler on S-Video output,

    gst-launch filesrc location="sample.avi" ! avidemux name=demux ! queue ! h264parse ! omx_h264dec ! omx_mdeiscaler name=e e.src_00 ! 'video/x-raw-yuv,width=(int)720,height=(int)576' ! v4l2sink device="/dev/video3"

    Regards,

    Geetha Rajammal.M

  • Hello,

    Could you connect the second dei's output to fakesink?

    ....e.src_01 ! fakesink silent=true

    Let me know the result.

    Do you have the overlay package also?

    BR
    Margarita
  • Hi Margarita,

    As we are using v4l2sink for display, fakesink is not able to link with v4l2sink.

    When we tried with omx_videosink along with fakesink, video is not displayed in s-video output.

    Command for using omx_videosink for display
    ------------------------------------------------------------

    gst-launch filesrc location="sample.avi" ! "video/x-raw-yuv, format=(fourcc)NV12, width=1920, height=1080, framerate=25/1, buffer-count-requested=4" ! omx_mdeiscaler name=d d.src_01 ! 'video/x-raw-yuv, width=(int)720, height=(int)576' ! omx_tvp ! omx_ctrl display-mode=OMX_DC_MODE_PAL display-device=SD ! gstperf ! omx_videosink display-mode=OMX_DC_MODE_PAL display-device=SD sync=false d.src_00 ! fakesink silent=true -v

    Yes we have overlay package.

    Regards,
    Geetha Rajammal.M
  • Hello,



    But in this case you are not linking fakesink to v4l2sink at all.

    The omx_mdeiscaler element has two outputs. The first output provides 422 format could be connect to display element. The second output provides 420 format and could be connect to encoder. Since you are not using the encoder you should connect the second output to fakesink element.


    Here is example of omx_mdeiscaler :

    gst-launch filesrc location= 6557.ts ! mpegtsdemux ! video/x-h264 ! h264parse access-unit=true ! omx_h264dec ! omx_mdeiscaler name=d d.src_00 ! 'video/x-raw-yuv,width=1920,height=1080' ! omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! gstperf ! omx_videosink d.src_01 ! fakesink silent=true -v

    This is working on my side.

    You could try with v4l2sink device=/dev/videoXX



    BR
    Margarita