SHA256
1
0
forked from pool/xine-lib

Accepting request 124747 from multimedia:xine

Second try to get xine-lib updated to to 1.2.x, libavutil is requested in 124746
Reason 1.1.x will not be supported to EOL of openSUSE 12.2, see also Bugzilla Bug 762784

OBS-URL: https://build.opensuse.org/request/show/124747
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xine-lib?expand=0&rev=45
This commit is contained in:
Stephan Kulow 2012-06-14 19:12:49 +00:00 committed by Git OBS Bridge
commit a2e74b891c
24 changed files with 282 additions and 3767 deletions

View File

@ -1,26 +0,0 @@
For legal reasons this version of xine has limited functionality. Here is
a list of what has been disabled:
AC3 and AC4.1 sound decoding. Probably patented. Maybe legal if it is not labeled as XX-Y.
ASF parsing. Patented.
Closed Captioning Decoder (EIA-608). Probably patented.
GSM 610 decoding. Patented.
MPEG-4 (FFMPEG) codecs. Patented.
MS Video-1. Used in AVI and ASF. AVI is okay, ASF is not.
Sorenson video codec. Reverse engineering, no legal expertise.
Direct Hardware Access. Uncertain legal status.
Freeware Advanced Audio Decoder. No legal expertise.
Interplay DPCM Audio Decoder. No legal expertise.
Interplay MVE File Video Decoder. No legal expertise.
NES Music File Format. No legal expertise.
Origin's Wing Commander III MVE format. No legal expertise.
SPU DVD subtitles. No legal expertise.
CSS decoding needs extra library (libdvdcss), which is not part of SuSE Linux
Advanced users can build an RPM package and install also the additional
"libxine1-codecs" rpm, which contains all protected codecs.
See also
http://www.opensuse.org/XINE#Legal_Matters

View File

@ -1 +1 @@
libxine1
libxine2

View File

@ -58,12 +58,11 @@ pushd $tmp/$tarbase >/dev/null || exit 1
echo 1>&2 "Crippling..."
c_subdirs="dxr3 liba52 libdts libfaad libffmpeg libmad libmpeg2 libspucc libspudec libspudvb libw32dll input/vcd libxineadec/gsm610 libxineadec/nosefart combined/ffmpeg"
c_subdirs="dxr3 liba52 libdts libfaad libffmpeg libmad libmpeg2 libspucc libspudec libspudvb libw32dll input/vcd combined/ffmpeg"
c_demuxers="xineplug_dmx_asf.la asfheader.h asfheader.c demux_asf.c xineplug_dmx_mpeg.la demux_mpeg.c xineplug_dmx_mpeg_block.la demux_mpeg_block.c xineplug_dmx_mpeg_ts.la demux_ts.c xineplug_dmx_mpeg_elem.la demux_elem.c xineplug_dmx_mpeg_pes.la demux_mpeg_pes.c xineplug_dmx_yuv4mpeg2.la demux_yuv4mpeg2.c"
c_input="xineplug_inp_mms.la input_mms.c mms.c mmsh.c ../demuxers/asfheader.c mms.h mmsh.h xineplug_inp_vcdo.la input_vcd.c vcd"
c_libxineadec="xineplug_decode_gsm610.la xineplug_decode_nsf.la gsm610.c nsf.c gsm610 nosefart"
cp src/libffmpeg/libavcodec/libpostproc/mangle.h src/post/deinterlace/plugins/
c_audiodec="xineplug_decode_a52.la xineplug_decode_mad.la xine_a52_decoder.c xine_mad_decoder.c"
do_nukeentry src/Makefile.am "$c_subdirs"
do_nukeentry configure.ac "$c_subdirs" "src/" "/[a-zA-Z0-9_./]*Makefile"
@ -72,8 +71,8 @@ do_nukeentry src/demuxers/Makefile.am "$c_demuxers"
do_remove src/demuxers "$c_demuxers"
do_nukeentry src/input/Makefile.am "$c_input"
do_remove src/input "$c_input"
do_nukeentry src/libxineadec/Makefile.am "$c_libxineadec"
do_remove src/libxineadec "$c_libxineadec"
do_nukeentry src/audio_dec/Makefile.am "$c_audiodec"
do_remove src/audio_dec "$c_audiodec"
do_nukeentry src/combined/Makefile.am "ffmpeg"
do_remove src/combined "ffmpeg"
do_nukeentry src/post/planar/Makefile.am "pp\.c \S*/libpostproc/libpostprocess\.la"

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:3ea7e34360650470f5da0164b6817e5301d60f337331e5e316752d3e1792c71b
size 24923

