Skip to content

Instantly share code, notes, and snippets.

@dannas
Last active September 1, 2016 06:31
Show Gist options
  • Save dannas/ee3830feaa6277dabc5deb88992b6e74 to your computer and use it in GitHub Desktop.
Save dannas/ee3830feaa6277dabc5deb88992b6e74 to your computer and use it in GitHub Desktop.
gstreamer pipeline stops prematurely

How determine which element in a pipeline, stops the pipeline?

  • Trying to play mp4 files on a ARM imx53 board.
  • End of life, no support from vendor.
  • Linux 3.9 with patches for VPU.
  • Custom gstreamer plugins developed by Pengutronix.

Video stops ~1.5s before end, independent of file size, but plays smoothly up until then.

What I've tried

  • Used Matroska container and mp4 container. Same result.
  • Enabled v4l2 debugging, but can't make heads or tails from the output.
  • Enabled gstreamer logging but drowning in output.
  • Used gst-debug-viewer, but still can't make sense of the output.

Questions

  • How can I find out how many frames each element has consumed?
  • Do we read all frames from the container?
  • Do we extract all frames from the h264 stream?
  • Do we send all frames to the video out device?
gst-launch-0.11 filesrc location=/mnt/writable/test.mp4 \
! qtdemux name=demux demux. \
! queue \
! h264parse \
! video/x-h264,stream-format=byte-stream,alignment=au \
! v4l2filter device=/dev/video/by-name/coda \
! v4l2sink device=/dev/video/by-name/vout overlay-top=15 overlay-left=160 overlay-width=1280 overlay-height=720
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment