Portál AbcLinuxu, 4. května 2025 17:39

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Vložit další komentář
Karry avatar 19.10.2008 15:18 Karry | skóre: 10
Rozbalit Rozbalit vše Re: Jaderné noviny - Video4Linux2 - 5b (výběr formátu)
Odpovědět | Sbalit | Link | Blokovat | Admin
Rád bych upozornil na nepřesnost, která je uvedena i v originále a podle které se někteří vývojáři bohužel řídí, což dokazuje nefunkčnost mplayeru a dalších aplikací s gspca driverem. Jediný závazný dokument kterým by se vývojáři měli řídit je V4L2 API (linuxtv.org). (Tím ale nechci tvrdit že tento seriál není užitečný, právě naopak!)

Jedná se o to, jak se má ovladač chovat při TRY_FMT nebo S_FMT.
Vyžaduje-li aplikace něco nemožného, měl by ovladač vrátit -EINVAL. ... Na druhou stranu, ovladač může pole s velikostí upravit tak, aby odpovídala velikosti obrázku, kterou hardware podporuje...
Ovladač by měl vracet -EINVAL pouze v případě, kdy nepodporuje požadovaný typ bufferu, nebo v případě S_FMT vrátit -EBUSY pokud zařízení zrovna pracuje a nemůže formát změnit. Ve všech ostatních případech by měl driver vrátit 0 a nastavit parametr VČETNĚ PIXEL FORMAT na některý z podporovaných formátů! Takže aplikace by si po tomto volání měla zkontrolovat vrácenou hodnotu a pokud vrácený pixelformat nepodporuje, zkusit požádat o jiný formát!

Ve V4L2 API přímo stojí:
Very simple, inflexible devices may even ignore all input and always return the default parameters.
Bohužel hodně aplikací vrácenou hodnotu nekotroluje a pokud volání vrátí nulu, předpokádají že dostanou data ve formátu, jaký požadovali. Například mplayer zavolá S_FMT třeba s pixelformat YV12, gspca driver na zařízení podporující pouze BA81 vrátí 0 a nastaví pixelformat na BA81. Mplayer vrácenou hodnotu nezkontroluje a když potom dostane data v jiném formátu "než si nastavil", tak velkým rachotem spadne...
unzip; strip; touch; grep; finger; mount; fsck; more; yes; umount; sleep

Založit nové vláknoNahoru

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

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.