View File

@ -1,12 +0,0 @@
diff -ur xine-lib-1.1.18.orig/src/vdr/input_vdr.c xine-lib-1.1.18/src/vdr/input_vdr.c
--- xine-lib-1.1.18.orig/src/vdr/input_vdr.c 2010-02-24 21:01:43.658883179 +0100
+++ xine-lib-1.1.18/src/vdr/input_vdr.c 2010-02-24 21:02:59.800133025 +0100
@@ -51,7 +51,7 @@
#define VDR_MAX_NUM_WINDOWS 16
-#define VDR_ABS_FIFO_DIR "/tmp/vdr-xine"
+#define VDR_ABS_FIFO_DIR "/var/lib/vdr-xine"
#define BUF_SIZE 1024

View File

@ -1,11 +0,0 @@
diff -ur xine-lib-1.1.19.orig/configure.ac xine-lib-1.1.19/configure.ac
--- xine-lib-1.1.19.orig/configure.ac 2010-07-26 00:57:13.155035643 +0200
+++ xine-lib-1.1.19/configure.ac 2010-07-26 01:00:45.468785507 +0200
@@ -120,6 +120,7 @@
dnl ---------------------------------------------
AC_PROG_CC
+AC_PROG_CXX
AM_PROG_AS
case "$host_os" in

View File

@ -1,11 +0,0 @@
diff -ur xine-lib-1.1.20.orig/src/audio_out/audio_alsa_out.c xine-lib-1.1.20/src/audio_out/audio_alsa_out.c
--- xine-lib-1.1.20.orig/src/audio_out/audio_alsa_out.c 2011-10-04 23:42:53.000000000 +0200
+++ xine-lib-1.1.20/src/audio_out/audio_alsa_out.c 2011-11-13 17:54:44.276984269 +0100
@@ -41,6 +41,7 @@
#ifdef HAVE_ALLOCA_H
#include <alloca.h>
#endif
+#include <assert.h>
#define ALSA_PCM_NEW_HW_PARAMS_API
#define ALSA_PCM_NEW_SW_PARAMS_API

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9e9dfef3f52098bf49341600bac23b5da6cbdb77e3172a5a3086dafe4fbf93f7
size 5146365

View File

@ -1,37 +0,0 @@
diff -ur xine-lib-1.1.20.orig/src/xine-engine/load_plugins.c xine-lib-1.1.20/src/xine-engine/load_plugins.c
--- xine-lib-1.1.20.orig/src/xine-engine/load_plugins.c 2011-10-16 20:59:32.000000000 +0200
+++ xine-lib-1.1.20/src/xine-engine/load_plugins.c 2011-11-13 18:08:39.357570472 +0100
@@ -2508,9 +2508,18 @@
plugin_catalog_t *catalog = self->plugin_catalog;
int list_id;
+ int havempgdecoder = 0;
+ const char * const * p;
pthread_mutex_lock (&catalog->lock);
+ _build_list_typed_plugins(&catalog, catalog->plugin_lists[PLUGIN_AUDIO_DECODER - 1]);
+ for (p = catalog->ids; p && *p; p++) {
+ if (strcmp (*p, "mad") == 0 || strcmp (*p, "ffmpegaudio") == 0) {
+ havempgdecoder = 1;
+ break;
+ }
+ }
/* calc length of output string and create an array of strings to
concatenate */
size_t len = 0;
@@ -2522,7 +2531,13 @@
if (node->plugin_class || _load_plugin_class(self, node, NULL)) {
demux_class_t *const cls = (demux_class_t *)node->plugin_class;
if( (extensions[list_id] = cls->get_extensions(cls)) != NULL )
- len += strlen(extensions[list_id]) +1;
+ {
+ if(havempgdecoder || !strstr(extensions[list_id], "mp3")) {
+ len += strlen(extensions[list_id]) +1;
+ } else {
+ extensions[list_id] = NULL;
+ }
+ }
}
}

View File

