LinuxQuestions.org
Welcome to the most active Linux Forum on the web.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware
User Name
Password
Slackware This Forum is for the discussion of Slackware Linux.

Notices


Reply
  Search this Thread
Old 08-25-2016, 02:18 PM   #16
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23

No luck with OSSv4, I had that same version installed yet and it doesn't prevent reported error.

No luck neither with 2.0.10:
Code:
checking mad.h presence... yes
checking for mad.h... yes
checking for mad_bit_init in -lmad... yes
checking if linker supports -Bsymbolic... yes
checking for AVCODEC... yes
configure: error: libavcodec versions 55 and later are not supported yet.
Code:
/var/log/packages/libavc1394-0.5.4-i486-4sl
 
Old 08-25-2016, 07:26 PM   #17
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by joenew View Post
No luck with OSSv4, I had that same version installed yet and it doesn't prevent reported error.

No luck neither with 2.0.10:
Code:
checking mad.h presence... yes
checking for mad.h... yes
checking for mad_bit_init in -lmad... yes
checking if linker supports -Bsymbolic... yes
checking for AVCODEC... yes
configure: error: libavcodec versions 55 and later are not supported yet.
Code:
/var/log/packages/libavc1394-0.5.4-i486-4sl
That should be related to ffmpeg (or libav... I'm not sure if VLC went with one over the other or which you might have installed), not libavc1394 (I believe that's for firewire). It looks like you have a new enough version of ffmpeg, but I believe it is typically patchable without downgrading ffmpeg (see this stack overflow answer for more details).
 
Old 08-31-2016, 05:03 PM   #18
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23
I suspect my libavcodec is too recent for vlc-2.0.10.
My ffmpeg package (2.8.7) contains following version of libavcodec:
Code:
/usr/include/libavcodec/version.h
Code:
#define LIBAVCODEC_VERSION_MAJOR 56
#define LIBAVCODEC_VERSION_MINOR 60
#define LIBAVCODEC_VERSION_MICRO 100
Now, vlc 2.0.10 sources have a configure.ac with the following check:
Code:
     PKG_CHECK_EXISTS([libavcodec < 56],, [
       AC_MSG_ERROR([libavcodec versions 56 and later are not supported yet.])
That's the problem: I think my libavcodec is too recent to compile that old version of vlc, which requests libavcodec < 56, bu I have version 56.60.100

I tried to make a patch to accept also libavcodec version more recent (I put version 59...):
Code:
--- configure.ac.orig   2016-08-31 19:03:13.127247959 +0200
+++ configure.ac        2016-08-31 19:07:14.214264327 +0200
@@ -2413,8 +2413,8 @@
 [  --enable-avcodec        libavcodec codec (default enabled)])
 AS_IF([test "${enable_avcodec}" != "no"], [
   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil], [
-    PKG_CHECK_EXISTS([libavcodec < 55],, [
-      AC_MSG_ERROR([libavcodec versions 55 and later are not supported yet.])
+    PKG_CHECK_EXISTS([libavcodec < 59],, [
+      AC_MSG_ERROR([libavcodec versions 59 and later are not supported yet.])
     ])
     VLC_SAVE_FLAGS
     CPPFLAGS="${CPPFLAGS} ${AVCODEC_CFLAGS}"
I also edited Slackbuild to apply it:
Code:
cd $PRGNAM-$VERSION

patch < $CWD/configure.ac.patch || exit 1013
autoconf || exit 1013

chown -R root:root .
The patch works fine, cause the slackbuild starts compiling.
But when it reach building of avcodec plugin it fails with te following errors:
Code:
make[5]: Leaving directory `/tmp/SBo/vlc-2.0.10/modules/codec/dmo'
Making all in avcodec
make[5]: Entering directory `/tmp/SBo/vlc-2.0.10/modules/codec/avcodec'
make  all-am
make[6]: Entering directory `/tmp/SBo/vlc-2.0.10/modules/codec/avcodec'
  CC     libavcodec_plugin_la-avcodec.lo
avcodec.c: In function 'OpenDecoder':
avcodec.c:249:30: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
avcodec.c:278:14: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:281:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:285:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:289:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:293:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:297:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:301:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:305:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:309:18: error: 'AVCodecContext' has no member named 'dsp_mask'
avcodec.c:313:18: error: 'AVCodecContext' has no member named 'dsp_mask'
make[6]: *** [libavcodec_plugin_la-avcodec.lo] Errore 1
make[6]: Leaving directory `/tmp/SBo/vlc-2.0.10/modules/codec/avcodec'
make[5]: *** [all] Errore 2
make[5]: Leaving directory `/tmp/SBo/vlc-2.0.10/modules/codec/avcodec'
make[4]: *** [all-recursive] Errore 1
make[4]: Leaving directory `/tmp/SBo/vlc-2.0.10/modules/codec'
make[3]: *** [all] Errore 2
make[3]: Leaving directory `/tmp/SBo/vlc-2.0.10/modules/codec'
make[2]: *** [all-recursive] Errore 1
make[2]: Leaving directory `/tmp/SBo/vlc-2.0.10/modules'
make[1]: *** [all-recursive] Errore 1
make[1]: Leaving directory `/tmp/SBo/vlc-2.0.10'
make: *** [all] Errore 2
So I think the libavcodec version check in configure was useful: build really fails if libavcodec version is too recent in comparison to libavcodec plugin contained in vlc sources...
What do you think about?
 
Old 08-31-2016, 08:28 PM   #19
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
I know some were able to build programs with a new ffmpeg, but it looks like this version of VLC doesn't support that.

Looks like you'd need to downgrade your ffmpeg to 2.3.6 or lower to get libavcodec at 55.

https://www.ffmpeg.org/olddownload.html
 
Old 09-01-2016, 03:30 AM   #20
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23
If you look at original version of config it says:
Code:
   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil], [
     PKG_CHECK_EXISTS([libavcodec < 55],, [
       AC_MSG_ERROR([libavcodec versions 55 and later are not supported yet.])
So for vlc 2.0.10 we need (52.25.0 <= libavcodec < 55). If I well understood we have to link vlc to a ffmpeg containing libavcodec 54.x. And I think the last ffmpeg version was:
Code:
FFmpeg 1.2.12 "Magic"
--------------------------
libavutil      52. 18.100
libavcodec     54. 92.100
libavformat    54. 63.104
libavdevice    54.  3.103
libavfilter     3. 42.103
libavresample   1.  1.  0
libswscale      2.  2.100
libswresample   0. 17.102
libpostproc    52.  2.100
--------------------------
Now, I don't want to downgrade my system ffmpeg... There should be a way to statically linking an alternative version of ffmpeg at compile time... I'll looking for that. If you have some suggests.
 
1 members found this post helpful.
Old 09-01-2016, 06:59 AM   #21
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
Quote:
Originally Posted by joenew View Post
If you look at original version of config it says:
Code:
   PKG_CHECK_MODULES(AVCODEC,[libavcodec >= 52.25.0 libavutil], [
     PKG_CHECK_EXISTS([libavcodec < 55],, [
       AC_MSG_ERROR([libavcodec versions 55 and later are not supported yet.])
So for vlc 2.0.10 we need (52.25.0 <= libavcodec < 55). If I well understood we have to link vlc to a ffmpeg containing libavcodec 54.x. And I think the last ffmpeg version was:
Code:
FFmpeg 1.2.12 "Magic"
--------------------------
libavutil      52. 18.100
libavcodec     54. 92.100
libavformat    54. 63.104
libavdevice    54.  3.103
libavfilter     3. 42.103
libavresample   1.  1.  0
libswscale      2.  2.100
libswresample   0. 17.102
libpostproc    52.  2.100
--------------------------
Now, I don't want to downgrade my system ffmpeg... There should be a way to statically linking an alternative version of ffmpeg at compile time... I'll looking for that. If you have some suggests.
Oops, good catch. Unfortunately, we're beyond my experience (I've never needed to statically link any dependencies before). But, if you can work your way through Eric's masterful VLC slackbuild, he statically links everything, so people can install just the VLC package and have all dependencies included. I'd imagine you'd need to build ffmpeg, and then point VLC's configure to the new updated binaries. Since you're building an older version of vlc, it might support the --with-ffmpeg-tree configure option. I'd definitely look into that.
 
Old 09-01-2016, 10:24 AM   #22
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23
That's the matter:
Code:
./vlc-2.0.10/configure --help|grep ffmpeg
  --enable-merge-ffmpeg   merge FFmpeg-based plugins (default disabled)
In version 2.0.10 configure flag you suggested is not supported anymore. I had tried it but without success, so I looked at configure options...
I'll look at Eric slackbuild...
 
Old 09-01-2016, 11:29 AM   #23
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23
Ok, Eric slackbuild is a little more complicated...
http://www.slackware.com/~alien/slac...vlc.SlackBuild

The following part is related to vlc compilation
Code:
NCURSES_CFLAGS="$(ncursesw5-config --cflags) -I/usr/include" \
NCURSES_LIBS="$(ncursesw5-config --libs)" \
PROJECTM_LIBS="-lprojectM $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libMilkdropPresetFactory.a $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libRenderer.a -lGLU -lGLEW -lGL" \
PROJECTM2_LIBS="-lprojectM $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libMilkdropPresetFactory.a $VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/libRenderer.a -lGLU -lGLEW -lGL" \
CPPFLAGS="-I$VLCDEPSDIR/usr/include" \
CFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \
CXXFLAGS="-I$VLCDEPSDIR/usr/include $SLKCFLAGS" \
LDFLAGS="-Wl,-Bsymbolic -L$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX} $SLKLDFLAGS" \
PKG_CONFIG_PATH="$VLCDEPSDIR/usr/lib${LIBDIRSUFFIX}/pkgconfig" \
PATH="$VLCDEPSDIR/usr/bin:$PATH" \
./configure \
...
...
He uses that $VLCDEPSDIR var to say vlc configure where it has to look for right libraries and needed programs like ffmpeg.
Before compile vlc he builds ffmpeg and install it in that directory. Then he recalls it with VLCDEPSDIR var.
I didn't understand if I can use a similar way to compile vlc with static ffmpeg only, while other libraries dynamically linked using the system ones...
 
Old 09-01-2016, 11:49 AM   #24
bassmadrigal
LQ Guru
 
Registered: Nov 2003
Location: West Jordan, UT, USA
Distribution: Slackware
Posts: 8,792

Rep: Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656Reputation: 6656
He had that flag listed in the deprecated section, but I tried to find how he statically links it now, but I came up short.

After a more in-depth look, it looks like he uses the --prefix=, --libdir=, and --shlibdir= options in ffmpeg to designate where it will install (which he picks a temporary directory under /tmp/tmp-vlc/vlcdeps). Above that, he sets the PKG_CONFIG_PATH variable to that temporary location as well. You can find these lines under the near the ./configure portion for ffmpeg, and you can find ffmpeg's information quickly with a Ctrl+F and searching for "compile ffmpeg".

He then sets a ton of variables when compiling vlc itself, pointing to that vlcdeps directory. The thing I'm not sure on is whether this will work if it doesn't find your other vlc dependencies in there. I'm not sure if it allows you to just statically link ffmpeg without statically linking everything else. Unless Eric pops in with some guidance, it will likely be on you to test that.

However, doing some more digging in the script, it seems like he designed it so if ffmpeg is intended to be linked statically, it will build vpx, theora, amr, amrwbenc, and gsm before it compiles ffmpeg, storing all in that vlcdeps directory. You might be able to use the script if you download that whole directory and replace ffmpeg's source with the 1.1.12 source and the vlc source with your 2.0.10 package, however, many of those dependencies might be new enough that they don't work properly with an older ffmpeg and/or vlc, so using the script might be hit or miss.

I wonder if it is worth devoting all this time towards trying to get a working vlc. Have you tried any other players to see if they use OSSv4 properly? Maybe mplayer (and you could use the smplayer front-end)?
 
Old 09-03-2016, 05:26 AM   #25
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23
Yes I used to paly media with MPlayer. It works fine with OSSv4.
But now I was interested in live streaming ip tv, I found some links working good with VLC (I mean it opens m3u/m3u8 just fine, but with crashes if I use 2.0.3 or audio/video choppiness issues if I use >2.1.x version, as described above... anyway it can open those links to streaming playlists/channels).
MPlayer can't handle those links. So I've tried MPV and it works very good, no issues with ossv4... But mpv alone doesn't show a popup of the playlist... So if you want to change channel on the same palylist you have to "click" forward or press ">" and scroll all channels one by one to reach what you want: it isn't very usable.
I'm using MPV + SMplayer and it is like VLC, It shows all playlist and it has no audio/video playing issues.

My compile tries are now just for "fun"... But begin to waste too time. And likely I'll give up...

I tried to edit Eric slackbuild script. I want to compile statically only what it is needed for compatibility. And use all other libraries form my system.
He split his script code in functions, in each of them he compiles and installs (in $VLCDEPSDIR directory) various libraries and codes like ffmpeg and all other deps, finally he compiles vlc by using that $VLCDEPSDIR as libraries source (through $PKG_CONFIG_PAT as you explained).

The main program would be:
Code:
make_libname1
make_libname2
make_libnameetcetc

make_vlc
build_vlcpkg "$*"
In my test I've simplified his script as follow
Code:
make_ffmpeg
make_dvbpsi
make_vlc
build_vlcpkg "$*"
FFMpeg build is needed for compatibility of libavcodec as we explained in previous messages.
DVBPSI build is needed, cause my system version is too recent.
But It returns an other error:
Code:
checking for libfaad.a in /tmp/vlc-build/tmp-vlc/faad2-... no
configure: error: cannot cd to /tmp/vlc-build/tmp-vlc/faad2-
make: *** Nessun obiettivo specificato e nessun makefile trovato.  Stop.
**
**  building the vlc package (version 2.0.10) ...
**
make: *** Nessuna regola per generare l'obiettivo «install».  Stop.
find: "/tmp/vlc-build/package-vlc/usr/lib": File o directory non esistente
sed: nessun file in ingresso
faad2 is an "additional lib for vlc" and it is compiled after "ffmpeg".


Code:
    # ffmpeg uses the above static libraries:
    make_ffmpeg
  fi

  # Additional libraries that vlc will use:
  make_faad2
  make_a52
  make_dca
  make_ebml
  make_matroska
  make_libmpeg2
  make_mpcdec
  make_twolame
  #make_daap
  make_upnp
  make_orc
  make_schroedinger
  make_live555
  make_fribidi
  make_taglib
  make_asdcplib
  make_ass
  make_fluid
  make_1394
  make_kate
  make_tiger
  make_lua
  make_bluray
  make_opus

  # Visualisations:
  # FIXME: getting symbol errors but we need a static libGLEW:
  #make_glew
  make_goom
  make_ggi
  make_projectm

  # Digital video:
  make_dv
  make_dvbpsi

  # Speex before shout and vlc:
  make_speex
  make_speexdsp
  make_shout

  #fi # End  ( "xy" == "x" )
fi

if echo "$*" | grep -qw -- --wrapvlcdeps ; then
  # Wrap the vlcdeps tree with all pre-compiled dependencies into a tarball:
  cd $TMP/tmp-$PRGNAM
  find . -name "*.la" -o -name "*.pc" | xargs sed -i -e "s#$TMP/tmp-$PRGNAM#/vlcdepsdir#g"
  tar -jcf $OUTPUT/$PRGNAM-vlcdeps-${SLACKVER}-$ARCH.tar.bz2 \
    vlcdeps \
    a52dec-$A52 \
    faad2-$FAAD2

  echo "Created vlcdeps binary tarball in '$OUTPUT/$PRGNAM-vlcdeps-${SLACKVER}-$ARCH.tar.bz2'..."
  cd -
else
  # Compile VLC using all the precompiled static libs in $VLCDEPSDIR :
  make_vlc

  # Wrap VLC into a Slackware package:
  build_vlcpkg "$*"
Now, may be vlc compile doesn't looks on the system, also if it doesn't find a library in $VLCDEPSDIR... Could be it wants the lib in that dir.
This explains why "configure: error: cannot cd to /tmp/vlc-build/tmp-vlc/faad2-".. While I have "faad2-2.7-i486-2_SBo" installed on my system.
 
Old 09-03-2016, 06:36 AM   #26
Alien Bob
Slackware Contributor
 
Registered: Sep 2005
Location: Eindhoven, The Netherlands
Distribution: Slackware
Posts: 8,559

Rep: Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106Reputation: 8106
Quote:
Originally Posted by joenew View Post
Now, may be vlc compile doesn't looks on the system, also if it doesn't find a library in $VLCDEPSDIR... Could be it wants the lib in that dir.
This explains why "configure: error: cannot cd to /tmp/vlc-build/tmp-vlc/faad2-".. While I have "faad2-2.7-i486-2_SBo" installed on my system.
Then read the part where VLC sources are configured and remove this line which makes the VLC build look for a faad2 source directory with compiled libraries in it:
Code:
--with-faad-tree=$TMP/tmp-$PRGNAM/faad2-$FAAD2 \
 
1 members found this post helpful.
Old 09-06-2016, 11:28 AM   #27
joenew
Member
 
Registered: Mar 2010
Distribution: slackware 15.0 64bit
Posts: 190

Original Poster
Rep: Reputation: 23
Thanks Eric!

Finally I did it!
There were also some newer enabled flag that I removed from configure...

Anyway, now I've installed this vlc-2.0.10 new package: I tried to run it and open a audio/video file.
Well folks, seems I'm not lucky at all!

VLC automatically selects OSS sound device, but sound is choppy... same as in news version 2.1.x and above.

I started my compiling by edit Eric slackbuild for vlc-2.2, may be that's the matter... perhaps there is some option flag in newer slackbuild that doesn't like to my OSSv4 audio system.

My next try will be to start from Eric slackbuild of vlc-2.0.8 it was under /usr/doc/vlc-2.0.8/*Slackbuild.

Thaks again. I'll let you know.
Bye

Last edited by joenew; 09-06-2016 at 11:31 AM.
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
[SOLVED] Alien vlc build problem. Slack_Buddha Slackware 3 08-02-2014 10:57 AM
[SOLVED] alienBOB's vlc keeps stoping build with this error... irgunII Slackware 14 11-19-2013 12:15 AM
VLC build for 13.37 x64? qweasd Slackware 2 05-09-2011 11:08 AM
fontconfig-compat32 package breaks VLC build Daedra Slackware 1 09-17-2009 05:23 AM
Problem using Alien Bobs VLC build. garyg007 Slackware 14 04-13-2009 12:49 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware

All times are GMT -5. The time now is 06:29 AM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration