 Okay So we'll start with the next talk. The next talk will be about Cody what's new features and improvements by Martin case Okay, thank you My name is Martin. I've been a members for from the Cody team I'm a member of the Cody team since 2011 I started out basically helping out on the forum wrote some Python scripts and I'm now With one It's basically it's free for all and we just do something that ends up being a product So I'm going to talk about version 18. So unlike you'll see we Release on all platforms the same time for since we started so the past release version 17 colds crept on Was quite a solid release We did put out a lot of bug fix releases, but There are tiny fixes nothing major like all the past releases where we had big issues and For us 17 is end-of-life from the moment we released it So that's since November So version 18. This is our newest splash screen. We have awesome artists So it's called Leia So our current work in progress and we started around November 2016 So the work starts quite early some already started in May 2016 our goals They're kind of a made-up goals because that's how we just work you focus more on architecture improve implementation what we already have and Actually in 2011 we started talked about the long wanted cleanup release, which just just turns out to be because we're just keep cleaning stuff and We're in no rush at all So the coding goals improve the existing code quality Upgrade the current code we have actually to see plus less 11 which we now have us default remove the duplicate code Remove all the obsolete libraries We use ffmpeg as much as we can because why maintain something when there's something better dropping one made 10 code and Upstreaming the patches we had because that was a big issue as well when you upgrade the library use and you have a shitload of patches You still need to fix all that again. So upstream all you can So also binary add-ons, so we were moving a lot from core moving to add-ons because in the end the goal is to distribute them through our repository and you just run version 18 and you get a new sampler library new Visualizations and all that picture decoding when the raw library updates for the new picture formats You actually just don't have to install a new version of Cody. You just get the update Less code is better. It seems as you see here and since 2016 The code flattens out But we gain a lot of new features and even platforms By just dropping dead code and we still gain new features So current state 1800 pull request which most are massive pull requests 5700 comments about 32 different contributors. This just stats from get up 7500 change files a lot of additions and in the end user base We basically have no idea we can use some download stats But some people re-downloaded again, and then we don't really track anyone So when we ready we don't know the initial idea was December but then So then something happened So we started cleaning up and then we got contact that contacted by some big company Who I'll talk about later Plan changes well like VLC we don't really promise we'll just say when it's ready and then we'd never lie This well it happened So as most of you know Cody started out on the Xbox Then that hardware kind of faded away in since 2009. We never Did anything and worry about it And we never expected to happen this this happened again because Xbox closed system, but then Microsoft turned around So we got an email from the Microsoft saying you want to be on the windows stores like that's not gonna happen. It's too difficult Now here's a work here's a work in version for you So that was the Centennial Bridge platform So basically to wrap around the win32 application into a wrapper that you put on the stores like oh, that's kind of easy We just had to clean up a bit Couple months later you want to be a UWP platform Sure, but that's a lot of effort Well, we do that for you so in the end we work together and That's what happened we started out move to the 64-bit windows June 2016 the word started for the Centennial Bridge took a month about to get ready December 2016 the initial work started for UWP July we have first running it Basically, it started and that was about it and in December we launched to the store as a working version Not everything works yet because UWP has limitations. We still need to fix and Microsoft has to fix because 4k playback of 10-bit files crashes the Xbox Please fix that Microsoft Video player so Important part of Cody's also the video player Which also dated back to the Xbox so we still have all that code in Our repository and we need to clean that up. So we started out cleaning this up Legacy code grew over time no real architecture Not platform agnostic So if we want to do all the 4k 8k 10-bit HDR stuff we needed to start cleaning this up. So this actually started in 15 already 17 improve the blood but So the benefits maintainable code Can't stress about maintainable code because anything you cannot maintain No one wants to touch and we still have a lot of code No one wants to touch because it's impossible to maintain and if you change one thing We have one Part of Cody if you change something there the video playback breaks although it has nothing to do with video playback So we need some brave soul to rip his heart out and start doing this No So large part of the cleanup is done We now can speed up slow back slow down playback speed future proof towards higher bit rates Shaders and renderers. So we now can upscale Quite efficiently without them like no mem copy at all play in DRM protective streams using input stream fragment work. So Netflix actually now works in Cody if you can find it So there's a plug-in out there. You can just install it and you have your Netflix library Amazon Prime Sky using the DRM framework. So if the hardware supports DRM with the file with white vine Just works Future transcoding Like Plex is our competitor regarding this, but we want to do that as well But more like a sleigh a mesh network not One master and several slaves with slave master combination Splitting up playback and user interface. So we can run headless which we also need for the transcoding again And picture-in-picture and all that No, I can't show you a screenshot of something playing, but what's the point of that doing that? Input handling is something also we do so the rework of all the controllers keyboards because What you want to do is plug in any controller and it should just work on any platform Next up retro player this these two go hand in hand retro player was first but then For retro player playing old classic games you want any controller to work. So that's why we need input handling So chicken egg in the end input handling was first So why playing old games so much fun We did an entire Defcon day for with our team just playing games Very productive day, so Yeah, so an entire Sunday just having pizza and playing games Controller setup I said easy need to be easy auto handling of emulators never leave Cody to play games and a single library which still future work you want to have a Library of games just like you have for movies and don't care about what emulator it uses. Just want to play the game and again upstream of the code because All the emulators are not so nice They do stuff really weird. They actually make a build system to make a build system to make a build system to compile the code It's like they compile Python to run another compiler to build the code. It's like really weird stuff So we try to also fix that to make our lives even easier again so here's a Just a default game which is included Bomberman so you can just start playing pausing rewinding and Play from that moment again, so it's like instant cheat code So if you like play Super Mario you die you just rewind and start again from that point and you continue playing shaders So we can also use different shaders on the games to have your own look like There some are working on having the arcade arcade look like the whole CRT look and feel or just The best graphics possible Yeah, and some people actually want it back So here's the controller configuration. So basically you plug in any controller you have These are all add-ons so you can install the add-on you want for that controller which other configures for any other Emulator so I can plug in a NES controller and it works for Atari games. It works for Sega games Without any stuff you need to do Yeah, there's an entire absolute abstraction layer in between which auto translates all the stuff so you don't need to care about all this So here you have you just install a profile for a controller and it auto translate for any emulator What else we're gonna do I'm done Android platform uses the standard API. This is something we fought hard for because the Android platform was shit Everything used their own stuff and basically cut everything out you use Android as a standard or you don't use it at all Yes, but this device doesn't work. We don't care So it's actually forced AM logic other companies to Adhere, that's Windows now also 64-bit wait on support added again. Thanks Philip. So we had a GSOC Several years ago adding Wayland, which kind of died down. No one maintained it Wayland wasn't ready enough So Philip did it again this year And while he did that he improved several other features like touch Because he had some time left Direct man rendering manager, which Lucas did They both are doing talks in other places this afternoon. So if you want to more know more about this, please join them We use CMake for our build system. So we don't care what system you run on you run CMake It's one build system to rule them all for us Dashboard so that was something was long asked for you want to play YouTube videos and all that So we now have an add-on you plug in. So that's his whole input stream framework We don't change core. We just change the add-on and you install it or you auto-update it when something changes So don't need to install a new program or a new code version. You just get the update in the end the RAM Using white vine so you now I can play 4k Netflix in Cody on my Nvidia shield on Android because Android supports white vine and that just works PVR improvements So everyone's talking about cutting cable Well No one really does that yet There's no easy solution to do this yet, and we spend a lot of time improving this get a network tuner plug it in your cable Most of the time you get just free channels from the air And you can now have all the guides Recording all that other dumping it to your library again rewatching it Music library is also something we improved a lot on Because some way so we found some Lee actually caring about that He spent a lot of time fixing all the tag scanning which was such a mess Library support thanks VLC because we use VLC as a main library for Blu-ray stuff so we can actually do the Java menus which are on Blu-rays For video library can also scan a beta text from Ancient times we always had to have NFO files XML files next to it or Scanning the file name to match it online to get all the metadata MP3 tagging was for music which exists a long time But now it also exists for video is still a mess, but finally we can use it. It's disabled by default because all There's no standardization of tagging So we now need to implement a new standard, which everyone hopefully will follow in the end a Massive amount more but too much to mention as you saw we have 1800 Pull requests with massive changes and most of them You just start Cody and you don't even know this anymore because it works And that's our main goal if you go from 17 to 18 it should still work You shouldn't even know this except one Oh, this only works better after a couple of weeks of using so that's our main goal. It should just work And that's what our cleanup releases about it should just work Yes, we already started on 19 because why well it was one big reason And this is Python Python will die out in 2020 and Python 2 sorry All add-ons in Cody except for some binary out ones are written in Python So we had the GSOC project again and someone upgraded to Python 3 of Initial thought was let's combine 2 and 3 in one release But that's near impossible and by the time we actually will release it It's 2020 probably and so you have to drop it anyway So it's it's more mature and better documentation 3 is actually supported. There's better String handling is so much better because in 2 is a nightmare. You have to decode and code UTF all that it's a mess So we're planning on Dumping it in version 19, which will probably maybe next year We're already doing a build now so you can actually test your add-ons to make it Python 2 and 3 compatible So they just keep working again and from version 19. We will only accept Python 3 add-ons and The rest will just stop working. We will make sure they are auto disabled just no work anymore except Unless something happens where you where the developer didn't follow the rules exactly But we'll try to auto detect if it's Python 3 and just don't run it except else you get a script errors and It's actually quite a small thing done. It's only 57 changes files and 700 lines changed to upgrade Python But the main part was finding all those hooks in the code because it's so entangled everywhere And he actually did a great job on cleaning it up again. It's not just Cody. We have we need to maintain a much more forum Wiki mirror system. We have like 24 25 terabytes a day of usage. Just Cody downloads add-on updates 3000 to request per second on the connection of single mirror Yeah, but it's an average of past year. I Was an Android remote controls are also part of the project the needed libraries So you also have and maintain and upgrade code up streaming company contacts like actually Google and video Microsoft they also need to be maintained. So it's not only the code you have to maintain but also all around it And your own personal life apparently because we all have that some at some points Because we all do this for fun, but you have to remember you also have a family of Around this and you need to spend time with them as well and your job and all that Thank you. So are there any questions? Actually, it's a XBMC foundation So we could keep them we kept the name as a foundation Because it's too much paperwork and we're basically lazy So that's why we kept the name XBMC as a foundation and we're legally Allowed to do that, but we call the program Cody Cody actually stands for nothing except for the If you look at a remote you have the play the pause The next button and that was kind of how Cody Came to be It's the player controls in a certain order if you look at it That's how Cody existed Hi, thanks a lot for Cody. It's great As a lot as a user, how can we help? What's the good way? What what do you need from users to help you? Finding bugs proper bug reports is something we really need instead of it doesn't work We actually want to know what doesn't work the steps we Like proper bug reporting is something really helps like and always use the latest version Because we don't need a bug report about a version that's half a year old Could you get Cody released in the asteroid app store, please same answer as we will see it's their problem They ask us and it's like here's the code find it out yourself And they probably won't do it because it's too big Are there any plans to have a shared library as example Amazon video and Netflix and the local videos together in one library? Yes, there are plans. We started out using UP and P for that for having a mesh not work between All your Cody installs because even sharing your own library within your home like all the devices You have would be nice to have one library someone started that but he got a life The code is still there. It needs to be updated and but definitely integrating Amazon and Netflix into the library Is one of the goals we really want what we need to have a framework for that Two questions one is a when will advanced settings be editable via the GUI never There are called advanced settings for nothing So we will review the advanced settings and if we feel it needed to be the GUI We do that and how else we drop them so they will be phased out except for development person purpose But like most want to my SQL. Yeah, my sequel added to the GUI. We feel that's not the way to go We want the automated mesh library auto communication And the second question was a non jailbreak version for iOS A non jailbreak version for iOS You can compile it yourself, and if you have a developer license you can install it And it Thanks problem is that parts of the code are not allowed in the app store And it's basically an add-on support Python add-on support is not allowed in the app store because it allows you to install something else So there is a version of Cody Mr. MC is called that they actually remove the repository stuff so you cannot install add-ons Yeah, that's allowed. So if you make a Cody version without a repository, that's fine if you have if you have a developer account you can build it yourself and sign it yourself and then Have it you have it fully. There's also an Apple TV 4 version You can just compile it if you want, but we just cannot be in the app store Or we have to remove add-on support as an update version. So That's something we don't feel comfortable doing With the refactor of the DRM module Could we could we could it could I play Netflix on the Raspberry Pi? Yes. Yes. Yes, it's limited What we limit Netflix to is whatever the device support. So basically we use we emulate as being a web browser So a browser is a limited to 720p So like on Android we actually use white vine on the device itself Which encrypts has the entire chain. So basically we tell Android play this. We don't care what it is We still have all the video controls But we don't see what's happening. We don't see the image. So we cannot screen grab this Raspberry Pi 720p because it basically it's the same as a browser and software decoding On the pie So we still don't have the full support on Windows or UWP because we're still looking into that And we might get some help from certain corners doing that But for now Android is the only one I think that actually does hardware and the rest is software Thank You Mateen