• Vítejte na XBMC-Kodi.cz
  • Česko-slovenská komunita fanoušků XBMC/Kodi
Vítejte návštevníku! Přihlášení Registrace


Hodnocení tématu:
  • 0 Hlas(ů) - 0 Průměr
  • 1
  • 2
  • 3
  • 4
  • 5
Mizející nebo nezbrazující se widgety
#1
K tématu "mizejících nebo nezobrazujících se widgetů" v souvislosti s addon Stream Cinema Community jsem se vyjadřoval na více místech, naposledy na fóru tohoto addon, kde to bylo pokračování mého vlastní doporučení, upravit skin tak, aby došlo ke zpoždění jeho spuštění. Protože byl tento text asi nejkomplexnější, trochu jsem ho upravil a publikuji ho i zde. Je to reakce na opakovaně se objevující povzdechy uživatelů nad tím, že jim widgety mizí, ale také na reakce jiných užvatelů, kteří často reagují stylem "mně to funguje". A také reakce na to, že v současné době je tak časté se k problémům stavět stylem "buď a nebo" nebo "já mám pravdu, ty ji nemáš". A přitom to může ve skutečnosti být tak, že pravdu mohou mít oba. Pokládám tedy za užitečné to všechno zopakovat ještě jednou a ve zvláštním tématu, které jsem pro tento účel založil.

To co napíši vypadá možná trochu divně, ale podle mých dosavadních zkušeností to tak opravdu je. To, zda widgety v některých skinech fungují či nefungují, může být věcí náhody. Respektive toho, jak se sejdou výsledky na pozadí asynchronně běžících procesů v SCC, skinech s jejich podpůrnými addons a spouštění ostatních addons, které jsou zdrojem vlastního obsahu widgetů. Často to vypadá, že to souvisí s HW (resp. s výkonem CPU a diskových operací), ale HW je jen jeden z aspektů toho problému. HW na to má či může mít vliv, ale pouze zprostředkovaně, protože ovlivňuje dobu běhu jednotlivých procesů. Nedá se ale jednoznačně říci jak, tedy zda je silnější HW výhodou nebo nevýhodou. To záleží na celé řadě dalších okolností.

V současné chvíli existuje jedna poměrně spolehlivá metoda, která je schopná ten problém eliminovat, a to je pozdržení spuštění skinu. To vede k tomu, že se zpozdí zahájení zobrazování widgetů a tedy posuštění addons, které těmto wiudgetům dodávají data. Ostatní metody, které občas pomohou (například přesun položek menu nebo samotných widgetů v nich, který ovlivní pořadí jejich spouštění), mohou někdy pomoci, ale nejsou obecné a ani jednoduše reprodukovatelné na jiných instalacích (jiném HW, jiném skinu, jiné kombinaci a pořadí zobrazení widgetů, jiné skladbě používaných addons, …).

Vyzkoušel jsem pár skinů a je pravda, že doporučované pozdržení spuštění  skinu nemusí pomoci vždy. Trochu lze sice laborovat s délkou toho pozdržení, ale i tak se může Kodi dostat do situace, kdy dojde k takové "interferenci" mezi SCC, skinem a addons, které skin využívá k přednačtení obsahu widgetů (to jsou ty často zmiňované helpery skinu), že se widgety nenačtou. Je to proto,  že addon ve chvíli, kdy sestavuje data kontejneru pro widget, ta data nemá k dispozici, protože jsou naplňována během service na pozadí. Některé skiny používají společné helpery, některé skiny mají vlastní, takže ani tady to nelze jen tak lehce zobecnit.

Co je zřejmé, že addons typu service má Kodi implementováno pro úlohy, které z hlediska požadavků na CPU a dobu jejich běhu, původně nepředpokládaly nějaké velké nároky. Někteří autoři je však začali využívat i pro úkoly, které tento jednoduchý rámec poměrně výrazně překračují a velmi čato právě při startu Kodi. Začaly s tím skiny, pak se přidaly některé addon, mezi které patří například Netflix a také (a to je por nás důležité) addom SCC. Kromě toho to ale také addons pro načítání playlistů nebo xmltv z OTT/IPTV služeb, ale u nich je to jen občas a ce je hlavní, jejich zátěž CPU není z tohoto pohledu významná. V tomto případe je mimochodem poměrně důležité, jak je taková service napsaná. Kodi není multitask OS, aby běh takových úloh nějak složitě řídil a plánoval, takže pokud někdo k využívání této funkce v daném service části svého addon přistoupí stylem "teď běžím já, ostatní si trhněte", tak to samozřejmě zaskřípe. Ať už třeba právě při zobrazpvání u widgetů nebo při vypínání Kodi.

Ten největší problém, a ten se teď ukazuje u SCC, je především následkem toho, že si obsah některých dat přednačítá jak service skin helper, tak SCC service, případěn další podobné addon (Netflix). Widget pak získává některá data ze scriptu skin helperu a ten zas přes SCC plugin. Když k tomu připočítáme to, že SCC service a service skin helperu běží asynchronně, tak je jasné, proč se to celé chová tak, jak se to chová. Vyřešit to, za této situace nějak generálně a jednoduše pro všechny kombinace addons a skinů se to podle mne rychle, jednoduše a za všech okolností repodukovatelně nedá (pokud tedy nepomůže například posun spuštění skinu).

Můžeme se přít, kdo za tuto situaci může, což ale není jednoduché. SCC se základním skinem funguje dobře. Stejně jako fungují dobře skiny s helpery s jinými addons, než je SCC. Pravidla a zásady Kodi jsou v tomto případě na straně addon SCC, protože ten se základním skinem funguje - což je rozhodující. Jistě by šlo udělat to, kdyby autoři SCC tenhle stav začali nějak řešit s ohledem na potřeby těch, kteří provozují ty skiny s helpery a widgety, možná by k nějakému kompromisu nakonec dojít mohlo. Ale já se obávám, že taková vůle na straně autorů SCC (alespoň zatím) není. Už několikrát se to tu řešilo, odpovědí byla i reakce autorů SCC ve smyslu (parafrázuji) "že to nefunguje jen těm, kteří provozují milióny addons a widgetů". Což o to, kus pravdy v tom je, ale je otázka, kde je ta mez (o miliony tu samozřejmě nejde 6, ale jistá uměřenost v požadavcích uživatelů by samozřejmě existovat měla). Než se to podaří najít tak, aby to bylo jednoduše reporodukovatelné, zbývá jediné. Aby si každý individuálně nalezl takovou kombinaci SCC, skinu s helpery a dalších addons, která bude na jeho HW fungovat. Alternativou je spokojit se se základním skinem Estuary (nebo nějakým podobně jendoduchým), případně jeho individuální úpravou, pro kterou můžete například použít návody uvedené v tématu Estuary Easy.
 
Citovat
  


Přejít na fórum:


Prochází: 1 host(ů)