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.

DM8148, gstreamer playback pace

We are using the DM8148 EVM with ezsdk 5.04 and trying to use gstreamer.

With the following pipelines:

record:

gst-launch videotestsrc is-live=true ! video/x-raw-yuv,framerate=60/1 ! \
clockoverlay auto-resize="0" shaded-background=true time-format="%y %j %H:%M:%S" ! \
gstperf ! omx_h264enc ! mpegtsmux ! filesink location=test.tsmux

playback:

gst-launch filesrc location=test.tsmux ! mpegtsdemux ! \
 h264parse access-unit=true ! \
omx_h264dec ! omx_scaler ! video/x-raw-yuv,width=800,height=480 ! \
omx_ctrl display-mode=OMX_DC_MODE_1080P_60 display-device=LCD ! gstperf ! omx_videosink sync=false display-device=LCD

The test pattern is recorded and played back and the clock in the image seems to be playing at the right speed. The output of gstperf shows about 60 frames a second
both record and playback.

If the record is changed from framerate=60/1 to framerate=30/1, then the record shows 30 frames a second but the playback still shows 60 frames a second.

Is timing information supposed to be associated with the recording so that the playback can be done at the right speed? Do the pipelines need to be altered to make this happen?

Thanks.

  • Hi john,

    The playback frame rate will always be at 60fps regardless of the record frame rate. To set the playback frame rate to match the record frame rate, you need to use the 'videorate' plugin followed by a caps filter. So to set the playback frame rate to 30fps:

    gst-launch filesrc location=test.tsmux ! mpegtsdemux ! \
    h264parse access-unit=true ! \
    omx_h264dec ! omx_scaler ! video/x-raw-yuv,width=800,height=480 ! \
    omx_ctrl display-mode=OMX_DC_MODE_1080P_60 display-device=LCD ! \

    videorate ! 'video/x-raw-yuv,framerate=30/1' ! \

    gstperf ! omx_videosink sync=false display-device=LCD

    Hope this helps.

  • I am trying to use the videorate using the following command

    gst-launch -v filesrc location=TATA_Video.m4v \
    ! mpeg4videoparse ! omx_mpeg4dec ! omx_scaler \
    ! omx_ctrl display-mode=OMX_DC_MODE_1080P_30 \
    ! videorate silent=false ! 'video/x-raw-yuv,framerate=25/1' \
    ! gstperf ! omx_videosink

    I get the first frame but then nothing with 100% cpu utilization.

    The video was recorded at 25 frames per second. I also tried v4l2sink instead of omx_videosink too

    gst-launch -v filesrc location=TATA_Video.m4v \
     ! mpeg4videoparse ! omx_mpeg4dec ! omx_scaler ! videorate ! 'video/x-raw-yuv,framerate=(fraction)25/1' \
     ! v4l2sink sync=false

    This too shows the first frame and then nothing however the cpu utilization in the second case is negligible.

    Thanks

    Kaushik

  • Hello,

    What is the software release, that you are using here?

    Could you attach this video?

    Best Regards,

    Margarita

  • ezsdk_5_03_01_15

    The video is only a sequence of mpeg4 frames.

    Uploaded the file available at https://docs.google.com/open?id=0B_aSbD5y7t-CNEl2cFpGaHJVelk

  • Hello,

    I can not download it.

    Ezsdk_5_03_01_15:

    I tried  .m4v video file with this pipeline:

    gst-launch --gst-debug=3 --verbose -e filesrc location=/usr/share/ti/data/videos/2.m4v ! qtdemux name=demux demux.audio_00 ! queue ! faad ! alsasink demux.video_00 ! queue ! h264parse access-unit=true ! ffdec_h264 ! ffmpegcolorspace !  omx_ctrl display-mode=OMX_DC_MODE_1080P_60 ! gstperf ! omx_videosink

    Let me know the result.

    Best Regards,

    Margarita

  • I am sorry I will find a better way to upload the file. 

    Meanwhile a generic question, is videorate supported for dm814x and if yes does it have restrictions which i should be aware of.

    Regards,

    Kaushik