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.

Setting HDMI resolution to 720P60 on 8168 EVM

Hi all,

I am trying to set 720P60 resolution on 8168 EVM by making the following changes in load-hd-firmware.sh

1) Changed 1080p-60 resolution to 720p-60 while loading the vpss module

      i.e. modprobe vpss sbufaddr=0xBFB00000 mode=hdmi:720p-60,dvo2:720p-60,hdcomp:720p-60 i2c_mode=1

I am able to get the matrix UI on HDMI display but unable to run any video.I have used the following pipeline for playing the video:

root@dm816x-evm:/usr/share/ti/data/videos# gst-launch-0.10 -v --gst-debug=omx:* filesrc location="rumor_has_it_h480p_h264.mp4" ! qtdemux name=demux demux.audio_00 ! queue ! faad ! alsasink demux.video_00 ! queue ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)1280,height=(int)720' ! omx_ctrl display-mode=OMX_DC_MODE_720P_60 ! omx_videosink

Gstreamer gives the following error:

unrecoverable error: One or more parameters were not valid (0x80001005)

Please find attached logs for complete gstreamer output.

root@dm816x-evm:/usr/share/ti/data/videos# gst-launch-0.10 -v --gst-debug=omx:* filesrc location="rumor_has_it_h480p_h264.mp4" ! qtdemux name=demux demux.audio_00 ! queue ! faad ! alsasink demux.video_00 ! queue ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)1280,height=(int)720' ! omx_ctrl display-mode=OMX_DC_MODE_720P_60 ! omx_videosink
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:sink: caps = video/x-h264, level=(string)3, profile=(string)constrained-baseline, codec_data=(buffer)0142e01effe1001e6741
/GstPipeline:pipeline0/GstQueue:queue1.GstPad:src: caps = video/x-h264, level=(string)3, profile=(string)constrained-baseline, codec_data=(buffer)0142e01effe1001e67421
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:sink: caps = video/x-h264, level=(string)3, profile=(string)constrained-baseline, codec_data=(buffer)0142e01effe1
/GstPipeline:pipeline0/GstH264Parse:h264parse0.GstPad:src: caps = video/x-h264, level=(string)3, profile=(string)constrained-baseline, width=(int)720, height=(int)480u
/GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:sink: caps = video/x-h264, level=(string)3, profile=(string)constrained-baseline, width=(int)720, height=(int)u
/GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:sink: caps = video/x-h264, level=(string)3, profile=(string)constrained-baseline, width=(int)720, height=(int)u
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-prof2
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profi2
/GstPipeline:pipeline0/GstOmxH264Dec:omxh264dec0.GstPad:src: caps = video/x-raw-yuv-strided, width=(int)720, height=(int)480, format=(fourcc)NV12, rowstride=(int)896,e
/GstPipeline:pipeline0/GstFaad:faad0.GstPad:sink: caps = audio/mpeg, mpegversion=(int)4, framed=(boolean)true, stream-format=(string)raw, level=(string)2, base-profil2
/GstPipeline:pipeline0/GstFaad:faad0.GstPad:src: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)48000, ch2
Stream is corrupt error, ignorable ... 
/GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:sink: caps = video/x-raw-yuv-strided, width=(int)720, height=(int)480, format=(fourcc)NV12, rowstride=(int)896, e
/GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:sink: caps = video/x-raw-yuv-strided, width=(int)720, height=(int)480, format=(fourcc)NV12, rowstride=(int)896, e
/GstPipeline:pipeline0/GstOmxScaler:omxscaler0.GstPad:src: caps = video/x-raw-yuv, width=(int)1280, height=(int)720, format=(fourcc)YUY2, framerate=(fraction)45000/18e
/GstPipeline:pipeline0/GstAlsaSink:alsasink0.GstPad:sink: caps = audio/x-raw-int, endianness=(int)1234, signed=(boolean)true, width=(int)16, depth=(int)16, rate=(int)2
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:src: caps = video/x-raw-yuv, width=(int)1280, height=(int)720, format=(fourcc)YUY2, framerate=(fraction)45000/e
/GstPipeline:pipeline0/GstCapsFilter:capsfilter0.GstPad:sink: caps = video/x-raw-yuv, width=(int)1280, height=(int)720, format=(fourcc)YUY2, framerate=(fraction)45000e
/GstPipeline:pipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:src: caps = video/x-raw-yuv, width=(int)1280, height=(int)720, format=(fourcc)YUY2, framerate=(fraction)4500e
/GstPipeline:pipeline0/GstOmxBaseCtrl:omxbasectrl0.GstPad:sink: caps = video/x-raw-yuv, width=(int)1280, height=(int)720, format=(fourcc)YUY2, framerate=(fraction)450e
gstomx_videosink.c:347 OMX_SetParameter CALLED 
/GstPipeline:pipeline0/GstOmxVideoSink:omxvideosink0.GstPad:sink: caps = video/x-raw-yuv, width=(int)1280, height=(int)720, format=(fourcc)YUY2, framerate=(fraction)4e
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstAudioSinkClock
unrecoverable error: One or more parameters were not valid (0x80001005)



