 Okay, so it's 12 noon, we'll start, so our next talk will be about the well-renowned project, VLC, by the founder and president of the Videlane Association, Videlane Organization. Please welcome Jean-Baptiste Kempf. Hello. Yes, can you hear me? Please come and sit. Okay, ça c'est sûr. Please come and sit, don't stand up in the air. So, as often I come and talk about some updates about the Videlane Project and mostly VLC, and I'm going to speak about what's going to happen next. So for those who don't know, I think that's getting less and less people in this room, I'm the president of the Videlane Non-Profit and I've been working on VLC since my left basically. So we're going to speak about VLC. Just a few slides about VLC 3.0, which is going to be released on Tuesday, and probably Thursday for the time we do all the building. For those who don't know, just a few slides about what the fuck did we finally put on VLC 3.0, I believe I come for the last three or four years saying we'll do that in 3.0. And it's going to ship next, whatever, and of course it didn't. But actually now we are the release candidate eight or nine, so it's actually happening and it's already packaging the good distributions. So 2.2 was WeatherWax, was a very stable release, which helped us to get a lot of work on 3.0 because people were not bitching too much about the stable one, which allowed us to do a lot of stuff. But when you look at it, it's quite old. We forked it in 2015, so three years later we're going to actually work on 3.0. We had around 200 million downloads on our website, so that, of course, outside the release distribution and outside all the corporate environments. So that gives you a good idea of the desktop size of VLC on Windows and Mac, which is good. Not that many regressions. The biggest issue we had was, of course, 4K and UHD coming. Well, coming soon, since HEBC is almost dead. Thank you, AV1. So 3.0. Just a few numbers and ideas. We're talking about 18,000 commits on VLC Core, around 3,000 for each of the mobile ports, which is Android, iOS and UWP, which is quite big. It was, of course, too long to come, but it's a very strong release, and the reason why it took so much time was to finally have one release for all the platforms. And it was the same number, right? So many of our users don't understand because it's, of course, solidical that the version on iOS is 2.8.5 and the version on Apple TV is 1.1 and Android is 2.5. I mean, no one understands anything. So we're moving to a way that the first number is actually the Core version. So the next version is going to be VLC4 and so on, and the mobile ports and can have different release schemes. But at least for the users, they understand that the big number is the support of formats and codecs, which is what most people care about. So that's why it took us a long time, mostly because with mobile and with 4K and 8K and so on, we needed to have hardware decoding by default. And getting that was quite difficult. As our old mentor told us, mem copies murder, so in VLC3.0, on all the platforms, we got zero copy decoding and displaying. So we are now finally, the architecture is finally done so that we can just bypass from the decoder to the filters to the output, just a reference to the frame and so that we don't have mem copies and so everyone is happy, almost. The results are quite good. We get 4K on the iPads. We get 8K on the Galaxy Note so we can have 8K 60 FPS decoding on just a normal high-end Android phone. The last i7, the last two versions also get you 8K with VLC. We have less CPU consumption and GPU consumption than movies and MPCHC. So we have some very good results. We support 360 video. You care about that so much because VR is the future, like 3D. But mostly, some more important parties that we support now, network shares. So you can actually go and browse your DLNA, UPnP, your Samba shares, whatever, your FTP. We even have SFTP support for the few people who do that. But also that means, and that was quite difficult because we had to have password management. So now we integrate, we use your Cowlet or your Libsecret to your password inside VLC because of course, VLC is going to crush and you're going to get your secrets leaked. So we don't do that. But we had to do a lot of integration for that. As I said, common codebase. We now support 10 bits and 12 bits. Of course, 12 bits is, there is no display. But we support some kind of HDR using LiPlaSable from the MPV project which means that we can do ton mapping correctly for once. But if you have a Windows machine with a correct driver and the correct moon and the correct cable and the correct screen then you can get maybe some crappy UHD. HDR correctly path through. It's going to work some day on other platforms. Probably Android first. We spend a lot of time also on HDMI path through. For a long time VLC was not able to do anything else than DTS and Dolby path through for audio. That was very problematic for everyone using VLC as HTPT. So that's fixed because we finally destroyed the stupid architecture we had. Then a lot of new formats. A lot of work on the adaptive streaming because no one wants that. A lot of support on subtitles. So we support TTML, ASMC or you had the talk before. We even support Web VTT a CSS engine in VLC. Yeah. We are so happy about that. Web people if you are around, fuck you. By default now we are using OpenGL on Linux. And we have experimental Wayland support. It's of course not perfect but that's probably because of Wayland. Well, I'm going to pretend and not us. And also we have a new and we have also a new subtitling rendering stack. Don by a Syrian developer. I already talk about that. Refer to my talk last year. Which gave us some yes, some support of this language that you all recognize as Maya Lagan. The one who did not please take extra relations. But yeah, we have a full text rendering engine that is not Q, that is not GTK or KRO, that is our one. Lib VLC so because it is quite technical crowd we have done quite a bit of work on Lib VLC. One of the main reasons is that Lib VLC is actually the API we use for the mobile port. So we finally added a lot of functions. Demo of directly that was a bit of of course macOS 10.7 and Android from 2.3 and iOS 7. So that's very large. And this is the last version where we suppose that the platforms 3.0 is going to be a kind of LTS by LTS I mean just back port of security issues because we won't maintain it correctly I'm afraid. But still they will get at least security updates. Release is supposedly Tuesday and on your stores and so on Thursday when we update the website and we finish all the builds and test them. So cool 3.0 is there. What's after? VR. There is a lot of people who talk about VR and there is a lot of formats. Every camera is doing something different. Every headset is doing something different. Most of the VR apps are using a 500 megabytes download of unity and so on and they are all quite shitty. And if you just want to just look at it it's very difficult. So in 3.0 we supported all the 360 playback with your touch, with your mouse, with your keyboard, with your clicker and so that's just a normal one. And of course we had a new 3D ambisonic audio renderer. Sima also talks about that. But then some people actually want to play some HMD and there is still the question of how do we support 3D in VLC which so far we've not done. So we are going to work on open HMD integration which we are going to have in the main VLC and in a very simple way so it's not going to make you your VLC to raise one Alibaby Codec, finally merge the MVC support. Anton, please. Yeah, good luck, I know. But also we are going to have a kind of mode that is called virtual theater which is basically you have your 2D screen inside a kind of sky map but the thing is that it's going to be a minimal integration, quite simple and it's not going to change much on the VLC the change is mostly on the open GL video output. And then we are going to work on integration for Unreal and Unity using the same API on FBO passing that we used to do the demo. So after VR we are going to do VLC 4.0 called Autoshrick. Autoshrick is a vampire photograph please refer to the whole this world books if you need. What are we going to do in there? New video architecture new input and playlist media library integration and UI and dropping platforms. So video output we discussed about that actually yesterday we are going to rewrite most of the video output of VLC because now basically we are using a model where you are asking the hardware what it can support and then we go back upstream to reconfigure everything back to the decoder and put the converters. That was because most of the time the hardware was really shitty and really limited frame buffers or X video. Now that almost everyone has opened GL on Direct 3.11 we are going to do the other way around which is pushing pushing the frame from the decoder up to there and in the end with hopefully some magic with shaders and le placebo we are going to get it better. Which means we write most of the video outputs in VLC which means also probably dropping some of them which we can do because we are dropping platforms. Via recycling so that you don't have this very annoying effect when you move from one video to another one that sometimes the video output close it shouldn't happen but still it happens when we'll have that it's going to be easier. Support for 3D and VR well that's not that difficult to do side by side in OpenGL and probably more HDR because there will be 2 new different formats of HDR this year or maybe 3 or 4 and then people are going to ask for SDR2 HDR support and so on and so on and probably a video filter API in VLC finally Remy promised us thank you Remy he doesn't know about that yet. Input manager we are going to rewrite the input because now in VLC the audio output and the video output are owned by the playlist which allows you to get smooth transition of course it's not smooth because it's not done well between one input to the next one. So we are going to split the playlist and the input manager which is going to, the input manager is going to own the audio output the video output, the stream output and this one is the one who is going to manage the input and this one is just going to know the next input. It's going to simplify a lot the playlist and this might give us some gapless playback in VLC or even like cross fading wow for those people who care but also it's going to simplify a lot of code because now the playlist of VLC the VLM of VLC, the media player of the libvlc are doing different stuff and so everything is going to be at the same place which means we write of the playlist we are going to drop the current playlist which allows trees and we are going to have a very simple flat playlist and this one will have like a 1-1 relationship with input manager. Media library we are going to do, to integrate a media library, the one that we have on Android, on the desktop so small details, it's C++ and SQLite it's going to be quite simple we are never going to look like Cody it's not the goal for those people who use VLC which is double click from Notillus or Dolphin it won't change anything this will not be activated when you need, but for the people who need it then they will just double click especially on Windows where there is a lot of requests for audio playlist and media how it's going to look, I have no idea yet but the idea is to keep it quite fast, or at least fast as possible so it's not going to be like Amarok which brings us to a new UI this is the current VLC version for Windows Store UWP this doesn't mean it's going to look like that it just means that we should do something better for the media library integration in a playlist, so if you have inputs or ideas please share them if you are a designer or if you have strong opinions on how it should look if you care about the fight between GNOME and KDE and Wayland about client side decoration and DWD please also give me your inputs oh yes, I forgot in the input we are going to rewrite the way the timestamp are going to be managed because now when you play back with VLC after the demux between the demux and decoders, if we write all the timestamps to be closer to your output which means that if you transcode then basically you're fucked because all your timestamps are gone this is going to be a big change we'll do the first part in VLC4 and the next part in the next version and the final part in the version after but this is going to be quite important to get frame accuracy and correct transcoding so as I said we're going to drop platforms Windows XP and Vista the Chinese people are not going to be happy about that but the problem is that we still have 8% of our traffic on vidoland.org that is coming from XP and that is actually increasing yeah macOS 10.7 8.9 are going to be dropped like most of the others I think we kept it longer than most other bigger even projects on Linux I think OpenGL is going to be required like there won't be any other way around sorry guys and from Android we are finally going to drop Android 2.2 and 2.3 and 3.0 and so on and for iOS 7 8 are gone so what's after that we have two fun research projects the first one is VLC.js and when I mean VLC.js I'm actually meaning VLC and not like oh I'm going to wrap around a few HTML as API and that is possible because of WebAssembly coming soon it's a kind of TS and HLS in javascript in order to remix it in mp4 to make the browsers don't respect correctly the mp4 stack and the mp4 specification so the idea is to get VLC running directly inside the web browsers and that's possible with WebAssembly and threads currently we have to work on that we have something working on Firefox with ASMGS and pthread so not with WebAssembly because WebAssembly doesn't support threads yet it's going to come last June and I wish I wanted I wanted to give you a demo but I can't give you a demo because I upgraded my Firefox and they disabled shared array buffers because of the specter security issue but if you look at my talk that was recorded at at forms you could see the demo and I can give you the pages for the people who care we managed to play normal WMV video the wide life video, the one from windows so I'm really sure that it's not possible that it's decoded by the web browser actually works fine even on my machine 720p h64 was easy and we were talking like everything done in ASMGS so no asmggs nothing else will it go on? yeah probably some people from Chrome said that they were open to discussing the hardware decoding exposed directly and as we were outputting with WebGL and off-screen surfaces that was actually quite powerful the problem is mostly audio output because if anyone has tried WebAudio sorry about that it's completely insane there basically no way to have a simple sync and give PCM and get the information back from how much has actually been playback like any other audio API you have awesome 3D filters in WebAudio and amazing filters and so on but the basic is not there so we'll see another project we're working on is sandboxing for sandboxing is that basically vlc and all the multimedia frameworks have so much shit in it and so one of the good way is to put everything inside a sandbox but if you do that then vlc is going to ask for access to your graphic card which means basically canal mode it's going to give you access to your audio and so on and so on and in the end you check all the boxes from the sandbox which means basically your sandbox is useless if you need a map of the location of the filming it will be required so this is difficult what we're looking at is doing the kind of things that Chrome did which is having the access the demoxer and the decoder in different processes and do shared memory sharing in a cross-platform way I see some people are laughing it's going to be difficult it would be very nice we have a demo of that which is just based on on ptrace and about end threads yes I know my time is up and as Christophe says and that's good because I've finished any questions any questions I have a mic don't be afraid do you want 5 more minutes which HDR formats do you support now what do you mean by PQ, HLG so the question was which HDR formats so far I mean in the normal way of HDR the only way we support that is Windows 10 and that is only HDR10 wow that's not easy when we do tone mapping with HDR10 it's limited to liplicebo it's doing now HDR10 it should be able to do HDR10 plus and I think HLG should be easy to do I don't know exactly but if you want you can ask Yann he will tell you but basically as tone mapping it's easy the problem is when you're not in tone mapping is that you need to actually discuss that on the HTML link which we don't have access to that's so far only on Windows 10 and Android and only on selected devices on Android so far it's very annoying yes I want us to be able to find FLC on the fdroid repository and last week I didn't see it anymore is that something in fdroid projects yes they don't want to build it because it's too difficult I'm sorry guys but we help them because we build it on Jenkins they could pull it we help them to get a special way of like Ugo help them they don't want it because it's too difficult because it breaks so much but I mean it's a distribution that doesn't want to distribute what can I do right we check that VLC is using the least amount of permissions we need we drop them down in the last release we have no trackers nothing so we are like really clean it's not like Firefox issue on fdroid they just don't want to build it and their only solution is oh you could do a repository but then the user needs to go and click and add the repository no one is going to do that I don't I don't know what I can do more I can even give them versions that are built on the release but not signed they are on keys if they want so far they are just like no sorry thank you for trouble Raspberry Pi it's working on Raspberry Pi but the user interface has some problems did you find some better solutions because usually the output when you are using the hardware exploration then you have less space over for the user interface on fix the M mal hardware acceleration and video output display it's quite difficult to build for Raspberry Pi to be honest but there is a it should work now correctly but the problem you're referring is a problem between Qt and mal fighting against each other and so we've been starting to look at that with two of the community member and we'll probably backboard that for 3.0 but I don't think the big issue is fixed on the full screen when you have something about it thank you G-Bate thank you if you have any other questions I'm around follow the cons and there is a booth where you have big prize to win in the second level of K