This is a cache of https://discuss.96boards.org/t/gstreamer-decode/2059. It is a snapshot of the page at 2024-10-31T05:52:33.350+0000.
Gstreamer decode - <strong>dragonboard</strong> 820c - 96Boards Forum

Gstreamer decode

I am trying to decode and play some mpeg files I downloaded.

I run gst-launch-1.0 -v filesrc location=ducks_take_off_420_720p50.y4m ! y4mdec ! videoconvert ! ‘video/x-raw(memory:NVMM), format=I420’ ! xvimagesink

WARNING: erroneous pipeline: could not link videoconvert0 to xvimagesink0

hi,

memory:NVMM is a custom caps feature which is valid/application only on NVidia target (I haven’t checked the details, but probably to instruct Gstreamer to allocate GPU memory), and it is meaningless on other platforms. If you remove the caps features, it should work, can you confirm?

linaro@linaro-developer:~$ gst-launch-1.0 -v filesrc location=ducks_take_off_420_720p50.y4m ! y4mdec ! videoconvert ! ‘video/x-raw, format=I420’ ! xvimagesinkSetting pipeline to PAUSED …
Pipeline is PREROLLING …
/GstPipeline:pipeline0/GstY4mDec:y4mdec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1280, height=(int)720, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)50/1
ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data stream error.
Additional debug info:
gstbasesrc.c(2950): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:
streaming stopped, reason not-negotiated (-4)
ERROR: pipeline doesn’t want to preroll.
Setting pipeline to NULL …
Freeing pipeline …
linaro@linaro-developer:~$

Odd! With this command line I am able to playback just fine.

I’m using snapshot #56 (last snapshot with the v4.9 kernel) and prepared for OpenGL using the instructions in the wiki. In other words I have upgraded from stretch to sid and than grabbed mesa from experimental…

Having said that, the pipeline is all software so I was able to dig out my db410c (running the 17.04.1 release; v4.9 + stretch) and, after installing gstreamer1.0-x to get the xvimagesink element was also able to playback fine here.

How did you update your board to get the GUI running (and what snapshot did you start from)?

This is what I have. The board is an 820c.
linaro@linaro-developer:~$ uname -a
Linux linaro-developer 4.9.0-rc4-linaro-lt-qcom #1 SMP PREEMPT Tue May 2 15:03:36 UTC 2017 aarch64 GNU/Linux

linaro@linaro-developer:~$ gst-inspect-1.0 --version
gst-inspect-1.0 version 1.10.4
GStreamer 1.10.4
http://packages.qa.debian.org/gstreamer1.0
linaro@linaro-developer:~$

Started over. Reinstalled the snapshot #60. Followed the Wiki to install mesa. I have no gst-inspect or gst-launch.

Looks like this 820c gstreamer is still in beta. Any documentation on how a default setup should be done?

As discussed elsewhere #60 is based on v4.11 and may not have hardware encoders present (that’s why I based all my tests on #56 which is the last snapshot based on v4.9).

Not only is gStreamer still in beta; the whole of the software for dragonboard 820c is still in beta (we’ve written “dragonboard 820c is not yet commercially available and is in beta testing only. Please expect limited documentation and support until further notice.” in as many places as we possibly can :wink: ).

To install gst-launch-1.0 you need:
sudo apt install gstreamer1.0-tools

Installed #56. The ethernet interface doesn’t work.

I had no problems with ethernet using this release… everything configured via DHCP out-of-the-box.

Can you put your boot logs in a pastebin?