September 2018

Devcon 2018 – Sofia – Part III

One more day, with enough content to warrant a separate blog post – partly because people are still here for the most part, partly because of new stuff that’s been added to the agenda as we’ve gone along, and partly because of the topics that, despite our best efforts, managed to escape from previous days.

We began the day with a broad retrospective of the past year: for each person, what went well in the past twelve months, what could have been improved. As you might expect, we covered far too many topics to cover here, spanning as they did nearly every aspect of people, process and technology. However, it was a useful conversation that gave time to both be proud of the positive while reflecting on where we still need to focus more effort. We’ll work through and digest everything that was said and perhaps come back to it as a separate, future post, as the conversation will help shape where we go next.

Next up, lrusak took us through his experiences and presentation at both FOSDEM (Brussels) and Linaro Connect (Vancouver) this year. His talk was mainly aimed at shifting from vendor-specific or closed code (kernel and blob dependencies) to more universal, open source methods, specifically around windowing and rendering on embedded Linux (SoC) platforms such as Allwinner, Broadcom and Qualcomm. As well as simplifying our core code and removing the need for maintenance and use of platform-specific patches, this also has the potential to deliver performance advantages and broader platform coverage. Overall, there are some real benefits once we can tap into specific libraries via standardised kernel calls rather than depend on userspace code that’s in turn reliant on monolithic, all-purpose blobs that may include a whole load of code that simply isn’t needed for Kodi.

We discussed Kodi “remixes” – forks, feature branches, JeOS distributions, and similar variations – and how they link back to our trademark policy and support overheads: what’s allowed, what can we tolerate, what can we manage, how does it appear to our users. This is an area full of opinion and interpretation, rapidly wandering into genuine legal implications. While this is something we really don’t want to have to worry about, it’s something we must keep aware of, as historical experience has demonstrated. As such, we’ll be revisiting aspects of our practices to ensure that we protect Kodi while, at the same time, embracing the broader community where we can see that there’s positive intent and genuine common benefit.

lrusak then returned to the stage to give an update on LibreELEC. That team continues to streamline everything, reducing the maintenance overhead, slimming down the underlying OS overhead, and aligning the user experience more and more closely with core Kodi. He discussed some potential architectural changes that flow out of this goal: future platform support, what libraries could be removed and why (no longer supported or just not needed), what could perhaps be moved upstream so that it becomes part of Kodi and thus not some separate facet of LibreELEC.

And that’s it for day three. Thanks to everyone for their participation, and thanks to the entire community for making Kodi what it is.

One final comment as we close: we really need to offer very many thanks to Roza Zdravkova, who’s been invaluable as our local eyes throughout this DevCon. From helping with transport to pointing out where to go and what to do, she was fundamental to the event’s success. So, “thank you” from the team!

So… that’s it for DevCon 2018. Time to turn to a bit of hacking and development before all going our separate ways once more.


Devcon 2018 – Sofia – Part II

Good morning/afternoon/evening/night (delete as appropriate – we’re a global community). The world has turned once more, the sun has crawled into the sky, and we’re back in the room.

Nate began the day with an update on the Foundation’s financial status: income, expenditure, bank balance, sponsorships and revenue sources. The good news is that we’re financially stable, but the bad is that we’re never going to be rich. Damn this volunteering thing, it’s almost like everyone does this for free. Oh, wait…

Next up, garbear took to the stage to talk about the upcoming (and long-anticipated!) RetroPlayer. This is already available in the 18.x “Leia” builds, so you can try it now if you like. As well as a demo to the team, the presentation covered how we’re addressing controller topology (including hubbing and mapping), user interface options, configuration, potential for user profiles, binary add-on repository structure, and some potential future features.

Martijn next took us through our current user statistics. Because we do no user tracking, it’s always been difficult to get any real numbers, so we’re reliant on partial data: Play Store active user counts, Microsoft app store figures, what we see hitting our repos for e.g. scraper or other add-on downloads. We probably have c. 80 million downloads and c. 30 million recently-active users across all platforms and versions – including some active installations on every release since 13.x “Gotham”. This presentation also led into a conversation about release management, specifically, the intended schedule for the upcoming 18.x “Leia” release plus very early timing plans for 19.x “M*”.

The next presentation was by kib, giving us an update on all things related to the Kodi infrastructure – build servers, download servers, web hosting, caching. He took us through upgrades to the Windows build system, wiki software upgrade, https implementation, the Kodi paste site, LXD containerisation, OS reinstallation and upgrades, changes to mirror up/down detection, CloudFlare, and more.

Finally, a1rwulf rounded out the day by talking about the Kodi databases: the basic architecture, current limitations, and potential changes that we need to consider as new features are introduced.

A shortened day today, with a couple of topics kicked into Sunday for a variety of reasons. Watch this space for an update on those, as we’ll add them in due course, either as an update to this post or as a separate one, depending on content.


Devcon 2018 – Sofia – Part I

<blinks in the light>

What, a year already? Yup, twelve months have passed, we’re all a year older, the world is still mad, and we’re once again sitting in an overly-warm, windowless, anonymous conference room, discussing everyone’s favourite media software while wondering where the coffee is. Welcome to DevCon 2018, coming to you this year from Sofia/Со́фия, the capital city of the beautiful Balkan nation of Bulgaria.

So: Team Kodi Assemble!

We hit the ground running this morning. Mixed in with initial logistics, introductions, and the annual battle with AV and hotel wifi, keith led a conversation about github, and how we could perhaps better use it to track code and project issues. We currently use trac for bugs, which presents more than a few challenges to both casual users and the team; we could also potentially use github for bug reporting/allocation instead, and also use the associated project tracking to also keep better notes of e.g. press conversations, Foundation issues, and similar.

We continued into a conversation about conferences – which are most appropriate, how do we best cover them, what and where, how do we get most benefit. More later on this year’s conference experiences.

Martijn then talked about the move from Python 2 to Python 3: approach, milestones, timeline. Python 2 is EOL in 2020, so this is becoming a more urgent task. The intention is to combine this into the normal Kodi rolling release schedule, so expect a significant focus on Python 3 readiness and enforcement as we move past 18 (Leia) and on to 19 (M). If you’re an addon developer, specifically, then it’s time to pay attention to this as “later” is rapidly becoming “now” – everyone has had ten years to think about this, after all!

The big challenge is how we encourage developers to migrate while not inconveniencing or irritating users. This is a significant change, and some things are likely to break. Blog post here.

We next moved to conduct and standards – not because we believe there are specific problems, but more because it’s generally good practice to have some expectations regarding behaviour of team members and contributors: if you follow the news, you won’t have missed some of the headlines around what can happen when people go beyond constructive disagreement and move into personal attacks, particularly when social media or public discourse is involved. As such, we’re putting in place some clearer ground rules and management policies around our own behaviour, just as we have done around the standards we expect from our forum contributors.

The conversation then moved on to engagement and communication – how we keep people informed, updated, involved. Kodi is a big project, with very many moving parts, and nearly as many ways to interact. That’s not just about the code, but it’s Foundation stuff, user support, strategy, wiki, external conversations, release management: keeping on top of all of these is undoubtedly a challenge. This is very much an internal Team conversation, but one that we’ll continue to progress, as even orientation to the project can potentially be a barrier to new contributors.

Moving on, Martijn led a conversation around issue tracking – trac vs github. While we currently use an internal trac system, and it has some genuine benefits, it’s neither the most usable nor maintanable of systems. By contrast, hosting and managing the issues on (public) github means they’re more closely linked with code and commits, so we’d get some significant advantages there that should more than offset what we’d be missing. If we do make this change, which is likely, it won’t happen overnight, as we’ve much to decide: what to do with old (and maybe no-longer-valid) bug reports, what labelling/tagging structure we’d need, what systems we’d need to have in place to ensure that we receive “complete” reports going forward, and so on. More to come.

