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 13:00 | Humor

    Agent umělé inteligence Claude Opus ignoroval uživatelovu odpověď 'ne' na dotaz, zda má implementovat změny kódu, a přesto se pokusil změny provést. Agent si odpověď 'ne' vysvětlil následovně: Uživatel na mou otázku 'Mám to implementovat?' odpověděl 'ne' - ale když se podívám na kontext, myslím, že tím 'ne' odpovídá na to, abych žádal o svolení, tedy myslí 'prostě to udělej, přestaň se ptát'.

    NUKE GAZA! 🎆 | Komentářů: 4
    dnes 00:44 | IT novinky

    Po 8. květnu 2026 už na Instagramu nebudou podporované zprávy opatřené koncovým šifrováním. V chatech, kterých se bude změna týkat, se objeví pokyny o tom, jak si média nebo zprávy z nich stáhnout, pokud si je chcete ponechat.

    Ladislav Hagara | Komentářů: 4
    dnes 00:33 | IT novinky

    V lednu byla ve veřejné betě obnovena sociální síť Digg (Wikipedie). Dnes bylo oznámeno její ukončení (Hard Reset). Společnost Digg propouští velkou část týmu a přiznává, že se nepodařilo najít správné místo na trhu. Důvody jsou masivní problém s boty a silná konkurence. Společnost Digg nekončí, malý tým pokračuje v práci na zcela novém přístupu. Cílem je vybudovat platformu, kde lze důvěřovat obsahu i lidem za ním. Od dubna se do Diggu na plný úvazek vrací Kevin Rose, zakladatel Diggu z roku 2004.

    Ladislav Hagara | Komentářů: 5
    včera 12:33 | Zajímavý projekt

    MALUS je kontroverzní proprietarní nástroj, který svým zákazníkům umožňuje nechat AI, která dle tvrzení provozovatelů nikdy neviděla původní zdrojový kód, analyzovat dokumentaci, API a veřejná rozhraní jakéhokoliv open-source projektu a následně úplně od píky vygenerovat funkčně ekvivalentní software, ovšem pod libovolnou licencí.

    NUKE GAZA! 🎆 | Komentářů: 17
    včera 03:55 | Bezpečnostní upozornění

    Příspěvek na blogu Ubuntu upozorňuje na několik zranitelností v rozšíření Linuxu o mandatorní řízení přístupu AppArmor. Společně jsou označovány jako CrackArmor. Objevila je společnost Qualys (technické detaily). Neprivilegovaný lokální uživatel se může stát rootem. Chyba existuje od roku 2017. Doporučuje se okamžitá aktualizace. Problém se týká Ubuntu, Debianu nebo SUSE. Red Hat nebo Fedora pro mandatorní řízení přístupu používají SELinux.

    Ladislav Hagara | Komentářů: 2
    12.3. 17:22 | Nová verze

    Byla vydána nová verze 19 integrovaného vývojového prostředí (IDE) Qt Creator. Podrobný přehled novinek v changelogu.

    Ladislav Hagara | Komentářů: 0
    12.3. 03:44 | Nová verze

    Bitwig Studio (Wikipedie) bylo vydáno ve verzi 6. Jedná se o proprietární multiplatformní (macOS, Windows, Linux) digitální pracovní stanici pro práci s audiem (DAW).

    Ladislav Hagara | Komentářů: 4
    12.3. 02:11 | Komunita

    Společnost Igalia představila novou linuxovou distribuci (framework) s názvem Moonforge. Jedná se o distribuci určenou pro vestavěné systémy. Vychází z projektů Yocto a OpenEmbedded.

    Ladislav Hagara | Komentářů: 0
    12.3. 00:44 | Nová verze

    Google Chrome 146 byl prohlášen za stabilní. Nejnovější stabilní verze 146.0.7680.71 přináší řadu novinek z hlediska uživatelů i vývojářů. Podrobný přehled v poznámkách k vydání. Opraveno bylo 29 bezpečnostních chyb. Vylepšeny byly také nástroje pro vývojáře.

    Ladislav Hagara | Komentářů: 0
    12.3. 00:22 | Nová verze

    D7VK byl vydán ve verzi 1.5. Jedná se o fork DXVK implementující překlad volání Direct3D 3 (novinka), 5, 6 a 7 na Vulkan. DXVK zvládá Direct3D 8, 9, 10 a 11.

    Ladislav Hagara | Komentářů: 0
    Které desktopové prostředí na Linuxu používáte?
     (16%)
     (7%)
     (0%)
     (12%)
     (29%)
     (2%)
     (5%)
     (1%)
     (13%)
     (24%)
    Celkem 1076 hlasů
     Komentářů: 26, poslední 12.3. 08:56
    Rozcestník

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

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

    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.