LINUX.ORG.RU

Плеер на базе SDL и smpeglib


0

0

Пытаюсь в строить в программу простенький mpeg-плеер на базе SDL и smpeg под Х-ами, с использованием библиотек Xlib, Xt, Xaw. Возникла проблема с указанием координат окна, в котором отображается видео. Окно всегда высвечивается в верхнем левом углу и не реагирует ни на какие функции изменения параметров окна (ни позиции, ни размеров), хотя прекрасно таскается и растягивается мышой. Может есть какие-нибудь функции оконного менеджера, которые сдвигают окно? Помогите добрым советом, а лучше добрым примером!

Re: Плеер на базе SDL и smpeglib

#include<SDL/SDL_syswm.h>

SDL_SysWMinfo info;

SDL_VERSION(&info.version);

if ( SDL_GetWMInfo(&info) > 0 ) { int x, y; int w, h;

if ( info.subsystem == SDL_SYSWM_X11 ) { info.info.x11.lock_func(); w = DisplayWidth(info.info.x11.display, DefaultScreen(info.info.x11.display)); h = DisplayHeight(info.info.x11.display, DefaultScreen(info.info.x11.display)); x = (w - ScreenWidth)/2; y = (h - ScreenHeight)/2; XMoveWindow(info.info.x11.display, info.info.x11.wmwindow, x,y); info.info.x11.unlock_func(); } }

Этот код расположит окно по центру. Внимательно вникай и делай чё тебе надо. Только я не могу понять нахрена тебе Xaw и прочая херь? То что ты сказал: "на базе SDL и smpeg под Х-ами, с использованием библиотек Xlib, Xt, Xaw" - бред. SDL предоставляет всё что тебе надо. При этом, его главная фишка - кроссплатформенность. Примерно это выглядит так: "я пытаюсь написать простенький консольный калькулятор используя Qt, GTK2 и Motif"

Esh ★★★★ ()

Re: Плеер на базе SDL и smpeglib

Посмотри в сторону ffplay.c из проекта ffmpeg
3 тыс. строк кода. Простейший audio/video плеер на базе SDL+libavcodec+libavformat.

Dead ★★★★ ()
Ответ на: Re: Плеер на базе SDL и smpeglib от Esh

Re: Re: Плеер на базе SDL и smpeglib

Спасибо, Esh, выручил! Я уже третий день с этой фигней мучаюсь. Делал все тоже самое, кроме макроса SDL_VERSION. Почему без него не работает? А по поводу X-ов, мне просто нужно срочно в старую прогу встроить mpeg-плеер.

EasyWriter ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.