diff --git a/packages/multimedia/xine-lib/build b/packages/multimedia/xine-lib/build new file mode 100755 index 0000000000..9f1c8ec111 --- /dev/null +++ b/packages/multimedia/xine-lib/build @@ -0,0 +1,105 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/build toolchain +$SCRIPTS/build zlib +$SCRIPTS/build libiconv +$SCRIPTS/build ffmpeg +$SCRIPTS/build freetype +$SCRIPTS/build fontconfig +$SCRIPTS/build libX11 +$SCRIPTS/build libXext +$SCRIPTS/build libXvMC +$SCRIPTS/build $MESA +$SCRIPTS/build alsa-lib +$SCRIPTS/build libcdio +# $SCRIPTS/build vcdimager +$SCRIPTS/build flac +$SCRIPTS/build libtheora +$SCRIPTS/build libvorbis + + +cd $PKG_BUILD +export LDFLAGS="$LDFLAGS -lm -lintl -ldl -lavcodec -lavformat -lavutil -lpostproc -lswscale -liconv" +export CPP=${TARGET_PREFIX}cpp +./configure --host=$TARGET_NAME \ + --build=$HOST_NAME \ + --prefix=/usr \ + --sysconfdir=/etc \ + --enable-shared \ + --disable-static \ + --disable-debug \ + --disable-ipv6 \ + --disable-antialiasing \ + --disable-dependency-tracking \ + --disable-optimizations \ + --disable-mmap \ + --enable-largefile \ + --disable-coreaudio \ + --disable-irixal \ + --disable-oss \ + --disable-sunaudio \ + --without-sndio \ + --disable-aalib \ + --disable-dha-kmod \ + --disable-directfb \ + --disable-dxr3 \ + --disable-fb \ + --disable-macosx-video \ + --enable-opengl \ + --disable-glu \ + --disable-vidix \ + --disable-xinerama \ + --disable-static-xv \ + --enable-xvmc \ + --disable-dvb \ + --disable-gnomevfs \ + --disable-samba \ + --disable-v4l \ + --disable-vcd \ + --enable-vdr \ + --enable-a52dec \ + --enable-asf \ + --enable-nosefart \ + --enable-faad \ + --disable-gdkpixbuf \ + --enable-dts \ + --enable-mad \ + --disable-modplug \ + --disable-libmpeg2new \ + --disable-musepack \ + --disable-mlib \ + --disable-mlib-lazyload \ + --enable-mng \ + --enable-real-codecs \ + --with-real-codecs-path=/storage/.codecs \ + --enable-w32dll \ + --with-w32-path=/storage/.codecs \ + --with-freetype \ + --with-fontconfig \ + --with-x \ + --with-alsa \ + --without-esound \ + --without-fusionsound \ + --without-jack \ + --without-pulseaudio \ + --without-caca \ + --without-dxheaders \ + --without-libstk \ + --without-sdl \ + --without-vdpau \ + --without-xcb \ + --without-external-dvdnav \ + --without-imagemagick \ + --with-libflac \ + --without-speex \ + --with-theora \ + --with-vorbis \ + --without-xcb \ + --without-wavpack \ + +make +make -C src/vdr + +$MAKEINSTALL diff --git a/packages/multimedia/xine-lib/config/config b/packages/multimedia/xine-lib/config/config new file mode 100644 index 0000000000..1719a0f107 --- /dev/null +++ b/packages/multimedia/xine-lib/config/config @@ -0,0 +1,8 @@ +# device used for mono output +# string, default: default +audio.device.alsa_default_device:plug:front + +# device used for stereo output +# string, default: plug:front:default +audio.device.alsa_front_device:plug:front + diff --git a/packages/multimedia/xine-lib/install b/packages/multimedia/xine-lib/install new file mode 100755 index 0000000000..3cd2318e5b --- /dev/null +++ b/packages/multimedia/xine-lib/install @@ -0,0 +1,121 @@ +#!/bin/sh + +. config/options + +$SCRIPTS/install zlib +$SCRIPTS/install libiconv +$SCRIPTS/install ffmpeg +$SCRIPTS/install freetype +$SCRIPTS/install fontconfig +$SCRIPTS/install libX11 +$SCRIPTS/install libXext +$SCRIPTS/install libXvMC +$SCRIPTS/install $MESA +$SCRIPTS/install alsa-lib +$SCRIPTS/install libcdio +# $SCRIPTS/install vcdimager +$SCRIPTS/install flac +$SCRIPTS/install libtheora +$SCRIPTS/install libvorbis + + +PKG_DIR=`find $PACKAGES -type d -name $1` + +mkdir -p $INSTALL/usr/lib + cp -PR $PKG_BUILD/src/xine-engine/.libs/libxine*.so* $INSTALL/usr/lib + +mkdir -p $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_a52.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_dts.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_mad.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_dvaudio.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_faad.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_gsm610.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_lpcm.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_dec/.libs/xineplug_decode_mad.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/audio_out/.libs/xineplug_ao_out_alsa.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/audio_out/.libs/xineplug_ao_out_file.so $INSTALL/usr/lib/xine/plugins/2.0 +# cp $PKG_BUILD/src/audio_out/.libs/xineplug_ao_out_none.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/combined/.libs/xineplug__flac.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/combined/.libs/xineplug_nsf.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/combined/.libs/xineplug_xiph.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/combined/ffmpeg/.libs/xineplug_decode_ff.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_asf.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_audio.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_avi.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_fli.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_flv.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_games.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_iff.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_matroska.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_mpeg.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_mpeg_block.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_mpeg_elem.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_mpeg_pes.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_mpeg_ts.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_nsv.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_playlist.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_pva.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_qt.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_rawdv.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_real.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_slave.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_vc1_es.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_yuv4mpeg2.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/demuxers/.libs/xineplug_dmx_yuv_frames.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/input/.libs/xineplug_inp_cdda.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_dvd.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_file.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_http.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_mms.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_net.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_pnm.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_rtp.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_rtsp.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/input/.libs/xineplug_inp_stdin_fifo.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/libreal/.libs/xineplug_decode_real.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/libw32dll/.libs/xineplug_decode_qt.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/libw32dll/.libs/xineplug_decode_w32dll.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/spu_dec/.libs/xineplug_decode_spu.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/spu_dec/.libs/xineplug_decode_spucc.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/spu_dec/.libs/xineplug_decode_spucmml.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/spu_dec/.libs/xineplug_decode_spudvb.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/spu_dec/.libs/xineplug_sputext.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/vdr/.libs/xineplug_vdr.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/video_dec/.libs/xineplug_decode_bitplane.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_dec/.libs/xineplug_decode_rgb.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_dec/.libs/xineplug_decode_yuv.so $INSTALL/usr/lib/xine/plugins/2.0 + + cp $PKG_BUILD/src/video_dec/libmpeg2/.libs/xineplug_decode_mpeg2.so $INSTALL/usr/lib/xine/plugins/2.0 + +# cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_fb.so $INSTALL/usr/lib/xine/plugins/2.0 +# cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_none.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_opengl.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_raw.so $INSTALL/usr/lib/xine/plugins/2.0 +# cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_sdl.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_xshm.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_xv.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_xvmc.so $INSTALL/usr/lib/xine/plugins/2.0 + cp $PKG_BUILD/src/video_out/.libs/xineplug_vo_out_xxmc.so $INSTALL/usr/lib/xine/plugins/2.0 + +mkdir -p $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/audio/.libs/xineplug_post_audio_filters.so $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/deinterlace/.libs/xineplug_post_tvtime.so $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/goom/.libs/xineplug_post_goom.so $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/mosaico/.libs/xineplug_post_mosaico.so $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/mosaico/.libs/xineplug_post_switch.so $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/planar/.libs/xineplug_post_planar.so $INSTALL/usr/lib/xine/plugins/2.0/post + cp $PKG_BUILD/src/post/visualizations/.libs/xineplug_post_visualizations.so $INSTALL/usr/lib/xine/plugins/2.0/post + +mkdir -p $INSTALL/etc/xine + cp $PKG_DIR/config/config $INSTALL/etc/xine diff --git a/packages/multimedia/xine-lib/patches/10_vdr.diff b/packages/multimedia/xine-lib/patches/10_vdr.diff new file mode 100644 index 0000000000..043ee61528 --- /dev/null +++ b/packages/multimedia/xine-lib/patches/10_vdr.diff @@ -0,0 +1,23 @@ +diff -Naur xine-lib-1.2-r10926.orig/src/Makefile.am xine-lib-1.2-r10926/src/Makefile.am +--- xine-lib-1.2-r10926.orig/src/Makefile.am 2009-04-25 11:58:16.000000000 +0200 ++++ xine-lib-1.2-r10926/src/Makefile.am 2009-04-25 11:58:51.000000000 +0200 +@@ -15,5 +15,4 @@ + libw32dll \ + libreal \ + post \ +- combined \ +- vdr ++ combined +diff -Naur xine-lib-1.2-r10926.orig/src/Makefile.in xine-lib-1.2-r10926/src/Makefile.in +--- xine-lib-1.2-r10926.orig/src/Makefile.in 2009-04-25 11:58:16.000000000 +0200 ++++ xine-lib-1.2-r10926/src/Makefile.in 2009-04-25 11:58:44.000000000 +0200 +@@ -397,8 +397,7 @@ + libw32dll \ + libreal \ + post \ +- combined \ +- vdr ++ combined + + all: all-recursive + diff --git a/packages/multimedia/xine-lib/patches/20_fix-buffering.diff b/packages/multimedia/xine-lib/patches/20_fix-buffering.diff new file mode 100644 index 0000000000..efc82d7d42 --- /dev/null +++ b/packages/multimedia/xine-lib/patches/20_fix-buffering.diff @@ -0,0 +1,51 @@ +diff -Naur xine-lib-1.2-r10947/src/xine-engine/metronom.c xine-lib-1.2-r10947a/src/xine-engine/metronom.c +--- xine-lib-1.2-r10947/src/xine-engine/metronom.c 2009-04-26 09:07:51.000000000 +0200 ++++ xine-lib-1.2-r10947a/src/xine-engine/metronom.c 2009-05-31 14:00:22.000000000 +0200 +@@ -304,8 +304,6 @@ + + /* video_vpts and audio_vpts adjustements */ + cur_time = this->xine->clock->get_current_time(this->xine->clock); +- xprintf(this->xine, XINE_VERBOSITY_DEBUG, +- "current time : %" PRId64 "\n", cur_time); + + switch (type) { + case DISC_STREAMSTART: +@@ -322,12 +320,33 @@ + + case DISC_ABSOLUTE: + case DISC_RELATIVE: +- if (this->video_vpts < this->audio_vpts) { +- this->video_vpts = this->audio_vpts; +- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video vpts adjusted to audio vpts %" PRId64 "\n", this->video_vpts); ++ if (this->video_vpts < cur_time) { ++ /* still frame */ ++ if (this->audio_vpts > cur_time) { ++ /* still frame with audio */ ++ this->video_vpts = this->audio_vpts; ++ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "video vpts adjusted to audio vpts %" PRId64 "\n", this->video_vpts); ++ } else { ++ /* still frame, no audio */ ++ this->video_vpts = this->prebuffer + cur_time; ++ this->audio_vpts = this->video_vpts; ++ this->audio_vpts_rmndr = 0; ++ this->force_video_jump = 1; ++ this->force_audio_jump = 1; ++ this->video_drift = 0; ++ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "vpts adjusted with prebuffer to %" PRId64 "\n", ++ this->video_vpts); ++ } + } else { +- this->audio_vpts = this->video_vpts; +- xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio vpts adjusted to video vpts %" PRId64 "\n", this->video_vpts); ++ /* video */ ++ if (this->audio_vpts < cur_time) { ++ /* video, no sound */ ++ this->audio_vpts = this->video_vpts; ++ this->audio_vpts_rmndr = 0; ++ xprintf(this->xine, XINE_VERBOSITY_DEBUG, "audio vpts adjusted to video vpts %" PRId64 "\n", this->video_vpts); ++ } else { ++ /* video + audio */ ++ } + } + break; + } diff --git a/packages/multimedia/xine-lib/patches/40_vdpau-deint-stillimage.diff b/packages/multimedia/xine-lib/patches/40_vdpau-deint-stillimage.diff new file mode 100644 index 0000000000..4ad7a75acb --- /dev/null +++ b/packages/multimedia/xine-lib/patches/40_vdpau-deint-stillimage.diff @@ -0,0 +1,12 @@ +diff --git a/src/video_out/video_out_vdpau.c b/src/video_out/video_out_vdpau.c +--- a/src/video_out/video_out_vdpau.c ++++ b/src/video_out/video_out_vdpau.c +@@ -1386,7 +1394,7 @@ static void vdpau_display_frame (vo_driv + + XLockDisplay( this->display ); + +- if ( frame->format==XINE_IMGFMT_VDPAU && this->deinterlace && non_progressive && stream_speed && frame_duration>2500 ) { ++ if ( frame->format==XINE_IMGFMT_VDPAU && this->deinterlace && non_progressive /* && stream_speed */ && frame_duration>2500 ) { + VdpTime current_time = 0; + VdpVideoSurface past[2]; + VdpVideoSurface future[1]; diff --git a/packages/multimedia/xine-lib/url b/packages/multimedia/xine-lib/url new file mode 100644 index 0000000000..a8017188bd --- /dev/null +++ b/packages/multimedia/xine-lib/url @@ -0,0 +1 @@ +http://sources.openelec.tv/svn/xine-lib-1.2-10967.tar.bz2 \ No newline at end of file