Can anyone suggest what could be the issue?

Thanks,

Amol

  • Hi Amol,

    Looks pipeline error.

    Can you check with v4l2sink plugin are you able to play.

    execute below commands on target.

    cd /lib/modules/2.6.37/kernel/drivers/media/video/ti81xx/

    insmod ti81xxvo.ko

    gst-launch-0.10 -v --gst-debug=omx:* filesrc location="/gst/bft/H264/Cats.mp4" ! qtdemux name=demux demux.audio_00 ! queue ! faad ! alsasink demux.video_00 ! queue ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)1280,height=(int)720' ! v4l2sink

    Regards

    Santosh Avati


  • Hi Amol,

    I'm able to reproduce your issue. Basically what happening is,  omx_videosink display-mode is default set to OMX_DC_MODE_1080P_60 but resolution is changed to 720p60.

    please execute below modified pipeline using  omx_videosink on target
    gst-launch-0.10 -v --gst-debug=omx:* filesrc location="rumor_has_it_h480p_h264.mp4" ! qtdemux name=demux demux.audio_00 ! queue ! faad ! alsasink demux.video_00 ! queue ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)1280,height=(int)720' ! omx_ctrl display-mode=OMX_DC_MODE_720P_60 ! omx_videosink display-mode=OMX_DC_MODE_720P_60

    and for using vl4l2
    cd /lib/modules/2.6.37/kernel/drivers/media/video/ti81xx/
    insmod ti81xxvo.ko
    gst-launch-0.10 -v --gst-debug=omx:* filesrc location="rumor_has_it_h480p_h264.mp4" ! qtdemux name=demux demux.audio_00 ! queue ! faad ! alsasink demux.video_00 ! queue ! h264parse ! omx_h264dec ! omx_scaler ! 'video/x-raw-yuv,width=(int)1280,height=(int)720' ! v4l2sink

    Regards
    SAntosh Avati

  • Thanks Santosh,

    That worked. I tried with omx_videosink display-mode=OMX_DC_MODE_720P_60 and it worked fine. I have few queries regarding the multiple display capability of 816x. Is it possible to perform the following operations:

    1) Decode a single video and display it simultaneously on all 3 HD displays (HDMI,DVO,HDCOMP) and the SD display as well (after downscaling).

    2) Decode multiple videos (for e.g. 3 videos) and display each video separately on each display. For e.g. HDMI displays video 1, DVO displays video 2 and HDCOMP displays video 3.

    3) Also is it possible to display video on one output i.e. HDMI and graphics on another i.e on DVO or HDCOMP.

    Is it possible to achieve the above using gstreamer? Can you provide some example pipelines if possible.

    -Amol

  • Hi Amol ,

    I’m not sure about these features. Can you post this question on separate forum thread so that other guys can see and replay. Meanwhile I’ll check internally

    Thanks and regards

    Santosh Avati

  • Not an issue. I have posted a new query on the following http://e2e.ti.com/support/dsp/davinci_digital_media_processors/f/100/t/168428.aspx#614646 regarding multiple displays. In the meantime I will try with the options provided in the VPSS Video user guide.

    Thanks.

    Amol