10 ms·
A new core playlist for VLC 4
- Numberwang 7y agompv.io
- enriquto 7y agoWhy does a video viewer need a "playlist"? Isn't that feature already accomplished by the file open dialog?
- moreira 7y agoYou see it as a video viewer but plenty of people use it as a general media (including music) player. If you’ve got 100 songs queued up, then keeping track of a playlist is definitely necessary.
- skrebbel 7y agoI agree that it's an overrated feature, but there's plenty of use cases. Eg you want to play an evening of cool videos in a loop on a projector somewhere, your kids are allow to watch exactly two Paw Patrol episodes, etc.
- tapland 7y agoClasses with 4-6 minute videos.
- neau 7y agoBinge watching TV shows is a habit not to be overlooked.
- Kaiyou 7y agoSame reason it needs an integrated email client.
- iovrthoughtthis 7y agoWhat about sequential playing without user interaction? What about persistent arbitrary play ordering? Any solution to this would just be implementing a playlist.
- enriquto 7y ago> What about sequential playing without user interaction? cvlc * > What about persistent arbitrary play ordering? cvlc `ls | sort -R`
- lifthrasiir 7y ago> cvlc `ls | sort -R` Results in a same sequence once the loop completes. You should use `cvlc -Z` instead; I also happen to use `mplayer -shuffle` for this exact purpose.
- enriquto 7y agowhy would you want to see a movie twice on the same binge?
- greatpatton 7y agobecause they are watching music videos...
- lifthrasiir 7y agoVLC is useful as an audio player as well.
- programd 7y ago> cvlc `ls | shuf` gives you a different sequence every time
- lifthrasiir 7y agoOkay, I have assumed "persistent" being a loop. The loop is being randomized but it is fixed once arguments are passed to cvlc.
- genericacct 7y agoTBH I now mostly use desktop VLC for my mp3 library. The various remote interfaces are awesome for controlling playback from a smartphone. Therefore VLC is at least to me an audio player.
- AlexTDS 7y agoI use it to stream an IPTV playlist. With VLC 3 large playlist of channels would never load correctly or would take a lot of time. The recent nightlies have been much much better and content loads pretty much instantaneously.
- TazeTSchnitzel 7y agoWhy does an HTML viewer need history and tabs? Aren't these features already accomplished by the xterm window the user must be invoking it from?
- enriquto 7y agoYou are right. Browsers are even worse in that respect!
- Endy 7y agoOn an inferior system, absolutely. On Windows, I run it either from an icon click or the Run dialog. No terminal invocation is needed.
- LeoPanthera 7y agoYou're being sarcastic, but there's a grain of truth in your argument against tabs. It does feel like the kind of thing the OS should provide for any app.
- Krasnol 7y agoJust downloaded the nightly build...it's horrible. I hope there is a way to reverse everything to how it is at the moment. There is a point in software where the UI reaches it's optimum. It is at that point with VLC atm. I never had any issues with the playlist. The playlist is not a especially relevant part in the whole thing. I drag files/folder in there and it does what it does. Please don't overdo it... I'd rather see the render to chromecast issues fixed. Can't pause with VLC or the video stops after a few seconds resuming and I need to start over.
- Barrin92 7y agowhile we're nagging about problems with vlc, one thing I desperately need is some trivial way to have files in the playlist labeled by filename instead of metadata. It seems unintuitive and often if files are missing metadata you can't sort the playlist or tell what's what.
- TazeTSchnitzel 7y agoThe version of my favourite anime series I have on my machine unfortunately has a mistake where every single episode has the same incorrect title metadata.
- jbk 7y agoThis will be changed in VLC 4.0. You will be able to sort the media library and the playlist by filename.
- enriquto 7y agoNotice that you can still use "cvlc" that has a very elegant interface (i.e., zero pixels).
- rom1v 7y ago> I never had any issues with the playlist. The playlist is not a especially relevant part in the whole thing. The playlist rewrite I detail in this blogpost is an internal technical refactor, so you're absolutely right, it's not a relevant thing for the users. It is independant of the UI. In theory, it could have been used with the old UI, but technically a big part of the old UI code would have needed to be rewritten to use the new core playlist. Since a new modern UI is being developed, this was not worth the effort to do the work twice. So only the new UI will use the new playlist/player. > Just downloaded the nightly build...it's horrible. I hope there is a way to reverse everything to how it is at the moment. The master branch is a development branch. Everything has been merged recently to avoid that everyone work on their own branch and resolve conflicts all the time, and the new components need to interact (playlist, player, clock, media library, qt ui…). But it's in development, it's not a release.
- jacobolus 7y agoI used VLC for years, but more recently have found the Mac app IINA https://iina.io/ https://iina.io/ to be a (not perfect but) substantially nicer tool in the same niche (i.e. an open-source video player that handles whatever I throw at it). VLC is just too full of incidental complication.
- moreira 7y agoOh wow thank you for that referral this looks -amazing- and I have exactly the same use case as you.
- neau 7y agoMac OS only? VLC works on Windows/UWP/Phone, Linux, macOS, iOS, Android, Chrome OS, Apple TV, and those are only the officially supported platforms.
- konart 7y agoIINA is a (macOS only) UI for the mpv (which is crossplatform).
- terramex 7y agoTwo things that convinced me to switch to IINA was integrated subtitle downloader and ability to position those subtitles onto lower matte in letterboxed videos.
- Kaiyou 7y agoDid VLC ever lose it's reputation of being the worst video player of all time?
- gsich 7y agoNo. Right now it's on the verge of being the worst audio player too. Takes forever to seek in a 2h+ audiofile.
- jbk 7y agoMp4 files? What format? What OS?
- gsich 7y agomp3, m4a, doesn't really matter. Win32 Edit: Ubuntu and VLC 3.0.4 has the same problem.
- gsich 7y agoI made a short video: https://streamable.com/96v6n https://streamable.com/96v6n this is the audiofile: https://meta.metaebene.me/media/mm/fs235-sechzehn-bar-blondes-haar.m4a https://meta.metaebene.me/media/mm/fs235-sechzehn-bar-blonde...
- npstr 7y agoThe VLC Android App is unusable since an update earlier this year. Any plans to fix that? I reverted to an older version and would like to come aboard again once the bugs are fixed & bad UI decisions corrected. There was plenty of feedback on the playstore to act on and there was at least one bug fix release, but current reviews are still negative :/
- PetitPrince 7y ago> The randomizer stores a single vector containing all the items of the playlist. This vector is not shuffled at once. Instead, steps of the Fisher-Yates algorithm are executed one-by-one on demand. Fisher-Yates is the generalization of what is known as the "7-bag randomizer" in the Tetris community (same problem: you want to distribute 7 pieces randomly but want to avoid repetition). It's funny how what you think as inconsequential trivia about your niche hobby can turn out in unexpected places !
- rom1v 7y agoInteresting, I didn't know about the tetris randomizers! https://simon.lc/the-history-of-tetris-randomizers https://simon.lc/the-history-of-tetris-randomizers
- jchw 7y agoThis article, while a nice summary, does miss some details that are quite important. TGM in particular uses Mersenne Twister as its PRNG, whereas NES Tetris probably uses a linear congruential generator (as was common for many games on 8-bit game consoles to the best of my knowledge.) MT behaves dramatically differently than LCG, and while it may seem like a minor detail, actually feels quite different to play from Math.random implementations I've tried, even when using the same TGM algorithm.
- xxs 7y agoflip note: I dunno which 'Math.random' you mean, the Java version should not be used for anything meaningful (perf. related) as it is a shared 'java.util.Random' that exhibits a contention point, albeit a CAS (not synchronized) but a contention point nonetheless. Also generating a double (from 2 ints) to be converted to an int is a bad idea. Should be just 'random.nextInt(7)'
- jchw 7y agoIn particular I’m thinking of JavaScript, but the same thing could be said about libc random. In at least a few puzzle games, the PRNG used has noticeable side effects.
- saagarjha 7y ago> Thus, the playlist may not be bound to the event loop of some specific user interface. Moreover, the playlist may be modified from a player thread; for example, playing a zip archive will replace the item by its content automatically. As you probably figured out, this is quite hard to do correctly :) I have a similar design in some software I've written, but sadly I get a number of crashes that tell me that I've haven't done it quite right…
- plibither8 7y agoEdit: It's online again. The website seems to be unreachable right now, here's the archived version: http://web.archive.org/web/20190522045257/https://blog.rom1v.com/2019/05/a-new-core-playlist-for-vlc-4/ http://web.archive.org/web/20190522045257/https://blog.rom1v...
- ttoinou 7y agoWill their ever fix the infinite loop you get when you open a broken file and VLC just try to read the 1-file playlist indefinitely and the UI gets stuck forever ?
- rom1v 7y agoDefinitely, we are aware of this stupid behavior, it will be fixed (at the latest) in 4.0.
- ttoinou 7y agoMerci Romain pour tout ce taf :)
- rom1v 7y agoI just proposed a patch to fix the problem on VLC 3: https://mailman.videolan.org/pipermail/vlc-devel/2019-May/124882.html https://mailman.videolan.org/pipermail/vlc-devel/2019-May/12... (proposed != merged)
- ttoinou 7y agoInstead, wait some delay before starting the next item, depending on the number of consecutive errors That's smart ! What if I have two items on the playlist that both fails, is it going to remember the number of consecutive errors ?
- rom1v 7y ago> What if I have two items on the playlist that both fails, is it going to remember the number of consecutive errors ? Yes, it will, the counter is reset only on successful playback.
- rom1v 7y agoAnd actually Thomas already implemented it in VLC 4: https://code.videolan.org/videolan/vlc/blob/f93fef718c3c61e2e4f5f9438d2e7f534e35bff9/src/input/player.c#L899 https://code.videolan.org/videolan/vlc/blob/f93fef718c3c61e2... \o/ (we discussed about it, I didn't remember he already did it)
- josteink 7y ago> User interfaces need random access to the playlist items, so a vector is the most natural structure to store the items. A vector is provided by the standard library of many languages (vector in C++, Vec in Rust, ArrayList in Java…). But here, we’re in C, so there is nothing. I so do not miss working with C. Having higher level abstractions and a working, useful standard library is just too nice.
- bo1024 7y agoThis was the one that got me: > model.get(4); // out-of-range, undefined behavior (probably segfault)
- fabioborellini 7y agoLast time I downloaded VLC on Windows, an ad on the download page started download for "VLC Torrent Streamer" or something equally confusing. I never launched that EXE but started wondering what kind of crapware I would have gotten if I had. I thought VLC was better than scams like that.
- rom1v 7y agoDid you get it from https://www.videolan.org/ https://www.videolan.org/ ?
- ahje 7y agoWhen I look at the download page now, there are no ads (disclaimer: I use an ad-blocker and I use noscript). Furthermore, VLC is available from the Microsoft Store, so that you don't have to fetch untrusted executables anyway.
- m_t 7y agoThe windows store version is a bit different than the one you an download from the website though.
- TorKlingberg 7y agoHere is what the official Videolan download page looks like on Windows Chrome without adblocker: https://imgur.com/a/ZWZdtk5 https://imgur.com/a/ZWZdtk5 The VLC download is started in the background, but the "Download Now" buttons are highly misleading. This time it's Avast rather than "VLC Torrent Streamer". Videolan should be ashamed using dark patterns to trick people into installing adware.
- pilif 7y ago> But here, we’re in C, so there is nothing there's your problem. I mean, I'm sure your `vlc_vector` you've spent so much time optimizing and securing is as good as or even better than `other_project_vector` and `some_library_vector` or maybe even `some_other_vector` All of which were implemented by various projects out of necessity because the language they chose doesn't have such an essential data structure in its standard library and because the culture around the language values NIH more than anything else. Remind me again, why C is a good thing and not a liability these days?
- rom1v 7y ago> I mean, I'm sure your `vlc_vector` you've spent so much time optimizing and securing I agree, that's a waste of time I would have preferred to avoid. The lack of a such basic structures is something I really dislike in C. > Remind me again, why C is a good thing and not a liability these days? Ubiquity, portability, performance, interface with other languages…
- cyphar 7y agoThere was quite a bit of interest in getting Rust parsers into VLC a few years ago[1], is there any update on this -- will we ever see core VLC code using Rust? [1]: https://www.youtube.com/watch?v=YTy_JOxGOd4 https://www.youtube.com/watch?v=YTy_JOxGOd4
- rom1v 7y agoPersonally, I'd love to :) One annoying point is that the core API, used by the modules, can change at any time (the modules are updated along with the API). If there are Rust bindings for the core API [1], every API change must be reflected in Rust (and in modules written in Rust). This is problematic. [1] https://www.youtube.com/watch?v=YTy_JOxGOd4&t=875 https://www.youtube.com/watch?v=YTy_JOxGOd4&t=875
- pilif 7y ago> interface with other languages… Many languages that compile to native code allow you to export functions in a way that they can be called from other C code. This means you'd write your actual code in whatever language you want (possibly one that does have a generic vector in its standard library - but I guess these days that's anything but C) and then you'd just export a usable-by-C interface so other languages still get to interface with your implementation.
- DiseasedBadger 7y agoVLC continues to be riddled with crashes in the menus, because of a bug in how they use A List, that is almost 10 years old. The only way I can make sense of it, is that they must build VLC against a modified Qt distribution, or something they just never update. I've totally switched to SMPlayer and MPV.
- rom1v 7y ago> VLC continues to be riddled with crashes in the menus, because of a bug in how they use A List, that is almost 10 years old. Could you be more specific, please? Which menu, in which circumstances?
- DiseasedBadger 7y agoI'd have to install it again to reproduce it, but I believe there are several menus that don't expect certain things to be empty. I think one triggers when selecting "Open Capture Device". There is a closed bug report for this, that was closed I think as unable to reproduce. Years old. I'll see if I can get back to exactly what it was.
- kakuri 7y agoI used VLC for many years without issue, but eventually it became unstable on my system and then wouldn't even launch, even after a fresh re-install. So to share something with others who may be looking for an alternative, MPC-BE with madVR and LAV audio decoder is amazing. I had some issues with MPC-BE out of the box: video tearing and muffled dialog during movies. madVR improves video rendering performance and LAV audio improves audio decoding.
- albertzeyer 7y agoThis sounds interesting. I personally would be more interested though if it would introduce some concept of an infinite queue, because that is usually the way I listen to music. I want to be able to select some music and to queue that, but when that finished, it should continue playing, with related/similar songs, or maybe according to some other rules/genre or so. Many other music players have this. Also e.g. Spotify. Or iTunes DJ mode. Amarok had this. Sometimes it was called PartyShuffle. I like the separation of the playlist/queue and the UI. But if it is an infinite queue, it is not possible to get a full copy of it. Only maybe to the finite preselected upcoming queue. But maybe that is not much of a problem then. The core infinite logic usually is implemented like: If the queue of songs contains less than N next songs, select some more songs from some database, according to some probability distribution. I implemented my own music player at some point, where my main focus was around this concept of an infinite queue. (https://github.com/albertz/music-player/blob/master/WhatIsAMusicPlayer.md#intelligent-automatic-queue https://github.com/albertz/music-player/blob/master/WhatIsAM... https://news.ycombinator.com/item?id=4771999 https://news.ycombinator.com/item?id=4771999) One reason was that I wanted to take this concept much further than any existing music player. E.g. even introducing some clever machine learning models to guide the infinite music queue. I was actually quite happy with it, but it took too much time to really polish, to make it cross platform, etc. Now I mostly use Spotify, which gets close to what I wanted to implement in the first place. And they are working to improve the intelligent infinite queue, or generate playlists automatically in other ways. So, now that there is some work by VLC on the playlist, I was wondering, how easy is it to extend that? E.g. maybe some Python interface, so I could maybe plugin some neural network, and add new songs to it when it runs out of songs. That would be really nice. Related to that, what is the current state in VLC about other music player related features, like e.g. gapless playback?
- vanderZwan 7y ago> but when that finished, it should continue playing, with related/similar songs, or maybe according to some other rules/genre or so. How should it do that? VLC is not a music database, it's "just" a player of the media files that you feed to it.
- 7y ago
- AdmiralAsshat 7y agoSince this has turned into a "dump on VLC" thread: thank-you, VLC devs, for all the work that you do. I've been a diehard VLC user since 2006/2007, when I happily discovered a single .exe program could handle all of the files that I was continuously updating the ever-growing K-Lite Media Pack in order to handle. It found additional use as a Portable App that lived on the flash drive in my pocket, allowing me to pull it out at late-night piracy parties and confidently play the unviewable file that someone had grabbed off Kazaa. To this day, it's the one program I can recommend to friends and family to install, regardless of OS/platform, that I will be confident can handle anything they throw at it. You guys do great work.
- FullyFunctional 7y agoThis and I have donated money as well. VLC is one of the apps I install shortly after getting a new box. Being cross platform is a great boon.
- munk-a 7y agoVLC is amazing, I love the work you guys are doing and heartily recommend it to my friends and family as well!
- mikevm 7y agoI dumped VLC due to the simple reason that when a video is paused, it will stop the computer from going to sleep. The developer thinks this behavior is OK and refused to fix it so I just found a nicer and minimalist player called https://mpv.io/ https://mpv.io/
- rom1v 7y ago> when a video is paused, it will stop the computer from going to sleep This seems to be fixed: - https://trac.videolan.org/vlc/ticket/3724 https://trac.videolan.org/vlc/ticket/3724 - https://trac.videolan.org/vlc/ticket/19463 https://trac.videolan.org/vlc/ticket/19463 - https://trac.videolan.org/vlc/ticket/20092 https://trac.videolan.org/vlc/ticket/20092