Kirjoittaja Aihe: VeeJay kääntäminen Debian  (Luettu 6780 kertaa)

Aatos Rapula

  • Käyttäjä
  • Viestejä: 186
    • Profiili
VeeJay kääntäminen Debian
« : 18.05.15 - klo:15.28 »
Olen koittanut kääntää Veejaytä Debianiin.
http://veejayhq.net/

Kääntäminen pysähtyy yuvconv osaan. Osaisikohan joku auttaa?

./configure komennon tulosteen loppuosa näyttää tältä:
Koodia: [Valitse]
configure:  Veejay 1.5.50 build configuration :
configure:
configure:  Compiler flags: -march=native  -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused  -fno-stack-protector
configure:    FX library flags: -march=native -O3 -ftree-vectorize -msse -mfpmath=sse -msse2 -mfpmath=sse
configure:
configure:  Architecture: i686
configure:
configure:    x86 
configure:     MMX     enabled     : yes
configure:     MMX2    enabled     : yes
configure:     SSE     enabled     : yes
configure:     SSE2    enabled     : yes
configure:     3DNOW   enabled     : no
configure:     CMOV    enabled     : yes
configure:     AVX     enabled     :
configure:
configure:    Platform: Linux
configure:
configure:  Required dependencies:
configure:   - POSIX Threads (pthread)       : true
configure:   - FFmpeg AVFormat               : true
configure:   - FFmpeg AVCodec                : true
configure:   - FFmpeg Swscaler               : true
configure:   - FFmpeg avutil      : true
configure:   - SDL support                   : true
configure:   - SDL on-screen-logging         : false
configure:   - Freetype support              : true
configure:   - XML c library for Gnome       : true
configure:   - JPEG support                  : true
configure:   - GDK Pixbuf support            : true
configure:  Optional dependencies
configure:   - DirectFB support              : true
configure:   - libDV (digital video) support : true
configure:   - QuickTime support             : true
configure:   - Jack Audio Connection Kit     : true
configure:   - Liblo OSC client              : true
configure:   - V4L2 (default)                : true
configure:   - V4L1 (obsolete)               : false
configure:   - libunwind                     : true
configure:   - QR code support (libqrencode) : false

make-komento pysähtyy näille paikkeille:
Koodia: [Valitse]
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -I../libyuv -I../liblzo -I../vjmem -I../vjmsg -march=native -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused -fno-stack-protector -MT vj-client.lo -MD -MP -MF .deps/vj-client.Tpo -c vj-client.c -o vj-client.o >/dev/null 2>&1
mv -f .deps/vj-client.Tpo .deps/vj-client.Plo
/bin/bash ../libtool  --tag=CC   --mode=link gcc  -march=native  -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused  -fno-stack-protector   -o libvjnet.la  packet.lo mcastsender.lo mcastreceiver.lo cmd.lo vj-server.lo vj-client.lo  -ldl
libtool: link: ar cru .libs/libvjnet.a .libs/packet.o .libs/mcastsender.o .libs/mcastreceiver.o .libs/cmd.o .libs/vj-server.o .libs/vj-client.o
libtool: link: ranlib .libs/libvjnet.a
libtool: link: ( cd ".libs" && rm -f "libvjnet.la" && ln -s "../libvjnet.la" "libvjnet.la" )
make[2]: Leaving directory '/home/lasse/build/veejay2/veejay-git/veejay-current/veejay-server/libvjnet'
Making all in libsubsample
make[2]: Entering directory '/home/lasse/build/veejay2/veejay-git/veejay-current/veejay-server/libsubsample'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -I../vjmem -I../vjmsg -I../libyuv    -march=native   -MT subsample.lo -MD -MP -MF .deps/subsample.Tpo -c -o subsample.lo subsample.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -I../vjmem -I../vjmsg -I../libyuv -march=native -MT subsample.lo -MD -MP -MF .deps/subsample.Tpo -c subsample.c  -fPIC -DPIC -o .libs/subsample.o
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -I../vjmem -I../vjmsg -I../libyuv -march=native -MT subsample.lo -MD -MP -MF .deps/subsample.Tpo -c subsample.c -o subsample.o >/dev/null 2>&1
mv -f .deps/subsample.Tpo .deps/subsample.Plo
/bin/bash ../libtool  --tag=CC   --mode=link gcc -march=native     -o libsubsample.la  subsample.lo  -ldl
libtool: link: ar cru .libs/libsubsample.a .libs/subsample.o
libtool: link: ranlib .libs/libsubsample.a
libtool: link: ( cd ".libs" && rm -f "libsubsample.la" && ln -s "../libsubsample.la" "libsubsample.la" )
make[2]: Leaving directory '/home/lasse/build/veejay2/veejay-git/veejay-current/veejay-server/libsubsample'
Making all in libyuv
make[2]: Entering directory '/home/lasse/build/veejay2/veejay-git/veejay-current/veejay-server/libyuv'
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -I../aclib  -I../vjmem -I../vjmsg -I../libpostproc -I    -march=native -O3 -ftree-vectorize -msse -mfpmath=sse -msse2 -mfpmath=sse  -MT yuvconv.lo -MD -MP -MF .deps/yuvconv.Tpo -c -o yuvconv.lo yuvconv.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/include -I../aclib -I../vjmem -I../vjmsg -I../libpostproc -I -march=native -O3 -ftree-vectorize -msse -mfpmath=sse -msse2 -mfpmath=sse -MT yuvconv.lo -MD -MP -MF .deps/yuvconv.Tpo -c yuvconv.c  -fPIC -DPIC -o .libs/yuvconv.o
yuvconv.c:86:3: error: 'PIX_FMT_0BGR' undeclared here (not in a function)
 { PIX_FMT_0BGR,  "PIX_FMT_0BGR"},
   ^
yuvconv.c:87:3: error: 'PIX_FMT_0RGB' undeclared here (not in a function)
 { PIX_FMT_0RGB,  "PIX_FMT_0RBB"},
   ^
yuvconv.c:88:3: error: 'PIX_FMT_BGR0' undeclared here (not in a function)
 { PIX_FMT_BGR0,  "PIX_FMT_BGR0"},
   ^
yuvconv.c:89:3: error: 'PIX_FMT_RGB0' undeclared here (not in a function)
 { PIX_FMT_RGB0,  "PIX_FMT_RGB0"},
   ^
yuvconv.c: In function 'yuv_init_lib':
yuvconv.c:66:30: error: array subscript is not an integer
 #define put(a,b) ffmpeg_aclib[a] = b
                              ^
yuvconv.c:347:2: note: in expansion of macro 'put'
  put( PIX_FMT_0BGR, IMG_ABGR32 );
  ^
yuvconv.c:66:30: error: array subscript is not an integer
 #define put(a,b) ffmpeg_aclib[a] = b
                              ^
yuvconv.c:348:2: note: in expansion of macro 'put'
  put( PIX_FMT_BGR0, IMG_BGRA32 );
  ^
yuvconv.c:66:30: error: array subscript is not an integer
 #define put(a,b) ffmpeg_aclib[a] = b
                              ^
yuvconv.c:349:2: note: in expansion of macro 'put'
  put( PIX_FMT_RGB0, IMG_RGBA32 );
  ^
yuvconv.c:66:30: error: array subscript is not an integer
 #define put(a,b) ffmpeg_aclib[a] = b
                              ^
yuvconv.c:350:2: note: in expansion of macro 'put'
  put( PIX_FMT_0RGB, IMG_ARGB32 );
  ^
yuvconv.c: In function 'yuv_convert_and_scale_from_rgb':
yuvconv.c:1307:18: warning: comparison between pointer and integer
      src->format == PIX_FMT_BGR0 || src->format == PIX_FMT_0BGR || src->format == PIX_FMT_RGB0 || src->format == PIX_FMT_0RGB )
                  ^
yuvconv.c:1307:49: warning: comparison between pointer and integer
      src->format == PIX_FMT_BGR0 || src->format == PIX_FMT_0BGR || src->format == PIX_FMT_RGB0 || src->format == PIX_FMT_0RGB )
                                                 ^
yuvconv.c:1307:80: warning: comparison between pointer and integer
      src->format == PIX_FMT_BGR0 || src->format == PIX_FMT_0BGR || src->format == PIX_FMT_RGB0 || src->format == PIX_FMT_0RGB )
                                                                                ^
yuvconv.c:1307:111: warning: comparison between pointer and integer
      src->format == PIX_FMT_BGR0 || src->format == PIX_FMT_0BGR || src->format == PIX_FMT_RGB0 || src->format == PIX_FMT_0RGB )
                                                                                                               ^
