Byl vydán projekt FluxCast 0.3.0, určený k organizaci streamování pracovní plochy Linux na obrazovky Smart TV prostřednictvím protokolů Wi-Fi Direct (Miracast), DLNA a Chromecast s minimální latencí. Zdrojový kód projektu je napsán v jazyce Python a šíří se pod licencí GPLv3.
Mezi změnami:
- Pro distribuce Debian a Ubuntu byl spuštěn vlastní APT repozitář. Dříve byly deb balíčky připojovány pouze ke stránkám vydání na GitHubu, a pro aktualizaci bylo nutné ručně sledovat nové vydání a stahovat verzi odpovídající vlastní verzi distribuce. Připojení repozitáře se provádí instalací balíčku fluxcast-repo, který do systému přidává klíč pro ověřování digitálního podpisu a soubor s parametry repozitáře. Odpovídající verze se automaticky určuje podle verze python3, nikoli podle kódového názvu distribuce, což umožňuje správné obsluhování odvozených verzí, jako jsou Linux Mint a Pop!_OS, stejně jako mezivydání.
Podporovány jsou Debian 12 a 13, Ubuntu 24.04 a 26.04, architektura amd64. Podepisování indexů se provádí na straně GitHub Actions, uzavřený klíč na serveru není umístěn. Dříve publikované verze zůstávají dostupné, což dává možnost návratu zpět. - Bylo implementováno okno nastavení, vyvolávané z nabídky v systémovém tray. Dříve vyžadovala změna parametrů ruční úpravu souboru ~/.config/fluxcast/config. V rozhraní je k dispozici 20 parametrů pro Miracast a po 8 pro DLNA a Chromecast.
Zadávané hodnoty jsou ověřovány stejnými zpracovateli, které aplikované při čtení konfigurace, a komentáře přidané uživatelem do souboru se při zápisu uchovávají. Okno bylo postaveno s použitím Tkinter a zohledňuje zvolenou světlou nebo tmavou barevnou tematiku. - Byla přidána možnost hardwarového kódování videa prostřednictvím VA-API, zapínaná parametrem "--wfd-encoder va" a využívající prvek vah264enc. V konfiguracích, kde kompozitní server předává snímky ve formátu DMABuf, pipeline "pipewiresrc -- vapostproc --
vacompositor -- kodér" zpracovává data bez kopírování do systémové paměti. V provedených testech se zatížení při streamování statického obrazu snížilo
z 80 % na 1 % z jednoho jádra CPU, při přítomnosti pohybu z 73-79 % na 6-7 %, a zpoždění od změny na obrazovce do příjmu snímku do kodéru se zkrátilo z 64 ms na 27 ms. Testování bylo prováděno pouze na GPU Intel. Výchozí nastavení zůstává stále
Používá se programový kodér x264, jehož přepnutí se provádí automaticky při absenci potřebných prvků VA-API. Režim řízení bitového toku se nastavuje parametrem „—wfd-rate-control“, standardně se používá qvbr. - Byla přidána volitelná podpora pro vyjednávání režimů WFD R2, která se aktivuje parametrem „—wfd-r2“. Při jejím zapnutí se v žádosti M3 dodatečně vyžadují seznamy wfd2_video_formats a wfd2_audio_codecs, což otevírá přístup k režimům publikovaným
přijímačem pouze v rámci druhého vydání specifikace. Například na televizorech LG C2 je dostupný režim 1080p60, který není zahrnut v seznamu R1, což vedlo k tomu, že žádost o 60
snímků za sekundu dříve vedla k poklesu na 1080p30. Pokud přijímač nepodporuje
nebo odmítá parametry R2, vrací se k prvnímu vydání. Možnost
je ve výchozím nastavení vypnutá a zatím ověřena na jednom modelu televizoru. - Opraveno chybné určení utilit iw a wpa_cli jako
nepřítomných, pokud jsou umístěny v adresáři /usr/sbin, který není zahrnut v PATH
neprivilegovaného uživatele v Debianu a Ubuntu (chyba se dotýkala nejen
výstupu režimu „—doctor“, ale také určení bezdrátového rozhraní v backendu wpas). - Režim „—doctor“ nyní vypisuje varování, pokud existují neuzavřená rozhraní
Wi-Fi Direct, která zůstala po přerušených sezeních, a uvádí příkazy pro jejich odstranění. - V kódu WFD sezení byl implementován obslužný program signálu SIGTERM (dříve zastavení streamování z tray vedlo k ukončení procesu bez uvolnění prostředků a oznámení přijímače).
- Opraveno zkreslení poměrů a zavěšení trvající až 9 sekund při změně velikosti okna během sezení snímání jednotlivých oken v KDE.
- Počet proudů kodéru x264 je omezen hodnotou min (4, počet CPU), protože v režimu „tune=zerolatency“ kodér vytváří jeden slice na proud, což na systémech se 16 jádry vedlo k nadměrnému dělení rámce a zvýšení zátěže přibližně o jednu třetinu.
- Rozhraní bylo přeloženo do turečtiny, celkový počet podporovaných jazyků byl zvýšen na
deset. Soubory lokalizace byly rozděleny do samostatných souborů pro každý jazyk.
Zdroj: opennet.ru