@ -1,22 +0,0 @@
diff -ur xine-lib-1.1.20.orig/src/xine-engine/audio_out.c xine-lib-1.1.20/src/xine-engine/audio_out.c
--- xine-lib-1.1.20.orig/src/xine-engine/audio_out.c 2010-08-16 18:36:37.000000000 +0200
+++ xine-lib-1.1.20/src/xine-engine/audio_out.c 2011-11-13 17:23:52.677415436 +0100
@@ -1156,8 +1156,17 @@
/*
* calculate gap:
+ *
+ * HACK (rwa): If we have no video stream we do not need an AV sync and so
+ * we assume a gap of 0. This seems to avoid the skips in the
+ * first seconds when playing audio-only via the "glitch-free"
+ * pulseaudio server.
*/
- gap = in_buf->vpts - hw_vpts;
+ if (in_buf && in_buf->stream && in_buf->stream->video_decoder_plugin) {
+ gap = in_buf->vpts - hw_vpts;
+ } else {
+ gap = 0;
+ }
lprintf ("hw_vpts : %" PRId64 " buffer_vpts : %" PRId64 " gap : %" PRId64 "\n",
hw_vpts, in_buf->vpts, gap);

View File

@ -1,18 +0,0 @@
diff -ur xine-lib-1.1.20.orig/configure.ac xine-lib-1.1.20/configure.ac
--- xine-lib-1.1.20.orig/configure.ac 2011-11-13 02:36:20.000000000 +0100
+++ xine-lib-1.1.20/configure.ac 2011-11-13 17:19:36.819687116 +0100
@@ -2407,10 +2407,13 @@
mips-*)
AC_DEFINE_UNQUOTED(FPM_MIPS,,[Define to select libmad fixed point arithmetic implementation])
;;
- alphaev56-* | alpha* | ia64-* | hppa*-linux-*)
+ alphaev56-* | alpha* | hppa*-linux-*)
AC_DEFINE_UNQUOTED(FPM_64BIT,,[Define to select libmad fixed point arithmetic implementation])
AC_DEFINE_UNQUOTED(ARCH_ALPHA,,[Define this if you're running Alpha architecture])
;;
+ ia64-*)
+ AC_DEFINE_UNQUOTED(FPM_64BIT,,[Define to select libmad fixed point arithmetic implementation])
+ ;;
armv4l-*-linux*)
AC_DEFINE_UNQUOTED(FPM_ARM,,[Define to select libmad fixed point arithmetic implementation])
AC_DEFINE_UNQUOTED(ARCH_ARM,,[Define this if you're running ARM architecture])

View File

@ -1,266 +0,0 @@
diff -uNr xine-lib-1.1.20.orig/configure.ac xine-lib-1.1.20/configure.ac
--- xine-lib-1.1.20.orig/configure.ac 2011-11-13 17:46:57.513129735 +0100
+++ xine-lib-1.1.20/configure.ac 2011-11-13 17:40:51.572377268 +0100
@@ -2657,6 +2657,28 @@
AM_CONDITIONAL(HAVE_W32DLL, test "x$enable_w32dll" != "xno")
+dnl ---------------------------------------------
+dnl let distro override plugin install helper path
+dnl ---------------------------------------------
+AC_ARG_WITH(install-plugins-helper,
+ AC_HELP_STRING([--with-install-plugins-helper],
+ [specify path of helper script to call to install plugins]),
+ [
+ case "${withval}" in
+ yes) AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
+ no) AC_MSG_ERROR(bad value ${withval} for --with-install-plugins-helper) ;;
+ *) XINE_INSTALL_PLUGINS_HELPER="${withval}" ;;
+ esac
+ ],
+ [
+ dnl Default value
+ XINE_INSTALL_PLUGINS_HELPER="`makeexpand "${libexecdir}/xine-install-plugins-helper"`"
+ ]
+)
+AC_MSG_NOTICE(Using $XINE_INSTALL_PLUGINS_HELPER as plugin install helper)
+AC_DEFINE_UNQUOTED(XINE_INSTALL_PLUGINS_HELPER, "$XINE_INSTALL_PLUGINS_HELPER",
+ [plugin install helper script])
+AC_SUBST(XINE_INSTALL_PLUGINS_HELPER)
dnl ---------------------------------------------
dnl some include paths ( !!! DO NOT REMOVE !!! )
diff -uNr xine-lib-1.1.20.orig/src/xine-engine/audio_decoder.c xine-lib-1.1.20/src/xine-engine/audio_decoder.c
--- xine-lib-1.1.20.orig/src/xine-engine/audio_decoder.c 2011-11-13 17:46:57.513129735 +0100
+++ xine-lib-1.1.20/src/xine-engine/audio_decoder.c 2011-10-04 23:42:53.000000000 +0200
@@ -41,6 +41,7 @@
#include "xine_internal.h"
#include "xineutils.h"
+#include "install_plugins_helper.h"
static void *audio_decoder_loop (void *stream_gen) {
@@ -344,6 +345,10 @@
_x_stream_info_set(stream, XINE_STREAM_INFO_AUDIO_HANDLED,
(stream->audio_decoder_plugin != NULL));
+
+ if(buf->type != buftype_unknown && !stream->audio_decoder_plugin)
+ _x_install_plugins_helper(stream,"decoder-audio", buf->type, _x_buf_audio_name( buf->type ));
+
}
if (audio_type != stream->audio_type) {
diff -uNr xine-lib-1.1.20.orig/src/xine-engine/install_plugins_helper.c xine-lib-1.1.20/src/xine-engine/install_plugins_helper.c
--- xine-lib-1.1.20.orig/src/xine-engine/install_plugins_helper.c 2011-11-13 17:46:57.513129735 +0100
+++ xine-lib-1.1.20/src/xine-engine/install_plugins_helper.c 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,106 @@
+/*
+ * Copyright (C) 2007 Sascha Sommer
+ *
+ * This file is part of xine, a free video player.
+ *
+ * xine is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * xine is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ *
+ * helper functions to query the internet for additional plugins
+ */
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+#include <stdio.h>
+#include <unistd.h>
+#include <sys/wait.h>
+
+#include "install_plugins_helper.h"
+
+#define PROCNAME_LEN 100
+
+static const char *
+get_helper(xine_stream_t *stream)
+{
+ const char *helper;
+
+ helper = getenv("XINE_INSTALL_PLUGINS_HELPER");
+ if (helper == NULL)
+ helper = XINE_INSTALL_PLUGINS_HELPER;
+
+ xine_log (stream->xine, XINE_LOG_MSG,
+ _("Using plugin install helper '%s'"), helper);
+
+ return helper;
+}
+
+static void
+get_procname(char* procname, size_t len)
+{
+ char name[100];
+ FILE* fp;
+ size_t pos = 0;
+ snprintf(name, sizeof(name), "/proc/%u/cmdline", getpid());
+
+ fp = fopen(name,"rb");
+ if(fp){
+ while(fp && !feof(fp) && pos < sizeof(name)-1){
+ procname[pos] = fgetc(fp);
+ if(procname[pos] == ' ') /* ignore arguments */
+ break;
+ if(procname[pos] == '/') /* ignore the path to the executable */
+ pos = 0;
+ else
+ ++pos;
+ }
+ fclose(fp);
+ }
+ procname[pos] = '\0';
+}
+
+
+void _x_install_plugins_helper(xine_stream_t* stream,char* plugin_type, uint32_t id, char* plugin_desc)
+{
+ xine_cfg_entry_t cfgentry;
+ char* helper = get_helper(stream);
+ FILE* fp;
+
+ if(helper && xine_config_lookup_entry(stream->xine, "media.plugins_helper", &cfgentry) && cfgentry.num_value
+ && (fp = fopen(helper,"rb") )) {
+ char procname[PROCNAME_LEN];
+// char* procname = getenv("_"); /* might deliver /opt/kde3/bin/start_kdeinit_wrapper etc... */
+ pid_t pid;
+ fclose(fp);
+ get_procname(procname,PROCNAME_LEN);
+ pid = fork();
+ if(pid == 0) {
+ size_t len = 5 + strlen(XINE_VERSION) + 1 + strlen(procname) + 1 + strlen(plugin_desc) + 1 + strlen(plugin_type) + 1 + 100 + 1;
+ char* str = calloc(1,len + 1);
+ if(str){
+ snprintf(str,len,"xine|%s|%s|%s|%s=%u",XINE_VERSION,procname,plugin_desc,plugin_type,id);
+ if(execl(helper,"xine-install-plugins-helper",str, NULL) == -1)
+ xine_log(stream->xine, XINE_LOG_MSG,
+ _("Couldn't start plugins_helper"));
+ free(str);
+ }
+ }else if(pid < 0){
+ xine_log(stream->xine, XINE_LOG_MSG,
+ _("Couldn't fork"));
+ }else{
+ waitpid(pid, NULL, 0);
+ }
+ }
+}
+
diff -uNr xine-lib-1.1.20.orig/src/xine-engine/install_plugins_helper.h xine-lib-1.1.20/src/xine-engine/install_plugins_helper.h
--- xine-lib-1.1.20.orig/src/xine-engine/install_plugins_helper.h 2011-11-13 17:46:57.513129735 +0100
+++ xine-lib-1.1.20/src/xine-engine/install_plugins_helper.h 1970-01-01 01:00:00.000000000 +0100
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2007 Sascha Sommer
+ *
+ * This file is part of xine, a free video player.
+ *
+ * xine is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * xine is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
+ *
+ * helper functions to query the internet for additional codecs
+ */
+
+#ifndef PLUGINS_HELPER_H
+#define PLUGINS_HELPER_H
+
+#include <inttypes.h>
+#include "xine_internal.h"
+
+/*
+ * execute install plugins helper
+ */
+void _x_install_plugins_helper(xine_stream_t *stream, char* plugin_type, uint32_t type, char* plugin_desc) XINE_PROTECTED;
+
+
+#endif
diff -uNr xine-lib-1.1.20.orig/src/xine-engine/Makefile.am xine-lib-1.1.20/src/xine-engine/Makefile.am
--- xine-lib-1.1.20.orig/src/xine-engine/Makefile.am 2011-11-13 17:46:57.513129735 +0100
+++ xine-lib-1.1.20/src/xine-engine/Makefile.am 2011-10-04 23:42:53.000000000 +0200
@@ -19,7 +19,7 @@
video_overlay.c osd.c scratch.c demux.c vo_scale.c \
xine_interface.c post.c tvmode.c broadcaster.c io_helper.c \
input_rip.c input_cache.c info_helper.c refcounter.c \
- alphablend.c
+ alphablend.c install_plugins_helper.c
# FIXME: these are currently unused:
EXTRA_DIST = lrb.c lrb.h accel_xvmc.h
@@ -39,7 +39,8 @@
audio_out.h resample.h video_out.h xine_internal.h spu_decoder.h \
video_overlay.h osd.h scratch.h xine_plugin.h xineintl.h \
plugin_catalog.h audio_decoder.h video_decoder.h post.h \
- io_helper.h broadcaster.h info_helper.h refcounter.h alphablend.h
+ io_helper.h broadcaster.h info_helper.h refcounter.h alphablend.h \
+ install_plugins_helper.h
noinst_HEADERS = bswap.h ffmpeg_bswap.h xine_private.h
diff -uNr xine-lib-1.1.20.orig/src/xine-engine/video_decoder.c xine-lib-1.1.20/src/xine-engine/video_decoder.c
--- xine-lib-1.1.20.orig/src/xine-engine/video_decoder.c 2011-11-13 17:46:57.517129699 +0100
+++ xine-lib-1.1.20/src/xine-engine/video_decoder.c 2011-11-08 21:26:43.000000000 +0100
@@ -38,6 +38,7 @@
#include "xine_internal.h"
#include "xineutils.h"
+#include "install_plugins_helper.h"
#include <sched.h>
#define SPU_SLEEP_INTERVAL (90000/2)
@@ -408,6 +409,10 @@
stream->video_decoder_plugin = _x_get_video_decoder (stream, streamtype);
_x_stream_info_set(stream, XINE_STREAM_INFO_VIDEO_HANDLED, (stream->video_decoder_plugin != NULL));
+ if(buf->type != buftype_unknown && !stream->video_decoder_plugin)
+ _x_install_plugins_helper(stream,"decoder-video", buf->type, _x_buf_video_name( buf->type ));
+
+
}
if (stream->video_decoder_plugin)
diff -uNr xine-lib-1.1.20.orig/src/xine-engine/xine.c xine-lib-1.1.20/src/xine-engine/xine.c
--- xine-lib-1.1.20.orig/src/xine-engine/xine.c 2011-11-13 17:46:57.517129699 +0100
+++ xine-lib-1.1.20/src/xine-engine/xine.c 2011-11-13 17:35:47.579072679 +0100
@@ -1816,6 +1816,15 @@
0, NULL, this);
/*
+ * enable/disable option for the plugins helper
+ */
+ this->config->register_bool(this->config,
+ "media.plugins_helper", 1,
+ _("Run plugins helper"),
+ _("Searches the internet for missing plugins"),
+ 0, NULL, this);
+
+ /*
* keep track of all opened streams
*/
this->streams = xine_list_new();

