Pas katër viteve zhvillimi, është formuar shpërthimi i parë i projektit libcamera (0.0.1), që ofron një grumbull softuerësh për të punuar me kamera video, kamera fotografike dhe tuner TV në Linux, Android dhe ChromeOS, i cili vazhdon të zhvillojë API-në V4L2 dhe me kalimin e kohës do ta zëvendësojë atë. Meqenëse API-ja e bibliotekës ende vazhdon të ndryshojë dhe nuk është stabilizuar përfundimisht, projekti është zhvilluar deri tani pa krijuar degëzime të shpërthimeve individuale duke përdorur një model të zhvillimit të vazhdueshëm. Në përgjigje të nevojës së shpërndarjeve për të ndjekur ndryshimet në API që ndikojnë në përputhshmëri dhe për të lehtësuar shpërndarjen e bibliotekës në paketa, tani është marrë vendimi që të formohen përkohësisht shpërthime që pasqyrojnë shkallën e ndryshimit të ABI dhe API. Kodi i projektit është shkruar në C++ dhe shpërndahet nën licencën LGPLv2.1.
Projekti po zhvillohet nga zhvilluesit e subsistementeve multimediale të bërthamës Linux në bashkëpunim me disa prodhues kamerash, me qëllim normalizimin e situatës me mbështetje në Linux për kamerat e smartphone-ve dhe pajisjeve të integruara që janë të lidhura me drejtuesit proprietarë. API V4L2 që tashmë ekziston në bërthamën Linux, në kohën e tij u krijua për të punuar me kamera tradicionale dhe është keq adaptuar për tendencën e fundit të nxjerrjes së funksionalitetit të MCU-së në krahët e CPU-së.
Ndryshe nga kamerat tradicionale, ku operacionet e përpunimit të parë të imazheve kryhen nga një procesor i specializuar i integruar (MCU), në pajisjet e integruara për të reduktuar kostot, këto funksione i janë në ngarkim CPU-së kryesore dhe kërkojnë një drejtues kompleks, që përfshin komponente të licencuara, të cilat nuk mund të hapen. Në kuadër të projektit libcamera, mbështetësit e softuerit me burim të hapur dhe prodhuesit e pajisjeve u përpoqën të krijojnë një zgjidhje kompromisi, nga njëra anë për të kënaqur nevojat e zhvilluesve të softuerit të hapur, e nga ana tjetër për të mbrojtur pronësinë intelektuale të prodhuesve të kamerave.
Staci i ofruar nga biblioteka libcamera është implementuar plotësisht në hapësirën e përdoruesit. Për të siguruar kompatibilitet me mjediset dhe aplikacionet ekzistuese, ofrohen ndërfaqe për kompatibilitet me API V4L, Gstreamer dhe Android Camera HAL. Komponentët proprietary specifikë për çdo kamerë, që ndërveprojnë me harduerin, janë organizuar si module që ekzekutohen në procese të ndara dhe bashkëpunojnë me bibliotekën përmes IPC. Modulet nuk kanë akses të drejtpërdrejtë në pajisje dhe qasen në harduerin përmes një API ndërmjetës, ku kërkesat kontrollohen, filtrohen dhe kufizohen vetëm në funksionalitetin e nevojshëm për menaxhimin e kamerës.
Biblioteka ofron gjithashtu qasje në algoritme për përpunimin dhe përmirësimin e cilësisë së imazheve dhe videove (korrektimi i balancës së bardhë, eliminimi i zhurmës, stabilizimi i videove, fokusimi automatik, zgjedhja e ekspozimit etj.), të cilat mund të lidhen si biblioteka të hapura të jashtme, ashtu edhe module të izoluar pronësore. API ofron qasje në funksionalitete të tilla si përcaktimi i funksionalitetit të kamerave të jashtme dhe të integruara, përdorimi i profileve të pajisjeve, përpunimi i ngjarjeve të lidhjes dhe shkëputjes së kamerave, menaxhimi i kapjes së të dhënave nga kamerat në nivelin e kadrove individuale dhe sinkronizimi i imazheve me punën e blicit. Është e mundur punimi i veçantë me disa kamera në sistem dhe organizimi i kapjes së disa flukseve video në të njëjtën kohë nga një kamerë (p.sh., një me rezolucion të ulët për videokonferenca dhe një tjetër me rezolucion të lartë për regjistrimin në disk).
Burimi: opennet.ru
