-
Notifications
You must be signed in to change notification settings - Fork 451
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Kodi support (former XBMC) #2694
Comments
ToDo:
|
Streaming related work, naughty plug-in: http://koditips.com/quasar-kodi-add-new-improved-pulsar-fork/ |
Progress Report: Tribler Core is running externally. Quite some attempts have been done to make it run as a Kodi service add-on, but the reactor cannot be started properly. It is probably blocked due to mechanism Kodi is using. I am still seeking help on their forum, but I don't expect it can eventually be solved. Currently channels can be properly discovered, subscribed and unsubscribed. Torrents can be found under a certain channel. But the interaction of subscribe/unsubscribe is a little bit inconvenient for the users, still trying to fix that. Search and download is not functional at them moment, expected to be implemented soon. Next steps:
|
For the thesis direction, please read : |
if u upload code for addon, i can support, i am half way done my other kodi thingies |
i am boogie btw |
@hbiyik thnx for checking in! A code review would be really welcome. Search and downloading is now implemented. @EinNarr can you please point us to your repo and push the latest code? (https://github.com/EinNarr/tribler/branches/all does not seem to be it) |
@hbiyik Here is the repo: https://github.com/EinNarr/plugin.video.tribler |
wow, that PR looks like 1 week of work! Was it? Thank you very much, one of the bigger contribution we had for Tribler in 12 years since we started. You earned an official Tribler mug.. :-) |
oh no, it looks huge because tribler core + dispersy and pure python dependencies are in it, importing precompiled .pyd modules to kodi python interpreter, uses PyInstaller distrbituon libraries under installed Tribler directory. (So in order make the addon work user must install tribler setup first) Tribler Core python libraries (dispery, pymydht etc) to be submoduled to original branch. I used the version coming out of the installer from 7.0 alpha just to make sure it works, did not want to face complications coming from upstream. The good thing is Tribler Core is pythonically inside the addon, so tribler power is fully inside the addon. There is a modified M2Crypto and cyprtography that loads compiled libraries from install dir under /lib dir. This should be distributed as is in plugin.video.tribler. Also there are pythonic dependencies under /lib dir, these are supposed to be packaged seperately for so in the end i could just work on tribler.py and service.py and addon.xml files only for 1 day. But i still want that mug, it would be super cool to show off to my collages at work :). I know there are bunch of things to work out but they all can be sorted out i think. |
@hbiyik Awesome! @synctext There is even a official Tribler mug? |
@EinNarr Meanwhile i am working on M2Crypto, cryptography, libnacl shared compiling and seperate addons. You can leave those nasty ones to me, have already complied for linux32 also gonna work on it. yes at the end of the day addon will work standalone without trbiler installation. but those cbindings are quite nasty to work on cross platform. I think better to start using issue tickets in your repo. UPDATE: 05/04/17 Added more cbinded libraries to the list, and created a system that dynamically loads accroding to platform, architecture, and variants. Tested for windows and working like a charm. No more the need of Tribler setup. Currenly working on linuxes. EinNarr/plugin.video.tribler#4 script.module.m2crypto=0.21.1 |
https://github.com/hbiyik?tab=repositories I have compiled cbinded libraries for manylinux-x86 (pretty much all of x86 32bit linux distros). and tested both on windows and linux. Now addon works independently with core and client. I know you got little bit lost on it, if you have questions contact me on huseyinbiyik at hotmail.com via mail. We can chat online somewhere and discuss the details. It looks complicated at first but it is quite easy once you get the hang of it. |
@synctext Is it possible to rearrange the meeting date to someday later this week? I got a presentation to do on Tuesday which was not on my calendar. Apologize for that. |
sure, we reschedule. |
@synctext What time shall that be? I should be fully available after tomorrow. |
@synctext
|
I think that is because i have run reactor inside a thread (i have to since python is itself a thread in kodi), and launch manycore may lead to work in single threaded in 2 core cpus. 1 core is the main thread, 1 core is the callbacks and deferreds, which will cause all deferreds to be blocking, this is my assumption of that issue didnt check in much detail, i will move to crochets for safer thread work, and im guessing that this is not related to tribler Core itself. Ill check in to that. |
@hbiyik I haven't tested that on PC. Would it also be slow? Maybe we can validate your assumption by disabling the extra cores on a PC. Do you have any idea what is the best way to invoke tribler core? Currently I do a infinite loop at the start of the add-on until the core is up. But there will always be an error in the first run. Kinda no idea how to explain that. |
@EinNarr Also when refactoring the client part of it as we discussed on mail, i found out addon doing rest get config query each load up, this was partially a part of slow loading, other than that may be related to thread manager or lazy loading as you mentioned. I need to finish the refactoring client to prevent making a right from two wrongs. BTW it is not slow loading on PC but on my pc nothing is slow loading :) i am developing with an 8 core at 3200 ghz cpu :). |
@hbiyik |
@hbiyik |
@EinNarr |
I tried to test it on a Google Pixel, but: ImportError: Binary module is not compiled for android@ndk-x64_cp27m. Seems that they are not using arm 7 any more |
indeed the Snapdragon 821 in the pixel is v8: |
@EinNarr yup its arm8 with 64bit architecture. Need to cross compile for those seperately. God thing abi detected atchiteture correctly :) |
@hbiyik I have to admit that you were right. Loading settings did slow the program down. I tested on Nexus 6 without loading settings from server and it is now visible faster. Yet, it is still quite slow, around 3s' loading time per page. |
@hbiyik There is error when searching and sometimes changing settings in Android. Do you have the same problem? |
@EinNarr, nice, i am pretty sure page loading problems at the end of the day is somehow related to some kodi specific issue, may be something is wrong during dispatching the page, exactly this is the reason why i am refactoring. However there seems to be another problem that slowing down the tribler core. So after refactoring the code, page loading is fast (almost instant), i can confirm that in my fork, but some functionality may be slow still, so this will be another issue to handle on the testing phase. Could not catch the issue with searches, currently i am working on custom UI creation which is arrrgggh tweaky, and yeah sorry i am little bit off lately, gf issues :). |
@EinNarr small update: custom ui framework is done, now i have to edit channels and search endpoint for a healthy operation, :) seems like wherever i touch i need to modify to make it work. But i feel like things to do are "slowing down to expand", hopefully it will decrease, better slow than buggy. |
Sorry.. What happened next? :) |
As far as I'm aware, @hbiyik is currently working on this issue. |
I want to update the current status with the Kodi Implementation I have taken a complete different approach from the previous attempts, due to the facts that Tribler moved to Python3 and and Kodi is somehow is using python 2.6 to Python 3.x in the wild. So the current approach is, distributing the precompiled overall headless binary along with the addon. There are certain challenges still:
Here is a teaser of what we have already: A fully custom designed UI for Tribler ;) |
related: #5327 |
@hbiyik Still interested in Kodi support? |
@synctext yeps, above is the initial work, latest commit 2 years ago, should work after few adaptations, the skeleton is there. I think i had given up at some point searching had some problems. If the api is stable now i can put more effort in it. Thanks for reminder. But this issue might be closed if necessary i can create a new one whenever i encounter a pitfall One problem i had was, having to compile the core binary for several targets by myself. Is there a pipeline for this in the CI? Initially: Future: For all above i have some previous work (for android quite experimental), if there is not something in tribler side thats also fine. |
ah one last thing, i also remembered now, if kodi users are imported to Tribler i had a real concern that exit nodes in NL might actually overload. So how sure are you that the network is scalable at the moment? |
details to be determined in Jan 2017.
Video-on-demand, VLC, buffer management,..
Full keyboard control, efficient embedded operation, credit mining, smooth anon tunnels?
The text was updated successfully, but these errors were encountered: