Страница 3 из 6
Re: Класс-обертка для mplayer под MSE
Добавлено: 30.11.2010 21:41:17
minoshi
а вот над этим я пока думаю.
Re: Класс-обертка для mplayer под MSE
Добавлено: 30.11.2010 21:45:41
coyot.rush
а вот над этим я пока думаю
Вводить все равно придется, к примеру для просмотра тв кнопки play,stop не надо
Re: Класс-обертка для mplayer под MSE
Добавлено: 02.12.2010 20:39:56
minoshi
coyot.rush писал(а):а вот над этим я пока думаю
Вводить все равно придется, к примеру для просмотра тв кнопки play,stop не надо
согласен, хотя немного не так, как предлагаете Вы ...
Re: Класс-обертка для mplayer под MSE
Добавлено: 02.12.2010 22:15:03
coyot.rush
согласен, хотя немного не так, как предлагаете Вы ...
Поэтому и жду когда вы покажете, как хотите организовать взаимодействие между классом оберткой и программой чтобы не переписывать
offtopic
Можно ли twindowwidget работать как с картинкой, просто хочется потом заняться алгоритмами сглаживания видео, естественно про то что это получается медленно я знаю, просто ради любопытства

Re: Класс-обертка для mplayer под MSE
Добавлено: 05.12.2010 11:02:05
minoshi
ну где - то так. Пока alfa and unstable
coyot.rush писал(а):Можно ли twindowwidget работать как с картинкой, просто хочется потом заняться алгоритмами сглаживания видео, естественно про то что это получается медленно я знаю, просто ради любопытства

интересный вопрос

Re: Класс-обертка для mplayer под MSE
Добавлено: 08.01.2011 21:09:50
minoshi
Так толком не дали поработать на новогодние праздники...
Текущий стабильный вариант здесь
http://almin-soft.nx0.ru/site/open_and_free_xelplayer.html
Re: Класс-обертка для mplayer под MSE
Добавлено: 12.01.2011 18:13:11
coyot.rush
Посмотрел проект есть несколько замечаний
1) Заменить Tspacer на TTabWidget потому что
а) избавит от ручного управления табами
Код: Выделить всё
procedure tmainfo.openspacer(b : string);
begin
s_1.visible := false;
s_2.visible := false;
s_3.visible := false;
s_4.visible := false;
(findcomponent('s_'+b) as tspacer).visible := true;
end;
б) устранит проблему при просмотре тв, появляются артефакты
в) Надписи в меню программы не будут наползать друг на друга (Проигрыватель...)
2) установить минимальное значение для главной формы
3) Использовать tskincontroller для создания единообразного интерфейса
4) Вынести путь к mplayer в ini файл и временно убрать проверку на имя файла
Код: Выделить всё
function tmplayer.checkplayer : boolean;
begin
if fileexists(fmplayer)
and (extractfilename(fmplayer) =
{$ifdef mswindows}'mplayer.exe'{$endif}
{$ifdef linux}'mplayer'{$endif} )
then begin
result := true;
debug('*** CHECK PLAYER: mplayer found : ' + fmplayer);
end
else begin
result := false;
debug('*** CHECK PLAYER: mplayer not found');
end;
end;
Предложение по системе плагинов .
1) Создать именованный пайп (имя должно быть заранее оговорено) и с помощью него считывать список
2) Второй пайп можно использовать для внешнего управления (например ставить на паузу при получение электронной почты

)
Вывод отладочной информации можно сделать так как я предложил здесь
http://www.freepascal.ru/forum/viewtopic.php?f=13&t=6641Особенности
1.Среда разработки MSE-GUI, что позволит запустить ее на любом рабочем столе
2.минимализм.
3.основной движок - mplayer.
Операционная система : Linux
Платформа : X11
Язык интерфейса : Русский
Лицензия : GPL ver.2
Только Linux ?
PS: Правила разработки
http://www.freepascal.ru/forum/viewtopic.php?f=23&t=3078&p=20268
Re: Класс-обертка для mplayer под MSE
Добавлено: 16.01.2011 10:09:12
daesher
Re: Класс-обертка для mplayer под MSE + XELPLAYER
Добавлено: 03.02.2011 10:05:09
minoshi
coyot.rush писал(а):Посмотрел проект есть несколько замечаний
1) Заменить Tspacer на TTabWidget потому что
а) избавит от ручного управления табами
Код: Выделить всё
procedure tmainfo.openspacer(b : string);
begin
s_1.visible := false;
s_2.visible := false;
s_3.visible := false;
s_4.visible := false;
(findcomponent('s_'+b) as tspacer).visible := true;
end;
б) устранит проблему при просмотре тв, появляются артефакты
в) Надписи в меню программы не будут наползать друг на друга (Проигрыватель...)
Сам об этом думал:) Принято. Реализовано.
coyot.rush писал(а):2) установить минимальное значение для главной формы
3) Использовать tskincontroller для создания единообразного интерфейса
В планах. Есть пара нюансов, над которыми надо подумать ...
coyot.rush писал(а):4) Вынести путь к mplayer в ini файл и временно убрать проверку на имя файла
ini - файл с настройками будет.
А вот зачем убирать проверку на имя файла? Поясните свою мысль
coyot.rush писал(а):Предложение по системе плагинов .
1) Создать именованный пайп (имя должно быть заранее оговорено) и с помощью него считывать список
2) Второй пайп можно использовать для внешнего управления (например ставить на паузу при получение электронной почты

)
Система плагинов будет полностью изменена. Как раз над этим сейчас и работаем. Забавно должно получиться
coyot.rush писал(а):Только Linux ?
Конечно нет

Кроссплатформа! просто не всегда есть возможность скомпилить windows-версию
Добавлено спустя 39 минут 44 секунды:Re: Класс-обертка для mplayer под MSEвзято на заметку
Re: Класс-обертка для mplayer под MSE и XELPLAYER
Добавлено: 08.02.2011 22:37:55
coyot.rush
А вот зачем убирать проверку на имя файла? Поясните свою мысль
Для запуска портабельной версии, имя бинарника AppImage
Система плагинов будет полностью изменена. Как раз над этим сейчас и работаем. Забавно должно получиться
как насчет пайпов?
1)Замечание/предложение по интерфейсу
Сделать "всё" на табах, их разместить с боку
Одна вкладка "обманка" для переключения на окно просмотра (плеер) и уменьшения ширины страницы табов до нуля (остаются только "ушки")
2) Тв не работает, видео не отображается
3) Заменить код проверки запуска второй копии
http://www.freepascal.ru/forum/viewtopic.php?t=6641
Re: Класс-обертка для mplayer под MSE и XELPLAYER
Добавлено: 10.03.2011 13:21:33
minoshi
Проект не заморожен

Но пока остался один нерешаемый вопрос, который уже начал раздражать - как корректно поставить на паузу mplayer при просмотре он-лайн ресурсов в случае нехватки кеша (cache not filling)?
Вроде нащупал программный алгоритм, но крайне неровно работающий - иногда ставит на паузу сразу, иногда проходит секунд десять. Основная причина всего этого - это то, что в рабском режиме mplayer не информирует о переходе в режим паузы и приходится "танцевать" от события cache not filling.
Может я где чего в документации пропустил?
Жду Вашей помощи, советов, предложений.
Re: Класс-обертка для mplayer под MSE и XELPLAYER
Добавлено: 10.03.2011 19:32:46
coyot.rush
Но пока остался один нерешаемый вопрос, который уже начал раздражать - как корректно поставить на паузу mplayer при просмотре он-лайн ресурсов в случае нехватки кеша (cache not filling)?
Имхо такое в принципе осуществить для потокового аудио/видео нельзя.
Сервер должен ждать вас когда вы попьёте чай
Речь может идти только о timeshift
тем не менее mplayer можно поставить на паузу использую функцию libc.kill
Код: Выделить всё
Pause(id:integer): boolean;
begin
Result:=False;
if kill(id,SIGSTOP{SIGTSTP})=0 then Result:=True;
end;
function Play(id:integer): boolean;
begin
Result:=False;
if kill(id,SIGCONT)=0 then Result:=True;
end;
PS: Данный хак как не странно работает
Сигналы в UNIX
http://ru.wikipedia.org/wiki/%D0%A1%D0%B8%D0%B3%D0%BD%D0%B0%D0%BB%D1%8B_%28UNIX%29
Re: Класс-обертка для mplayer под MSE и XELPLAYER
Добавлено: 11.03.2011 07:42:31
minoshi
действительно , работает

и вот почему - при работе с он-лайн ресурсами mplayer создает два потока : первый, как я понял, для подкачки контента, второй - для воспроизведения.
Тормозить нужно второй
Добавлено спустя 8 минут 21 секунду:надо почаще заглядывать в консоль
Re: Класс-обертка для mplayer под MSE и XELPLAYER
Добавлено: 11.03.2011 22:46:00
coyot.rush
насчет размера виджета для отображения видео, его нет смысла подгонять под размер потока , mplayer (или система ?) сама масштабирует изображение . Кстати по этой причине появляются артефакт на канве
Re: Класс-обертка для mplayer под MSE и XELPLAYER
Добавлено: 12.03.2011 14:24:27
minoshi
дык , я его под размер потока и не подгоняю, а только сохраняю соотношение сторон и масштабирую относительно области вывода. Не люблю, когда размер программы скачет от файла к файлу.