LinuxQuestions.org
Download your favorite Linux distribution at LQ ISO.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Distributions > Slackware > Slackware - ARM
User Name
Password
Slackware - ARM This forum is for the discussion of Slackware ARM.

Notices


Reply
  Search this Thread
Old 03-08-2021, 05:55 AM   #46
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled

A question for sndwvs concerning vlc: Can you play .ts (mpeg transport stream) files on your system using your vlc? These are how DVB is generally transmitted.

I can get DVB fine using MPV and DVB utils (so not a hardware issue), but not when using VLC or Kaffeine (which is based on libVLC). Trying various locally stored files, I can play mp4, mkv etc with no problems, but vlc flatly refuses to play .ts files. (It works fine on my x86_64 installation) Since DVB is .ts based, this seems to be why I can't use VLC or Kaffeine for DVB.

Either I'm missing a dependency, or you have something installed that I don't that is causing a problem with the pre-packaged version.

ldd doesn't indicate anything mising for either VLC or Kaffeine. I've tried to rebuild VLC locally using your source files form here: https://gitlab.com/sndwvs/slackbuild...master/xap/vlc

but the build fails as follows:

Code:
video_filter/opencv_wrapper.cpp:318:51: error: call to 'abs' is ambiguous
    CvSize sz = cvSize(abs(p_in->format.i_width), abs(p_in->format.i_height));
                                                  ^~~
/usr/include/stdlib.h:840:12: note: candidate function
extern int abs (int __x) __THROW __attribute__ ((__const__)) __wur;
           ^
/usr/bin/../lib64/gcc/aarch64-slackware-linux/10.2.0/../../../../include/c++/10.2.0/bits/std_abs.h:56:3: note: candidate function
  abs(long __i) { return __builtin_labs(__i); }
  ^
/usr/bin/../lib64/gcc/aarch64-slackware-linux/10.2.0/../../../../include/c++/10.2.0/bits/std_abs.h:61:3: note: candidate function
  abs(long long __x) { return __builtin_llabs (__x); }
  ^
/usr/bin/../lib64/gcc/aarch64-slackware-linux/10.2.0/../../../../include/c++/10.2.0/bits/std_abs.h:71:3: note: candidate function
  abs(double __x)
  ^
/usr/bin/../lib64/gcc/aarch64-slackware-linux/10.2.0/../../../../include/c++/10.2.0/bits/std_abs.h:75:3: note: candidate function
  abs(float __x)
  ^
/usr/bin/../lib64/gcc/aarch64-slackware-linux/10.2.0/../../../../include/c++/10.2.0/bits/std_abs.h:79:3: note: candidate function
  abs(long double __x)
  ^
/usr/bin/../lib64/gcc/aarch64-slackware-linux/10.2.0/../../../../include/c++/10.2.0/bits/std_abs.h:85:3: note: candidate function
  abs(__GLIBCXX_TYPE_INT_N_0 __x) { return __x >= 0 ? __x : -__x; }
  ^
4 errors generated.
make[4]: *** [Makefile:25125: video_filter/libopencv_wrapper_plugin_la-opencv_wrapper.lo] Error 1
make[4]: *** Waiting for unfinished jobs....
video_output/caca.c:200:9: warning: 'manage' is deprecated [-Wdeprecated-declarations]
    vd->manage  = Manage;
        ^
../include/vlc_vout_display.h:333:44: note: 'manage' has been explicitly marked deprecated here
    void       (*manage)(vout_display_t *) VLC_DEPRECATED;
                                           ^
../include/vlc_common.h:85:40: note: expanded from macro 'VLC_DEPRECATED'
# define VLC_DEPRECATED __attribute__((deprecated))
                                       ^
1 warning generated.
make[4]: Leaving directory '/tmp/vlc-3.0.12/modules'
make[3]: *** [Makefile:27927: all-recursive] Error 1
make[3]: Leaving directory '/tmp/vlc-3.0.12/modules'
make[2]: *** [Makefile:12742: all] Error 2
make[2]: Leaving directory '/tmp/vlc-3.0.12/modules'
make[1]: *** [Makefile:1557: all-recursive] Error 1
make[1]: Leaving directory '/tmp/vlc-3.0.12'
make: *** [Makefile:1444: all] Error 2
Any ideas as to what might be wrong?

I want to try and get Kaffeine working (for which I need VLC to work) as it makes a good PVR!

TIA,

--
Pete
 
Old 03-08-2021, 12:26 PM   #47
sndwvs
Senior Member
 
Registered: Aug 2014
Posts: 1,900

Rep: Reputation: Disabled
Quote:
Originally Posted by pchristy View Post
A question for sndwvs concerning vlc: Can you play .ts (mpeg transport stream) files on your system using your vlc? These are how DVB is generally transmitted.

I can get DVB fine using MPV and DVB utils (so not a hardware issue), but not when using VLC or Kaffeine (which is based on libVLC). Trying various locally stored files, I can play mp4, mkv etc with no problems, but vlc flatly refuses to play .ts files. (It works fine on my x86_64 installation) Since DVB is .ts based, this seems to be why I can't use VLC or Kaffeine for DVB.

Either I'm missing a dependency, or you have something installed that I don't that is causing a problem with the pre-packaged version.
i checked on file:
Code:
Format : MPEG-PS
File size : 2.75 GiB
Duration : 1h 28mn
Overall bit rate : 4 454 Kbps

Video
ID : 224 (0xE0)
Format : MPEG Video
Format version : Version 2
Format profile : Main@Main
Format settings, BVOP : Yes
Format settings, Matrix : Default
Duration : 1h 28mn
Bit rate mode : Variable
Bit rate : 4 174 Kbps
Nominal bit rate : 15.0 Mbps
Width : 720 pixels
Height : 576 pixels
Display aspect ratio : 4:3
Frame rate : 25.000 fps
Standard : PAL
Color space : YUV
Chroma subsampling : 4:2:0
Bit depth : 8 bits
Scan type : Interlaced
Scan order : Top Field First
Compression mode : Lossy
Bits/(Pixel*Frame) : 0.403
vlc reproduces it.

for build add
Quote:
CC="clang" \
CXX="clang++" \

LDFLAGS=$SLKLDFLAGS \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
 
Old 03-08-2021, 12:58 PM   #48
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Ah! Your test file is MPEG-PS (Programme stream) not MPEG-TS (Transport stream). PS files are generally used for recording, where TS files are used for transmission. Most DVB apps simply record the TS file as it comes in. I can copy the ts file into a Matroska container - without transcoding - and it plays fine, so its a container issue rather than coding.

I'll try building with your added configs and report back... (Won't be until tomorrow, now)

Cheers,

--
Pete
 
Old 03-09-2021, 05:04 AM   #49
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Quote:
for build add
Code:
CC="clang" \
CXX="clang++" \
LDFLAGS=$SLKLDFLAGS \
CFLAGS="$SLKCFLAGS" \
CXXFLAGS="$SLKCFLAGS" \
Just checked and these are already present (I had downloaded your latest slackbuild).

--
Pete
 
Old 03-10-2021, 09:44 AM   #50
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Update: I managed to get it to compile by disabling opencv. However, it still hasn't cured the problem. It looks as if something in the .ts module is incompatible with arm at the moment, though I have no idea why.

(From source code: /modules/demux/mpeg/ts*)

My programming skills are not up to debugging that! I have put a post up on the VLC forums, but no response so far...

--
Pete
 
Old 03-12-2021, 03:30 AM   #51
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Quick update: It looks as if the ts demuxer is not getting built for some reason. If you look in the tools dropdown /preferences / (all) / demuxers there is no mpeg-ts demuxer shown. Come to that, there isn't a matroska one either, but it does play some matroska files. There is a PS demuxer shown for mpeg-ps files.

