Составители:
Рубрика:
147
remoteApp.call("PushData", img_data );
Приложение B:
//Адаптер описывается в формате XML и траслируется с помощью утилиты
//qdbusxml2cpp. При этом
//указываем название интерфейса — "org.example.RPN.ImageSaver"
//Регистрируем сервис на шине
registerService ("com.example.ImageSaver" );
//Создаём его экземпляр
ImageSaver img_saver;
//Регистрируем интерфейс на шине
registerObject ("com.example.ImageSaver","/ImageSaver/Operations",* img_saver);
11.6. Лабораторная работа № 9 «Пример получения и записи
данных от видеокамеры»
11.6.1. Цель лабораторной работы
На примере задачи о получении и записи данных (кадров) от
видеокамеры системы видеонаблюдения научиться использовать
компонентны MeeGo API по работе с видео.
11.6.2. Инструкция для выполнения лабораторной работы
Рассмотрим задачу получения данных (кадров) от видеокамеры системы
видеонаблюдения и сохранения его в формате JPG.
Будем считать, что в нашем распоряжении имеется мобильное
вычислительное устройство работающее под управлением ОС MeeGo. Но также мы будем учитывать
возможность замены ОС другим Linux. Драйвера камеры интегрированы в ядро MeeGo и она
доступна как устройство /dev/video0, это верно практически для любой современной USB вебкамеры.
Решая рассматриваемую задачу, можно пойти разными путями:
1. Использовать непосредственно интерфейс video4linux2 (v4l2), предоставляемый современными
ядрами Linux. Плюсы – наиболее полный доступ к аппаратным возможностям и отсутствие
зависимостей, минусы – невозможность использовать вне Linux, необходимость работы на
достаточно низком уровне, изучение документации.
2. Использовать готовую консольную утилиту, способную выполнить нашу задачу, Она может быть
очень маленькой, как luvcview, а может очень мощной, как mplayer. Это самый быстрый путь
получения результата, но самый трудный в плане развития.
3. Использовать библиотеку gStreamer (см. лекцию 11), входящую в состав MeeGo, она более удобна
для программиста и богата дополнительными возможностями.
4. Использовать QT Phonon (см. лекцию 11), который, в свою очередь, обращается к gStreamer.
Вдобавок к преимуществам последнего получаем интерфейс QT. Существенный минус – Phonon
нет в MeeGo, его придется переносить самостоятельно.
5. Использовать Qt Multimedia Framework (см. лекцию 11), он присутствует в MeeGo и находится в
состоянии интенсивного развития.
К счастью, после недолгого поиска удалось обнаружить утилиту, сделанную по сценарию 1 и
полностью решающую нашу задачу – http://www.twam.info/linux/v4l2grab-grabbing-jpegs-from-v4l2-
devices. Поэтому достаточно просто скачать ее исходный текст. Поскольку утилита небольшая по
размеру, мы соберем ее прямо на целевой платформе, как мы бы сделали это в обычном Linux. Надо
установить зависимости – компилятор и jpeg-библиотеку –
yum install gcc libjpeg-devel
Страницы
- « первая
- ‹ предыдущая
- …
- 145
- 146
- 147
- 148
- 149
- …
- следующая ›
- последняя »