Related to this – because github is, in general, a more public platform than trac – we had a conversation about embracing this as a benefit and how we become more open. Again, Kodi is a hugely-complex project and is very daunting to a potential contributor: where to start? Who to talk to? How to get help? Who are all these people, anyway?? So, many thoughts: github conversations, GSoC experiences, public discussion channels, updated build/”getting started” documentation, code documentation/architecture. If you’re a potential developer and feel like you don’t know where to begin, please, contact a member of the team to help us address any concerns you have. We can always use some more help, particularly on the features and multiple platform support that everyone values so much.

Returning to a topic introduced earlier in the day, garbear, Razze and yol took the floor to report back on their attendance at VDD (Video Dev Days) earlier this month (also attended by Martijn and RomanVM). This was also touched on in a previous blog post. Sessions included AV1 CODEC development, including the dav1d decoder and rav1e encoder;  the x265 HEVC encoder; VLC 4.0 plans and features; a series of short “lightning talks” on various AV-related topics; and, of course, many networking opportunities across a common community of interest (website hosting and load balancing, request handling/download management, breakouts on FFMpeg, programming languages…). Useful bridges built with like-minded people, which is ultimately good for the whole open source multimedia landscape.

As the day started to draw to a close, mohit-0212, one of our 2018 GSoC students, gave a presentation on his project around episode intro/outro detection. The goal of this project is to improve the user experience by editing out the endless theme tunes and credits you get, particularly when binge-watching a box set. This involves searching for common scene transition points across multiple episodes of a series, and using hashing algorithms on the video stream to work out when the likely sections begin and end. In the first implementation, then, the detection is run and then the user is presented with a “skip” button as a the section begins. Fully-automated skipping would perhaps be a later addition, but more work is needed yet on the code, detection of “edge cases”, and UI, and similar.

Finally, natethomas and the other Foundation board members spent some time talking about the board responsibilities: who, what, how, why. The XBMC Foundation has a legal status, and thus there are ongoing administrative, legal and financial activities around our overall direction as a project, non-profit status, trademarks, incorporation status, revenues from sponsorship and donations, approval of expenditure, taxes, PR/press, GSoC admin, Foundation membership and bylaws, internal policies, and any formal legal communications as required.

And that’s it for day one. Time to head out into the fading evening light before reconvening in the morning.


Android Apps

TeaTV Android APK Guide: Terrarium Alternative

June 16th: TeaTV has been updated. Click here for all of the details!
The TeaTV Android APK is a Terrarium alternative that you can install on your Kodi hardware and run alongside it! A lot of people have been looking for something similar to Terrarium that is being maintained and TeaTV has a giant community and following.

The post TeaTV Android APK Guide: Terrarium Alternative appeared first on Kodi Tips.

Attending VDD 2018 – The 10th Videolan developer days

Since the opensource commity is open as the name implies we as Team Kodi at times also attend other conferences. One of those is VDD which is hosted by the Videolan team which you might know from the VLC player. During the conference many developers related to their software projects are invited to attend and join in on presentation and techincal discussions. The Kodi project is in that regards related we are also in the multimedia “business” and share a similar vision. Next to that we use the same undelying opensource projects like FFMpeg and code libraries made by Vidolan which you use for DVD and Bluray.

For us it started on Thursday 20 September 2018 when we arrrived in Paris where their 10th conference took place. During the day we walked a bit throuw Paris and in the evening we enjoyed some beers and prepared for the next day which was the community bonding day.

So during Friday we gathered in the morning to be given the assignement to from small groups and start a sort of scavenger hunt throughout Paris. The goal was to find the answer which would form an URL and in the mean time you would encouraged to make awesome pictures using the VLC hats and in the end the best team received some nice price. Although it was quite an exhausting day it was for sure great fun and a good way to see Paris. Saturday there were several very interesting talks on a variety of topics.

and after that we went to have a boat tour on the Seine to have some more drinks and food and the winners of the scavenger hunt were announced. Sadly our groups didn’t win 🙁 


Sunday was day of short lightning talks in the morning and in the afternoon you were free to meet up and have small discussion on whatever topic.Although this is just a very short summary of the past days it had quite a lot of content and was great to meet up with other developers. We would to thank the Videolan organisation for making this possible.

Next up is our own Kodi Devcon in the city Sofia (Bulgaria).