File diff suppressed because it is too large Load Diff

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:adabf74df5506cb1a8020597214b1f40e563b8fe89d6f223d14bcd6d9e5e8111
size 7569871

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:85c3b4897ec86ba7824be9ff2436071f668624aae5aa94ac91e98c224e079e1f
size 6174858

3
xine-lib-1.2.2.tar.bz2 Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:7c6eaa6863f02e46450783e142a55eb69d7665959aa9fec5a55126b43eef7b7d
size 6299685

View File

@ -1,87 +0,0 @@
Index: src/input/input_dvd.c
===================================================================
--- src/input/input_dvd.c.orig
+++ src/input/input_dvd.c
@@ -1393,7 +1393,12 @@
static int dvd_parse_try_open(dvd_input_plugin_t *this, const char *locator)
{
- const char *intended_dvd_device;
+ const char *intended_dvd_device;
+ dvd_input_class_t *class = (dvd_input_class_t *)
+ this->input_plugin.input_class;
+ xine_sarray_t **plgs = class->xine->plugin_catalog->plugin_lists;
+ plugin_node_t *node;
+ int i;
/* FIXME: we temporarily special-case "dvd:/" for compatibility;
* actually "dvd:/" should play a DVD image stored in /, but for
@@ -1409,7 +1414,6 @@
xine_setenv("DVDCSS_RAW_DEVICE", "", 1);
} else {
/* use default DVD device */
- dvd_input_class_t *class = (dvd_input_class_t*)this->input_plugin.input_class;
xine_cfg_entry_t raw_device;
if (xine_config_lookup_entry(this->stream->xine,
"media.dvd.raw_device", &raw_device))
@@ -1417,6 +1421,23 @@
intended_dvd_device = class->dvd_device;
}
+ for (i = 0; (node = xine_sarray_get (plgs[PLUGIN_VIDEO_DECODER-1], i)); i++)
+ if (strcmp (node->info->id, "mpeg2") == 0)
+ break;
+ if (node)
+ for (i = 0; (node = xine_sarray_get (plgs[PLUGIN_SPU_DECODER-1], i)); i++)
+ if (strcmp (node->info->id, "spudec") == 0)
+ break;
+ if (! node) {
+ _x_message (this->stream, XINE_MSG_GENERAL_WARNING,
+ "This version of Xine lacks support for playing DVD discs "
+ "for legal reasons.\n"
+ "Please go to http://www.opensuse.org/XINE#Legal_Matters "
+ "for further details.",
+ NULL);
+ return 0;
+ }
+
/* attempt to open DVD */
if (this->opened) {
if (intended_dvd_device == this->current_dvd_device) {
@@ -1479,8 +1500,11 @@
}
static int dvd_plugin_open (input_plugin_t *this_gen) {
- dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
+ dvd_input_plugin_t *this = (dvd_input_plugin_t*)this_gen;
dvd_input_class_t *class = (dvd_input_class_t*)this_gen->input_class;
+ xine_sarray_t **plgs = class->xine->plugin_catalog->plugin_lists;
+ plugin_node_t *node;
+ int i;
char *locator, *locator_orig;
char *title_part;
@@ -1489,6 +1513,23 @@
trace_print("Called\n");
+ for (i = 0; (node = xine_sarray_get (plgs[PLUGIN_VIDEO_DECODER-1], i)); i++)
+ if (strcmp (node->info->id, "mpeg2") == 0)
+ break;
+ if (node)
+ for (i = 0; (node = xine_sarray_get (plgs[PLUGIN_SPU_DECODER-1], i)); i++)
+ if (strcmp (node->info->id, "spudec") == 0)
+ break;
+ if (! node) {
+ _x_message (this->stream, XINE_MSG_GENERAL_WARNING,
+ "This version of Xine lacks support for playing DVD discs "
+ "for legal reasons.\n"
+ "Please go to http://www.opensuse.org/XINE#Legal_Matters "
+ "for further details.",
+ NULL);
+ return 0;
+ }
+
/* we already checked the "dvd:/" MRL before */
locator_orig = locator = strdup (this->mrl + (sizeof("dvd:") - 1));

View File

@ -1,35 +0,0 @@
Index: doc/faq/faq.sgml
===================================================================
--- doc/faq/faq.sgml.orig
+++ doc/faq/faq.sgml
@@ -413,12 +413,12 @@
<para>
If you want to have Xv support compiled in, make sure you either have
a shared Xv library on your system, e.g.
- <command>ls /usr/X11R6/lib/libXv*</command>
+ <command>ls /usr/lib/libXv*</command>
should give you some .so libs, like this:
<screen>
-&nbsp;&nbsp;&nbsp;/usr/X11R6/lib/libXv.a
-&nbsp;&nbsp;&nbsp;/usr/X11R6/lib/libXv.so
-&nbsp;&nbsp;&nbsp;/usr/X11R6/lib/libXv.so.1</screen>
+&nbsp;&nbsp;&nbsp;/usr/lib/libXv.a
+&nbsp;&nbsp;&nbsp;/usr/lib/libXv.so
+&nbsp;&nbsp;&nbsp;/usr/lib/libXv.so.1</screen>
</para>
<para>
Alternatively you need to have libtool 1.4 or newer installed, then
Index: doc/README_xxmc.html
===================================================================
--- doc/README_xxmc.html.orig
+++ doc/README_xxmc.html
@@ -69,8 +69,7 @@
installing</h2>
Make sure you have the XvMC wrapper installed. The wrapper will try to
figure out at run-time what xvmc-hardware specific driver to load. If
-it fails it will open the file <span style="font-family: monospace;">/etc/X11/XvMCConfig</span>
-or <span style="font-family: monospace;">/usr/X11R6/lib/X11/XvMCConfig</span>
+it fails it will open the file <span style="font-family: monospace;">/usr/lib/X11/XvMCConfig</span>
and try to load the hardware-specific library mentioned in that file.
If you downloaded the XvMC wrapper from the unichrome site, the default
XvMCConfig will make the XvMC wrapper try to load the Nvidia XvMC

View File

@ -1,7 +1,14 @@
diff -ur xine-lib-1.1.18.orig/src/input/libdvdnav/dvd_udf.c xine-lib-1.1.18/src/input/libdvdnav/dvd_udf.c
--- xine-lib-1.1.18.orig/src/input/libdvdnav/dvd_udf.c 2009-11-30 21:57:20.000000000 +0100
+++ xine-lib-1.1.18/src/input/libdvdnav/dvd_udf.c 2010-02-24 21:12:36.032882913 +0100
@@ -38,10 +38,16 @@
# HG changeset patch
# User Tobias Rautenkranz <mail@tobias.rautenkranz.ch>
# Date 1202208482 -3600
# Node ID 100241ff36f0730a15018a58456fb86eb590bf18
# Parent 07c29261ed98fdb710a241c6711dac0215b6074a
Fix playback of DVDs with a broken UDF file system (aka DVD-Movie-Protect).
diff -r 07c29261ed98 -r 100241ff36f0 src/input/libdvdnav/dvd_udf.c
--- a/src/input/libdvdnav/dvd_udf.c Thu Jan 31 22:02:04 2008 +0000
+++ b/src/input/libdvdnav/dvd_udf.c Tue Feb 05 11:48:02 2008 +0100
@@ -38,9 +38,15 @@
#include <sys/stat.h>
#include <unistd.h>
#include <inttypes.h>
@ -11,14 +18,13 @@ diff -ur xine-lib-1.1.18.orig/src/input/libdvdnav/dvd_udf.c xine-lib-1.1.18/src/
#include "dvd_reader.h"
#include "dvd_udf.h"
+
+#include "ifo_types.h"
+#include "ifo_read.h"
+
/* Private but located in/shared with dvd_reader.c */
extern int UDFReadBlocksRaw( dvd_reader_t *device, uint32_t lb_number,
size_t block_count, unsigned char *data,
@@ -774,7 +780,9 @@
@@ -774,7 +780,9 @@ static int UDFFindPartition( dvd_reader_
return part->valid;
}
@ -29,7 +35,7 @@ diff -ur xine-lib-1.1.18.orig/src/input/libdvdnav/dvd_udf.c xine-lib-1.1.18/src/
uint32_t *filesize )
{
uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
@@ -856,6 +864,84 @@
@@ -856,6 +864,84 @@ uint32_t UDFFindFile( dvd_reader_t *devi
return partition.Start + File.Location;
}

View File

@ -1,16 +1,16 @@
--- configure.ac.orig 2011-07-07 10:45:26.462089794 +0200
+++ configure.ac 2011-07-07 10:46:04.415089790 +0200
@@ -682,7 +682,7 @@
have_v4l=no
have_v4l2=no
if test "x$enable_v4l" != "xno"; then
- AC_CHECK_HEADERS([linux/videodev.h], [have_v4l=yes], [])
+ AC_CHECK_HEADERS([libv4l1-videodev.h], [have_v4l=yes], [])
AC_CHECK_HEADERS([linux/videodev2.h sys/videoio.h sys/videodev2.h], [have_v4l2=yes], [])
AC_CHECK_HEADERS([asm/types.h])
if test "x$enable_v4l" = "xyes" && test "x$have_v4l$have_v4l2" = "xnono"; then
--- src/input/input_v4l.c 2010-03-09 23:17:05.000000000 +0100
+++ src/input/input_v4l.c 2011-07-07 10:46:27.694089788 +0200
--- m4/input.m4 2010-03-21 00:29:58.000000000 +0100
+++ m4/input.m4 2011-11-16 15:59:40.674878245 +0100
@@ -92,7 +92,7 @@
XINE_ARG_ENABLE([v4l], [Enable Video4Linux support])
if test x"$enable_v4l" != x"no"; then
have_v4l=yes
- AC_CHECK_HEADERS([linux/videodev.h], , [have_v4l=no])
+ AC_CHECK_HEADERS([libv4l1-videodev.h], , [have_v4l=no])
AC_CHECK_HEADERS([asm/types.h])
if test x"$hard_enable_v4l" = x"yes" && test x"$have_v4l" != x"yes"; then
AC_MSG_ERROR([Video4Linux support requested, but prerequisite headers not found.])
--- src/input/input_v4l.c 2011-10-05 22:44:39.000000000 +0200
+++ src/input/input_v4l.c 2011-11-16 15:35:43.075546420 +0100
@@ -47,7 +47,7 @@
*/
#define _LINUX_TIME_H

View File

@ -1,15 +0,0 @@
Index: src/libw32dll/wine/ldt_keeper.c
===================================================================
--- src/libw32dll/wine/ldt_keeper.c.orig
+++ src/libw32dll/wine/ldt_keeper.c
@@ -77,6 +77,10 @@
#ifdef __cplusplus
}
#endif
+#include <linux/version.h>
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,5,0)
+#define modify_ldt_ldt_s user_desc
+#endif
#else
#if defined(__NetBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__)
#include <machine/segments.h>

View File

@ -0,0 +1,32 @@
diff -uNr xine-lib-1.2.1.orig/m4/decoders.m4 xine-lib-1.2.1/m4/decoders.m4
--- xine-lib-1.2.1.orig/m4/decoders.m4 2012-02-04 01:41:43.000000000 +0100
+++ xine-lib-1.2.1/m4/decoders.m4 2012-05-21 22:46:39.470861703 +0200
@@ -85,9 +85,7 @@
AM_CONDITIONAL([WITH_EXTERNAL_FAAD], [test x"$have_external_faad" = x"yes"])
dnl ffmpeg external version required
- PKG_CHECK_MODULES([FFMPEG], [libavcodec >= 51.68.0])
PKG_CHECK_MODULES([AVUTIL], [libavutil >= 49.6.0])
- PKG_CHECK_MODULES([FFMPEG_POSTPROC], [libpostproc])
AC_DEFINE([HAVE_FFMPEG], 1, [Define this if you have ffmpeg library])
dnl Check presence of ffmpeg/avutil.h to see if it's old or new
diff -uNr xine-lib-1.2.1.orig/src/audio_dec/Makefile.am xine-lib-1.2.1/src/audio_dec/Makefile.am
--- xine-lib-1.2.1.orig/src/audio_dec/Makefile.am 2012-02-04 01:41:43.000000000 +0100
+++ xine-lib-1.2.1/src/audio_dec/Makefile.am 2012-05-22 20:37:48.863941984 +0200
@@ -49,7 +49,6 @@
xineplug_LTLIBRARIES = \
xineplug_decode_gsm610.la \
xineplug_decode_lpcm.la \
- xineplug_decode_dvaudio.la \
$(musepack_module) \
$(dts_module) \
$(mad_module) \
@@ -87,7 +86,3 @@
xineplug_decode_faad_la_DEPENDENCIES = $(FAAD_DEPS)
xineplug_decode_faad_la_LIBADD = $(XINE_LIB) $(LTLIBINTL) $(FAAD_LIBS) -lm
xineplug_decode_faad_la_CFLAGS = $(FAAD_CFLAGS)
-
-xineplug_decode_dvaudio_la_SOURCES = ff_dvaudio_decoder.c
-xineplug_decode_dvaudio_la_LIBADD = $(XINE_LIB) $(LTLIBINTL)
-xineplug_decode_dvaudio_la_CPPFLAGS = $(AM_CPPFLAGS) $(FFMPEG_CFLAGS)

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff