abclinuxu.cz AbcLinuxu.cz itbiz.cz ITBiz.cz HDmag.cz HDmag.cz abcprace.cz AbcPráce.cz
AbcLinuxu hledá autory!
Inzerujte na AbcPráce.cz od 950 Kč
Rozšířené hledání
×
    dnes 00:44 | Zajímavý článek

    Máirín Duffy a Brian Smith v článku pro Fedora Magazine ukazují použití LLM pro diagnostiku systému (Fedora Linuxu) přes Model Context Protocol od firmy Anthropic. I ukázkové výstupy v samotném článku obsahují AI vygenerované nesmysly, např. doporučení přeinstalovat balíček pomocí správce balíčků APT z Debianu místo DNF nativního na Fedoře.

    |🇵🇸 | Komentářů: 2
    včera 04:55 | Zajímavý software

    Projekt D7VK dospěl do verze 1.0. Jedná se o fork DXVK implementující překlad volání Direct3D 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    12.12. 16:00 | Nová verze

    Byla vydána nová verze 2025.4 linuxové distribuce navržené pro digitální forenzní analýzu a penetrační testování Kali Linux (Wikipedie). Přehled novinek se seznamem nových nástrojů v oficiálním oznámení na blogu.

    Ladislav Hagara | Komentářů: 2
    12.12. 12:44 | IT novinky

    Národní úřad pro kybernetickou a informační bezpečnost (NÚKIB) zveřejnil Národní politiku koordinovaného zveřejňování zranitelností (pdf), jejímž cílem je nejen zvyšování bezpečnosti produktů informačních a komunikačních technologií (ICT), ale také ochrana objevitelů zranitelností před negativními právními dopady. Součástí je rovněž vytvoření „koordinátora pro účely CVD“, jímž je podle nového zákona o kybernetické … více »

    Ladislav Hagara | Komentářů: 11
    12.12. 04:33 | Nová verze

    Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 25.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.

    Ladislav Hagara | Komentářů: 0
    12.12. 03:55 | Nová verze

    Společnost System76 vydala Pop!_OS 24.04 LTS s desktopovým prostředím COSMIC. Videoukázky na YouTube.

    Ladislav Hagara | Komentářů: 0
    12.12. 03:11 | Nová verze

    Byla vydána verze 1.92.0 programovacího jazyka Rust (Wikipedie). Podrobnosti v poznámkách k vydání. Vyzkoušet Rust lze například na stránce Rust by Example.

    Ladislav Hagara | Komentářů: 0
    12.12. 01:33 | Komunita

    Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2024. Oceněni byli Andy Wingo, jeden ze správců GNU Guile, Alx Sa za příspěvky do Gimpu a Govdirectory jako společensky prospěšný projekt.

    |🇵🇸 | Komentářů: 5
    11.12. 18:55 | Nová verze

    Bylo vydáno Eclipse IDE 2025-12 aneb Eclipse 4.38. Představení novinek tohoto integrovaného vývojového prostředí také na YouTube.

    Ladislav Hagara | Komentářů: 0
    11.12. 17:44 | Nová verze

    U příležitosti oslav osmi let prací na debianím balíčku vyšlo GPXSee 15.6. Nová verze přináší především podporu pro geotagované MP4 soubory, včetně GoPro videí. Kdo nechce čekat, až nová verze dorazí do jeho distribuce, nalezne zdrojové kódy na GitHubu.

    Martin Tůma | Komentářů: 16
    Jaké řešení používáte k vývoji / práci?
     (34%)
     (48%)
     (19%)
     (17%)
     (23%)
     (15%)
     (24%)
     (15%)
     (17%)
    Celkem 460 hlasů
     Komentářů: 19, poslední 11.12. 20:04
    Rozcestník

    Jaderné noviny - Video4Linux2 - 7 (ovládání)

    20. 12. 2007 | Robert Krátký | Jaderné noviny | 4878×

    Je známo, že uživatelé nejsou nikdy spokojení; nestačí jim, že mohou z kamery vidět video, hned by si chtěli hrát s parametry jako jas, kontrast atd.

    Po dokončení šesté části seriálu už víme, jak video zařízení nastavit a jak tam a zpět přenášet snímky. Je však známo, že uživatelé nejsou nikdy spokojení; nestačí jim, že mohou z kamery vidět video, hned by si chtěli hrát s parametry jako jas, kontrast atd. Takové úpravy mohou být prováděny ve video aplikaci, ale pokud to hardware podporuje, tak má své výhody je provádět rovnou v hardwaru. Například úprava jasu může znamenat ztrátu dynamického rozsahu, pokud se provádí až po přenosu. Naproti tomu hardwarová úprava umožňuje zachování plného rozsahu, kterého je senzor schopen. Hardwarové úpravy samozřejmě také ulehčí procesoru hostitelského systému.

    Současný hardware mívá možnost nastavovat za běhu velkou spoustu parametrů. Konkrétní funkce těchto parametrů se však zařízení od zařízení výrazně liší. I tak jednoduchá úprava jako "jas" může zahrnovat přímočaré nastavení registru nebo také o dost komplexnější změnu nějaké obskurní transformační matice. Bylo by fajn co nejvíce těchto detailů před aplikací skrýt, ale má to své meze. Příliš abstraktní rozhraní by mohlo znemožnit plné využití možností hardwaru.

    Ovládací rozhraní V4L2 se snaží věci co nejvíce zjednodušit a zároveň umožnit plné využití hardwaru. Začíná definicí standardních názvů ovládacích funkcí; patří mezi ně V4L2_CID_BRIGHTNESS, V4L2_CID_CONTRAST, V4L2_CID_SATURATION a mnoho dalších. Máme také booleovské ovládací prvky funkcí jako vyvážení bílé, horizontálního a vertikálního zrcadlení atd. Kompletní seznam předdefinovaných ID hodnot ovládacích prvků najdete ve specifikaci V4L2 API. K dispozici je také možnost ovládacího prvku specifického pro ovladač, ale ty budou zjevně používány jen specializovanými aplikacemi. Soukromé ovládací prvky začínají u V4L2_CID_PRIVATE_BASE.

    Jako obvykle poskytuje API V4L2 mechanismus, pomocí kterého může aplikace ovládací prvky snadno očíslovat. Pokud to chce provést, provede ioctl() volání, která se dostanou do V4L2 ovladače prostřednictvím zpětného volání vidioc_queryctrl():

        int (*vidioc_queryctrl)(struct file *file, void *private_data,
    			    struct v4l2_queryctrl *qc);
    

    Za normálních okolností ovladač zaplní strukturu qc informacemi o požadovaném ovládacím prvku nebo, pokud není ovládací prvek podporovaný, vrátí EINVAL. Tato struktura má několik polí:

        struct v4l2_queryctrl
        {
    	__u32		     id;
    	enum v4l2_ctrl_type  type;
    	__u8		     name[32];
    	__s32		     minimum;
    	__s32		     maximum;
    	__s32		     step;
    	__s32		     default_value;
    	__u32                flags;
    	__u32		     reserved[2];
        };
    

    Ovládací prvek, o který se jedná, bude předán prostřednictvím id. Aplikace může poskytnout ID ovládacího prvku s nastaveným bitem V4L2_CTRL_FLAG_NEXT_CTRL; v takovém případě by měl ovladač vrátit ID ovládacího prvku následujícího po tom, který předala aplikace. id by však každopádně mělo být nastaveno na ID ovládacího prvku, který je skutečně popisován.

    Všechna ostatní pole nastaví ovladač, aby popsal zvolený ovládací prvek. Datový typ ovládacího prvku je uveden v type; může to být V4L2_CTRL_TYPE_INTEGER, V4L2_CTRL_TYPE_BOOLEAN, V4L2_CTRL_TYPE_MENU (pro neměnnou sadu voleb) nebo V4L2_CTRL_TYPE_BUTTON (pro ovládací prvek, který při nastavení provede nějakou akci a ignoruje jakoukoliv předanou hodnotu). name popisuje ovládací prvek; může být použito v rozhraní, které aplikace prezentuje uživateli. U celočíselných ovládacích prvků popisují minimum a maximum rozsah hodnot, které prvek implementuje, a step udává velikost kroků daného rozsahu. default_value je výchozí hodnota, ale aplikovat lze pouze na ovládací prvky typu celé číslo, boolean a menu. Ovladače by měly hodnoty ovládacích prvků nastavovat na výchozí jen při inicializaci; stejně jako ostatní parametry zařízení, i tyto by měly přežít volání open() a close(). Z toho vyplývá, že default_value vůbec nemusí odpovídat aktuální hodnotě ovládacího prvku.

    Kromě toho máme ještě sadu příznaků, které ovládací prvek dále popisují.

    • V4L2_CTRL_FLAG_DISABLED znamená, že je ovládací prvek zakázán, takže by jej aplikace neměly brát v potaz.
    • V4L2_CTRL_FLAG_GRABBED značí, že ovládací prvek nelze dočasně změnit - například proto, že jej převzala jiná aplikace.
    • V4L2_CTRL_FLAG_READ_ONLY označuje ovládací prvky, kterých je možné se dotazovat, ale nelze je měnit.
    • V4L2_CTRL_FLAG_UPDATE znamená, že úprava této hodnoty může ovlivnit jiné ovládací prvky.
    • V4L2_CTRL_FLAG_INACTIVE značí ovládací prvek, který pro aktuální konfiguraci zařízení není relevantní.
    • A V4L2_CTRL_FLAG_SLIDER prozrazuje, že by aplikace tento prvek měly reprezentovat posuvníkem.

    Aplikace si mohou přát dotázat jen na několik ovládacích prvků, které mají naprogramovány, nebo mohou chtít očíslovat celou sadu. Ve druhém případě začnou u V4L2_CID_BASE a budou pokračovat až k V4L2_CID_LASTP1, např. pomocí V4L2_CTRL_FLAG_NEXT_CTRL. U ovládacích prvků typu menu (typ V4L2_CTRL_TYPE_MENU) budou aplikace pravděpodobně chtít očíslovat i možné hodnoty. Příslušné zpětné volání:

        int (*vidioc_querymenu)(struct file *file, void *private_data,
    			    struct v4l2_querymenu *qm);
    

    Struktura v4l2_querymenu vypadá takto:

        struct v4l2_querymenu
        {
    	__u32		id;
    	__u32		index;
    	__u8		name[32];
    	__u32		reserved;
        };
    

    Při vstupu je id hodnota ID daného ovládacího prvku typu menu a index je hodnota indexu konkrétní položky menu. Indexové hodnoty začínají nulou a pokračují až k hodnotě maximum, kterou vrátila vidioc_queryctrl(). Ovladač vyplní name položky menu; pole reserved by mělo být nastaveno na nulu.

    Jakmile aplikace ví o dostupných ovládacích prvcích, pustí se pravděpodobně do zjišťování a měnění jejich hodnot. Struktura používaná pro tento účel je relativně jednoduchá:

        struct v4l2_control
        {
    	__u32 id;
    	__s32 value;
        };
    

    Aby se mohla aplikace dotázat na konkrétní ovládací prvek, nastaví id na ID prvku a provede volání, které se do ovladače dostane jako:

        int (*vidioc_g_ctrl)(struct file *file, void *private_data,
        			 struct v4l2_control *ctrl);
    

    Ovladač by měl nastavit value na aktuální nastavení ovládacího prvku. Měl by se také samozřejmě ujistit, že o tom konkrétním prvku ví, a případně vrátit EINVAL, pokud by se aplikace pokoušela dotazovat na neexistující prvek. Pokusy o dotazování na tlačítkové ovládací prvky by také měly vracet EINVAL.

    Požadavek na změnu ovládacího prvku dopadne takto:

        int (*vidioc_s_ctrl)(struct file *file, void *private_data,
    			 struct v4l2_control *ctrl);
    

    Ovladač by měl ověřit id a ujistit se, že value je v mezích povoleného rozsahu. Pokud je vše v pořádku, měla by být nová hodnota nastavena v hardwaru.

    Nakonec stojí za zmínku, že v rámci V4L2 je podporováno samostatné rozhraní s rozšířenými ovládacími prvky. Je určeno pro poměrně komplexní ovládací prvky; v praxi se využije především pro parametry k enkódování a dekódování MPEG. Rozšířené ovládací prvky mohou být seskupovány do tříd a jsou podporovány i 64bitové celočíselné hodnoty. Rozhraní je podobné tomu obyčejnému; podrobnosti najdete ve specifikaci.

           

    Hodnocení: 100 %

            špatnédobré        

    Nástroje: Tisk bez diskuse

    Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

    Komentáře

    Vložit další komentář

    20.12.2007 10:27 petr_p | skóre: 59 | blog: pb
    Rozbalit Rozbalit vše Matrix
    s/transformačního matrixu/transformační matice/
    Luboš Doležel (Doli) avatar 20.12.2007 17:43 Luboš Doležel (Doli) | skóre: 98 | blog: Doliho blog | Kladensko
    Rozbalit Rozbalit vše Re: Matrix
    Díky, opraveno.
    Karry avatar 6.9.2008 12:43 Karry | skóre: 10
    Rozbalit Rozbalit vše Re: Jaderné noviny - Video4Linux2 - 7 (ovládání)
    Díky za článek. Také díky vám bude mít m5602 driver ovládání jasu, bělosti a zisku...

    Jen by mě zajímalo, proč tento díl není vidět na seznamu dílů? http://www.abclinuxu.cz/serialy/video4linux2
    unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep
    ISSN 1214-1267   www.czech-server.cz
    © 1999-2015 Nitemedia s. r. o. Všechna práva vyhrazena.