I've tried rebuilding both with and without the ffmpeg-merge option and it makes no difference! On x86_64 this gets built automatically by default. There is an option to force matroska (haven't tried it), but none for TS that I can find.

I don't understand why it is not getting built, as I don't see any errors during the compile, and it should just be there! It certainly is in x86(_64).

--
Pete
 
Old 03-13-2021, 12:55 PM   #52
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
OK, it looks like the mpeg-ts demuxer is missing. The only place I've been able to find it is in the gst-plugins-bad package, which doesn't seem to be part of slarm64. I've tried building it from Robby Workman's package for x86(_64) - suitably tweaked for aarch64 - but it crashes with a syntax error:

Code:
photography-enumtypes.c:6:1: error: stray '\' in program
    6 | \#include "photography.h"
      | ^
photography-enumtypes.c:6:2: error: stray '#' in program
    6 | \#include "photography.h"
      |  ^
photography-enumtypes.c:6:11: error: expected '=', ',', ';', 'asm' or '__attribute__' before string constant
    6 | \#include "photography.h"
      |           ^~~~~~~~~~~~~~~
photography-enumtypes.c: In function 'gst_photography_white_balance_mode_get_type':
photography-enumtypes.c:33:9: error: 'GST_PHOTOGRAPHY_WB_MODE_AUTO' undeclared (first use in this function)
   33 |       { GST_PHOTOGRAPHY_WB_MODE_AUTO, "GST_PHOTOGRAPHY_WB_MODE_AUTO", "auto" },
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~

<snip>

make[4]: Leaving directory '/tmp/SBo/gst-plugins-bad-1.6.2/gst-libs/gst/insertbin'
  CC       libgstcodecparsers_1.0_la-gsth265parser.lo
  CC       libgstcodecparsers_1.0_la-gstvp8parser.lo
  CC       libgstcodecparsers_1.0_la-gstvp8rangedecoder.lo
  CC       libgstcodecparsers_1.0_la-parserutils.lo
  CC       libgstcodecparsers_1.0_la-nalutils.lo
  CC       libgstcodecparsers_1.0_la-dboolhuff.lo
  CC       libgstcodecparsers_1.0_la-vp8utils.lo
  CC       libgstcodecparsers_1.0_la-gstjpegparser.lo
  CC       libgstcodecparsers_1.0_la-gstmpegvideometa.lo
  CCLD     libgstcodecparsers-1.0.la
make[4]: Leaving directory '/tmp/SBo/gst-plugins-bad-1.6.2/gst-libs/gst/codecparsers'
make[3]: Leaving directory '/tmp/SBo/gst-plugins-bad-1.6.2/gst-libs/gst'
make[2]: *** [Makefile:785: all-recursive] Error 1
make[2]: Leaving directory '/tmp/SBo/gst-plugins-bad-1.6.2/gst-libs'
make[1]: *** [Makefile:954: all-recursive] Error 1
make[1]: Leaving directory '/tmp/SBo/gst-plugins-bad-1.6.2'
make: *** [Makefile:883: all] Error 2
Once the error starts, its like a stack of dominoes going down, resulting in a terminal crash!

The file it is complaining about seems to be internally generated, so I have no idea why it should contain a syntax error - or how to prevent it!

Anyone any ideas?

--
Pete
 
Old 03-13-2021, 03:29 PM   #53
justwantin
Member
 
Registered: Aug 2003
Location: Melbourne, Australia
Distribution: Slackware, Slackwarearm
Posts: 878

