Full HD with gst-omx on Raspberry Pi?

classic Classic list List threaded Threaded
25 messages Options
12
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Full HD with gst-omx on Raspberry Pi?

munezbn.dev
Ok. Let me try latest rpi-userland . Other requirements looks fine to me. Since I am using buildroot release version ( Not git master) It has some old version of rpi-userland.
Even the config.txt which is used in buildroot, barely has anything in it. That will be the next thing which I have to try if it is not solved with latest userland.

Additionally I will try to get complete GST log and upload here

Thanks 
Munez

On Wed, Oct 19, 2016 at 4:09 PM, Matthew Waters <[hidden email]> wrote:
On 19/10/16 20:04, munez bn wrote:
Hi Matt,

After searching both for omx and GLMem and the output was like below. So little confused now because glupload element uses GLMemory.
regarding other requirements, I have cross checked everything excepet latest rpi-userland and there are no issues. Only thing which I have try now is using latest rpi-userland, I didn't try it because with same firmware omxplayer works fine. Second point which I need to verify is config.txt  .. Since I am buildroot

Yes, glupload is uploading the system memory from the decoder when the decoder should be producing memory:GLMemory buffers for zerocopy.  This download/reupload across the memory bus is what is killing your performance.

Cheers
-Matt


 gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v video-sink=glimagesink | grep "omx\|GLMem" 
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink: caps = video/x-h264, stream-format=(string)byte-stream, alignment=(string)au, level=(string)4, profile=(string)main, width=(int)1920, height=(int)800, framerate=(fraction)24/1, pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true 
/GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src: caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1 
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLUploadElement:gluploadelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1, texture-target=(string)2D 
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D 
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:src: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D 
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLImageSink:sink.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D 
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorBalance:glcolorbalance0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)RGBA, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, framerate=(fraction)24/1, texture-target=(string)2D 
/GstPlayBin:playbin0/GstPlaySink:playsink/GstBin:vbin/GstGLImageSinkBin:glimagesinkbin0/GstGLColorConvertElement:glcolorconvertelement0.GstPad:sink: caps = video/x-raw(memory:GLMemory), format=(string)I420, width=(int)1920, height=(int)800, interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1, chroma-site=(string)mpeg2, colorimetry=(string)bt709, framerate=(fraction)24/1, texture-target=(string)2D 


Thanks & Regards
munez

On Wed, Oct 19, 2016 at 12:41 PM, Matthew Waters <[hidden email]> wrote:
On 19/10/16 12:10, munezbn.dev wrote:
> Ahh i think i is not using GLmemory copy .. What could be the issue ?

Double check that you meet the requirements set out earlier, otherwise
look through the GStreamer debug logs for why it's not negotiating
memory:GLMemory.

Cheers
-Matt

> # gst-launch-1.0 playbin uri=file:/mnt/tears_of_steel_1080p.mov -v | grep
> omx
> /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:sink:
> caps = video/x-h264, stream-format=(string)byte-stream,
> alignment=(string)au, level=(string)4, profile=(string)main,
> width=(int)1920, height=(int)800, framerate=(fraction)24/1,
> pixel-aspect-ratio=(fraction)1/1, parsed=(boolean)true
> /GstPlayBin:playbin0/GstURIDecodeBin:uridecodebin0/GstDecodeBin:decodebin0/GstOMXH264Dec-omxh264dec:omxh264dec-omxh264dec0.GstPad:src:
> caps = video/x-raw, format=(string)I420, width=(int)1920, height=(int)800,
> interlace-mode=(string)progressive, pixel-aspect-ratio=(fraction)1/1,
> chroma-site=(string)mpeg2, colorimetry=(string)bt709,
> framerate=(fraction)24/1
>
>
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Full-HD-with-gst-omx-on-Raspberry-Pi-tp4667414p4680110.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>





_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Full HD with gst-omx on Raspberry Pi?

munezbn.dev
Hi I have uploaded 2 logs here. Kindly have a look as i am not able to find the root cause . One is with -v option and other one with GST_DEBUG=4

gst-omx-hd-playback.txt
gst-omx-hd-playback-gst-debug-4.txt

1] Fetched recent stable version of rpi-userland (2016-10-19 15:57:18 (GMT))
    RPI_USERLAND_VERSION = a1b89e91f393c7134b4cdc36431f863bb3333163

2] Using Gstreamer version 1.9.90 ad gst-omx version 1.9.90

3] gst1-lugins-bad is configured by buildroot  with

