libvlc 1.x.x usage [не решено]

Обсуждаются как существующие проекты (перевод документации, информационная система и т.п.), так и создание новых.

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

libvlc 1.x.x usage [не решено]

Сообщение NXP » 03.08.2010 00:31:03

Уважаемые форумчане!
Подскажите, что я не так делаю с VLC, что он у меня грохается.
Код: Выделить всё
sergey@linux-68dp:~/VLC/1> fpc MainFormUnit.pas
Free Pascal Compiler version 2.2.4 [2010/01/15] for i386
Copyright (c) 1993-2008 by Florian Klaempfl
Target OS: Linux for i386
Compiling MainFormUnit.pas
MainFormUnit.pas(8,3) Note: Local variable "p_li" not used
MainFormUnit.pas(9,3) Note: Local variable "p_mi" not used
MainFormUnit.pas(10,3) Note: Local variable "p_md" not used
Linking MainFormUnit
/usr/bin/ld: warning: link.res contains output sections; did you forget -T?
76 lines compiled, 0.5 sec
3 note(s) issued
sergey@linux-68dp:~/VLC/1> ./MainFormUnit
[0x80d60bc] main libvlc debug: VLC media player - 1.1.2 The Luggage
[0x80d60bc] main libvlc debug: Copyright © 1996-2010 the VideoLAN team
[0x80d60bc] main libvlc debug: revision exported
[0x80d60bc] main libvlc debug: configured with ./configure  '--host=i686-pc-linux-gnu' '--build=i686-pc-linux-gnu' '--program-prefix=' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--sysconfdir=/etc' '--datadir=/usr/share' '--includedir=/usr/include' '--libdir=/usr/lib' '--libexecdir=/usr/lib' '--localstatedir=/var' '--sharedstatedir=/usr/com' '--mandir=/usr/share/man' '--infodir=/usr/share/info' '--disable-dependency-tracking' '--enable-a52' '--enable-aa' '--enable-alsa' '--enable-asademux' '--enable-dca' '--enable-dvb' '--enable-dvbpsi' '--enable-dvdnav' '--enable-dvdread' '--enable-faad' '--enable-fast-install' '--enable-fb' '--enable-flac' '--enable-freetype' '--enable-fribidi' '--enable-glx' '--enable-gnomevfs' '--enable-gnutls' '--enable-httpd' '--enable-jack' '--enable-kate' '--enable-libass' '--enable-libcddb' '--enable-libmpeg2' '--enable-libproxy' '--enable-lirc' '--enable-live555' '--enable-lua' '--enable-mad' '--enable-mkv' '--enable-mod' '--enable-mozilla' '--enable-ncurses' '--enable-ogg' '--enable-optimizations' '--enable-oss' '--enable-pulse' '--enable-pvr' '--enable-real' '--enable-realrtsp' '--enable-smb' '--enable-sout' '--enable-speex' '--enable-taglib' '--enable-theora' '--enable-v4l' '--enable-v4l2' '--enable-vcd' '--enable-vcdx' '--enable-visual' '--enable-vorbis' '--enable-waveout' '--enable-xvideo' '--with-live555-tree=/usr/lib/live' 'build_alias=i686-pc-linux-gnu' 'host_alias=i686-pc-linux-gnu' 'CFLAGS=-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g' 'CXXFLAGS=-fomit-frame-pointer -fmessage-length=0 -O2 -Wall -D_FORTIFY_SOURCE=2 -fstack-protector -funwind-tables -fasynchronous-unwind-tables -g'
[0x80d60bc] main libvlc debug: translation test: code is "C"
[0x80d60bc] main libvlc debug: checking plugin modules
[0x80d60bc] main libvlc debug: loading plugins cache file /usr/lib/vlc/plugins/plugins-04041e-3e8.dat
[0x80d60bc] main libvlc debug: recursively browsing `/usr/lib/vlc/plugins'
[0x80d60bc] main libvlc debug: saving plugins cache /usr/lib/vlc/plugins/plugins-04041e-3e8.dat
[0x80d60bc] main libvlc debug: module bank initialized (399 modules)
[0x80d60bc] main libvlc debug: CPU has capabilities MMX MMXEXT SSE SSE2 SSE3 SSSE3 FPU
[0x80d60bc] main libvlc debug: looking for memcpy module: 3 candidates
[0x80d60bc] main libvlc debug: using memcpy module "memcpymmxext"
[0x82b379c] main input debug: Creating an input for 'Media Library'
[0x82b379c] main input debug: Input is a meta file: disabling unneeded options
[0x82b379c] main input debug: using timeshift granularity of 50 MiB
[0x82b379c] main input debug: using timeshift path '/tmp'
[0x82b379c] main input debug: `file/xspf-open:///home/sergey/.local/share/vlc/ml.xspf' gives access `file' demux `xspf-open' path `/home/sergey/.local/share/vlc/ml.xspf'
[0x82b379c] main input debug: creating demux: access='file' demux='xspf-open' path='/home/sergey/.local/share/vlc/ml.xspf'
[0x82b1b84] main demux debug: looking for access_demux module: 2 candidates
[0x82b1b84] main demux debug: no access_demux module matching "file" could be loaded
[0x82b1b84] main demux debug: TIMER module_need() : 1.134 ms - Total 1.134 ms / 1 intvls (Avg 1.134 ms)
[0x82b379c] main input debug: creating access 'file' path='/home/sergey/.local/share/vlc/ml.xspf'
[0x82b1b64] main access debug: looking for access module: 2 candidates
[0x82b1b64] filesystem access debug: opening file `/home/sergey/.local/share/vlc/ml.xspf'
[0x82b1b64] main access debug: using access module "filesystem"
[0x82b1b64] main access debug: TIMER module_need() : 0.346 ms - Total 0.346 ms / 1 intvls (Avg 0.346 ms)
[0x82b1fd4] main stream debug: Using AStream*Stream
[0x82b1fd4] main stream debug: pre buffering
[0x82b1fd4] main stream debug: received first data after 0 ms
[0x82b1fd4] main stream debug: pre-buffering done 314 bytes in 0s - 6524 KiB/s
[0x82b221c] main stream debug: looking for stream_filter module: 5 candidates
[0x82b221c] main stream debug: no stream_filter module matching "any" could be loaded
[0x82b221c] main stream debug: TIMER module_need() : 0.342 ms - Total 0.342 ms / 1 intvls (Avg 0.342 ms)
[0x82b221c] main stream debug: looking for stream_filter module: 1 candidate
[0x82b221c] main stream debug: using stream_filter module "stream_filter_record"
[0x82b221c] main stream debug: TIMER module_need() : 0.200 ms - Total 0.200 ms / 1 intvls (Avg 0.200 ms)
[0x82b379c] main input debug: creating demux: access='file' demux='xspf-open' path='/home/sergey/.local/share/vlc/ml.xspf'
[0x82b23ac] main demux debug: looking for demux module: 1 candidate
[0x82b23ac] playlist demux debug: using XSPF playlist reader
[0x82b23ac] main demux debug: using demux module "playlist"
[0x82b23ac] main demux debug: TIMER module_need() : 0.228 ms - Total 0.228 ms / 1 intvls (Avg 0.228 ms)
[0x82b25bc] main demux meta debug: looking for meta reader module: 2 candidates
[0x82b25bc] lua demux meta debug: Trying Lua scripts in /home/sergey/.local/share/vlc/lua/meta/reader
[0x82b25bc] lua demux meta debug: Trying Lua scripts in /usr/lib/vlc/lua/meta/reader
[0x82b25bc] lua demux meta debug: Trying Lua playlist script /usr/lib/vlc/lua/meta/reader/filename.luac
An unhandled exception occurred at $B76D1AB9 :
EAccessViolation : Access violation
  $B76D1AB9

sergey@linux-68dp:~/VLC/1> ldd -v MainFormUnit
        linux-gate.so.1 =>  (0xffffe000)
        libvlc.so.5 => /usr/lib/libvlc.so.5 (0xb77e0000)
        libpthread.so.0 => /lib/libpthread.so.0 (0xb77c5000)
        libvlccore.so.4 => /usr/lib/libvlccore.so.4 (0xb76c5000)
        libc.so.6 => /lib/libc.so.6 (0xb755a000)
        /lib/ld-linux.so.2 (0xb781d000)
        libdbus-1.so.3 => /lib/libdbus-1.so.3 (0xb7513000)
        librt.so.1 => /lib/librt.so.1 (0xb7509000)
        libdl.so.2 => /lib/libdl.so.2 (0xb7504000)
        libm.so.6 => /lib/libm.so.6 (0xb74da000)

        Version information:
        /usr/lib/libvlc.so.5:
                libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.3.3) => /lib/libpthread.so.0
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
        /lib/libpthread.so.0:
                ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
        /usr/lib/libvlccore.so.4:
                librt.so.1 (GLIBC_2.2) => /lib/librt.so.1
                libdl.so.2 (GLIBC_2.1) => /lib/libdl.so.2
                libdl.so.2 (GLIBC_2.0) => /lib/libdl.so.2
                libm.so.6 (GLIBC_2.0) => /lib/libm.so.6
                libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.3.3) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.3.2) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
                libc.so.6 (GLIBC_2.9) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.10) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.8) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.7) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
        /lib/libc.so.6:
                ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_2.3) => /lib/ld-linux.so.2
                ld-linux.so.2 (GLIBC_2.1) => /lib/ld-linux.so.2
        /lib/libdbus-1.so.3:
                librt.so.1 (GLIBC_2.2) => /lib/librt.so.1
                libpthread.so.0 (GLIBC_2.3.3) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.3.2) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.2.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.3.4) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
        /lib/librt.so.1:
                ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
                libpthread.so.0 (GLIBC_2.1) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.2) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_PRIVATE) => /lib/libpthread.so.0
                libpthread.so.0 (GLIBC_2.0) => /lib/libpthread.so.0
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.3.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.2) => /lib/libc.so.6
                libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
        /lib/libdl.so.2:
                ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.1) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
                libc.so.6 (GLIBC_PRIVATE) => /lib/libc.so.6
        /lib/libm.so.6:
                ld-linux.so.2 (GLIBC_PRIVATE) => /lib/ld-linux.so.2
                libc.so.6 (GLIBC_2.1.3) => /lib/libc.so.6
                libc.so.6 (GLIBC_2.0) => /lib/libc.so.6
sergey@linux-68dp:~/VLC/1>

Библиотека и программа в архиве.
ЗЫ там интерфейс к новому API. Ближайший аналог PasLibVlc - но только для Win. Эти только для unix.

Добавлено спустя 18 часов 18 минут 14 секунд:
Неужели переходить на С ? :|
Подскажите что нибудь.
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось NXP 15.08.2010 01:16:25, всего редактировалось 1 раз.
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение NXP » 08.08.2010 00:29:26

Люди, ау!
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение coyot.rush » 08.08.2010 15:53:09

Код: Выделить всё
main libvlc debug: VLC media player - version 1.0.2 Goldeneye - (c) 1996-2009 the VideoLAN team
[0x8bec088] main libvlc debug: libvlc was configured with ./configure  '--build=i486-linux-gnu' '--disable-maintainer-mode' '--enable-release' '--prefix=/usr' '--config-cache' '--enable-fast-install' '--with-binary-version=1ubuntu2.1' '--disable-update-check' '--disable-fb' '--enable-ggi' '--enable-sdl' '--enable-mad' '--enable-jack' '--enable-pulse' '--enable-lirc' '--enable-a52' '--enable-aa' '--enable-dvbpsi' '--enable-mozilla' '--with-mozilla-pkg=xulrunner-plugin' '--enable-dvb' '--enable-ogg' '--enable-vorbis' '--enable-shout' '--enable-qt4' '--enable-flac' '--enable-skins2' '--enable-freetype' '--enable-mkv' '--enable-speex' '--enable-caca' '--enable-live555' '--enable-libmpeg2' '--enable-fribidi' '--enable-mod' '--enable-theora' '--enable-dvdnav' '--enable-gnutls' '--enable-ncurses' '--enable-smb' '--disable-gnomevfs' '--enable-bonjour' '--enable-mpc' '--enable-vcd' '--enable-vcdx' '--enable-notify' '--enable-twolame' '--enable-faad' '--disable-zvbi' '--enable-telx' '--enable-x264' '--disable-atmo' '--enable-taglib' '--enable-libass' '--enable-dca' '--enable-realrtsp' '--disable-dv' '--disable-fluidsynth' '--disable-kate' '--disable-mtp' '--enable-alsa' '--enable-v4l' '--enable-v4l2' '--enable-pvr' '--enable-svgalib' 'build_alias=i486-linux-gnu' 'CFLAGS=-g -O2' 'LDFLAGS=-Wl,--as-needed' 'CPPFLAGS=' 'CXXFLAGS=-g -O2'
[0x8bec088] main libvlc debug: translation test: code is "C"
[0x8bec088] main libvlc debug: checking plugin modules
[0x8bec088] main libvlc debug: loading plugins cache file /home/coyot/.cache/vlc/plugins-04041e.dat
[0x8bec088] main libvlc warning: This doesn't look like a valid plugins cache (language changed)
[0x8bec088] main libvlc debug: recursively browsing `/usr/lib/vlc'
[0x8bec088] main libvlc debug: module bank initialized (379 modules)
[0x8bec088] main libvlc debug: opening config file (/home/coyot/.config/vlc/vlcrc)
[0x8bec088] main libvlc debug: CPU has capabilities 486 586 MMX MMXEXT FPU
[0x8bec088] main libvlc debug: looking for memcpy module: 3 candidates
[0x8bec088] main libvlc debug: using memcpy module "memcpymmxext"
[0x8d046b8] main input debug: Creating an input for 'Media Library'
[0x8d046b8] main input debug: Input is a meta file: disabling unneeded options
[0x8d046b8] main input debug: using timeshift granularity of 50 MBytes
[0x8d046b8] main input debug: using timeshift path '/tmp'
[0x8d046b8] main input debug: `file/xspf-open:///home/coyot/.local/share/vlc/ml.xspf' gives access `file' demux `xspf-open' path `/home/coyot/.local/share/vlc/ml.xspf'
[0x8d046b8] main input debug: creating demux: access='file' demux='xspf-open' path='/home/coyot/.local/share/vlc/ml.xspf'
[0x8d05540] main demux debug: looking for access_demux module: 1 candidate
[0x8d05540] main demux warning: no access_demux module matching "file" could be loaded
[0x8d046b8] main input debug: creating access 'file' path='/home/coyot/.local/share/vlc/ml.xspf'
[0x8d05720] main access debug: looking for access module: 3 candidates
[0x8d05720] access_file access debug: opening file `/home/coyot/.local/share/vlc/ml.xspf'
[0x8d05720] main access debug: using access module "access_file"
[0x8d08428] main stream debug: Using AStream*Stream
[0x8d08428] main stream debug: pre buffering
[0x8d08428] main stream debug: received first data after 0 ms
[0x8d08428] main stream debug: pre-buffering done 314 bytes in 0s - 8761 kbytes/s
[0x8c08890] main stream debug: looking for stream_filter module: 4 candidates
[0x8d05648] main stream debug: looking for stream_filter module: 1 candidate
[0x8d05648] main stream debug: using stream_filter module "stream_filter_record"
[0x8d046b8] main input debug: creating demux: access='file' demux='xspf-open' path='/home/coyot/.local/share/vlc/ml.xspf'
[0x8c08f00] main demux debug: looking for demux module: 1 candidate
[0x8c08f00] playlist demux debug: using XSPF playlist reader
[0x8c08f00] main demux debug: using demux module "playlist"
[0x8d046b8] main input debug: `file/xspf-open:///home/coyot/.local/share/vlc/ml.xspf' successfully opened
[0x8d06070] main xml debug: looking for xml module: 2 candidates
[0x8d06070] main xml debug: using xml module "xml"
[0x8c08f00] playlist demux debug: parsed 0 tracks successfully
[0x8d06070] main xml debug: removing module "xml"
[0x8d046b8] main input debug: EOF reached
[0x8c08f00] main demux debug: removing module "playlist"
[0x8d05648] main stream debug: removing module "stream_filter_record"
[0x8d05720] main access debug: removing module "access_file"
[0x8d02648] main playlist debug: rebuilding array of current - root Playlist
[0x8d02648] main playlist debug: rebuild done - 0 items, index -1
[0x8d02648] main playlist debug: Activated
[0x8d04880] main interface debug: looking for interface module: 1 candidate
[0x8d04880] main interface debug: using interface module "hotkeys"
[0x8d04880] main interface debug: thread started
[0x8d04880] main interface debug: thread (interface) created at priority 0 (interface/interface.c:151)
[0x8d056f0] main interface debug: looking for interface module: 1 candidate
[0x8d056f0] main interface debug: using interface module "inhibit"
[0x8d056f0] main interface debug: thread started
[0x8d056f0] main interface debug: thread (interface) created at priority 0 (interface/interface.c:151)
[0x8d04e70] main interface debug: looking for interface module: 1 candidate
[0x8d04e70] main interface debug: using interface module "screensaver"
[0x8d04e70] main interface debug: thread (interface) created at priority 0 (interface/interface.c:151)
./MainFormUnit: symbol lookup error: ./MainFormUnit: undefined symbol: libvlc_media_new_path

У меня функции libvlc_media_new_path нету

Возможно ошибка сдесь
Код: Выделить всё
args[0] := PChar('-vvvvvvvvvvvvvvvvvvvv');
     args[1] := NIL;
     inst := libvlc_new(1, args);


Очнь напоминает передачу всех эти параметров в exec. т.е vlc запускается как фронтэнтд
я делал так
Код: Выделить всё
parsingparams(const params: utf8string): PPchar;
var
  ArgArray:  array of PChar;
  n, np, nx: integer;
  l, i:      integer;
const
  cr = #13;
begin

  if params <> '' then
  begin
    n  := 0;
    np := 1;
    nx := 1;
    l  := length(params);
    for i := 1 to l do
    begin
      if params[i] = cr then
        n := n + 1;
    end;
    SetLength(argArray, n + 2);
    Getmem(Result,(n+2)*SizeOf(Pchar));
    if params[l] = cr then
      n := n - 1;

    argArray[0] := '';
    n := 0;
    for i := 1 to l do
    begin
      if params[i] = cr then
      begin
        nx := i;
        n  := n + 1;
        argArray[n] := PChar(copy(params, np, nx - np));
        np := nx + 1;
      end;
    end;
    argArray[n + 1] := nil;

    Result := @argArray[0];
  end
  else
  begin
    SetLength(argArray, 2);
    argArray[0] := '';
    argArray[1] := nil;
    Getmem(Result,2*SizeOf(Pchar));
    Result      := @argArray[0];
  end;
end;
{$endif}
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: libvlc 1.x.x usage

Сообщение NXP » 08.08.2010 16:24:37

coyot.rush писал(а):У меня функции libvlc_media_new_path нету

Можно закрыть. (в libvlc5.pas в 3х местах).
Сейчас важно победить libvlc_new();
Я так понимаю, у тебя она прошла без всяких доделок?

coyot.rush писал(а):Возможно ошибка сдесь
args[0] := PChar('-vvvvvvvvvvvvvvvvvvvv');
args[1] := NIL;
inst := libvlc_new(1, args);

Я пробовал и так:
Код: Выделить всё
inst := libvlc_new(0, NIL);

тут ничего не передается. Но не работает, так же как и в первом случае.
Здесь также http://www.freepascal.ru/forum/viewtopi ... =15#p44906
Разница в том, что на С работает. На FPC грохается.
У меня скверная мысль, что тут виноват компилятор или RTL но не код.
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение coyot.rush » 08.08.2010 19:49:47

Разница в том, что на С работает. На FPC грохается.
У меня скверная мысль, что тут виноват компилятор или RTL но не код.

Не может быть того, же есть тот же MSE. использует очень много вызовов из библиотек написанных именно на C (X-сервер) и работает без проблем

Можно закрыть. (в libvlc5.pas в 3х местах).

У меня совсем не собирается требует devel пакеты :?: да и библиотека vlc у меня странная(старая???).

Могу предложить вариант с ffplay (входит в ffmpeg) запускать его через forkpty, далее libc.__write() посылаем коды клавиш и рулим плеером. Можно еще и позицией окна управлять, но это чуть сложнее. В принципе получиться тоже самое

PS
Сейчас важно победить libvlc_new();
Я так понимаю, у тебя она прошла без всяких доделок?

Запустил твой бинарник.

PSS
VСL,по моему , можно управлять по сети

Добавлено спустя 11 минут 32 секунды:
советовали подгрузить vlccore перед загрузкой libvlc

windows не linux и либы грузит немного по другому. :!: :!: :!:
Повторяю еще раз libvlc.so,имхо, всего лишь библиотека для запуска ГУИ VLC.
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: libvlc 1.x.x usage

Сообщение NXP » 08.08.2010 20:28:03

Ладно, вот С код (он работает):
Код: Выделить всё
#include <stdio.h>
#include <stdlib.h>
#include <vlc/vlc.h>

int main(int argc, char* argv[])
{
  libvlc_instance_t * inst;
  libvlc_media_player_t *mp;
  libvlc_media_t *m;
  /* Load the VLC engine */
  inst = libvlc_new (0, NULL);
  /* Create a new item */
  m = libvlc_media_new_path (inst, "mms://85.21.245.129/ts_tv");
  /* Create a media player playing environement */
  mp = libvlc_media_player_new_from_media (m);
  /* No need to keep the media now */
  libvlc_media_release (m);
  /* play the media_player */
  libvlc_media_player_play (mp);
  sleep (10); /* Let it play a bit */
  /* Stop playing */
  libvlc_media_player_stop (mp);
  /* Free the media_player */
  libvlc_media_player_release (mp);
  libvlc_release (inst);
  return 0;
}

Вот код на FPC (он грохается):

Код: Выделить всё
program VLCexample;
uses
  sysutils, libvlc5;
var
  inst: libvlc_instance_t_ptr;
  mp:   libvlc_media_player_t_ptr;
  m:    libvlc_media_t_ptr;
begin
  (* Load the VLC engine *)
  libvlc_new(0, nil);
  (* Create a new item *)
  m := libvlc_media_new_path (inst, 'mms://85.21.245.129/ts_tv');
  (* Create a media player playing environement *)
  mp := libvlc_media_player_new_from_media (m);
  (* No need to keep the media now *)
  libvlc_media_release (m);
  (* play the media_player *)
  libvlc_media_player_play (mp);
  sleep(10);
  (* Stop playing *)
  libvlc_media_player_stop (mp);
  (* Free the media_player *)
  libvlc_media_player_release (mp);
  libvlc_release (inst);
end.

Найди 10 отличий :D
Система одна и та же openSUSE 11.3 i686 VLC 1.1.2
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение coyot.rush » 08.08.2010 20:37:23

Можно и больше :D
Код: Выделить всё
function libvlc_new(argc: Integer; args: PPAnsiChar): libvlc_instance_t_ptr; cdecl; external;
procedure libvlc_release(p_libvlc_instance: libvlc_instance_t_ptr); cdecl; external;
procedure libvlc_retain(p_libvlc_instance: libvlc_instance_t_ptr); cdecl; external;
function libvlc_add_intf(p_libvlc_instance: libvlc_instance_t_ptr; name: PAnsiChar): Integer; cdecl; external;
procedure libvlc_wait(p_libvlc_instance: libvlc_instance_t_ptr); cdecl; external;
procedure libvlc_set_user_agent(p_libvlc_instance: libvlc_instance_t_ptr;name: PAnsiChar;http: PAnsiChar); cdecl; external;
function libvlc_get_version(): PAnsiChar; cdecl; external;
function libvlc_get_compiler(): PAnsiChar; cdecl; external;
function libvlc_get_changeset(): PAnsiChar; cdecl; external;
function libvlc_event_attach(p_event_manager: libvlc_event_manager_t_ptr; i_event_type: libvlc_event_type_t; f_callback: libvlc_event_callback_t; user_data:Pointer): Integer; cdecl; external;
procedure libvlc_event_detach(p_event_manager: libvlc_event_manager_t_ptr; i_event_type:    libvlc_event_type_t; f_callback: libvlc_event_callback_t; p_user_data: Pointer); cdecl; external;


и libc

Код: Выделить всё
function ttyname(__fd:longint):Pchar;cdecl;external clib name 'ttyname';
function ttyname_r(__fd:longint; __buf:Pchar; __buflen:size_t):longint;cdecl;external clib name 'ttyname_r';
function isatty(__fd:longint):longint;cdecl;external clib name 'isatty';
function link(__from:Pchar; __to:Pchar):longint;cdecl;external clib name 'link';
function symlink(__from:Pchar; __to:Pchar):longint;cdecl;external clib name 'symlink';
function readlink(__path:Pchar; __buf:Pchar; __len:size_t):longint;cdecl;external clib name 'readlink';
function unlink(__name:Pchar):longint;cdecl;external clib name 'unlink';
function __rmdir(__path:Pchar):longint;cdecl;external clib name 'rmdir';
function tcgetpgrp(__fd:longint):__pid_t;cdecl;external clib name 'tcgetpgrp';
function tcsetpgrp(__fd:longint; __pgrp_id:__pid_t):longint;cdecl;external clib name 'tcsetpgrp';


возможно дело в том что не указано имя вызываемой функций,имхо
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: libvlc 1.x.x usage

Сообщение NXP » 08.08.2010 20:51:14

А подробнее можно?
Я думаю линковщик не совсем дурак. Скажет если чего не так.
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение coyot.rush » 08.08.2010 20:55:47

С
Код: Выделить всё
inst = libvlc_new (0, NULL);
  /* Create a new item */
  m = libvlc_media_new_path (inst, "mms://85.21.245.129/ts_tv");

и
FPC
libvlc_new(0, nil);
(* Create a new item *)
m := libvlc_media_new_path (inst, 'mms://85.21.245.129/ts_tv');

в таком случае (FPC) вы передаете указатель, указывающий неизвестно куда. Естественно будет ошибка.

может :!:
Код: Выделить всё
inst:=libvlc_new(0, nil);
  (* Create a new item *)
  m := libvlc_media_new_path (inst, 'mms://85.21.245.129/ts_tv');


Добавлено спустя 2 минуты 13 секунд:
А подробнее можно?
Я думаю линковщик не совсем дурак. Скажет если чего не так.

Думаю,да, по крайне мере под linux.
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: libvlc 1.x.x usage

Сообщение NXP » 08.08.2010 21:03:04

Надо решать проблемы, по мере их поступления. Сокращаем код до такого:
Код: Выделить всё
program VLCexample;
uses libvlc5;
begin
  libvlc_new(0, nil);
end.

и получаем тот же самый грох. Какие мысли?
Фактор линковщика исключаем с помощью этого модуля http://narod.ru/disk/23527927000/libvlc5.pas.html
Она инициализируется примерно как OpenGL
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение coyot.rush » 08.08.2010 21:09:05

т.е. на с работает на fpc нет

FPC
Код: Выделить всё
program VLCexample;
uses libvlc5;
begin
  libvlc_new(0, nil);
end.

C
Код: Выделить всё
libvlc_new (0, NULL);

libvlc_new-функция вызывает GUI VLC???

Добавлено спустя 2 минуты 39 секунд:
Загрузить бинарники C и FPC в edb http://www.codef00.com/projects.php
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Re: libvlc 1.x.x usage

Сообщение NXP » 08.08.2010 21:16:45

coyot.rush писал(а):libvlc_new-функция вызывает GUI VLC???

http://www.videolan.org/developers/vlc/ ... ba6e2f7764
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage

Сообщение coyot.rush » 08.08.2010 21:32:54

пожалуйста напишите пример с ручной загрузкой libvlc.so

Добавлено спустя 3 минуты 15 секунд:
libvlc_new-инициализация ядра. Но почему-то очень похожа на exec :?:
Аватара пользователя
coyot.rush
постоялец
 
Сообщения: 309
Зарегистрирован: 14.08.2009 08:59:48

Всем спасибо. Все свободны.

Сообщение NXP » 15.08.2010 01:16:01

Перехожу на Python и C, иначе, мне от нераздельной любви к FPC скоро нечего будет жрать.
С детскими болезнями надо вовремя завязывать.
Здесь http://forum.videolan.org/viewtopic.php?f=32&t=80796 тоже что-то не помогли.
Аватара пользователя
NXP
постоялец
 
Сообщения: 187
Зарегистрирован: 02.01.2008 16:11:56
Откуда: Воронеж

Re: libvlc 1.x.x usage [не решено]

Сообщение bw » 16.08.2010 16:12:27

Integer и имеет размер 16 бит в FreePascal, крайне не разумно использовать его как альтернативу int (32 бита) в C. Обратите своё внимание на Longint.
Ну и со структурами могут возникнуть проблемы.
Вы уж извините, хотя тема мне интересна, но мне сейчас просто не до этого, и за вас я бесплатно (в моей текущей ситуации) думать не буду.

p.s. Ещё один совет. Я не знаю откуда вы выкопали этот libvlc5.pas, но попробуй написать свой, начните хотя бы с описания libvlc_new.

p.p.s. Очень не мало сишного кода мне пришлось линковать с FreePascal, проблем с линковкой нет, только с трактовкой типов, структур и способов вызова функций для достижения нативной совместимости.

p.p.p.s. Очень странная ситуация, даже сл. код отказывается работать:
Код: Выделить всё
{$linklib vlc}

function libvlc_new(argc: Longint; args: Pointer): Pointer; cdecl; external;

begin
  WriteLn('*BEGIN*');
  libvlc_new(0, nil);
  WriteLn('*END*');
end.


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

След.

Вернуться в Разное

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

Рейтинг@Mail.ru