v4l2 е много либерален, когато става въпрос за формати: напр. Устройствата за заснемане могат да доставят кадри в практически всеки формат.
Така че, ако пишете инструмент за потребителя (приложение, библиотека,...; за разлика от драйвер за ядрото), но не трябва да се занимавате с кодеци (ако можете да го избегнете). Представете си, че всяко приложение в света, което иска да чете v4l2-потоци, трябва да добавя код за декодиране на кадри в SQ905C
или MJPEG
или какъвто и да е кодек (всяко приложение добавя свой собствен набор от бъгове изпълнение)
Вместо това умни хора създадоха библиотека, която ще декомпресира кадрите, доставени от вашето устройство за заснемане, и ще предостави тези кадри по стандартен начин: libv4l2.
Между другото, ако настоявате да напишете свой собствен код, libv4l2
е добра референтна реализация.
О, и ако сте мислили за просто зареждане на модул за кодиране/декодиране в пространството на ядрото (напр. имате уеб камера "foo", която доставя изображения във формат "XYZ", но искате тя да доставя изображения във формат " ABC" чрез добавяне на модул на ядрото), тогава нямате късмет.
Линус Т. беше съвсем ясен [липсваща препратка], че кодът за преобразуване на кодек не трябва да се изпълнява в пространството на ядрото.
person
umläute
schedule
17.12.2013