yuvconv.c: In function 'yuv_convert_and_scale_rgb':
yuvconv.c:1320:79: warning: comparison between pointer and integer
   dst->format == PIX_FMT_RGB32 || dst->format == PIX_FMT_BGR32 || dst->format == PIX_FMT_BGR0 || dst->format == PIX_FMT_0BGR ||
                                                                               ^
yuvconv.c:1320:110: warning: comparison between pointer and integer
   dst->format == PIX_FMT_RGB32 || dst->format == PIX_FMT_BGR32 || dst->format == PIX_FMT_BGR0 || dst->format == PIX_FMT_0BGR ||
                                                                                                              ^
yuvconv.c:1321:15: warning: comparison between pointer and integer
   dst->format == PIX_FMT_RGB0 || dst->format == PIX_FMT_0RGB  )
               ^
yuvconv.c:1321:46: warning: comparison between pointer and integer
   dst->format == PIX_FMT_RGB0 || dst->format == PIX_FMT_0RGB  )
                                              ^
yuvconv.c: In function 'yuv_deinterlace':
yuvconv.c:1393:2: warning: 'avpicture_deinterlace' is deprecated (declared at /usr/include/libavcodec/avcodec.h:4086) [-Wdeprecated-declarations]
  avpicture_deinterlace( &p,&q, out_pix_fmt, width, height );
  ^
yuvconv.c: In function 'rgb_deinterlace':
yuvconv.c:1418:2: warning: 'avpicture_deinterlace' is deprecated (declared at /usr/include/libavcodec/avcodec.h:4086) [-Wdeprecated-declarations]
  avpicture_deinterlace( &p,&q, out_pix_fmt, width, height );
  ^
Makefile:481: recipe for target 'yuvconv.lo' failed
make[2]: *** [yuvconv.lo] Error 1
make[2]: Leaving directory '/home/lasse/build/veejay2/veejay-git/veejay-current/veejay-server/libyuv'
Makefile:588: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/lasse/build/veejay2/veejay-git/veejay-current/veejay-server'
Makefile:496: recipe for target 'all' failed
make: *** [all] Error 2

Kiitos jo etukäteen!
Debian - Jessie - xfce

nm

  • Käyttäjä
  • Viestejä: 16247
    • Profiili
Vs: VeeJay kääntäminen Debian
« Vastaus #1 : 18.05.15 - klo:16.46 »
Uusin Veejayn kehitysversio vaatii nähtävästi FFmpegin libav*-kirjastot libav-projektin vastaavien sijaan. FFmpegin kanssa ongelmana on se, että järjestelmän libav:n korvaaminen rikkoo useimmat ohjelmat. Sen voi kuitenkin asentaa libav:n rinnalle esim. /usr/local-hakemistoon, ja opastaa Veejay käyttämään siellä olevia headereita ja kirjastoja.

Vaihtoehtoisesti tagilla v1.5.32 varustettu puolen vuoden takainen versio saattaisi toimia suoraan libav:n kanssa. Sen saa komentamalla lähdekoodipuussa:

Koodia: [Valitse]
git checkout a3a400b7c12fb85c8953f0c1597944766615bf38
« Viimeksi muokattu: 18.05.15 - klo:16.51 kirjoittanut nm »

mrl586

  • Käyttäjä
  • Viestejä: 4638
    • Profiili
Vs: VeeJay kääntäminen Debian
« Vastaus #2 : 19.05.15 - klo:02.49 »
Eräs vaihtoehto on ottaa deb-multimedia -pakettivarasto käyttöön ja suorittaa VeeJay:n käännösoperaatio sen jälkeen. Kyseinen pakettivarasto tarjoaa ajantasalla olevat versiot useimmista multimediasovelluksista (ffmpeg mukaan lukien).

Aatos Rapula

  • Käyttäjä
  • Viestejä: 186
    • Profiili
Vs: VeeJay kääntäminen Debian
« Vastaus #3 : 19.05.15 - klo:21.29 »
Joo ffmpegin kanssa meni pitemmälle, mutta ei silti loppuun saakka.

./configure:
Koodia: [Valitse]
configure:  Veejay 1.5.50 build configuration :
configure:
configure:  Compiler flags: -march=native  -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused  -fno-stack-protector
configure:    FX library flags: -march=native -O3 -ftree-vectorize -msse -mfpmath=sse -msse2 -mfpmath=sse
configure:
configure:  Architecture: i686
configure:
configure:    x86 
configure:     MMX     enabled     : yes
configure:     MMX2    enabled     : yes
configure:     SSE     enabled     : yes
configure:     SSE2    enabled     : yes
configure:     3DNOW   enabled     : no
configure:     CMOV    enabled     : yes
configure:     AVX     enabled     :
configure:
configure:    Platform: Linux
configure:
configure:  Required dependencies:
configure:   - POSIX Threads (pthread)       : true
configure:   - FFmpeg AVFormat               : true
configure:   - FFmpeg AVCodec                : true
configure:   - FFmpeg Swscaler               : true
configure:   - FFmpeg avutil      : true
configure:   - SDL support                   : true
configure:   - SDL on-screen-logging         : true
configure:   - Freetype support              : true
configure:   - XML c library for Gnome       : true
configure:   - JPEG support                  : true
configure:   - GDK Pixbuf support            : true
configure:  Optional dependencies
configure:   - DirectFB support              : true
configure:   - libDV (digital video) support : true
configure:   - QuickTime support             : true
configure:   - Jack Audio Connection Kit     : true
configure:   - Liblo OSC client              : true
configure:   - V4L2 (default)                : true
configure:   - V4L1 (obsolete)               : false
configure:   - libunwind                     : true
configure:   - QR code support (libqrencode) : false

