Hi all,<br><br>I am having an issue with the speed of playback of an MPEG transport stream. This is running on a TI 8148 EVM.<br><br>One pipeline is used to produce a test pattern, do H264 encoding, wrap it in an MPEG transport stream and then write it to a file. <br>
<br>A second pipeline is then used to read the file, demux the video stream, do the H264 decoding and play the video on the LCD display. The video looks ok but it is going too fast. The test pattern was generated at 30 frames a second and the output is played at 60 frames a second. The transport stream has presentation timestamps that look accurate for 30 frames a second. It was assumed that these timestamps would be used in the decode and play but it doesn't seem to be happening. Is there a parameter needed or a special element needed in order to pay attention to the timestamps and just play the frames at the same rate they were produced?<br>
<br>The recording pipeline and the output from "gstperf" which shows how many frames are being processed:<br><br>=================================<br><pre>root@dm814x-evm:~# gst-launch videotestsrc num-buffers=600 is-live=true do-timestamp=true ! video/x-raw-yuv,format='(fourcc)NV12
',width=400,height=240,framerate=30/1 ! gstperf ! timeoverlay auto-resize="0" shaded-background=true ! omx_h264enc profile=2 for
ce-idr-period=4 bytestream=true ! mpegtsmux ! filesink location=jwp.600.30.4.idr.264.ts
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
perf0: frames: 32       current: 30.98   average: 30.98 arm-load: 16
perf0: frames: 63       current: 30.02   average: 30.50 arm-load: 79
perf0: frames: 93       current: 29.99   average: 30.33 arm-load: 80
perf0: frames: 124      current: 29.99   average: 30.25 arm-load: 81
perf0: frames: 155      current: 30.01   average: 30.20 arm-load: 79
perf0: frames: 185      current: 29.99   average: 30.17 arm-load: 80
perf0: frames: 216      current: 30.01   average: 30.14 arm-load: 80
perf0: frames: 246      current: 30.00   average: 30.13 arm-load: 80
perf0: frames: 276      current: 29.99   average: 30.11 arm-load: 85
perf0: frames: 307      current: 30.01   average: 30.10 arm-load: 82
perf0: frames: 337      current: 30.00   average: 30.09 arm-load: 79
perf0: frames: 367      current: 29.98   average: 30.08 arm-load: 77
perf0: frames: 398      current: 30.00   average: 30.08 arm-load: 77
perf0: frames: 429      current: 30.00   average: 30.07 arm-load: 77
perf0: frames: 459      current: 29.99   average: 30.07 arm-load: 78
perf0: frames: 489      current: 30.00   average: 30.06 arm-load: 79
perf0: frames: 520      current: 30.01   average: 30.06 arm-load: 77
perf0: frames: 551      current: 29.99   average: 30.06 arm-load: 74
perf0: frames: 582      current: 30.02   average: 30.05 arm-load: 79
Recieved EOS event, press <CTRL+C> to terminate pipeline.
Got EOS from element "pipeline0".
Execution ended after 19996928300 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@dm814x-evm:~#</pre><br>=================================<br><br>The playback pipeline and output:<br><br><br>==================================<br><pre>root@dm814x-evm:~# gst-launch filesrc location=jwp.600.30.4.idr.264.ts ! mpegtsdemux  ! queue ! h264parse access-unit=true ! omx
_h264dec  use-timestamps=true ! gstperf  ! omx_scaler ! video/x-raw-yuv,width=800,height=480 ! omx_ctrl display-mode=OMX_DC_MODE
_1080P_60 display-device=LCD ! omx_videosink sync=false display-device=LCD
Setting pipeline to PAUSED ...
Pipeline is PREROLLING ...

(gst-launch-0.10:1481): GStreamer-CRITICAL **: _gst_util_uint64_scale_int: assertion `denom > 0' failed
Pipeline is PREROLLED ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
perf0: frames: 61       current: 60.59   average: 60.59 arm-load: 13
perf0: frames: 122      current: 60.25   average: 60.42 arm-load: 10
perf0: frames: 183      current: 60.26   average: 60.37 arm-load: 9
perf0: frames: 244      current: 60.26   average: 60.34 arm-load: 8
perf0: frames: 305      current: 60.26   average: 60.32 arm-load: 11
perf0: frames: 366      current: 60.26   average: 60.31 arm-load: 14
perf0: frames: 427      current: 60.26   average: 60.30 arm-load: 13
perf0: frames: 488      current: 60.26   average: 60.30 arm-load: 12
perf0: frames: 549      current: 60.26   average: 60.29 arm-load: 19
Recieved EOS event, press <CTRL+C> to terminate pipeline.
Recieved EOS event, press <CTRL+C> to terminate pipeline.
Got EOS from element "pipeline0".
Execution ended after 9703074850 ns.
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...
root@dm814x-evm:~#</pre><br>==================================<br><br>Any suggestions as to arguments that might fix this would be appreciated.<br><br>Thanks.<br><br clear="all">John Pruitt<br><br><br>