6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Thu Nov 22, 2018 2:40 pm

aBUGSworstnightmare wrote:
Thu Nov 22, 2018 2:20 pm
6by9 wrote:
Thu Nov 22, 2018 1:10 pm
Max input file resolution is 1080P - it's the same video decoding block as has been used since the start, we haven't magically changed your silicon with something else.
Understood.

So, maybe I need to re-phrase my question.
VLC offers a '--wall' command which allows to split a single video over different screens. Is this supported on RPi too?
So, if the decoding block is used in this case as well the input file resolution is 1080P, correct? Has anybody tested already if you can go full-screen from that (by douible-clicking each window)?
The maximum resolution of any file decoded via the hardware decode block is 1080P, no matter where the output is being routed to. The wall effect is an output filter, so It's going to blit the output buffer to multiple windows (ouch! lots of memory bandwidth).
No, going fullscreen on those windows won't work using the new splitter. As stated above, that routes the raw YUV to the display, so without special handling of display regions, display numbers, and a number of other factors, it won't be possible to use the fully hardware accelerated path.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

aBUGSworstnightmare
Posts: 1363
Joined: Tue Jun 30, 2015 1:35 pm

Re: VLC 3.0 with hardware acceleration

Thu Nov 22, 2018 2:44 pm

6by9 wrote: The maximum resolution of any file decoded via the hardware decode block is 1080P, no matter where the output is being routed to. The wall effect is an output filter, so It's going to blit the output buffer to multiple windows (ouch! lots of memory bandwidth).
No, going fullscreen on those windows won't work using the new splitter. As stated above, that routes the raw YUV to the display, so without special handling of display regions, display numbers, and a number of other factors, it won't be possible to use the fully hardware accelerated path.
Thanks for cofirming. Well, I think I will test how it looks like when removing window decorations, but I would expect this is exactly the same as trying to go full-screen...
Hmm .. too bad ..

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Thu Nov 22, 2018 2:58 pm

The code implementing the filter is

Code: Select all

static int Filter( video_splitter_t *p_splitter, picture_t *pp_dst[], picture_t *p_src )
{
    video_splitter_sys_t *p_sys = p_splitter->p_sys;

    if( video_splitter_NewPicture( p_splitter, pp_dst ) )
    {
        picture_Release( p_src );
        return VLC_EGENERIC;
    }

    for( int y = 0; y < p_sys->i_row; y++ )
    {
        for( int x = 0; x < p_sys->i_col; x++ )
        {
            wall_output_t *p_output = &p_sys->pp_output[x][y];
            if( !p_output->b_active )
                continue;

            picture_t *p_dst = pp_dst[p_output->i_output];

            /* */
            picture_t tmp = *p_src;
            for( int i = 0; i < tmp.i_planes; i++ )
            {
                plane_t *p0 = &tmp.p[0];
                plane_t *p = &tmp.p[i];
                const int i_y = p_output->i_top  * p->i_visible_pitch / p0->i_visible_pitch;
                const int i_x = p_output->i_left * p->i_visible_lines / p0->i_visible_lines;

                p->p_pixels += i_y * p->i_pitch + ( i_x - (i_x % p->i_pixel_pitch));
            }
            picture_Copy( p_dst, &tmp );
        }
    }

    picture_Release( p_src );
    return VLC_SUCCESS;
}
So it's just duplicating the frame for each output and messing with the pixel info.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

MartinLaclaustra
Posts: 14
Joined: Sun Dec 18, 2016 8:45 pm

Re: VLC 3.0 with hardware acceleration

Thu Nov 22, 2018 7:26 pm

6by9 wrote:
Tue Nov 20, 2018 9:58 am
MartinLaclaustra wrote:
Mon Nov 19, 2018 10:01 pm
For the sake of comparison, with former gkreidl's version (rendering fullscreen through "OpenMAX IL video output"), VLC can reproduce a DVD folder structure and its main title without stutter (no GPU codec, software decode?), and CPU load stays < 10%.

I need to re-test with the new repositories version, will report...
A DVD will be standard definition (ie 576i/720x576 PAL or thereabouts). GadgetGuy had referenced HD (High Definition - 1280x720, or 1920x1080). 5 times as many pixels per frame!

