LINUX.ORG.RU

Как заставить mplayer рисовать видео в окне OpenGL приложения в fullscreen?

 , , ,


0

1

Пытаемся решить странную задачу:

есть игра на OpenGL, запускаемая в полноэкранном режиме. Окно создается через SDL1.2. Пока игра загружается (примерно 30 секунд), нужно крутить видеоролик со звуком. Исторически так сложилось, что загрузка ресурсов делается в основном потоке, поэтому рисовать анимацию или видео не получится.

Оказалось, что mplayer может использовать чужое окно (id в опциях передается). Это работает в гуе, но не работает в OpenGL-окне. Просто ничего не рисует. Может кто-то сталкивался со «встраиванием» mplayer?

ПС: можно конечно mplayer просто поверх игры запустить, но window manager не дает это сделать - прячет вниз плейер.

★★★★

Исторически так сложилось, что загрузка ресурсов делается в основном потоке,
Исторически

Вы её на движке UT’99 пилите?

Deleted
()

Есть же флаги для fullscreen mode, есть -wid, есть сокеты, хотя до них я не добрался. Гугли mplayer slave

minakov ★★★★★
()

лет 10 назад читал что вывод opengl идёт в обход иксов. Поэтому mplayer ничего не показывает.

Хотя, попробуй -vo gl какой-нить.

Можно ещё попробовать прикрутить gstreamer. Пусть он рендерит видео в буфер, а вы этот буфер на экран выводите.

true_admin ★★★★★
()
Ответ на: комментарий от true_admin

Можно ещё попробовать прикрутить gstreamer. Пусть он рендерит видео в буфер, а вы этот буфер на экран выводите.

Да у нас есть в движке воспроизведение видео, просто во время загрузки нельзя анимацию рисовать, т.к. ресурсы загружаются, поэтому решили mplayer использовать.

В общем понял.. Будем думать на тему дополнительного окна.

Esh ★★★★
() автор топика
Ответ на: комментарий от Deleted

Вы её на движке UT’99 пилите?

нет, но приходится использовать очень старое Г, т.к. железо очень слабое, Intel GMA945 считается high-end, а встречается даже Via Unichrome.

Esh ★★★★
() автор топика
Ответ на: комментарий от Esh

Взяли бы что-нибудь не такое унылое, я ещё когда учился страдал от однопоточности. А потоки по идее не так уж сложно и реализуются. Хотя если с аппаратной стороны с многопоточностью всё плохо, и(!) программулина собирается грузить цп до критической load_avg и выше, то тут даже многопоточность не спасёт, и от видео одновременно с подгрузкой ресурсов я бы отказался.

Deleted
()
Последнее исправление: fargred (всего исправлений: 1)
Ответ на: комментарий от Deleted

Взяли бы что-нибудь не такое унылое

исторически сложилось так, что ресурсы подгружаются в основном потоке - свои задачи выполняет, поэтому никому нет дела. Для такой мелкой задачи, как с этим видео, нет смысла фундаментально переделывать движок.

На железе в основном single core CPU, а там где есть ядра, то все равно есть чем их занять - другим кодом.

Esh ★★★★
() автор топика
Ответ на: комментарий от Esh

поэтому никому нет дела

А до видео во время подгрузки дело есть?

Deleted
()
Последнее исправление: fargred (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.