FS#57639 - [vlc] Chromecast support missing

Attached to Project: Arch Linux
Opened by Konstantin Gizdov (kgizdov) - Monday, 26 February 2018, 00:40 GMT
Last edited by Levente Polyak (anthraxx) - Monday, 26 February 2018, 23:19 GMT
Task Type Bug Report
Category Packages: Testing
Status Closed
Assigned To Levente Polyak (anthraxx)
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 2
Private No

Details

Description:
In the current build, when one tries to stream to a Chromecast, VLC cannot find it with the following error:
[00007f95d81159c0] main probe debug: looking for renderer probe module matching "any": 0 candidates
[00007f95d81159c0] main probe debug: no renderer probe modules

Reported upstream to VLC - https://trac.videolan.org/vlc/ticket/19859 , but VLC says it's not a problem with VLC itself.

Additional info:
* package version(s) - 3.0.0-1
* config and/or log files etc. - N/A


Steps to reproduce:
1. Install VLC
2. Switch on Chromecast and connect to local WiFi
3. Open VLC
4. Go to Playback->Renderer
5. See VLC is stuck on 'Scanning...' and never finds Chromecast

This task depends upon

Closed by  Levente Polyak (anthraxx)
Monday, 26 February 2018, 23:19 GMT
Reason for closing:  Implemented
Additional comments about closing:  3.0.0-2
Comment by Levente Polyak (anthraxx) - Monday, 26 February 2018, 00:50 GMT
vlc /usr/lib/vlc/plugins/demux/libdemux_chromecast_plugin.so
vlc /usr/lib/vlc/plugins/stream_out/libstream_out_chromecast_plugin.so

not sure what you mean by missing
Comment by Levente Polyak (anthraxx) - Monday, 26 February 2018, 01:00 GMT
PS: seen your logs on the vlc issue tracker: you can't just run one package from [testing] you either run the whole repo or nothing at all. you are missing essential libraries VLC is linked against sitting in [testing] as well.
Comment by Doug Newgard (Scimmia) - Monday, 26 February 2018, 02:52 GMT
Doesn't seem to be working for me, either. Fully up to date on testing, with protobuf installed.

The last 2 lines in the log in the upstream ticket:

[00007fe154555d20] main probe debug: looking for renderer probe module matching "any": 0 candidates
[00007fe154555d20] main probe debug: no renderer probe modules

I get this every time I open the Renderer submenu.
Comment by Adam Fontenot (amfontenot) - Monday, 26 February 2018, 06:09 GMT
You need to build with the microdns library (--enable-microdns). If you don't, even though VLC supports Chromecast, it won't be able to find the device on the local network.

Also, while I'm here, it would be great to have libplacebo for tonemapping 10 bit to 8 bit. This is included by default in the VLC binaries I believe, and e.g. Debian has it built in.
Comment by Konstantin Gizdov (kgizdov) - Monday, 26 February 2018, 11:16 GMT
@anthraxx: After I updated to testing variant of all deps, I also went and built the package from scratch including explicitly the flags for Chromecast support (which I "think" are currently missing). So I am up to date with what the package requires. If you say that I don't have the correct dependencies, then that is definitely a packaging issue - I have everything vlc-3.0.0-1 wants. You can't expect me (users) to know what is missing from deps, when they aren't listed in the package.

@amfontenot: Looking at the logs from my build, `--enable-microdns` flag fails to find its requirements and continues. This is probably because of missing/incorrect dependencies as well.

This is the same conclusion one comes to after @Scimmia's comment.

I would appreciate some help here, if it is indeed my misunderstanding, but as far as I can tell this looks like a deps issue.
Comment by Levente Polyak (anthraxx) - Monday, 26 February 2018, 11:23 GMT
Selectivly installing things from [testing] is just a dangerous play, optdepends can have depends that are in testing and need linking.
What I'm saying is that you are overcompilcating analysis also on the VLC upstream side, libx265 is pulled in as hard dependency of ffmpeg but you clearly have a unlinkable version:

[0000562eed77b3f0] main libvlc warning: cannot load module `/usr/lib/vlc/plugins/codec/libx265_plugin.so'
(libx265.so.151: cannot open shared object file: No such file or directory)

I don't say there is nothing to solve here, but you are overcompicating analysis on this and especially VLC side if you provide them logs and testing where the libx265 can't even be loaded and show a serious package state problem on your side. You either take [testing] or you don't.
Comment by Konstantin Gizdov (kgizdov) - Monday, 26 February 2018, 11:29 GMT
@anthrax, the logs are from Sat. I already listed what I did after that. I am at work now and will send you new logs tonight, if that is your wish. I guess, @Scimmia is also confused like me and doesn't know how to install vlc properly.
Comment by Doug Newgard (Scimmia) - Monday, 26 February 2018, 14:23 GMT
kgizdov, statements like "After I updated to testing variant of all deps" tell me you don't get it. Partial updates are not supported in Arch, period. That may not be the problem here, but your system is in an unsupported state, so there was no way to be sure. You're pretty much on your own when you do this, you can't expect ANY official help or support at all.
Comment by Adam Fontenot (amfontenot) - Monday, 26 February 2018, 16:33 GMT
anthraxx: this is a packaging issue - VLC having Chromecast support means that they have built in the ability to send audio to Chromecast devices, e.g. if you specify the device on the command line. The issue is that they've also built in the ability to search for and select Chromecast outputs in the GUI, but this requires a small library (which they ship in the contrib folder) called microdns. You can either built it in statically or make it a separate package, but unless VLC is compiled with it Chromecast support will be mostly broken.

kgizdov: if you're compiling for yourself, you need to add --enable-microdns to the PKGBUILD. Since Arch doesn't currently have a package for this library you could built it in statically using the contrib folder. E.g. go into contrib/ and build just microdns, then tell the PKGBUILD how to find it with something like

export PKG_CONFIG_PATH="contrib/x86_64-pc-linux-gnu/lib/pkgconfig"
Comment by Doug Newgard (Scimmia) - Monday, 26 February 2018, 16:37 GMT
amfontenot, you might want to check again, Arch does have a package for it as of a 5 hours ago. Guess why. :)
Comment by Konstantin Gizdov (kgizdov) - Monday, 26 February 2018, 22:15 GMT
@Scimmia, the first comment on this thread was that I had only updated `vlc` from testing, but needed to run the whole repo. This is what I did. I would really appreciate it, if people asking me to debug are consistent, saves time. I take good care of all my systems and they are all in a supported state.

@anthraxx, Initial install from Sat was from 'Staging', this is not an issue anymore. Even though, it is clear to all of us that not having libx265 has absolutely nothing to do with the issue in question. I do not plan on spending anymore time convincing anyone of this.
However, I have followed what you suggested in the name of cooperation and to show that I am indeed putting efforts towards fixing this. I include the new log and the deps list from pacman. You can see that I've added the two extra flags for Chromecast support and, except for the visualization lib, all optional deps are installed. Absolutely nowhere in the package is a mention that `libmicrodns` is required or even suggested. It's not even in the `makedepends`.

@amfontenot, I agree, this should be added to the package. This is what the VLC devs suggested on the original issue.

I hope I have answered all queries and we can move on to some solutions. For me, the issue is identified and I have created a new PKGBUILD available on my repo for anyone wishing to test it out - https://github.com/kgizdov/vlc . Logs of correct operation are also included.
Comment by Levente Polyak (anthraxx) - Monday, 26 February 2018, 22:28 GMT
First: thanks for you effords, but please stop adding fuzz. The last post adds exactly _zero_ to this history.
it was properly brought up by amfontenot and if you would have read the whole conversation you would have seen that i added microdns freshly like 12h ago to the repo to add the missing discovery support to vlc.
never ever again install anything from [staging] you reported bugs in an definitive broken and 100% unsupporeted state, no mater if noting to do with it or not. just don't, ever!
Comment by Konstantin Gizdov (kgizdov) - Monday, 26 February 2018, 23:11 GMT
@anthraxx, my last post added everything you wanted/needed and answered eveyone's comments from today. Nowhere do you mention adding microdns and I have currently checked out all the repos and pulled like 30 min ago - there is no microdns. You added it 4 min ago, way after my comment. I am not adding fuzz. Stop insulting my intelligence.
Comment by Konstantin Gizdov (kgizdov) - Monday, 26 February 2018, 23:15 GMT
@antraxx, I've seen people ask to add `--enable-sout` with `--enable-chromecast`. Not sure if that is auto-enabled, but just wanted to mention it.
Comment by Levente Polyak (anthraxx) - Monday, 26 February 2018, 23:16 GMT
LOL, that overly verbose block added like nothing, you could have noticed the conversation in the meanwhile.
libmicrodns was added to the repo 12h ago, not to VLC. It was going through a complete rework for other things, take a look instead of assuming something out of nothing.

Loading...