Další lokální zranitelností Linuxu je ssh-keysign-pwn. Uživatel si může přečíst obsah souborů, ke kterým má právo ke čtení pouze root, například soubory s SSH klíči nebo /etc/shadow. V upstreamu již opraveno.
Singularity (YouTube) je nejnovější otevřený film od Blender Studia. Jedná se o jejich první 4K HDR film.
Vyšla hra Život Není Krásný: Poslední Exekuce (Steam, ProtonDB). Kreslená point & click adventura ze staré školy plná černého humoru a nekorektního násilí. Vžijte se do role zpustlého exekutora Vladimíra Brehowského a projděte s ním jeho poslední pracovní den. Hra volně navazuje na sérii Život Není Krásný.
Společnost Red Hat představila Fedora Hummingbird, tj. linuxovou distribuci s nativním kontejnerovým designem určenou pro vývojáře využívající AI agenty.
Hru The Legend of Zelda: Twilight Princess od společnosti Nintendo si lze nově díky projektu Dusklight (původně Dusk) a reverznímu inženýrství zahrát i na počítačích a mobilních zařízeních. Vyžadována je kopie původní hry (textury, modely, hudba, zvukové efekty, …). Ukázka na YouTube. Projekt byl zahájen v srpnu 2020.
Byla vydána nová major verze 29.0 programovacího jazyka Erlang (Wikipedie) a související platformy OTP (Open Telecom Platform, Wikipedie). Detailní přehled novinek na GitHubu.
Po zranitelnostech Copy Fail a Dirty Frag přichází zranitelnost Fragnesia. Další lokální eskalace práv na Linuxu. Zatím v upstreamu neopravena. Přiřazeno ji bylo CVE-2026-46300.
Sovereign Tech Agency (Wikipedie) prostřednictvím svého fondu Sovereign Tech Fund podpoří KDE částkou 1 285 200 eur.
Google na včerejší akci The Android Show | I/O Edition 2026 (YouTube) představil celou řadu novinek: Gemini Intelligence, notebooky Googlebook, novou generaci Android Auto, …
Evropská komise by do léta mohla předložit návrh normy omezující používání sociálních sítí dětmi v zájmu jejich bezpečí na internetu. Prohlásila to včera předsedkyně EK Ursula von der Leyenová, podle níž řada zemí Evropské unie volá po zavedení věkové hranice pro sociální sítě. EU částečně řeší bezpečnost dětí v digitálním prostředí v již platném nařízení o digitálních službách (DSA), podle německé političky to však není dostatečné a
… více »Pokud jste ještě nečetli první díl, možná by stálo zato začít tam.
V mnoha případech videoadaptér příliš možností vstupu a výstupu nenabízí. Například řadič kamery může nabízat samotnou kameru a nic moc dalšího. V jiných případech je však situace komplikovanější. TV karta může mít několik vstupů odpovídajících různým konektorům na desce; může mít dokonce i více tunerů schopných nezávislého fungování. Tyto vstupy někdy mívají odlišné charakteristiky; některé mohou být schopny naladit širší rozsah video standardů než ostatní. Totéž platí pro výstupy.
Je zřejmé, že aby mohla aplikace videoadaptér plně využívat, musí mít možnost se dozvědět o dostupných vstupech a výstupech a zároveň ji musí být umožněno si zvolit ten, se kterým si přeje pracovat. Pro tento účel nabízí Video4Linux2 API tři různá ioctl() volání pro vstupy a tři pro výstupy. Ovladače by měly implementovat všechny tři (pro každou z podporovaných funkcí). U jednoduchého hardwaru jde většinou o jednoduchý kód. Kromě toho by ovladače měly poskytovat rozumné výchozí hodnoty nastavené po zapnutí. Co by však ovladače dělat neměly, to je reset informací o vstupu a výstupu po ukončení aplikace; podobně jako u dalších video parametrů by tato nastavení měla zůstat zachována.
Než se však dostaneme k podrobnostem o vstupech a výstupech, musíme se podívat na video standardy. Tyto standardy popisují, jak je videosignál formátován pro přenos - rozlišení, počet snímků za vteřinu atd. Většinou jsou standardy určovány příslušnými úřady v každé zemi. Na světě se používají tři hlavní typy video standardů: NTSC (používán převážně v Severní Americe), PAL (většina Evropy, Afrika a Asie) a SECAM (Francie, Rusko, části Afriky). V různých zemích se však standardy mírně liší a některá zařízení jsou v tomto ohledu přizpůsobivější než jiná.
Vrstva V4L2 reprezentuje video standardy pomocí typu v4l2_std_id, což je 64bitová maska. Každá varianta je pak jeden bit masky. Takže "standard" NTSC je V4L2_STD_NTSC_M s hodnotou 0x1000, ale japonská varianta je V4L2_STD_NTSC_M_JP (0x2000). Pokud si zařízení poradí se všemi variantami NTSC, může nastavit typ standardu V4L2_STD_NTSC, který má nastaveny všechny relevantní bity. Podobné sady bitů jsou k dispozici pro varianty PAL a SECAM. Vizte kompletní seznam.
Pro uživatelský prostor poskytuje V4L2 ioctl() příkaz (VIDIOC_ENUMSTD), který aplikaci umožňuje zjistit, které standardy zařízení implementuje. Ovladač nemusí na takovou otázku odpovídat přímo - místo toho prostě naplní pole tvnorm struktury video_device všemi standardy, které podporuje. Vrstva V4L2 pak pro aplikaci vyčlení podporované standardy. Příkaz VIDIOC_G_STD, používaný pro zjišťování toho, který standard je právě aktivní, je v rámci vrstvy V4L2 také obsluhován vracením příslušné hodnoty v poli current_norm struktury video_device. Při spuštění by měl ovladač inicializovat current_norm, aby odpovídalo skutečnosti; některé aplikace jsou zmateny, pokud není nějaký standard nastaven - ačkoliv samy žádný nenastavovaly.
Pokud si chce aplikace vyžádat určitý standard, použije volání VIDIOC_S_STD, které je ovladači předáno prostřednictvím:
int (*vidioc_s_std) (struct file *file, void *private_data,
v4l2_std_id std);
Ovladač by měl hardware naprogramovat tak, aby použil daný standard a vrátil nulu (nebo záporný chybový kód). Vrstva V4L2 se postará o nastavení current_norm na novou hodnotu.
Aplikace by mohla chtít vědět, jaký signál vlastně hardware na svém vstupu vidí. Odpověď lze nalézt pomocí VIDIOC_QUERYSTD, který k ovladači přistupuje takto:
int (*vidioc_querystd) (struct file *file, void *private_data,
v4l2_std_id *std);
Ovladač by měl toto pole vyplnit co nejpodrobněji. Pokud hardware neposkytuje moc informací, pole std by mělo ukazovat některý ze standardů, které by to mohly být.
Za zmínku ještě stojí jedna věc: všechna video zařízení musí podporovat (nebo alespoň tvrdit, že podporují) přinejmenším jeden standard. Video standardy sice nedávají smysl u kamer, které nejsou vázány na nějaké konkrétní předpisy, ale neexistuje žádný standard, který by říkal "Jsem kamera a umím skoro všechno, co si můžeš přát". Takže vrstva V4L2 má několik ovladačů, které tvrdí, že vracejí buď PAL nebo NTSC data.
Aplikace pro získávání videa začne očíslováním dostupných video vstupů pomocí příkazu VIDIOC_ENUMINPUT. V rámci vrstvy V4L2 bude tento příkaz převeden na volání odpovídajícího zpětného volání ovladače:
int (*vidioc_enum_input)(struct file *file, void *private_data,
struct v4l2_input *input);
V tomto volání je file to otevřené video zařízení a private_data je soukromé pole nastavené ovladačem. Skutečné informace jsou předávány struktuře input; má několik polí, která nás zajímají:
Za normálních okolností nastaví ovladač všechna uvedená pole a vrátí nulu. Je-li index mimo rozsah podporovaných vstupů, bude vrácena -EINVAL; nic moc dalšího už se u tohoto volání pokazit nemůže.
Když chce aplikace aktuální vstup změnit, obdrží ovladač volání svého zpětného volání vidioc_s_input():
int (*vidioc_s_input) (struct file *file, void *private_data,
unsigned int index);
Hodnota index má stejný význam jako předtím - určuje vstup, o který má aplikace zájem. Ovladač by měl hardware naprogramovat tak, aby tento vstup použil a vrátil nulu. Další možné hodnoty jsou -EINVAL (v případě nesmyslného indexového čísla) nebo -EIO (pro potíže s hardwarem). Toto zpětné volání by ovladače měly implementovat i v případě, že podporují jen jediný vstup.
K dispozici je také zpětné volání pro zjištění toho, který vstup je právě aktivní:
int (*vidioc_g_input) (struct file *file, void *private_data,
unsigned int *index);
V tomto případě ovladač nastaví *index na indexové číslo právě aktivního vstupu.
Proces číslování a vybírání výstupů je velmi podobný jako u vstupů, takže popis bude stručnější. Zpětné volání pro očíslování výstupů vypadá takto:
int (*vidioc_enumoutput) (struct file *file, void *private_data
struct v4l2_output *output);
Pole struktury v4l2_output jsou:
K dispozici jsou rovněž zpětná volání pro nastavování a zjišťování aktuálního nastavení výstupů; odpovídají zpětným voláním u vstupů:
int (*vidioc_g_output) (struct file *file, void *private_data,
unsigned int *index);
int (*vidioc_s_output) (struct file *file, void *private_data,
unsigned int index);
Všechna zařízení, která podporují výstup videa, by měla mít každé z těchto tří zpětných volání definována - i když je možný jen jediný výstup.
Jsou-li tyto metody po ruce, může V4L2 aplikace zjistit, které vstupy a výstupy jsou na daném zařízení dostupné, a vybrat si z nich. Trochu komplikovanější je pak určování, jaký druh video dat těmito vstupy a výstupy teče. Další díl tohoto seriálu se zaměří na video formáty a to, jak se na video formátu dohodnout s uživatelským prostředím.
Nástroje: Tisk bez diskuse
Tiskni
Sdílej: