Страница 1 из 2

пример использования xine-lib?

СообщениеДобавлено: 05.12.2009 08:11:44
xam_death
ткните, плз, носом, где бы сабж посмотреть? :oops:

Re: пример использования xine-lib?

СообщениеДобавлено: 10.12.2009 14:55:13
xam_death
Неужто никто не пользовал xine-lib на паскале? :(

Re: пример использования xine-lib?

СообщениеДобавлено: 12.12.2009 20:13:22
xam_death
хотя бы ссылочку наподобии
http://svn.berlios.de/svnroot/repos/cactusjukebox/source/mplayer.pas
(замечательный пример использования мплеера)

Re: пример использования xine-lib?

СообщениеДобавлено: 14.12.2009 09:00:53
bw
А какое значение имеет язык? Неужели примеры на C (если они есть конечно) не подходят? Мне, например, хватило, в своё время, оригинальных исходников ffmpeg (с документацией по API), что бы решить поставленную передо мной задачу (правда на Python, но опять не вижу проблем).

..bw

Re: пример использования xine-lib?

СообщениеДобавлено: 14.12.2009 09:11:01
xam_death
Спасибо!
Хоть кто-то откликнулся....

Примеров, к сожалению, нету. Пока в поиске...
Я не зря этот вопрос задал в обучении - далеко не специалист.
Но насколько я понимаю - напрямую же нельзя подключить к паскалевой программе сишные заголовки (aka xine-lib.h или что-то.там). Нужно писать обвязку или как-то согласовывать их? (если можно таки тоже примерчик бы не помешал :oops:

Re: пример использования xine-lib?

СообщениеДобавлено: 14.12.2009 11:47:25
bw
> напрямую же нельзя подключить к паскалевой программе сишные заголовки
Нельзя. Есть конвертеры, но за ними, скорее всего, придётся подчищать. Я переписываю руками и только то что нужно. На практике далеко не все структуры и функции нужны, да и структуры редко когда нужно описывать полностью (или описывать вообще, достаточно от метода методу передавать лишь указатель на какие там данные, что-то вроде Handle в винде).
Что касается самого XINE, а почему не VLC :-) ?

..bw

Re: пример использования xine-lib?

СообщениеДобавлено: 14.12.2009 15:15:11
xam_death
почему не VLC?
Интересный вопрос....

вот пока поглядываю на мплеер - есть реальные примеры КАК его использовать (см выше), но демотивирует (повыёживаться - какие слова знаю, хотя, как сказал классик, "длинные слова меня только расстраивают :wink: ) что у него своё окно и если фокус в окне мплеера - нельзя(нельзя ли? может просто не знаю как?) забрать весь ввод в его окне с клавиатуры и мыши стандартными средствами

на гстример кошусь, но тоже КАК его использовать из паскаля? и вопримет ли он поток с DVB устройств?

xine-lib, как я понял, по сути готовый плеер, его можно встроить в свою приблуду в нужное место экрана/окна для воспроизведения аудио/видео контента.

VLC такое позволяет? :?

Re: пример использования xine-lib?

СообщениеДобавлено: 15.12.2009 02:46:21
bw
> VLC такое позволяет?
Но ведь можно официальную документацию почитать?

XINE и VLC, по сути, это высокоуровневые API, в отличии от FFmpeg (хотя я с ними не работал и не знаю насколько высоко и что именно они позволяют делать с медиа). В случае с FFmpeg ты можешь делать с потоком всё что угодно, можешь ручками декодированный кадр терзать как угодно, можешь дописать свой фильтр (по стандартизованному API), кодер/декодер, источник/получатель (устройство) и т.д. (на сколько понимаю это же позволяют сделать и XINE/VLC). Как и куда ты будешь выводить картинку зависит еще и от платформы, если под виндой это может быть DirectShow/GDI, то в Linux OpenGL/XImage/DirectFB (у меня mplayer десяток устройств предлагает, половина, правда не работает). То же относится к звуку, например, декодировать AC3/DTS может вообще необходимости нет, если ты сразу этот поток направишь на S/PDIF.

Так же надо понимать, что, наверное, 80% кода этих пакетов это одни и те же свободные библиотеки по работе с разными форматами (libtheora, libvorbis, libx264, libxvidcore и т.д. и т.п.).

Ты говорил про MPlayer (тот pas я не знаю к чему относится). Тот MPlayer, про который все знают целиком и полностью основан на FFmpeg. Весь ввод/вывод выполняется FFmpeg, а сам проигрыватель только собирает демуксоры, декодеры, фильтры и устройства в одну кучку и правильным образом связывает их, ну еще обрабатывает пользовательский ввод.

p.s. Смотрим что пишут разработчики, если фичи устраивают, начинаем разбираться с API. Прежде чем разберешься, 10 раз ручками перепишешь нужные функции/типы/структуры. Так что Сишные Хедеры это меньшее из бед, будь уверен :-).

..bw

Re: пример использования xine-lib?

СообщениеДобавлено: 15.12.2009 11:43:12
xam_death
спасибо за наводку :)
нашёл кое-что по vlc-lib. Очень интересно.
и примеры на дельфях.
http://goodbyamerica.sourceforge.net/videolan.html
Увидел КАК побеждаются сишные заголовки
Код: Выделить всё
procedure rootwrap; cdecl external lib;
function VLC_AddIntf(id:integer; module:pchar; block,play:longbool):integer; cdecl external lib;
function VLC_AddTarget(id:integer; target:pchar; szoptions:ppchar; options,mode,pos:integer):integer; cdecl external lib;