./configure --target=arm-buildroot-linux-gnueabihf --host=arm-buildroot-linux-gnueabihf --build=i686-pc-linux-gnu --prefix=/usr --exec-prefix=/usr --sysconfdir=/etc --localstatedir=/var --program-prefix= --disable-gtk-doc --disable-gtk-doc-html --disable-doc --disable-docs --disable-documentation --with-xmlto=no --with-fop=no --disable-dependency-tracking --enable-ipv6 --disable-static --enable-shared --disable-examples --disable-valgrind --disable-directsound --disable-wsapi --disable-direct3d --disable-direct3d9 --disable-winks --disable-android_media --disable-apple_media --disable-sdltest --disable-wininet --disable-acm --disable-avc --disable-opensles --disable-uvch264 --disable-voamrwbenc --disable-bs2b --disable-chromaprint --disable-dash --disable-dc1394 --disable-dts --disable-resindvd --disable-faac --disable-flite --disable-gsm --disable-fluidsynth --disable-kate --disable-ladspa --disable-lv2 --disable-libde265 --disable-strp --disable-linsys --disable-modplug --disable-mimic --disable-mplex --disable-nas --disable-ofa --disable-openexr --disable-openni2 --disable-pvr --disable-libvisual --disable-timidity --disable-teletextdec --disable-wildmidi --disable-smoothstreaming --disable-soundtouch --disable-spc --disable-gme --disable-xvid --disable-vdpau --disable-sbc --disable-schro --disable-zbar --disable-rtmp --disable-spandsp --disable-gsettings --disable-sndio --disable-hls --disable-gtk3 --disable-qt --disable-opengl --enable-gles2 --disable-glx --enable-egl --disable-x11 --enable-wayland --enable-dispmanx --disable-bluez --disable-accurip --disable-adpcmdec --disable-adpcmenc --disable-aiff --disable-asfmux --disable-audiofxbad --disable-audiomixer --disable-compositor --disable-audiovisualizers --disable-autoconvert --disable-bayer --disable-camerabin2 --disable-cdxaparse --disable-coloreffects --disable-dataurisrc --disable-dccp --disable-debugutils --disable-dtls --disable-dvbsuboverlay --disable-dvdspu --disable-faceoverlay --disable-festival --disable-fieldanalysis --disable-freeverb --disable-frei0r --disable-gaudieffects --disable-geometrictransform --disable-gdp --disable-hdvparse --enable-id3tag --disable-inter --disable-interlace --disable-ivfparse --disable-ivtc --disable-jp2kdecimator --disable-jpegformat --disable-librfb --disable-liveadder --disable-midi --disable-mpegdemux --disable-mpegtsdemux --disable-mpegtsmux --disable-mpegpsmux --disable-mve --disable-mxf --disable-netsim --disable-nuvdemux --disable-onvif --disable-patchdetect --disable-pcapparse --disable-pnm --disable-rawparse --disable-removesilence --enable-rtmp --disable-sdi --disable-sdp --disable-segmentclip --disable-siren --disable-smooth --disable-speed --disable-subenc --disable-stereo --disable-tta --disable-videofilters --disable-videoframe_audiolevel --disable-videomeasure --enable-videoparsers --disable-videosignal --disable-vmnc --disable-y4m --disable-yadif --disable-shm --disable-vcd --disable-apexsink --disable-assrender --disable-voaacenc --disable-bz2 --disable-curl --disable-dash --disable-decklink --disable-webp --disable-directfb --disable-faad --disable-fbdev --disable-libmms --disable-mpeg2enc --disable-musepack --disable-neon --disable-openal --disable-opencv --disable-openh264 --disable-openjpeg --disable-opus --disable-rsvg --enable-gl --disable-sdl --disable-sndfile --disable-dvb --disable-hls --disable-x265

4] gpu_mem is set 386

Still same issue.

Thanks & Regards
Munez
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Full HD with gst-omx on Raspberry Pi?

munezbn.dev
I tried looking into log but couldn't find anything..

any pointer would be appreciated ..

Thanks
Munez
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Full HD with gst-omx on Raspberry Pi?

munezbn.dev
This post was updated on .
 I have solved the issue. This might help others in future.

The issue was  in Buildroot files. I need to raise a Bug there.

gst-omx doesnt have dependency for gst1-plugins-bad. So whenever I generate an image, gst-omx was building before gst1-plugins-bad.

This means that gst-omx cannot find "gstreamer_gl-1.0" which is part of bad plugins and gst-omx thinks that platform  doesnt have GST_GL support and builds omx library without GST_GL support.

I manually rebuilt gst-omx again and copied library to rpi and it worked :) .. But I had issue with 1080-60fps video.  But I am not bothered about that now.

So ideally in gst-omx.mk file i need to add  gst1-plugins-bad dependency to make sure that gst-omx is built after gst1-plugins-bad.

I think you didn't see this issue because you always build gst-omx manually after gst1-plugins-bad ??


Thanks & Regards
Munez
Reply | Threaded
Open this post in threaded view
|

Re: Re: Re: Re: Re: Full HD with gst-omx on Raspberry Pi?

Nicolas Dufresne-5

Le 5 nov. 2016 10:41 AM, "munezbn.dev" <[hidden email]> a écrit :
>
>  I have found the issue. This might help others in future.
>
> The issue was  in Buildroot files. I need to raise a Bug there.
>
> gst-omx doesnt have dependency for gst1-plugins-bad. So whenever I generate
> an image, gst-omx was building before gst1-plugins-bad.
>
> This means that gst-omx cannot find "gstreamer_gl-1.0" which is part of bad
> plugins and gst-omx thinks that platform  doesnt have GST_GL support and
> builds omx library without GST_GL support.

Good catch, thanks for sharing. Building this is difficult, the RPi stack is not fully implementing pkg-config description of their libraries (opengl and omx).

>
> I manually rebuilt gst-omx again and copied library to rpi and it worked :)
> .. But I had issue with 1080-60fps video.  But I am not bothered about that
> now.

I have never seen anything better them FHD 30fps working.

>
> So ideally in gst-omx.mk file i need to add  gst1-plugins-bad dependency to
> make sure that gst-omx is built after gst1-plugins-bad.
>
> I think you didn't see this issue because you always build gst-omx manually
> after gst1-plugins-bad ??
>
>
> Thanks & Regards
> Munez
>
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Full-HD-with-gst-omx-on-Raspberry-Pi-tp4667414p4680480.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel


_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
12