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

Форум для изучающих FPC и их учителей.

Модератор: Модераторы

xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

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

Сообщение xam_death »

ткните, плз, носом, где бы сабж посмотреть? :oops:
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение xam_death »

Неужто никто не пользовал xine-lib на паскале? :(
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение xam_death »

хотя бы ссылочку наподобии
http://svn.berlios.de/svnroot/repos/cactusjukebox/source/mplayer.pas
(замечательный пример использования мплеера)
Аватара пользователя
bw
постоялец
Сообщения: 359
Зарегистрирован: 01.12.2005 10:36:23
Откуда: Усть-Илимск
Контактная информация:

Сообщение bw »

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

..bw
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение xam_death »

Спасибо!
Хоть кто-то откликнулся....

Примеров, к сожалению, нету. Пока в поиске...
Я не зря этот вопрос задал в обучении - далеко не специалист.
Но насколько я понимаю - напрямую же нельзя подключить к паскалевой программе сишные заголовки (aka xine-lib.h или что-то.там). Нужно писать обвязку или как-то согласовывать их? (если можно таки тоже примерчик бы не помешал :oops:
Аватара пользователя
bw
постоялец
Сообщения: 359
Зарегистрирован: 01.12.2005 10:36:23
Откуда: Усть-Илимск
Контактная информация:

Сообщение bw »

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

..bw
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение xam_death »

почему не VLC?
Интересный вопрос....

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

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

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

VLC такое позволяет? :?
Аватара пользователя
bw
постоялец
Сообщения: 359
Зарегистрирован: 01.12.2005 10:36:23
Откуда: Усть-Илимск
Контактная информация:

Сообщение 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
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение 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;

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

ЗЫ: На самом деле я не собираюсь писать супер/пупер плеер, просто, к сожалению, мне не хватает НЕКОТОРОЙ, функциональности, вот и приходится извращаться :(
Аватара пользователя
bw
постоялец
Сообщения: 359
Зарегистрирован: 01.12.2005 10:36:23
Откуда: Усть-Илимск
Контактная информация:

Сообщение bw »

Не забудь поделиться результатами ;-).

..bw
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение xam_death »

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

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

Сообщение xam_death »

оччень интересно... оччень... :(
а некоторых функций то и нету в libvlc :( например libvlc_destroy
в разной документации расписано - какая ляпота и как всё зашибись, а вот при сборке ругается на отсутствие.... интересно...
скачнул dev пакет от vlc - где же как не в заголовках искать то? Ан там тоже нету. :shock:
вот. теперь без маломальского знания сей(ни плюсовых ни простых) придётся копаться в сёвых заголовках и смотреть - что там вообще есть :(
Может кто работал с этой библиотекой? может есть где подробное и актуальное описание - для любого языка :(
Аватара пользователя
bw
постоялец
Сообщения: 359
Зарегистрирован: 01.12.2005 10:36:23
Откуда: Усть-Илимск
Контактная информация:

Сообщение bw »

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

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

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

..bw
Аватара пользователя
Slavikk
постоялец
Сообщения: 208
Зарегистрирован: 15.01.2007 21:34:52
Откуда: Из лесов...
Контактная информация:

Сообщение Slavikk »

Насколько я помню Ваш пример к VLC 0.8.x.x, а Вы скорее всего пытаетесь его запустить с VLC 1.x.x.
xam_death
новенький
Сообщения: 13
Зарегистрирован: 26.11.2009 20:28:10

Сообщение xam_death »

может быть. Есть несколько примеров, без указания версии библиотеки. но везде есть эта хрень.
пока курю заголовки сишные (в меру понимания, которого совсем нет)

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

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

ЗЗЗЫ
СПАСИБО ВСЕМ ОТКЛИКНУВШИМСЯ!!!
Ответить