сейчас буду пытаться это всё перевести в лазарус(или мсе/иде, если получится) и в линукс :)

ЗЫ: На самом деле я не собираюсь писать супер/пупер плеер, просто, к сожалению, мне не хватает НЕКОТОРОЙ, функциональности, вот и приходится извращаться :(

Re: пример использования xine-lib?

СообщениеДобавлено: 15.12.2009 12:58:27
bw
Не забудь поделиться результатами ;-).

..bw

Re: пример использования xine-lib?

СообщениеДобавлено: 15.12.2009 13:04:49
xam_death
какими к чёрту результатами? :(
стыдно будет таким делиться то :(
программировать не умею, но приходится по необходимости :cry:
по идее медиацентр мне нужен. Существующие немножко не устраивают. Буквально чуть-чуть. Вот и приходится лепить свои корявки :(
ЗЫ Если получится запустить нормально - примеры, конечно, выложу - вдруг такому же как я пригодится :)

ЗЗЫ: Вопрос на засыпку - я правильно мыслю, что если статически слинковать свою поделку с библиотекой, то при обновлении оной (библиотеки) программа слетит ибо сменились адреса функций/процедур, а при динамической линковке если не произшло кардинальных перемен в библиотеке, всё пройдёт безболезненно?

Re: пример использования xine-lib?

СообщениеДобавлено: 16.12.2009 19:34:31
xam_death
оччень интересно... оччень... :(
а некоторых функций то и нету в libvlc :( например libvlc_destroy
в разной документации расписано - какая ляпота и как всё зашибись, а вот при сборке ругается на отсутствие.... интересно...
скачнул dev пакет от vlc - где же как не в заголовках искать то? Ан там тоже нету. :shock:
вот. теперь без маломальского знания сей(ни плюсовых ни простых) придётся копаться в сёвых заголовках и смотреть - что там вообще есть :(
Может кто работал с этой библиотекой? может есть где подробное и актуальное описание - для любого языка :(

Re: пример использования xine-lib?

СообщениеДобавлено: 17.12.2009 09:10:56
bw
Если нет в самой библиотека, значит правильно смотришь, должна быть с заголовках. Многие функции извращенцы сишники определяют define'ами, причем такими хитрыми с многоуровневыми подъеб.../вложенностями, что тебя ждет много секса, прежде найдешь эту дрянь :-).

p.s.
> может есть где подробное и актуальное описание - для любого языка :(
Смешной ты человек. Называется: делалось не для людей/программеров, делалось для сишников. Человечество еще не одно десятилетие будет разгребать этот код. Хотя такой подход специфичен для всего сообщества опен-сорсников.

p.p.s. Упоминаний где-либо о libvlc_destroy мне найти не удалось.

..bw

Re: пример использования xine-lib?

СообщениеДобавлено: 17.12.2009 21:41:24
Slavikk
Насколько я помню Ваш пример к VLC 0.8.x.x, а Вы скорее всего пытаетесь его запустить с VLC 1.x.x.

Re: пример использования xine-lib?

СообщениеДобавлено: 17.12.2009 22:00:04
xam_death
может быть. Есть несколько примеров, без указания версии библиотеки. но везде есть эта хрень.
пока курю заголовки сишные (в меру понимания, которого совсем нет)

нашёл (теоретически) интересные вещи (если правильно понял), ещё бы сообразить КАК это использовать.

ЗЫ ещё бы с кодами ошибок разобраться, а то при добавлении элемента в плейлист ошибка 5 вылазит, а что это - хз. :?
ЗЗЫ - хоть парсер по переводу сишных заголовков в паскалевые пиши :(

ЗЗЗЫ
СПАСИБО ВСЕМ ОТКЛИКНУВШИМСЯ!!!