| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Linux: overlay для видео виджета |
| Автор: pharrell 8.7.2013, 18:51 |
| Суть задачи такова: с ip камеры выводится изображение в виджет(причем Gtk) и поверх видео рисуется сетка с текстовыми метками,которая должна еще сдвигаться при необходимости т.е. не статически в одном месте отрисовываться. Основная проблема у меня с выводом этой сетки над видео. Подскажите куда копать, на что смотреть. В данный момент сделан вывод видео через SDL_overlay в Gtk виджете,а поверх него отрисовал сетку через XShape, точнее положил маску на видео(XShapeCombineMask). И, наверно, из-за этого при перемещении сетки экран мигает т.е. нет плавного смещения. Но работает быстро. Пробовал OpenGL использовать для вывода, но целевая машина не очень сильная и нагрузка идет на CPU - 95%. Видео читаю помощью libav,но с этим проблем нет. Вообщем в этой теме я новичок и хотелось бы услышать совет знающих людей. Заранее спасибо! |
| Автор: pharrell 11.7.2013, 08:11 |
| Вообщем, пока остановился на использовании SDL: создаю два SDL_Surface и в первый загружаю картинку с камеры, а во втором рисую сетку и при каждом обновлении кадра совмещаю две плоскости в одну (SDL_BlitSurface). Если я правильно понял тоже самое в Windows делается через DirectDraw... Только вот нагрузка на процессор не малая, на целевой системе ~60-70% процессорного времени. Нет ли какого-нибудь другого способа сделать совмещение?Чтобы не каждый кадр делать совмещение,а чтобы две плоскости отдельно отрисовывались, просто одна над другой. А совмещение делалось аппаратно или как-нибудь еще??? |