make:
Koodia: [Valitse]
lav_io.c: In function 'lav_open_input_file':
lav_io.c:1674:3: warning: "/*" within comment [-Wcomment]
   /* We have to look to the JPEG SOF marker for further information
 ^
lav_io.c:1249:20: warning: variable 'jpg_width' set but not used [-Wunused-but-set-variable]
    int jpg_height, jpg_width, ncomps, hf[3], vf[3];
                    ^
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/local/include -I../vjmem -I../vjmsg -I../mjpegtools -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/lqt -march=native -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused -fno-stack-protector -MT lav_io.lo -MD -MP -MF .deps/lav_io.Tpo -c lav_io.c -o lav_io.o >/dev/null 2>&1
mv -f .deps/lav_io.Tpo .deps/lav_io.Plo
/bin/bash ../libtool  --tag=CC   --mode=compile gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/local/include -I../vjmem -I../vjmsg  -I../mjpegtools  -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include  -I/usr/include/lqt      -march=native  -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused  -fno-stack-protector -MT vj-dv.lo -MD -MP -MF .deps/vj-dv.Tpo -c -o vj-dv.lo vj-dv.c
libtool: compile:  gcc -DHAVE_CONFIG_H -I. -I.. -I.. -I/usr/local/include -I../vjmem -I../vjmsg -I../mjpegtools -pthread -I/usr/include/gtk-2.0 -I/usr/lib/i386-linux-gnu/gtk-2.0/include -I/usr/include/gio-unix-2.0/ -I/usr/include/cairo -I/usr/include/pango-1.0 -I/usr/include/atk-1.0 -I/usr/include/cairo -I/usr/include/pixman-1 -I/usr/include/libpng12 -I/usr/include/pango-1.0 -I/usr/include/harfbuzz -I/usr/include/pango-1.0 -I/usr/include/freetype2 -I/usr/include/gdk-pixbuf-2.0 -I/usr/include/libpng12 -I/usr/include/glib-2.0 -I/usr/lib/i386-linux-gnu/glib-2.0/include -I/usr/include/lqt -march=native -O2 -D_FILE_OFFSET_BITS=64 -D_LARGE_FILES -msse -mfpmath=sse -msse2 -mfpmath=sse -Wall -Wunused -fno-stack-protector -MT vj-dv.lo -MD -MP -MF .deps/vj-dv.Tpo -c vj-dv.c  -fPIC -DPIC -o .libs/vj-dv.o
In file included from vj-dv.c:27:0:
../libel/vj-dv.h:46:35: error: unknown type name 'VJFrame'
 vj_dv_encoder *vj_dv_init_encoder(VJFrame *frame, int pixel_format, int isPAL);
                                   ^
vj-dv.c: In function 'vj_dv_decode_frame':
vj-dv.c:390:12: warning: unused variable 'frame' [-Wunused-variable]
   uint8_t *frame[3] = { Y , Cb, Cr };
            ^
vj-dv.c:425:42: error: 'PIX_FMT_YUVJ422F' undeclared (first use in this function)
   if( yuv_use_auto_ccir_jpeg() && fmt == PIX_FMT_YUVJ422F) {
                                          ^
vj-dv.c:425:42: note: each undeclared identifier is reported only once for each function it appears in
vj-dv.c: At top level:
vj-dv.c:206:13: warning: 'frame_YUV422_to_planar_411' defined but not used [-Wunused-function]
 static void frame_YUV422_to_planar_411(uint8_t **output, uint8_t *input,
             ^
Makefile:466: recipe for target 'vj-dv.lo' failed
make[2]: *** [vj-dv.lo] Error 1
make[2]: Leaving directory '/home/lasse/build/veejay/veejay-git/veejay-current/veejay-server/libel'
Makefile:588: recipe for target 'all-recursive' failed
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory '/home/lasse/build/veejay/veejay-git/veejay-current/veejay-server'
Makefile:496: recipe for target 'all' failed
make: *** [all] Error 2

Johtuiskohan tuo nyt siitä, ettei Debian Jessie tarjoa libjpeg62sta, vaan libjpeg62-turbon.


Löysin kuitenkin valmiit debit Wheezyyn täältä: http://sourceforge.net/projects/veejay/files/

Nyt on systeemi tulilla ja tässä testaillut. Tarkka on median kanssa. Vääränlainen kaataa koko ohjelman. Ffmpegillähän ne sai oikeaan muotoon.
Ajatus olisi saada tästä projisointisysteemi pieneen harrastajateatteriin. Vaikuttaisi, että tästä voisi olla siihen, kunhan toimii tarpeeksi vakaasti.
Auttavasti (kunhan valmistelee median muulla tavalla kuntoon) riittäisi kun ohjelmalla saisi livenä feidattua kuvat ja videot nätisti sisään ja vaihdettua ristiin. Mutta en ole muita tähän pystyviä ilmaisia ohjelmia linuxille löytänyt. Saa ehdottaa. Veejay tottelee ilmeisesti myös midiä, voisi saada ohjauksen valopöydästä.

Oletteko muuten tästä kuullut? http://www.picturall.com/ Mainio peli, pyörii linuxilla ja kotoisin Kaustisilta. On vaan kaukana budjetin rajoista.

Jatkampa opettelua.
« Viimeksi muokattu: 19.05.15 - klo:22.10 kirjoittanut Aatos Rapula »
Debian - Jessie - xfce

nm

  • Käyttäjä
  • Viestejä: 16247
    • Profiili
Vs: VeeJay kääntäminen Debian
« Vastaus #4 : 20.05.15 - klo:00.16 »
In file included from vj-dv.c:27:0:
../libel/vj-dv.h:46:35: error: unknown type name 'VJFrame'
 vj_dv_encoder *vj_dv_init_encoder(VJFrame *frame, int pixel_format, int isPAL);
                                   ^
vj-dv.c: In function 'vj_dv_decode_frame':
vj-dv.c:390:12: warning: unused variable 'frame' [-Wunused-variable]
   uint8_t *frame[3] = { Y , Cb, Cr };
            ^
vj-dv.c:425:42: error: 'PIX_FMT_YUVJ422F' undeclared (first use in this function)
   if( yuv_use_auto_ccir_jpeg() && fmt == PIX_FMT_YUVJ422F) {
                                          ^
vj-dv.c:425:42: note: each undeclared identifier is reported only once for each function it appears in

Nämä vaikuttavat ohjelman oman koodin virheiltä. PIX_FMT_YUVJ422F:ää ei edes löydy Googlella netistä, ja Veejayn koodissakin se esiintyy vain kerran. Saattaa olla kirjoitusvirhe, tai gitiin ladatusta koodista on epähuomiossa jäänyt pois jokin lisäpaikkaus, jota kehittäjä käyttää itse.

Tämä on kuitenkin kehityksen alla olevaa koodia, joka ei välttämättä ole vielä käyttökelpoista. Kyseinen muutos on tehty kuukausi sitten tässä commitissa: http://code.dyne.org/veejay/commit/?id=9fc7a9ecbdc54c704dc70d61b66f8c7a0386d145
Ennen sitä PIX_FMT_YUVJ422F:n paikalla oli FMT_422F