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

Jaderné noviny - Video4Linux2 API: úvod

30. 10. 2006 | Robert Krátký
Články - Jaderné noviny - Video4Linux2 API: úvod  

Seriál o programování linuxových ovladačů pro video zařízení využívající API Video4Linux2.

Tento článek původně vyšel jako součást Jaderných novin z 11. 10. 2006. Samostatný je jen kvůli zařazení do seriálu Video4Linux2 API.

Video4Linux2 API: úvod

Jonathan Corbet: nedávno jsem psal ovladač pro kameru - konkrétně tu, která bude dodávána v systému One Laptop Per Child. Ovladač používá jaderné API, které je pro podobné účely určené: Video4Linux2 API. Při psaní tohoto ovladače jsem zjistil něco vskutku šokujícího - toto API není zrovna dobře dokumentováno. I když uživatelská strana má dokumentaci docela dobrou. Ve snaze o nápravu této situace bude v následujících měsících LWN vydávat sérii článků, které popisují, jak pro rozhraní V4L2 psát ovladače.

V4L2 má dlouhou historii - první jiskřička se v očích Bill Dirkse rozsvítila v srpnu roku 1998. Vývoj pokračoval dlouhé roky, až bylo V4L2 API konečně zařazeno do hlavního jádra v listopadu 2002 při vydání 2.5.46. Dodnes však novější API mnohé ovladače nepodporují; konverze pořád probíhá. Mezitím se V4L2 vyvíjí, přičemž do 2.6.18 šly docela zásadní změny. Aplikací, které by fungovaly s V4L2, moc není.

V4L2 je navrženo pro podporu nejrůznějších zařízení, z nichž jen některé jsou skutečně "video":

Jsou možné i jiné druhy zařízení. V4L2 API má náznaky zařízení "codec" a "effect", která obě provádějí transformace proudů video dat. Tyto oblasti však ještě nebyly kompletně specifikovány - a o to méně implementovány. Ve starším V4L1 API také existují rozhraní "teletext" a "radio data system"; nebyly však přesunuty do V4L2 a nevypadá to, že by se to někdy v dohledné době chystalo.

Video zařízení se od mnohých jiných liší tím, jak hodně je lze konfigurovat. V důsledku toho implementuje většina ovladače V4L2 kód, který aplikacím umožní objevit možnosti daného zařízení a nakonfigurovat jej tak, aby fungovalo podle představ. V4L2 API definuje několik desítek zpětných volání pro konfigurační parametry jako frekvence tuneru, okna a ořezávání, počet snímků, video komprimace, video formáty atd. Značná část tohoto seriálu se bude věnovat právě konfiguračnímu procesu.

Pak je tu ještě ten drobný zádrhel, že je nutno provádět efektivní I/O v dané kvalitě videa. V4L2 API definuje tři různé způsoby přenosu video dat mezi uživatelským rozhraním a zařízením, z nichž některé jsou dosti komplexní. O video I/O a vrstvě video-buf, která je připravena pro provádění běžných úkolů, budou samostatné články.

Seriál Video4Linux2 (dílů: 9)

První díl: Jaderné noviny - Video4Linux2 API: úvod, poslední díl: Jaderné noviny - Video4Linux2 - 7 (ovládání).
Následující díl: Jaderné noviny - Video4Linux2 - 2: registrace a open()

Odkazy a zdroje

The Video4Linux2 API: an introduction

Další články z této rubriky

Jaderné noviny – přehled za březen 2025
Jaderné noviny – přehled za únor 2025
Jaderné noviny – přehled za leden 2025
Jaderné noviny – přehled za prosinec 2024
Jaderné noviny – přehled za listopad 2024

Diskuse k tomuto článku

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