LINUX MEDIA INFRASTRUCTURE API

Яндекс.Метрика

Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.1 or any later version published by the Free Software Foundation. A copy of the license is included in the chapter entitled "GNU Free Documentation License"

Перевод: Михайлов Алексей  aka iboxjo (статус перевода Активный; последнее обновление 25.05.2012)


Содержание
Введение
1.Спецификация API Video for Linux Two
1. Общие элементы API
Открытие и закрытие устройств


Введение+++
 Этот документ рассматривает Linux Kernel to Userspace API используемый потоковыми радио- и видео- устройствами, в том числе видеокамерами, аналоговыми и цифровыми ТВ-картами, картами AM/FM приёмников и потоковыми устройствами захвата.

 Документ разделён на три части.

 Первая часть включает радио устройства, устройства захвата, камеры и аналоговые TV.

 Вторая часть охватывает API, используемый для цифрового ТВ и Интернет приёма посредством одного или нескольких стандартов цифрового телевидения. Хотя он называется DVB API, на самом деле он охватывает несколько различных видео стандартов, в том числе DVB-T, DVB-S, DVB-C и ATSC. Данный API в настоящее время обновлён и для DVB-S2, ISDB-T и ISDB-S.

 Третья часть включает описание API для пульта дистанционного управления.

 Для получения дополнительной информации о новейших разработках кодовой базы обратитесь на http://linuxtv.org.
 Для обсуждения улучшений, отчётов о проблемах, отправки новых драйверов и пр, обратитесь по адресу: Linux Media Mailing List (LMML)

1. Спецификация API Video for Linux Two ---
1. Общие элементы API +--
Открытие и закрытие устройств ++-
 Драйверы V4L2 реализованы как модули ядра, загружаемые вручную администратором системы или автоматически при первом открытии устройства. Модули драйвера подключаются к модулю ядра "videodev". Он обеспечивает вспомогательные функции и общий интерфейс приложения указанный в данном документе.

Таким образом, каждый загружаемый драйвер регистрирует одно или несколько узлов устройствс основным (major) номером 81 и дополнительным (minor) номером между 0 и 255. Назначение младшего номера устройства V4L2 полностью зависит от администратора системы и в первую очередь предназначено для разрешения конфликтов между устройствами.[1] Опции модуля для выбора младшего номера именуются в соответствии со специальным файлом устройства с суффиксом "_nr". Например, "video_nr" для устройства захвата видео /dev/video. Номер - это смещение в базе младшего номера связанное с типом устройства.[2]. Когда драйвер поддерживает несколько устройств одного типа, может быть назначено более одного младшего номера, следующих через запятую:

> insmod mydriver.o video_nr=0,1 radio_nr=0,1

В /etc/modules.conf это может быть записано так:

alias char-major-81-0 mydriver
alias char-major-81-1 mydriver
alias char-major-81-64 mydriver              (1)
options mydriver video_nr=0,1 radio_nr=0,1   (2)

(1) Когда приложение пытается открыть файл устройства со старшим номером 81 и младшим номером 0,1 или 64, загружается "mydriver" (зависит от модуля "videodev").
(2) Регистрируются первые два устройства захвата видео с младшими номерами 0 и 1 (базовый номер 0) и первые два радиоустройства с младшими номерами 64 и 65 (базовый 64).