I haven't tested it, but I'd be surprised if MPEG2 SD decode was <10% for running a software codec. Deinterlacing would typically take up more processing power than that!
A direct comparison: In this new VLC 3.0 the same file uses 50% of the processing power (Rpi3) and stutters both in windowed mode and fullscreen. For these files (DVD structure), performance (processsing and stutter) is equivalent to selecting "X11 video output (XCB)". Also, in fullscreen, moving the mouse makes the reduced control interface appear (progress bar). (As a side note, DVD menu options highlighting is wrong, badly offset in both, windowed mode and fullscreen).
I believe that it would be worth allowing a path for playing DVDs that passed the YUV signal decoded in software to the fullscreen rendering accelerated by hardware, the same way that "OpenMAX IL video output" did in gkreidl's version.

For future versions, it may be well worth considering gkreidl's method for windowed mode, i.e., rendering on a hardware overlay that matches exactly VLC's display area. This could be an alternative output option (menus will be obliterated). gkreidl mentioned this here:
gkreidl wrote:
Wed Nov 21, 2018 12:21 pm
...omxplayerGUI when it is running in window mode (the video area inside the window ist still an overlay).
I have more thoughts (VLC's rendering layer is above X11's one. May be a transparent object could be printed on VLC's layer with dimensions matching those of the control bar, among others)... but I prefer talking about each topic in sequence.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Thu Nov 22, 2018 9:28 pm

MartinLaclaustra wrote:
Thu Nov 22, 2018 7:26 pm
I believe that it would be worth allowing a path for playing DVDs that passed the YUV signal decoded in software to the fullscreen rendering accelerated by hardware, the same way that "OpenMAX IL video output" did in gkreidl's version.

For future versions, it may be well worth considering gkreidl's method for windowed mode, i.e., rendering on a hardware overlay that matches exactly VLC's display area. This could be an alternative output option (menus will be obliterated). gkreidl mentioned this here:
gkreidl wrote:
Wed Nov 21, 2018 12:21 pm
...omxplayerGUI when it is running in window mode (the video area inside the window ist still an overlay).
I have more thoughts (VLC's rendering layer is above X11's one. May be a transparent object could be printed on VLC's layer with dimensions matching those of the control bar, among others)... but I prefer talking about each topic in sequence.
Feel free to download the source and make all the modifications you like.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

gkreidl
Posts: 5953
Joined: Thu Jan 26, 2012 1:07 pm
Location: Germany

Re: VLC 3.0 with hardware acceleration

Thu Nov 22, 2018 11:28 pm

MartinLaclaustra wrote:
Thu Nov 22, 2018 7:26 pm
6by9 wrote:
Tue Nov 20, 2018 9:58 am
MartinLaclaustra wrote:
Mon Nov 19, 2018 10:01 pm
For the sake of comparison, with former gkreidl's version (rendering fullscreen through "OpenMAX IL video output"), VLC can reproduce a DVD folder structure and its main title without stutter (no GPU codec, software decode?), and CPU load stays < 10%.

I need to re-test with the new repositories version, will report...
A DVD will be standard definition (ie 576i/720x576 PAL or thereabouts). GadgetGuy had referenced HD (High Definition - 1280x720, or 1920x1080). 5 times as many pixels per frame!

I haven't tested it, but I'd be surprised if MPEG2 SD decode was <10% for running a software codec. Deinterlacing would typically take up more processing power than that!
A direct comparison: In this new VLC 3.0 the same file uses 50% of the processing power (Rpi3) and stutters both in windowed mode and fullscreen. For these files (DVD structure), performance (processsing and stutter) is equivalent to selecting "X11 video output (XCB)". Also, in fullscreen, moving the mouse makes the reduced control interface appear (progress bar). (As a side note, DVD menu options highlighting is wrong, badly offset in both, windowed mode and fullscreen).
I believe that it would be worth allowing a path for playing DVDs that passed the YUV signal decoded in software to the fullscreen rendering accelerated by hardware, the same way that "OpenMAX IL video output" did in gkreidl's version.

For future versions, it may be well worth considering gkreidl's method for windowed mode, i.e., rendering on a hardware overlay that matches exactly VLC's display area. This could be an alternative output option (menus will be obliterated). gkreidl mentioned this here:
gkreidl wrote:
Wed Nov 21, 2018 12:21 pm
...omxplayerGUI when it is running in window mode (the video area inside the window ist still an overlay).
I have more thoughts (VLC's rendering layer is above X11's one. May be a transparent object could be printed on VLC's layer with dimensions matching those of the control bar, among others)... but I prefer talking about each topic in sequence.
I don't understand why you insist on using a software codec and run into all kinds if problems instead of simply buying the the MPEG2 codec license. It's the first thing I do when I get a new Raspberry Pi.
Minimal Kiosk Browser (kweb)
Slim, fast webkit browser with support for audio+video+playlists+youtube+pdf+download
Optional fullscreen kiosk mode and command interface for embedded applications
Includes omxplayerGUI, an X front end for omxplayer

cjan
Posts: 721
Joined: Sun May 06, 2012 12:00 am

Re: VLC 3.0 with hardware acceleration

Fri Nov 23, 2018 2:25 am

can not found deb9u1+rpt1 in source repos.

MartinLaclaustra
Posts: 14
Joined: Sun Dec 18, 2016 8:45 pm

Re: VLC 3.0 with hardware acceleration

Fri Nov 23, 2018 6:06 am

6by9 wrote:
Thu Nov 22, 2018 9:28 pm
Feel free to download the source and make all the modifications you like.
Could you point me to the reference sources you are working on? I do not find them in https://github.com/raspberrypi. Is the source package from the repository the one to use?
Any comments or hints towards compiling environment?
Thanks in advance.

Please note than in previous posts dom wrote:
dom wrote:
Fri Nov 16, 2018 1:40 pm
Let us know if there are any improvements or regressions compared to the VLC version that has been used here [gkreidl's].
And I was notifying some of those regressions.

MartinLaclaustra
Posts: 14
Joined: Sun Dec 18, 2016 8:45 pm

Re: VLC 3.0 with hardware acceleration

Fri Nov 23, 2018 6:13 am

gkreidl wrote:
Thu Nov 22, 2018 11:28 pm
I don't understand why you insist on using a software codec and run into all kinds if problems instead of simply buying the the MPEG2 codec license. It's the first thing I do when I get a new Raspberry Pi.
It is just a question of choice... I think that if the capability is there we should be able to use it.
Anyway, I also acknowledge that one must choose the right battles, so I do not intend to struggle impossible goals.
Would you help me with hints if I have a look at the source code?
Thanks in advance.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Fri Nov 23, 2018 10:32 am

I've asked those that manage the repos.

Edit /etc/apt/sources.list.d/raspi.list to enable the deb-src line.
sudo apt update
apt source vlc

raspbian.raspberrypi.org / archive.raspbian.org / mirrordirector.raspbian.org are the vanilla Raspbian repos rebuilt from Debian (all look up to the same IP address and should be the same website).
archive.raspberrypi.org contains anything that has been significantly modified.
I don't believe the changes to VLC are in a public git repo.

Using overlays when in an X environment simply does not work, which is partly why X doesn't support them. If you set the video as an overlay and then drag another window over the top it instead disappears behind the overlay.
The only way around that is if EVERYTHING in X is an independent overlay, but most hardware doesn't support that (VideoCore does!) so there is little point in X trying to use it.

The step that is more widely supported is composing all elements using GL, which is great if you have a chunky GPU, but not so great if not. You also need to jump through a few hoops to still be able to pass images around the system without copying them. I'm working on doing that to work with the OpenGL / DRM/KMS driver at the moment. First is likely to be Chromium as it supports passing things with the zero copy (dma_bufs), whilst VLC doesn't really at the moment.

Sorry, I wasn't meaning to sound dismissive of input, but due to the X limitations above I don't see the point in defining overlays for the video.
Software codecs are not a path we're working on - again there's little point when the hardware block is there.
Resources are limited, so it's a matter of investing the effort where it is worthwhile to the largest number of users. If DVD menus don't line up with the hardware decode then it's worth investigating.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

MartinLaclaustra
Posts: 14
Joined: Sun Dec 18, 2016 8:45 pm

Re: VLC 3.0 with hardware acceleration

Sun Nov 25, 2018 10:16 pm

6by9 wrote:
Fri Nov 23, 2018 10:32 am
Edit /etc/apt/sources.list.d/raspi.list to enable the deb-src line.
sudo apt update
apt source vlc
@6by9 Thank you for all your explanations.
I hit a wall after several attempts in compiling VLC. I would appreciate some orientation.
I installed potential dependencies based on previous gkreidl advice, plus some more trying to solve the error:

Code: Select all

sudo apt install autopoint pkg-config libtool build-essential autoconf

sudo apt install liba52-0.7.4 libasound2 libass5 libavahi-client3 libavahi-common3 libavc1394-0 libbasicusageenvironment1 libbluray1 libbz2-1.0 libc6 libcairo2 libcddb2 libcdio13 libchromaprint1 libdbus-1-3 libdc1394-22 libdca0 libdirectfb-1.2-9 libdvbpsi10 libdvdnav4 libdvdread4 libebml4v5 libfaad2 libflac8 libfontconfig1 libfreetype6 libfribidi0 libgcc1 libgcrypt20 libglib2.0-0 libgme0 libgnutls30 libgpg-error0 libgroupsock8 libgsm1 libjpeg62-turbo libkate1 liblirc-client0 liblivemedia57 liblua5.2-0 liblzma5 libmad0 libmatroska6v5 libmodplug1 libmp3lame0 libmpcdec6 libmpeg2-4 libmtp9 libncursesw5 libogg0 libopus0 libpng16-16 libpulse0 libraw1394-11 libresid-builder0c2a librsvg2-2 librtmp1 libsamplerate0 libsdl-image1.2 libsdl1.2debian libshine3 libshout3 libsidplay2 libsnappy1v5 libsndio6.1 libspeex1 libspeexdsp1 libssh-gcrypt-4 libssh2-1 libstdc++6 libtag1v5 libtheora0 libtinfo5 libtwolame0 libudev1 libupnp6 libusageenvironment3 libva-drm1 libva-x11-1 libva1 libvcdinfo0 libvorbis0a libvorbisenc2 libvpx4 libwavpack1 libwebp6 libwebpmux2 libx11-6 libx264-148 libx265-95 libxcb-keysyms1 libxcb1 libxml2 libxvidcore4 libzvbi0 zlib1g libgdk-pixbuf2.0-0 libgtk2.0-0 libnotify4 libqt5core5a libqt5gui5 libqt5widgets5 libqt5x11extras5 libxi6 libsmbclient libxext6 libxinerama1 libxpm4 fonts-freefont-ttf libaa1 libcaca0 libegl1-mesa libgl1-mesa-glx libgles1-mesa libgles2-mesa libxcb-shm0 libxcb-xv0 libxcb-randr0 libxcb-composite0

sudo apt-get install liba52-0.7.4-dev libasound2-dev libass-dev libavahi-client-dev libavc1394-dev libbluray-dev libbz2-dev libc6-dev libcairo2-dev libcddb2-dev libcdio-dev libchromaprint-dev libdbus-1-dev libdc1394-22-dev libdca-dev libdirectfb-dev libdvbpsi-dev libdvdnav-dev libdvdread-dev libebml-dev libfaad-dev libflac-dev libfontconfig1-dev libfreetype6-dev libfribidi-dev libgcc-6-dev libgcrypt20-dev libglib2.0-dev libgme-dev libgnutls28-dev libgpg-error-dev libgsm1-dev libjpeg62-turbo-dev libkate-dev liblircclient-dev liblivemedia-dev liblua5.2-dev liblzma-dev libmad0-dev libmatroska-dev libmodplug-dev libmp3lame-dev libmpcdec-dev libmpeg2-4-dev libmtp-dev libncursesw5-dev libogg-dev libopus-dev libpng-dev libpulse-dev libraw1394-dev libresid-builder-dev librsvg2-dev librtmp-dev libsamplerate0-dev libsdl-image1.2-dev libsdl1.2-dev libshine-dev libshout3-dev libsidplay2-dev libsnappy-dev libsndio-dev libspeex-dev libspeexdsp-dev libssh-gcrypt-dev libssh2-1-dev libstdc++-6-dev libtag1-dev libtheora-dev libtinfo-dev libtwolame-dev libudev-dev libupnp6-dev libva-dev libvcdinfo-dev libvorbis-dev libvpx-dev libwavpack-dev libwebp-dev libx11-dev libx264-dev libx265-dev libxcb-keysyms1-dev libxcb1-dev libxml2-dev libxvidcore-dev libzvbi-dev zlib1g-dev libgdk-pixbuf2.0-dev libgtk2.0-dev libnotify-dev libqt5x11extras5-dev libxi-dev libsmbclient-dev libxext-dev libxinerama-dev libxpm-dev libaa1-dev libcaca-dev libegl1-mesa-dev libgles1-mesa-dev libgles2-mesa-dev libxcb-shm0-dev libxcb-xv0-dev libxcb-randr0-dev libxcb-composite0-dev libavcodec-dev libavformat-dev libgstreamer1.0-dev libswscale-dev

sudo apt install libva-egl1 libegl1-mesa libegl1-mesa-dev libegl1-mesa-drivers gegl
Then I tried several combinations for configure:

Code: Select all

./bootstrap 

export CFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -I/opt/vc/include/GLES2 -I/opt/vc/include/EGL -mfloat-abi=hard -mcpu=cortex-a7 -mfpu=neon-vfpv4" CXXFLAGS="-I/opt/vc/include/ -I/opt/vc/include/interface/vcos/pthreads -I/opt/vc/include/interface/vmcs_host/linux -I/opt/vc/include/interface/mmal -I/opt/vc/include/interface/vchiq_arm -I/opt/vc/include/IL -mfloat-abi=hard -I/opt/vc/include/GLES2 -I/opt/vc/include/EGL -mcpu=cortex-a7 -mfpu=neon-vfpv4" LDFLAGS="-L/opt/vc/lib"

./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-gles2
# above config yielded an error about wayland, below configs all gave the same error (described in the post)
./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --enable-gles2 --disable-wayland
./configure --prefix=/usr --enable-omxil --enable-omxil-vout --enable-rpi-omxil --enable-mmal --disable-wayland
./configure --prefix=/usr --enable-mmal --disable-wayland
./configure --prefix=/usr --disable-wayland
./configure --prefix=/usr --disable-wayland --disable-gles2
But all attempts ended with the same EGL-related error when compiling "video_output/opengl/converter_vaapi.c":

Code: Select all

video_output/opengl/converter_vaapi.c: In function ‘vaegl_image_create’:
video_output/opengl/converter_vaapi.c:79:9: error: ‘EGL_LINUX_DRM_FOURCC_EXT’ undeclared (first use in this function)
         EGL_LINUX_DRM_FOURCC_EXT, fourcc,
         ^~~~~~~~~~~~~~~~~~~~~~~~
video_output/opengl/converter_vaapi.c:79:9: note: each undeclared identifier is reported only once for each function it appears in
video_output/opengl/converter_vaapi.c:80:9: error: ‘EGL_DMA_BUF_PLANE0_FD_EXT’ undeclared (first use in this function)
         EGL_DMA_BUF_PLANE0_FD_EXT, fd,
         ^~~~~~~~~~~~~~~~~~~~~~~~~
video_output/opengl/converter_vaapi.c:81:9: error: ‘EGL_DMA_BUF_PLANE0_OFFSET_EXT’ undeclared (first use in this function)
         EGL_DMA_BUF_PLANE0_OFFSET_EXT, offset,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
video_output/opengl/converter_vaapi.c:82:9: error: ‘EGL_DMA_BUF_PLANE0_PITCH_EXT’ undeclared (first use in this function)
         EGL_DMA_BUF_PLANE0_PITCH_EXT, pitch,
         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
video_output/opengl/converter_vaapi.c:86:47: error: ‘EGL_LINUX_DMA_BUF_EXT’ undeclared (first use in this function)
     return tc->gl->egl.createImageKHR(tc->gl, EGL_LINUX_DMA_BUF_EXT, NULL,
                                               ^~~~~~~~~~~~~~~~~~~~~
video_output/opengl/converter_vaapi.c:86:47: warning: passing argument 2 of ‘tc->gl-><U 780>.egl.createImageKHR’ makes integer from pointer without a cast [-Wint-conversion]
video_output/opengl/converter_vaapi.c:86:47: note: expected ‘unsigned int’ but argument is of type ‘EGLint * {aka int *}’
Makefile:20571: recipe for target 'video_output/opengl/libglconv_vaapi_x11_plugin_la-converter_vaapi.lo' failed
make[4]: *** [video_output/opengl/libglconv_vaapi_x11_plugin_la-converter_vaapi.lo] Error 1
make[4]: Leaving directory '/home/pi/sources/vlc-3.0.3-1/modules'
Makefile:26145: recipe for target 'all-recursive' failed
make[3]: *** [all-recursive] Error 1
make[3]: Leaving directory '/home/pi/sources/vlc-3.0.3-1/modules'
Makefile:11238: recipe for target 'all' failed
make[2]: *** [all] Error 2
make[2]: Leaving directory '/home/pi/sources/vlc-3.0.3-1/modules'
Makefile:1531: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/pi/sources/vlc-3.0.3-1'
Makefile:1416: recipe for target 'all' failed
make: *** [all] Error 2
Before attempting to modify the code I would need to succeed in compiling the original code. Could you provide the appropriate configure command, and check if I missed an essential dependency that should be installed? Thank you!

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Mon Nov 26, 2018 11:17 am

Some useful magic imparted to me recently.

Code: Select all

sudo apt build-dep vlc
gets all the dependencies as defined by the package. No need to go through the guesswork, or iterate with configure and watching for failures. It's the mechanism that Debian itself uses to be able to build all the packages, therefore the dependency info has to be correct.

You shouldn't need vaapi - that's an Intel API.
EGL_LINUX_DRM_FOURCC_EXT, EGL_DMA_BUF_PLANE0_FD_EXT, EGL_DMA_BUF_PLANE0_OFFSET_EXT, and EGL_DMA_BUF_PLANE0_PITCH_EXT all got added to the EGL.
Adding --disable-wayland to configure seems to work fine.
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Mon Nov 26, 2018 11:45 am

A reply back from a Raspbian maintainer, VLC is apparently built with

Code: Select all

./configure --build=arm-linux-gnueabihf --prefix=/usr
--includedir=${prefix}/include --mandir=${prefix}/share/man
--infodir=${prefix}/share/info --sysconfdir=/etc --localstatedir=/var
--disable-silent-rules
--libdir=${prefix}/lib/arm-linux-gnueabihf
--libexecdir=${prefix}/lib/arm-linux-gnueabihf --disable-maintainer-mode
--disable-dependency-tracking --config-cache --disable-update-check
--enable-fast-install --doc
dir=/usr/share/doc/vlc --with-binary-version=3.0.3-1-0+deb9u1+rpt1
--enable-a52 --enable-aa --enable-bluray --enable-avahi --enable-caca
--enable-chromaprint --enable-chromecast --enable-dbus --enable-dca --enab
le-dvbpsi --enable-dvdnav --enable-faad --enable-flac
--enable-fluidsynth --enable-freerdp --enable-freetype --enable-fribidi
--enable-gles2 --enable-gnutls --enable-harfbuzz --enable-jack
--enable-kate --enable
-libass --enable-libmpeg2 --enable-libxml2 --enable-lirc
--enable-live555 --enable-mad --enable-matroska --enable-mod
--enable-mpc --enable-mpg123 --enable-mtp --enable-ncurses
--enable-notify --enable-ogg --ena
ble-opus --enable-pulse --enable-qt --enable-realrtsp
--enable-samplerate --enable-sdl-image --enable-sftp --enable-shine
--enable-shout --enable-skins2 --enable-sndio --enable-soxr
--enable-speex --enable-svg -
-enable-svgdec --enable-taglib --enable-theora --enable-twolame
--enable-upnp --enable-vdpau --enable-vnc --enable-vorbis --enable-x264
--enable-x265 --enable-zvbi --with-kde-solid=/usr/share/solid/actions/ --di
sable-aribsub --disable-d3d11va --disable-decklink --disable-directx
--disable-dsm --disable-dxva2 --disable-fdkaac --disable-fluidlite
--disable-goom --disable-gst-decode --disable-libplacebo --disable-libtar -
-disable-macosx --disable-macosx-avfoundation --disable-macosx-qtkit
--disable-mfx --disable-opencv --disable-projectm --disable-schroedinger
--disable-sparkle --disable-srt --disable-telx --disable-vpx --disabl
e-vsxu --disable-wasapi --enable-alsa --enable-dc1394 --enable-dv1394
--enable-linsys --enable-nfs --enable-omxil --enable-udev --enable-v4l2
--enable-wayland --enable-libva --enable-vcd --enable-smbclient --dis
able-oss --disable-crystalhd --disable-mmx --disable-sse --enable-neon
--enable-mmal --disable-altivec
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Mon Nov 26, 2018 2:02 pm

The source is also now uplaoded to Github - https://github.com/RPi-Distro/vlc/commits/stretch-rpt
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

MartinLaclaustra
Posts: 14
Joined: Sun Dec 18, 2016 8:45 pm

Re: VLC 3.0 with hardware acceleration

Fri Nov 30, 2018 4:28 am

Thank you!
I can confirm that after installing the dependencies and with the config that you provided the code compiles completely.
I have been able to tinker a little bit with the code. It seems that VLC will require me some time to understand how things work internally.

johndavies
Posts: 179
Joined: Fri Dec 20, 2013 1:00 pm

Re: VLC 3.0 with hardware acceleration

Fri Nov 30, 2018 6:49 pm

I have tried to run the kwebfix patch to allow the Minimal Kiosk Browser to use VLC from inside a terminal and from inside the kweb installation directory. What follows is the error message:

[email protected]:~ $ wget http://steinerdatenbank.de/software/kwebfix.gz
--2018-11-30 18:47:08-- http://steinerdatenbank.de/software/kwebfix.gz
Resolving steinerdatenbank.de (steinerdatenbank.de)... 85.25.144.201
Connecting to steinerdatenbank.de (steinerdatenbank.de)|85.25.144.201|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-11-30 18:47:08 ERROR 404: Not Found.

[email protected]:~ $ tar -xzf kwebfix.tar.gz
tar (child): kwebfix.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
[email protected]:~ $ cd kwebfix
bash: cd: kwebfix: No such file or directory
[email protected]:~ $ sudo ./patch
sudo: ./patch: command not found
Either there is a clash with other software or I have done something stupid. Please advise.

gkreidl
Posts: 5953
Joined: Thu Jan 26, 2012 1:07 pm
Location: Germany

Re: VLC 3.0 with hardware acceleration

Fri Nov 30, 2018 7:05 pm

johndavies wrote:
Fri Nov 30, 2018 6:49 pm
I have tried to run the kwebfix patch to allow the Minimal Kiosk Browser to use VLC from inside a terminal and from inside the kweb installation directory. What follows is the error message:

[email protected]:~ $ wget http://steinerdatenbank.de/software/kwebfix.gz
--2018-11-30 18:47:08-- http://steinerdatenbank.de/software/kwebfix.gz
Resolving steinerdatenbank.de (steinerdatenbank.de)... 85.25.144.201
Connecting to steinerdatenbank.de (steinerdatenbank.de)|85.25.144.201|:80... connected.
HTTP request sent, awaiting response... 404 Not Found
2018-11-30 18:47:08 ERROR 404: Not Found.

[email protected]:~ $ tar -xzf kwebfix.tar.gz
tar (child): kwebfix.tar.gz: Cannot open: No such file or directory
tar (child): Error is not recoverable: exiting now
tar: Child returned status 2
tar: Error is not recoverable: exiting now
[email protected]:~ $ cd kwebfix
bash: cd: kwebfix: No such file or directory
[email protected]:~ $ sudo ./patch
sudo: ./patch: command not found
Either there is a clash with other software or I have done something stupid. Please advise.
there was a typo in the post which I have just corrected: file name is kwebfix.tar.gz
Minimal Kiosk Browser (kweb)
Slim, fast webkit browser with support for audio+video+playlists+youtube+pdf+download
Optional fullscreen kiosk mode and command interface for embedded applications
Includes omxplayerGUI, an X front end for omxplayer

erbas
Posts: 1
Joined: Wed Jul 20, 2016 3:03 pm

Re: VLC 3.0 with hardware acceleration

Tue Dec 18, 2018 12:41 am

Friends would like help with my project!
Be patient because I am a beginner.
I do not know if it's possible, but I'll get the idea started.

My idea would be: tbs + raspberry + vlc
Here comes the doubt, how to open channels without oscam
It would be possible to activate channels with Tvheadend + oscam on it!
To watch TV, using vlc compilation for raspberry.
Thank you.

gkreidl
Posts: 5953
Joined: Thu Jan 26, 2012 1:07 pm
Location: Germany

Re: VLC 3.0 with hardware acceleration

Tue Dec 18, 2018 3:14 pm

erbas wrote:
Tue Dec 18, 2018 12:41 am
Friends would like help with my project!
Be patient because I am a beginner.
I do not know if it's possible, but I'll get the idea started.

My idea would be: tbs + raspberry + vlc
Here comes the doubt, how to open channels without oscam
It would be possible to activate channels with Tvheadend + oscam on it!
To watch TV, using vlc compilation for raspberry.
Thank you.
Should be possible. You'll need a USB DVB-Receiver (I suppose cable TV) and a special card reader for oscam (which works well on the RPi). It should work with either tvheadend or mumudvb. The (decrypted) video channels can be viewed with VLC or omxplayer(GUI) on the RPi, but will also be streamed across your local network.
Minimal Kiosk Browser (kweb)
Slim, fast webkit browser with support for audio+video+playlists+youtube+pdf+download
Optional fullscreen kiosk mode and command interface for embedded applications
Includes omxplayerGUI, an X front end for omxplayer

cjan
Posts: 721
Joined: Sun May 06, 2012 12:00 am

Re: VLC 3.0 with hardware acceleration

Mon Jan 14, 2019 3:46 am

Warring !!!
update to 3.0.6 break everything, don't know why Devs do that.

gkreidl
Posts: 5953
Joined: Thu Jan 26, 2012 1:07 pm
Location: Germany

Re: VLC 3.0 with hardware acceleration

Mon Jan 14, 2019 8:07 am

cjan wrote:
Mon Jan 14, 2019 3:46 am
Warring !!!
update to 3.0.6 break everything, don't know why Devs do that.
Could you give some details, please.
I haven't updated yet and won't do it because this is already the second warning.
Minimal Kiosk Browser (kweb)
Slim, fast webkit browser with support for audio+video+playlists+youtube+pdf+download
Optional fullscreen kiosk mode and command interface for embedded applications
Includes omxplayerGUI, an X front end for omxplayer

cjan
Posts: 721
Joined: Sun May 06, 2012 12:00 am

Re: VLC 3.0 with hardware acceleration

Mon Jan 14, 2019 8:50 am

gkreidl wrote:
Mon Jan 14, 2019 8:07 am
cjan wrote:
Mon Jan 14, 2019 3:46 am
Warring !!!
update to 3.0.6 break everything, don't know why Devs do that.
Could you give some details, please.
I haven't updated yet and won't do it because this is already the second warning.
MMAL X11 splitter gone, back to upstream version.

gkreidl
Posts: 5953
Joined: Thu Jan 26, 2012 1:07 pm
Location: Germany

Re: VLC 3.0 with hardware acceleration

Mon Jan 14, 2019 9:37 am

cjan wrote:
Mon Jan 14, 2019 8:50 am
gkreidl wrote:
Mon Jan 14, 2019 8:07 am
cjan wrote:
Mon Jan 14, 2019 3:46 am
Warring !!!
update to 3.0.6 break everything, don't know why Devs do that.
Could you give some details, please.
I haven't updated yet and won't do it because this is already the second warning.
MMAL X11 splitter gone, back to upstream version.
Is HW acceleration (MMAl) enabled at all? Someone else reported terrible frame rates in X11 mode.
Minimal Kiosk Browser (kweb)
Slim, fast webkit browser with support for audio+video+playlists+youtube+pdf+download
Optional fullscreen kiosk mode and command interface for embedded applications
Includes omxplayerGUI, an X front end for omxplayer

6by9
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 6897
Joined: Wed Dec 04, 2013 11:27 am
Location: ZZ9 Plural Z Alpha, aka just outside Cambridge.

Re: VLC 3.0 with hardware acceleration

Mon Jan 14, 2019 9:57 am

cjan wrote:
Mon Jan 14, 2019 3:46 am
Warring !!!
update to 3.0.6 break everything, don't know why Devs do that.
It looks like Debian have bumped the version they supply to 3.0.6 (over our 3.0.3), so they have become the default install candidate over our version.

You can force install/downgrade to our version with

Code: Select all

sudo apt-get install vlc=3.0.3-1-0+deb9u1+rpt1
There is some magic that can be done on the repo to stop upstream updates overriding our downstream version, but the relevant person isn't in the office at the moment. (It may be quicker to get our version bumped to 3.0.6 instead, but that depends on what changes have happened between the two).
Software Engineer at Raspberry Pi Trading. Views expressed are still personal views.
I'm not interested in doing contracts for bespoke functionality - please don't ask.

User avatar
rpdom
Posts: 14478
Joined: Sun May 06, 2012 5:17 am
Location: Chelmsford, Essex, UK

Re: VLC 3.0 with hardware acceleration

Mon Jan 14, 2019 10:19 am

6by9 wrote:
Mon Jan 14, 2019 9:57 am
There is some magic that can be done on the repo to stop upstream updates overriding our downstream version,
Setting the "Epoch" in the version number will do that. Change 3.0.3 to 1:3.0.3

Return to “Raspbian”