gst-play does not go to PLAYING when using hardware decoder sinks

Sachs Jürgen Sachs.Juergen at metz-ce.de
Fri Oct 14 10:26:26 UTC 2016


Hallo together,
we are developing gstreamer sink-elements to support hardware decoders. That is, we do not need to use some kind of image sink, instead we feed the _encoded_ data directly into hardware. 

Now, when using gst-play-1.0 to render a file, we get unexpected behavior:
- when invoking gst-play with the parameters --videosink/audiosink the file is played as expected:
   # gst-play-1.0 --videosink=fakedecodervideo --audiosink=fakedecoderaudio <somefile>

- when invoking without this parameters, 
   # gst-play-1.0 <somefile>
the pipeline stops after prerolling/buffering.

Does anybody have an idea, why the playbin does not go to the running state?

In the failure case I see the following output from gst-play
  Now playing <somefile>
  Prerolling...
  Buffering... 100%
  <nothing more>
Our decoder element keep in pause state.

To eliminate all decoder-related effects, I have written two very simple "fake"-decoder elements:
- derived from GstBaseSink
- reporting proper caps ("video/...", audio/...")
- implementing start, stop, set_caps and render, mainly for debug trace - no real functionality inside

With this elements the behavior is the same. 
Does somebody have an idea, what's going wrong?

Attached is a file with 
 - gst-inspect output of our fake-elements
 - pipeline image for both cases
 
 Kind regards
 Juergen
-------------- next part --------------
A non-text attachment was scrubbed...
Name: fakedecoder-gst-play-hangs.zip
Type: application/x-zip-compressed
Size: 804508 bytes
Desc: fakedecoder-gst-play-hangs.zip
URL: <https://lists.freedesktop.org/archives/gstreamer-devel/attachments/20161014/e4bb0a7e/attachment-0001.bin>


More information about the gstreamer-devel mailing list