Rep: Reputation: 120Reputation: 120
Just very distant idea ... maybe ...
Quote:
both FFmpeg and VLC are using libavcodec, a library which implement what ffmpeg exposes through its command line interface.
link for quote here. Note that in my code snippet in your thread (#10) ffmpg is taking a transport stream and converting it to a pal-dvd which is an mpg format that I would expect vlc could digest without a problem. To to rule out a possible problem with ffmpeg and libavcodec try editing and using that code snippet to see if you can convert a ts to mpg. Vlc needs both ffmpg and libav to convert on the fly. if I found a problem I would then look at the builds/slackbuilds of those two packages ....

Last edited by justwantin; 03-13-2021 at 03:44 PM. Reason: rephrasing
 
Old 03-14-2021, 04:18 AM   #54
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
I was under the impression - mistaken, it would seem - that VLC, like many other programs, was heavily reliant on ffmpeg. Whilst this may be true of the various codecs, it appears NOT to be the case for the demuxers.

Ffmpeg handles the ts files quite happily, as does ffplay. However, ffmpeg's demuxers for mpeg-*s files are named "mpeg" (for ps files) and mpeg-ts (for ts files). Looking at VLC's list of demuxers, found under preferences/all, indicates that the ps demuxer is named PS, and the ts demuxer is named MPEG-TS. The former corresponds to the gstreamer demuxer that is part of one of the plugins packages ("good", IIRC). The gstreamer mpeg-ts demuxer is part of the "bad" plugins package, which is not part of the stock slarm64 packages. This is probably why VLC is building without the ability to handle ts files.

The only way to prove this one way or the other is to build the "bad" plugins package, and then rebuild VLC. Which is where I am currently stuck!

The "bad" plugins package is so named, not because there is necessarily anything wrong with the plugins, just that they haven't either been fully tested, or the documentation is incomplete. A bit like "-current"!

What is really puzzling is how an auto-generated script can have a syntax error in it! I don't really know enough about cmake to diagnose the problem any further at present...!

Another option would be to try and build AlienBob's mega-VLC on ARM. Unfortunately, I've hit a snag there too! AlienBob's build requires Apache-ant - fair enough - but that requires Java! Unfortunately, to get hold of Java these days, it seems you MUST sign up for an Oracle account - something I prefer not to do! I also don't want to fill up what is essentially a lightweight machine with a lot of unnecessary clutter.

So, back to gstreamer...

--
Pete

Last edited by pchristy; 03-14-2021 at 04:22 AM.
 
Old 03-14-2021, 07:18 AM   #55
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Finally managed to get the gstreamer-plugins-bad to compile! The latest versions build with meson, so I tweaked the gstreamer-plugins-good slackbuild, and it built like a charm ind includes libgstmpegtsdemux. Great!

So then I re-built VLC. Still no mpegts demuxer!

I'm now completely flummoxed! Where does VLC pick up its TS demuxer? What is the missing dependency?



--
Pete
 
Old 04-05-2021, 12:31 PM   #56
pchristy
Senior Member
 
Registered: Oct 2012
Location: South Devon, UK
Distribution: Slackware
Posts: 1,119

Original Poster
Rep: Reputation: Disabled
Finally cracked this one!

I installed libdvbpsi - something I've never heard of before - and after re-compiling VLC, both VLC and Kaffeine now function as expected with both .ts files and off-air reception!

I've no idea why VLC didn't just use the ffmpeg TS demuxers (already available on my system), but there you go. Problem solved, at last!

--
Pete
 
  


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
vlc 2.7 mageia 3 no video only sound vlc win ok moshebagelfresser Mageia 5 07-21-2013 12:20 AM
Installing VLC using vlc-0.9.9a-4.el5.rf.i386.rpm--Error relating to Dependencies redhat5 Linux - Newbie 1 12-17-2009 04:23 PM
LXer: Create your own VLC skin with VLC media player Skin Editor LXer Syndicated Linux News 0 12-06-2009 12:30 PM
VLC error: VLC could not open the file "/usr/share/vlc/skins2/text.bmp". brjoon1021 Ubuntu 1 01-14-2009 10:48 PM
I'm Getting 6 VLC Windows At Once - Problem With VLC Player davidx Linux - Software 1 11-03-2008 11:45 AM

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

All times are GMT -5. The time now is 12:13 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