forked from pool/xine-lib
Accepting request 24887 from multimedia:xine
Copy from multimedia:xine/xine-lib based on submit request 24887 from user lnussel OBS-URL: https://build.opensuse.org/request/show/24887 OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xine-lib?expand=0&rev=27
This commit is contained in:
parent
7b7cbd6322
commit
944f0a6698
@ -20,7 +20,7 @@ SPU DVD subtitles. No legal expertise.
|
|||||||
CSS decoding needs extra library (libdvdcss), which is not part of SuSE Linux
|
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
|
Advanced users can build an RPM package and install also the additional
|
||||||
"xine-internal" rpm, which contains all protected codecs.
|
"libxine1-codecs" rpm, which contains all protected codecs.
|
||||||
|
|
||||||
See also
|
See also
|
||||||
http://www.opensuse.org/XINE#Legal_Matters
|
http://www.opensuse.org/XINE#Legal_Matters
|
||||||
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:688f2e99785c07468fa13f51a2c0be08682c5627036ba29f44f8c86f1221867a
|
|
||||||
size 22841
|
|
3
vdr-xine-0.9.3.diff.bz2
Normal file
3
vdr-xine-0.9.3.diff.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:9bda7583f46a039c70abb77360f84342125519a6497a50ccc0d19bc81934a6dd
|
||||||
|
size 25043
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:e680faac1958048403b71d5db1501dac7f6281e46fc18673584d748e70aaede7
|
|
||||||
size 5198657
|
|
@ -1,3 +0,0 @@
|
|||||||
version https://git-lfs.github.com/spec/v1
|
|
||||||
oid sha256:9fc252d06e5db24265c83076676bd1f1d0e0935732b9f21ec7fcaac35bf80a36
|
|
||||||
size 7382381
|
|
10
xine-lib-1.1.16.3-assert.patch
Normal file
10
xine-lib-1.1.16.3-assert.patch
Normal file
@ -0,0 +1,10 @@
|
|||||||
|
--- xine-lib-1.1.16.3.orig/src/audio_out/audio_alsa_out.c 2008-06-25 15:04:09.000000000 +0200
|
||||||
|
+++ xine-lib-1.1.16.3/src/audio_out/audio_alsa_out.c 2009-11-14 10:52:16.423781020 +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
|
310
xine-lib-1.1.16.3-cdda.diff
Normal file
310
xine-lib-1.1.16.3-cdda.diff
Normal file
@ -0,0 +1,310 @@
|
|||||||
|
diff -ur xine-lib-1.1.16.3.orig/src/demuxers/demux_cdda.c xine-lib-1.1.16.3/src/demuxers/demux_cdda.c
|
||||||
|
--- xine-lib-1.1.16.3.orig/src/demuxers/demux_cdda.c 2008-06-15 01:15:00.000000000 +0200
|
||||||
|
+++ xine-lib-1.1.16.3/src/demuxers/demux_cdda.c 2009-05-07 19:43:04.000000000 +0200
|
||||||
|
@@ -60,6 +60,7 @@
|
||||||
|
input_plugin_t *input;
|
||||||
|
int status;
|
||||||
|
|
||||||
|
+ int send_newpts;
|
||||||
|
int seek_flag; /* this is set when a seek just occurred */
|
||||||
|
} demux_cdda_t;
|
||||||
|
|
||||||
|
@@ -91,9 +92,9 @@
|
||||||
|
buf->extra_info->input_time = buf->pts / 90;
|
||||||
|
buf->decoder_flags |= BUF_FLAG_FRAME_END;
|
||||||
|
|
||||||
|
- if (this->seek_flag) {
|
||||||
|
- _x_demux_control_newpts(this->stream, buf->pts, BUF_FLAG_SEEK);
|
||||||
|
- this->seek_flag = 0;
|
||||||
|
+ if (this->send_newpts) {
|
||||||
|
+ _x_demux_control_newpts(this->stream, buf->pts, this->seek_flag);
|
||||||
|
+ this->send_newpts = this->seek_flag = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
this->audio_fifo->put (this->audio_fifo, buf);
|
||||||
|
@@ -146,9 +147,14 @@
|
||||||
|
this->input->seek(this->input, start_pos & ~3, SEEK_SET);
|
||||||
|
else
|
||||||
|
this->input->seek(this->input, start_time * CD_BYTES_PER_SECOND, SEEK_SET);
|
||||||
|
- this->seek_flag = 1;
|
||||||
|
+
|
||||||
|
this->status = DEMUX_OK;
|
||||||
|
- _x_demux_flush_engine (this->stream);
|
||||||
|
+
|
||||||
|
+ this->send_newpts = 1;
|
||||||
|
+ if (playing) {
|
||||||
|
+ this->seek_flag = BUF_FLAG_SEEK;
|
||||||
|
+ _x_demux_flush_engine (this->stream);
|
||||||
|
+ }
|
||||||
|
|
||||||
|
return this->status;
|
||||||
|
}
|
||||||
|
diff -ur xine-lib-1.1.16.3.orig/src/input/input_cdda.c xine-lib-1.1.16.3/src/input/input_cdda.c
|
||||||
|
--- xine-lib-1.1.16.3.orig/src/input/input_cdda.c 2009-02-17 03:55:21.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/input/input_cdda.c 2009-05-12 00:16:12.000000000 +0200
|
||||||
|
@@ -113,7 +113,7 @@
|
||||||
|
*************************************************************************/
|
||||||
|
|
||||||
|
#define MAX_TRACKS 99
|
||||||
|
-#define CACHED_FRAMES 500
|
||||||
|
+#define CACHED_FRAMES 100
|
||||||
|
|
||||||
|
typedef struct {
|
||||||
|
int start;
|
||||||
|
@@ -1433,6 +1433,73 @@
|
||||||
|
return err;
|
||||||
|
}
|
||||||
|
|
||||||
|
+static inline char *_cdda_append (/*const*/ char *first, const char *second)
|
||||||
|
+{
|
||||||
|
+ if (!first)
|
||||||
|
+ return strdup (second);
|
||||||
|
+
|
||||||
|
+ char *result = (char *) realloc (first, strlen (first) + strlen (second) + 1);
|
||||||
|
+ strcat (result, second);
|
||||||
|
+ return result;
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
+static void _cdda_parse_cddb_info (cdda_input_plugin_t *this, char *buffer, char **dtitle)
|
||||||
|
+{
|
||||||
|
+ /* buffer should be no more than 2048 bytes... */
|
||||||
|
+ char buf[2048];
|
||||||
|
+ int track_no;
|
||||||
|
+
|
||||||
|
+ if (sscanf (buffer, "DTITLE=%s", &buf[0]) == 1) {
|
||||||
|
+ char *pt = strchr (buffer, '=');
|
||||||
|
+ if (pt) {
|
||||||
|
+ ++pt;
|
||||||
|
+
|
||||||
|
+ *dtitle = _cdda_append (*dtitle, pt);
|
||||||
|
+ pt = strdup (*dtitle);
|
||||||
|
+
|
||||||
|
+ char *title = strstr (pt, " / ");
|
||||||
|
+ if (title)
|
||||||
|
+ {
|
||||||
|
+ *title = 0;
|
||||||
|
+ title += 3;
|
||||||
|
+ free (this->cddb.disc_artist);
|
||||||
|
+ this->cddb.disc_artist = strdup (pt);
|
||||||
|
+ }
|
||||||
|
+ else
|
||||||
|
+ title = pt;
|
||||||
|
+
|
||||||
|
+ free (this->cddb.disc_title);
|
||||||
|
+ this->cddb.disc_title = strdup (title);
|
||||||
|
+
|
||||||
|
+ free (pt);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+ else if (sscanf (buffer, "DYEAR=%s", &buf[0]) == 1) {
|
||||||
|
+ char *pt = strchr (buffer, '=');
|
||||||
|
+ if (pt && strlen (pt) == 5)
|
||||||
|
+ this->cddb.disc_year = strdup (pt + 1);
|
||||||
|
+ }
|
||||||
|
+ else if(sscanf(buffer, "DGENRE=%s", &buf[0]) == 1) {
|
||||||
|
+ char *pt = strchr(buffer, '=');
|
||||||
|
+ if (pt)
|
||||||
|
+ this->cddb.disc_category = strdup (pt + 1);
|
||||||
|
+ }
|
||||||
|
+ else if (sscanf (buffer, "TTITLE%d=%s", &track_no, &buf[0]) == 2) {
|
||||||
|
+ char *pt = strchr(buffer, '=');
|
||||||
|
+ this->cddb.track[track_no].title = _cdda_append (this->cddb.track[track_no].title, pt + 1);
|
||||||
|
+ }
|
||||||
|
+ else if (!strncmp (buffer, "EXTD=", 5))
|
||||||
|
+ {
|
||||||
|
+ if (!this->cddb.disc_year)
|
||||||
|
+ {
|
||||||
|
+ int nyear;
|
||||||
|
+ char *y = strstr (buffer, "YEAR:");
|
||||||
|
+ if (y && sscanf (y + 5, "%4d", &nyear) == 1)
|
||||||
|
+ asprintf (&this->cddb.disc_year, "%d", nyear);
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
/*
|
||||||
|
* Try to load cached cddb infos
|
||||||
|
*/
|
||||||
|
@@ -1465,82 +1532,16 @@
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
- char buffer[256], *ln;
|
||||||
|
- char buf[256];
|
||||||
|
- int tnum;
|
||||||
|
+ char buffer[2048], *ln;
|
||||||
|
char *dtitle = NULL;
|
||||||
|
|
||||||
|
- while ((ln = fgets(buffer, 255, fd)) != NULL) {
|
||||||
|
-
|
||||||
|
- buffer[strlen(buffer) - 1] = '\0';
|
||||||
|
-
|
||||||
|
- if (sscanf(buffer, "DTITLE=%s", &buf[0]) == 1) {
|
||||||
|
- char *pt, *artist, *title;
|
||||||
|
-
|
||||||
|
- pt = strchr(buffer, '=');
|
||||||
|
- if (pt) {
|
||||||
|
- pt++;
|
||||||
|
-
|
||||||
|
- if (dtitle != NULL)
|
||||||
|
- {
|
||||||
|
- dtitle = (char *) realloc(dtitle, strlen(dtitle) + strlen(pt) + 1);
|
||||||
|
- strcat(dtitle, pt);
|
||||||
|
- pt = dtitle;
|
||||||
|
- }
|
||||||
|
- dtitle = strdup(pt);
|
||||||
|
-
|
||||||
|
- artist = pt;
|
||||||
|
- title = strstr(pt, " / ");
|
||||||
|
- if (title) {
|
||||||
|
- *title++ = '\0';
|
||||||
|
- title += 2;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- title = artist;
|
||||||
|
- artist = NULL;
|
||||||
|
- }
|
||||||
|
+ while ((ln = fgets(buffer, sizeof (buffer) - 1, fd)) != NULL) {
|
||||||
|
|
||||||
|
- if (artist)
|
||||||
|
- this->cddb.disc_artist = strdup(artist);
|
||||||
|
+ int length = strlen (buffer);
|
||||||
|
+ if (length && buffer[length - 1] == '\n')
|
||||||
|
+ buffer[length - 1] = '\0';
|
||||||
|
|
||||||
|
- this->cddb.disc_title = strdup(title);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else if (sscanf(buffer, "DYEAR=%s", &buf[0]) == 1) {
|
||||||
|
- char *pt;
|
||||||
|
-
|
||||||
|
- pt = strrchr(buffer, '=');
|
||||||
|
- pt++;
|
||||||
|
- if (pt != NULL && strlen(pt) == 4)
|
||||||
|
- this->cddb.disc_year = strdup(pt);
|
||||||
|
- }
|
||||||
|
- else if (sscanf(buffer, "TTITLE%d=%s", &tnum, &buf[0]) == 2) {
|
||||||
|
- char *pt;
|
||||||
|
-
|
||||||
|
- pt = strchr(buffer, '=');
|
||||||
|
- if (pt)
|
||||||
|
- pt++;
|
||||||
|
- if (this->cddb.track[tnum].title == NULL)
|
||||||
|
- this->cddb.track[tnum].title = strdup(pt);
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- this->cddb.track[tnum].title
|
||||||
|
- = (char *) realloc(this->cddb.track[tnum].title, strlen(this->cddb.track[tnum].title) + strlen(pt) + 1);
|
||||||
|
- strcat(this->cddb.track[tnum].title, pt);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- if (!strncmp(buffer, "EXTD=", 5)) {
|
||||||
|
- char *y;
|
||||||
|
- int nyear;
|
||||||
|
-
|
||||||
|
- y = strstr(buffer, "YEAR:");
|
||||||
|
- if (y && this->cddb.disc_year == NULL) {
|
||||||
|
- if (sscanf(y+5, "%4d", &nyear) == 1)
|
||||||
|
- asprintf(&this->cddb.disc_year, "%d", nyear);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ _cdda_parse_cddb_info (this, buffer, &dtitle);
|
||||||
|
}
|
||||||
|
fclose(fd);
|
||||||
|
free(dtitle);
|
||||||
|
@@ -1803,82 +1804,13 @@
|
||||||
|
memset(&buffercache, 0, sizeof(buffercache));
|
||||||
|
|
||||||
|
while (strcmp(buffer, ".")) {
|
||||||
|
- char buf[2048];
|
||||||
|
- int tnum;
|
||||||
|
size_t bufsize = strlen(buffercache);
|
||||||
|
|
||||||
|
memset(&buffer, 0, sizeof(buffer));
|
||||||
|
_cdda_cddb_socket_read(this, buffer, sizeof(buffer) - 1);
|
||||||
|
snprintf(buffercache + bufsize, sizeof(buffercache) - bufsize, "%s\n", buffer);
|
||||||
|
|
||||||
|
- if (sscanf(buffer, "DTITLE=%s", &buf[0]) == 1) {
|
||||||
|
- char *pt, *artist, *title;
|
||||||
|
-
|
||||||
|
- pt = strrchr(buffer, '=');
|
||||||
|
- if (pt) {
|
||||||
|
- pt++;
|
||||||
|
-
|
||||||
|
- if (dtitle != NULL)
|
||||||
|
- {
|
||||||
|
- dtitle = (char *) realloc(dtitle, strlen(dtitle) + strlen(pt) + 1);
|
||||||
|
- strcat(dtitle, pt);
|
||||||
|
- pt = dtitle;
|
||||||
|
- }
|
||||||
|
- dtitle = strdup(pt);
|
||||||
|
-
|
||||||
|
- artist = pt;
|
||||||
|
- title = strstr(pt, " / ");
|
||||||
|
- if (title) {
|
||||||
|
- *title++ = '\0';
|
||||||
|
- title += 2;
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- title = artist;
|
||||||
|
- artist = NULL;
|
||||||
|
- }
|
||||||
|
-
|
||||||
|
- if (artist) {
|
||||||
|
- this->cddb.disc_artist = strdup(artist);
|
||||||
|
- }
|
||||||
|
- this->cddb.disc_title = strdup(title);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else if(sscanf(buffer, "DYEAR=%s", &buf[0]) == 1) {
|
||||||
|
- char *pt;
|
||||||
|
-
|
||||||
|
- pt = strrchr(buffer, '=');
|
||||||
|
- pt++;
|
||||||
|
- if (pt != NULL && strlen(pt) == 4)
|
||||||
|
- this->cddb.disc_year = strdup(pt);
|
||||||
|
- }
|
||||||
|
- else if (sscanf(buffer, "TTITLE%d=%s", &tnum, &buf[0]) == 2) {
|
||||||
|
- char *pt;
|
||||||
|
-
|
||||||
|
- pt = strrchr(buffer, '=');
|
||||||
|
- if (pt) {
|
||||||
|
- pt++;
|
||||||
|
- if (this->cddb.track[tnum].title == NULL)
|
||||||
|
- this->cddb.track[tnum].title = strdup(pt);
|
||||||
|
- else
|
||||||
|
- {
|
||||||
|
- this->cddb.track[tnum].title
|
||||||
|
- = (char *) realloc(this->cddb.track[tnum].title, strlen(this->cddb.track[tnum].title) + strlen(pt) + 1);
|
||||||
|
- strcat(this->cddb.track[tnum].title, pt);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- else {
|
||||||
|
- if (!strncmp(buffer, "EXTD=", 5)) {
|
||||||
|
- char *y;
|
||||||
|
- int nyear;
|
||||||
|
-
|
||||||
|
- y = strstr(buffer, "YEAR:");
|
||||||
|
- if (y && this->cddb.disc_year == NULL) {
|
||||||
|
- if (sscanf(y+5, "%4d", &nyear) == 1)
|
||||||
|
- asprintf(&this->cddb.disc_year, "%d", nyear);
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
- }
|
||||||
|
+ _cdda_parse_cddb_info (this, buffer, &dtitle);
|
||||||
|
}
|
||||||
|
free(dtitle);
|
||||||
|
|
||||||
|
@@ -2491,6 +2423,9 @@
|
||||||
|
}
|
||||||
|
lprintf("Track %d Title: %s\n", this->track+1, pt);
|
||||||
|
|
||||||
|
+ char tracknum[4];
|
||||||
|
+ snprintf(tracknum, 4, "%d", this->track+1);
|
||||||
|
+ _x_meta_info_set_utf8(this->stream, XINE_META_INFO_TRACK_NUMBER, tracknum);
|
||||||
|
_x_meta_info_set_utf8(this->stream, XINE_META_INFO_TITLE, pt);
|
||||||
|
}
|
||||||
|
|
3
xine-lib-1.1.16.3-crippled.tar.bz2
Normal file
3
xine-lib-1.1.16.3-crippled.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:7ed20d7e52e8e8db1a535d628d7afc41ed3665a9d23190ced8cbd9dca667be91
|
||||||
|
size 5073254
|
@ -8,11 +8,9 @@ Subject: [PATCH] xine-lib-demuxcheckfor_mad_ffmpeg-LOCAL.diff
|
|||||||
src/xine-engine/load_plugins.c | 17 ++++++++++++++++-
|
src/xine-engine/load_plugins.c | 17 ++++++++++++++++-
|
||||||
1 files changed, 16 insertions(+), 1 deletions(-)
|
1 files changed, 16 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
diff --git a/src/xine-engine/load_plugins.c b/src/xine-engine/load_plugins.c
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/load_plugins.c 2009-02-10 18:21:07.000000000 +0100
|
||||||
index a710927..e507c07 100644
|
+++ xine-lib-1.1.16.3/src/xine-engine/load_plugins.c 2009-11-14 11:00:26.719796977 +0100
|
||||||
--- a/src/xine-engine/load_plugins.c
|
@@ -2487,9 +2487,18 @@
|
||||||
+++ b/src/xine-engine/load_plugins.c
|
|
||||||
@@ -2481,9 +2481,18 @@ char *xine_get_file_extensions (xine_t *self) {
|
|
||||||
|
|
||||||
plugin_catalog_t *catalog = self->plugin_catalog;
|
plugin_catalog_t *catalog = self->plugin_catalog;
|
||||||
int list_id;
|
int list_id;
|
||||||
@ -31,7 +29,7 @@ index a710927..e507c07 100644
|
|||||||
/* calc length of output string and create an array of strings to
|
/* calc length of output string and create an array of strings to
|
||||||
concatenate */
|
concatenate */
|
||||||
size_t len = 0;
|
size_t len = 0;
|
||||||
@@ -2495,7 +2504,13 @@ char *xine_get_file_extensions (xine_t *self) {
|
@@ -2501,7 +2510,13 @@
|
||||||
if (node->plugin_class || _load_plugin_class(self, node, NULL)) {
|
if (node->plugin_class || _load_plugin_class(self, node, NULL)) {
|
||||||
demux_class_t *const cls = (demux_class_t *)node->plugin_class;
|
demux_class_t *const cls = (demux_class_t *)node->plugin_class;
|
||||||
if( (extensions[list_id] = cls->get_extensions(cls)) != NULL )
|
if( (extensions[list_id] = cls->get_extensions(cls)) != NULL )
|
||||||
@ -46,6 +44,3 @@ index a710927..e507c07 100644
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
--
|
|
||||||
1.5.6
|
|
||||||
|
|
22
xine-lib-1.1.16.3-glitch-free-pulseaudio.patch
Normal file
22
xine-lib-1.1.16.3-glitch-free-pulseaudio.patch
Normal file
@ -0,0 +1,22 @@
|
|||||||
|
diff -uNr xine-lib-1.1.15.orig/src/xine-engine/audio_out.c xine-lib-1.1.15/src/xine-engine/audio_out.c
|
||||||
|
--- xine-lib-1.1.15.orig/src/xine-engine/audio_out.c 2008-07-10 18:19:10.000000000 +0200
|
||||||
|
+++ xine-lib-1.1.15/src/xine-engine/audio_out.c 2009-01-10 21:57:20.000000000 +0100
|
||||||
|
@@ -1151,8 +1151,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);
|
||||||
|
|
@ -7,11 +7,11 @@ Subject: [PATCH] ia64 is not alpha
|
|||||||
configure.ac | 5 ++++-
|
configure.ac | 5 ++++-
|
||||||
1 files changed, 4 insertions(+), 1 deletions(-)
|
1 files changed, 4 insertions(+), 1 deletions(-)
|
||||||
|
|
||||||
Index: xine-lib-1.1.16.1/configure.ac
|
Index: xine-lib-1.1.16.3/configure.ac
|
||||||
===================================================================
|
===================================================================
|
||||||
--- xine-lib-1.1.16.1.orig/configure.ac
|
--- xine-lib-1.1.16.3.orig/configure.ac 2009-04-02 20:44:45.000000000 +0200
|
||||||
+++ xine-lib-1.1.16.1/configure.ac
|
+++ xine-lib-1.1.16.3/configure.ac 2009-11-14 10:45:11.618782275 +0100
|
||||||
@@ -2311,10 +2311,13 @@ case "$host_or_hostalias" in
|
@@ -2328,10 +2328,13 @@
|
||||||
mips-*)
|
mips-*)
|
||||||
AC_DEFINE_UNQUOTED(FPM_MIPS,,[Define to select libmad fixed point arithmetic implementation])
|
AC_DEFINE_UNQUOTED(FPM_MIPS,,[Define to select libmad fixed point arithmetic implementation])
|
||||||
;;
|
;;
|
@ -1,8 +1,7 @@
|
|||||||
Index: xine-lib-1.1.12/configure.ac
|
diff -uNr xine-lib-1.1.16.3.orig/configure.ac xine-lib-1.1.16.3/configure.ac
|
||||||
===================================================================
|
--- xine-lib-1.1.16.3.orig/configure.ac 2009-04-02 20:44:45.000000000 +0200
|
||||||
--- xine-lib-1.1.12.orig/configure.ac
|
+++ xine-lib-1.1.16.3/configure.ac 2009-11-14 10:39:51.933031529 +0100
|
||||||
+++ xine-lib-1.1.12/configure.ac
|
@@ -2553,6 +2553,28 @@
|
||||||
@@ -2560,6 +2560,28 @@ fi
|
|
||||||
|
|
||||||
AM_CONDITIONAL(HAVE_W32DLL, test "x$enable_w32dll" != "xno")
|
AM_CONDITIONAL(HAVE_W32DLL, test "x$enable_w32dll" != "xno")
|
||||||
|
|
||||||
@ -31,53 +30,9 @@ Index: xine-lib-1.1.12/configure.ac
|
|||||||
|
|
||||||
dnl ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
dnl some include paths ( !!! DO NOT REMOVE !!! )
|
dnl some include paths ( !!! DO NOT REMOVE !!! )
|
||||||
Index: xine-lib-1.1.12/src/xine-engine/xine.c
|
diff -uNr xine-lib-1.1.16.3.orig/src/xine-engine/audio_decoder.c xine-lib-1.1.16.3/src/xine-engine/audio_decoder.c
|
||||||
===================================================================
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/audio_decoder.c 2009-02-10 18:32:23.000000000 +0100
|
||||||
--- xine-lib-1.1.12.orig/src/xine-engine/xine.c
|
+++ xine-lib-1.1.16.3/src/xine-engine/audio_decoder.c 2009-11-14 10:39:51.934031409 +0100
|
||||||
+++ xine-lib-1.1.12/src/xine-engine/xine.c
|
|
||||||
@@ -1780,6 +1780,15 @@ void xine_init (xine_t *this) {
|
|
||||||
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();
|
|
||||||
Index: xine-lib-1.1.12/src/xine-engine/video_decoder.c
|
|
||||||
===================================================================
|
|
||||||
--- xine-lib-1.1.12.orig/src/xine-engine/video_decoder.c
|
|
||||||
+++ xine-lib-1.1.12/src/xine-engine/video_decoder.c
|
|
||||||
@@ -37,6 +37,7 @@
|
|
||||||
|
|
||||||
#include "xine_internal.h"
|
|
||||||
#include "xineutils.h"
|
|
||||||
+#include "install_plugins_helper.h"
|
|
||||||
#include <sched.h>
|
|
||||||
|
|
||||||
#define SPU_SLEEP_INTERVAL (90000/2)
|
|
||||||
@@ -376,6 +377,10 @@ static void *video_decoder_loop (void *s
|
|
||||||
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)
|
|
||||||
Index: xine-lib-1.1.12/src/xine-engine/audio_decoder.c
|
|
||||||
===================================================================
|
|
||||||
--- xine-lib-1.1.12.orig/src/xine-engine/audio_decoder.c
|
|
||||||
+++ xine-lib-1.1.12/src/xine-engine/audio_decoder.c
|
|
||||||
@@ -41,6 +41,7 @@
|
@@ -41,6 +41,7 @@
|
||||||
|
|
||||||
#include "xine_internal.h"
|
#include "xine_internal.h"
|
||||||
@ -86,7 +41,7 @@ Index: xine-lib-1.1.12/src/xine-engine/audio_decoder.c
|
|||||||
|
|
||||||
static void *audio_decoder_loop (void *stream_gen) {
|
static void *audio_decoder_loop (void *stream_gen) {
|
||||||
|
|
||||||
@@ -339,6 +340,10 @@ static void *audio_decoder_loop (void *s
|
@@ -341,6 +342,10 @@
|
||||||
|
|
||||||
_x_stream_info_set(stream, XINE_STREAM_INFO_AUDIO_HANDLED,
|
_x_stream_info_set(stream, XINE_STREAM_INFO_AUDIO_HANDLED,
|
||||||
(stream->audio_decoder_plugin != NULL));
|
(stream->audio_decoder_plugin != NULL));
|
||||||
@ -97,73 +52,9 @@ Index: xine-lib-1.1.12/src/xine-engine/audio_decoder.c
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (audio_type != stream->audio_type) {
|
if (audio_type != stream->audio_type) {
|
||||||
Index: xine-lib-1.1.12/src/xine-engine/Makefile.am
|
diff -uNr xine-lib-1.1.16.3.orig/src/xine-engine/install_plugins_helper.c xine-lib-1.1.16.3/src/xine-engine/install_plugins_helper.c
|
||||||
===================================================================
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/install_plugins_helper.c 1970-01-01 01:00:00.000000000 +0100
|
||||||
--- xine-lib-1.1.12.orig/src/xine-engine/Makefile.am
|
+++ xine-lib-1.1.16.3/src/xine-engine/install_plugins_helper.c 2009-11-14 10:39:51.935031218 +0100
|
||||||
+++ xine-lib-1.1.12/src/xine-engine/Makefile.am
|
|
||||||
@@ -19,7 +19,7 @@ libxine_la_SOURCES = xine.c metronom.c c
|
|
||||||
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 @@ xineinclude_HEADERS = buffer.h metronom
|
|
||||||
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
|
|
||||||
|
|
||||||
Index: xine-lib-1.1.12/src/xine-engine/install_plugins_helper.h
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ xine-lib-1.1.12/src/xine-engine/install_plugins_helper.h
|
|
||||||
@@ -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
|
|
||||||
Index: xine-lib-1.1.12/src/xine-engine/install_plugins_helper.c
|
|
||||||
===================================================================
|
|
||||||
--- /dev/null
|
|
||||||
+++ xine-lib-1.1.12/src/xine-engine/install_plugins_helper.c
|
|
||||||
@@ -0,0 +1,106 @@
|
@@ -0,0 +1,106 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2007 Sascha Sommer
|
+ * Copyright (C) 2007 Sascha Sommer
|
||||||
@ -271,3 +162,105 @@ Index: xine-lib-1.1.12/src/xine-engine/install_plugins_helper.c
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
+
|
+
|
||||||
|
diff -uNr xine-lib-1.1.16.3.orig/src/xine-engine/install_plugins_helper.h xine-lib-1.1.16.3/src/xine-engine/install_plugins_helper.h
|
||||||
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/install_plugins_helper.h 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/xine-engine/install_plugins_helper.h 2009-11-14 10:39:51.935031218 +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.16.3.orig/src/xine-engine/Makefile.am xine-lib-1.1.16.3/src/xine-engine/Makefile.am
|
||||||
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/Makefile.am 2008-07-13 00:23:52.000000000 +0200
|
||||||
|
+++ xine-lib-1.1.16.3/src/xine-engine/Makefile.am 2009-11-14 10:39:51.935031218 +0100
|
||||||
|
@@ -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
|
||||||
|
|
||||||
|
diff -uNr xine-lib-1.1.16.3.orig/src/xine-engine/video_decoder.c xine-lib-1.1.16.3/src/xine-engine/video_decoder.c
|
||||||
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/video_decoder.c 2009-02-10 18:32:24.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/xine-engine/video_decoder.c 2009-11-14 10:39:51.934031409 +0100
|
||||||
|
@@ -37,6 +37,7 @@
|
||||||
|
|
||||||
|
#include "xine_internal.h"
|
||||||
|
#include "xineutils.h"
|
||||||
|
+#include "install_plugins_helper.h"
|
||||||
|
#include <sched.h>
|
||||||
|
|
||||||
|
#define SPU_SLEEP_INTERVAL (90000/2)
|
||||||
|
@@ -376,6 +377,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.16.3.orig/src/xine-engine/xine.c xine-lib-1.1.16.3/src/xine-engine/xine.c
|
||||||
|
--- xine-lib-1.1.16.3.orig/src/xine-engine/xine.c 2009-02-18 12:37:43.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/xine-engine/xine.c 2009-11-14 10:39:51.934031409 +0100
|
||||||
|
@@ -1773,6 +1773,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();
|
@ -1,8 +1,7 @@
|
|||||||
Index: configure.ac
|
diff -uNr xine-lib-1.1.16.3.orig/configure xine-lib-1.1.16.3/configure
|
||||||
================================================================================
|
--- xine-lib-1.1.16.3.orig/configure 2009-04-02 20:46:08.000000000 +0200
|
||||||
--- configure
|
+++ xine-lib-1.1.16.3/configure 2009-11-14 11:11:36.154780901 +0100
|
||||||
+++ configure
|
@@ -48161,6 +48161,7 @@
|
||||||
@@ -54785,6 +54785,7 @@
|
|
||||||
echo " * video decoder plugins:"
|
echo " * video decoder plugins:"
|
||||||
echo " - MPEG 1,2 - Amiga Bitplane"
|
echo " - MPEG 1,2 - Amiga Bitplane"
|
||||||
echo " - Raw RGB - Raw YUV"
|
echo " - Raw RGB - Raw YUV"
|
||||||
@ -10,9 +9,10 @@ Index: configure.ac
|
|||||||
if test "x$with_external_ffmpeg" = "xyes"; then
|
if test "x$with_external_ffmpeg" = "xyes"; then
|
||||||
echo " - ffmpeg (external library):"
|
echo " - ffmpeg (external library):"
|
||||||
else
|
else
|
||||||
--- configure.ac
|
diff -uNr xine-lib-1.1.16.3.orig/configure.ac xine-lib-1.1.16.3/configure.ac
|
||||||
+++ configure.ac
|
--- xine-lib-1.1.16.3.orig/configure.ac 2009-04-02 20:44:45.000000000 +0200
|
||||||
@@ -1062,6 +1062,28 @@
|
+++ xine-lib-1.1.16.3/configure.ac 2009-11-14 11:11:36.156781247 +0100
|
||||||
|
@@ -1075,6 +1075,28 @@
|
||||||
AC_SUBST([SDL_LIBS])
|
AC_SUBST([SDL_LIBS])
|
||||||
|
|
||||||
dnl ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
@ -41,7 +41,7 @@ Index: configure.ac
|
|||||||
dnl check for Libstk
|
dnl check for Libstk
|
||||||
dnl ---------------------------------------------
|
dnl ---------------------------------------------
|
||||||
|
|
||||||
@@ -2775,6 +2797,7 @@
|
@@ -2760,6 +2782,7 @@
|
||||||
src/libxineadec/gsm610/Makefile
|
src/libxineadec/gsm610/Makefile
|
||||||
src/libxineadec/nosefart/Makefile
|
src/libxineadec/nosefart/Makefile
|
||||||
src/libreal/Makefile
|
src/libreal/Makefile
|
||||||
@ -49,7 +49,7 @@ Index: configure.ac
|
|||||||
src/post/Makefile
|
src/post/Makefile
|
||||||
src/post/planar/Makefile
|
src/post/planar/Makefile
|
||||||
src/post/goom/Makefile
|
src/post/goom/Makefile
|
||||||
@@ -2962,6 +2985,9 @@
|
@@ -2946,6 +2969,9 @@
|
||||||
dnl audio decoders
|
dnl audio decoders
|
||||||
echo " * audio decoder plugins:"
|
echo " * audio decoder plugins:"
|
||||||
echo " - GSM 06.10 - linear PCM"
|
echo " - GSM 06.10 - linear PCM"
|
||||||
@ -59,19 +59,20 @@ Index: configure.ac
|
|||||||
if test "x$with_external_ffmpeg" = "xyes"; then
|
if test "x$with_external_ffmpeg" = "xyes"; then
|
||||||
echo " - ffmpeg (external library):"
|
echo " - ffmpeg (external library):"
|
||||||
else
|
else
|
||||||
--- src/Makefile.am
|
diff -uNr xine-lib-1.1.16.3.orig/src/Makefile.am xine-lib-1.1.16.3/src/Makefile.am
|
||||||
+++ src/Makefile.am
|
--- xine-lib-1.1.16.3.orig/src/Makefile.am 2009-02-13 18:52:47.000000000 +0100
|
||||||
@@ -25,6 +25,7 @@
|
+++ xine-lib-1.1.16.3/src/Makefile.am 2009-11-14 11:11:36.156781247 +0100
|
||||||
|
@@ -26,5 +26,6 @@
|
||||||
libreal \
|
libreal \
|
||||||
libfaad \
|
libfaad \
|
||||||
libmusepack \
|
libmusepack \
|
||||||
+ mjpeg \
|
+ mjpeg \
|
||||||
post \
|
post \
|
||||||
combined \
|
combined
|
||||||
vdr
|
diff -uNr xine-lib-1.1.16.3.orig/src/Makefile.in xine-lib-1.1.16.3/src/Makefile.in
|
||||||
--- src/Makefile.in
|
--- xine-lib-1.1.16.3.orig/src/Makefile.in 2009-04-02 20:45:50.000000000 +0200
|
||||||
+++ src/Makefile.in
|
+++ xine-lib-1.1.16.3/src/Makefile.in 2009-11-14 11:11:36.157781105 +0100
|
||||||
@@ -411,6 +411,7 @@
|
@@ -414,6 +414,7 @@
|
||||||
libreal \
|
libreal \
|
||||||
libfaad \
|
libfaad \
|
||||||
libmusepack \
|
libmusepack \
|
||||||
@ -79,8 +80,9 @@ Index: configure.ac
|
|||||||
post \
|
post \
|
||||||
combined
|
combined
|
||||||
|
|
||||||
--- src/mjpeg/Makefile.am
|
diff -uNr xine-lib-1.1.16.3.orig/src/mjpeg/Makefile.am xine-lib-1.1.16.3/src/mjpeg/Makefile.am
|
||||||
+++ src/mjpeg/Makefile.am
|
--- xine-lib-1.1.16.3.orig/src/mjpeg/Makefile.am 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/mjpeg/Makefile.am 2009-11-14 11:11:36.157781105 +0100
|
||||||
@@ -0,0 +1,9 @@
|
@@ -0,0 +1,9 @@
|
||||||
+include $(top_srcdir)/misc/Makefile.common
|
+include $(top_srcdir)/misc/Makefile.common
|
||||||
+
|
+
|
||||||
@ -91,8 +93,9 @@ Index: configure.ac
|
|||||||
+xineplug_decode_mjpeg_la_CFLAGS = $(VISIBILITY_FLAG)
|
+xineplug_decode_mjpeg_la_CFLAGS = $(VISIBILITY_FLAG)
|
||||||
+xineplug_decode_mjpeg_la_LDFLAGS = $(xineplug_ldflags)
|
+xineplug_decode_mjpeg_la_LDFLAGS = $(xineplug_ldflags)
|
||||||
+endif
|
+endif
|
||||||
--- src/mjpeg/Makefile.in
|
diff -uNr xine-lib-1.1.16.3.orig/src/mjpeg/Makefile.in xine-lib-1.1.16.3/src/mjpeg/Makefile.in
|
||||||
+++ src/mjpeg/Makefile.in
|
--- xine-lib-1.1.16.3.orig/src/mjpeg/Makefile.in 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/mjpeg/Makefile.in 2009-11-14 11:11:36.158781034 +0100
|
||||||
@@ -0,0 +1,751 @@
|
@@ -0,0 +1,751 @@
|
||||||
+# Makefile.in generated by automake 1.10 from Makefile.am.
|
+# Makefile.in generated by automake 1.10 from Makefile.am.
|
||||||
+# @configure_input@
|
+# @configure_input@
|
||||||
@ -845,8 +848,9 @@ Index: configure.ac
|
|||||||
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
|
||||||
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
+# Otherwise a system limit (for SysV at least) may be exceeded.
|
||||||
+.NOEXPORT:
|
+.NOEXPORT:
|
||||||
--- src/mjpeg/xine_mjpeg_decoder.c
|
diff -uNr xine-lib-1.1.16.3.orig/src/mjpeg/xine_mjpeg_decoder.c xine-lib-1.1.16.3/src/mjpeg/xine_mjpeg_decoder.c
|
||||||
+++ src/mjpeg/xine_mjpeg_decoder.c
|
--- xine-lib-1.1.16.3.orig/src/mjpeg/xine_mjpeg_decoder.c 1970-01-01 01:00:00.000000000 +0100
|
||||||
|
+++ xine-lib-1.1.16.3/src/mjpeg/xine_mjpeg_decoder.c 2009-11-14 11:11:36.158781034 +0100
|
||||||
@@ -0,0 +1,397 @@
|
@@ -0,0 +1,397 @@
|
||||||
+/*
|
+/*
|
||||||
+ * Copyright (C) 2007 Marcus Meissner
|
+ * Copyright (C) 2007 Marcus Meissner
|
3
xine-lib-1.1.16.3.tar.bz2
Normal file
3
xine-lib-1.1.16.3.tar.bz2
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
version https://git-lfs.github.com/spec/v1
|
||||||
|
oid sha256:d25a241efa55dc7d8f482336efa8bb7b9bb9d69b6df8a8a37f2660948fd67b52
|
||||||
|
size 7468182
|
@ -1,22 +0,0 @@
|
|||||||
Index: xine-lib-1.1.16.1/src/demuxers/demux_4xm.c
|
|
||||||
===================================================================
|
|
||||||
--- xine-lib-1.1.16.1.orig/src/demuxers/demux_4xm.c
|
|
||||||
+++ xine-lib-1.1.16.1/src/demuxers/demux_4xm.c
|
|
||||||
@@ -190,8 +190,16 @@ static int open_fourxm_file(demux_fourxm
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
const uint32_t current_track = _X_LE_32(&header[i + 8]);
|
|
||||||
- if (current_track + 1 > fourxm->track_count) {
|
|
||||||
+ if(current_track >= UINT_MAX / sizeof(audio_track_t) - 1){
|
|
||||||
+ free(header);
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
+ if (current_track >= fourxm->track_count) {
|
|
||||||
fourxm->track_count = current_track + 1;
|
|
||||||
+ if (!fourxm->track_count || fourxm->track_count >= UINT_MAX / sizeof(audio_track_t)) {
|
|
||||||
+ free(header);
|
|
||||||
+ return 0;
|
|
||||||
+ }
|
|
||||||
fourxm->tracks = realloc(fourxm->tracks,
|
|
||||||
fourxm->track_count * sizeof(audio_track_t));
|
|
||||||
if (!fourxm->tracks) {
|
|
@ -1,12 +0,0 @@
|
|||||||
Index: xine-lib-1.1.11/src/audio_out/audio_alsa_out.c
|
|
||||||
===================================================================
|
|
||||||
--- xine-lib-1.1.11.orig/src/audio_out/audio_alsa_out.c
|
|
||||||
+++ xine-lib-1.1.11/src/audio_out/audio_alsa_out.c
|
|
||||||
@@ -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
|
|
122
xine-lib-libdvdread_udf.diff
Normal file
122
xine-lib-libdvdread_udf.diff
Normal file
@ -0,0 +1,122 @@
|
|||||||
|
# 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>
|
||||||
|
+#ifndef __WIN32__
|
||||||
|
+#include <fnmatch.h>
|
||||||
|
+#endif
|
||||||
|
|
||||||
|
#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,
|
||||||
|
@@ -774,7 +780,9 @@ static int UDFFindPartition( dvd_reader_
|
||||||
|
return part->valid;
|
||||||
|
}
|
||||||
|
|
||||||
|
-uint32_t UDFFindFile( dvd_reader_t *device, char *filename,
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+static uint32_t UDFFindFileReal( dvd_reader_t *device, char *filename,
|
||||||
|
uint32_t *filesize )
|
||||||
|
{
|
||||||
|
uint8_t LogBlock_base[ DVD_VIDEO_LB_LEN + 2048 ];
|
||||||
|
@@ -856,6 +864,84 @@ uint32_t UDFFindFile( dvd_reader_t *devi
|
||||||
|
return partition.Start + File.Location;
|
||||||
|
}
|
||||||
|
|
||||||
|
+/**
|
||||||
|
+ * Get the offset from the ifo files to allow playback of DVDs
|
||||||
|
+ * with a deliberately broken UDF file system (aka DVD-Movie-Protect).
|
||||||
|
+ * When the file is not an IFO or VOB, it calls the real UDF routine.
|
||||||
|
+ */
|
||||||
|
+uint32_t UDFFindFile( dvd_reader_t *device, char *filename,
|
||||||
|
+ uint32_t *filesize )
|
||||||
|
+{
|
||||||
|
+#ifndef __WIN32__
|
||||||
|
+ if (!fnmatch("/VIDEO_TS/VTS_[0-9][0-9]_[0-9].???", filename, FNM_PATHNAME)) {
|
||||||
|
+#else
|
||||||
|
+ if (strlen("/VIDEO_TS/VTS_01_1.VOB") == strlen(filename)
|
||||||
|
+ && !strncmp(filename, "/VIDEO_TS/VTS_", strlen("/VIDEO_TS/VTS_")) ) {
|
||||||
|
+#endif
|
||||||
|
+ size_t len = strlen(filename);
|
||||||
|
+ char *extension = &filename[len-3];
|
||||||
|
+ if (!strcmp(extension, "IFO") || !strcmp(extension, "VOB")) {
|
||||||
|
+ int title = atoi(&filename[len-8]);
|
||||||
|
+ int part = atoi(&filename[len-5]);
|
||||||
|
+
|
||||||
|
+ ifo_handle_t *ifo_handle = ifoOpen(device, 0);
|
||||||
|
+ if (0 == ifo_handle)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ uint32_t tmp_filesize;
|
||||||
|
+ uint32_t offset = UDFFindFileReal(device, "/VIDEO_TS/VIDEO_TS.IFO", &tmp_filesize);
|
||||||
|
+
|
||||||
|
+ int i;
|
||||||
|
+ for (i=0; i<ifo_handle->tt_srpt->nr_of_srpts; i++)
|
||||||
|
+ if (title == ifo_handle->tt_srpt->title[i].title_set_nr)
|
||||||
|
+ break;
|
||||||
|
+
|
||||||
|
+ if (i == ifo_handle->tt_srpt->nr_of_srpts) {
|
||||||
|
+ /* not found */
|
||||||
|
+ ifoClose(ifo_handle);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ offset += ifo_handle->tt_srpt->title[i].title_set_sector;
|
||||||
|
+ ifoClose(ifo_handle);
|
||||||
|
+
|
||||||
|
+ if (!strcmp(extension, "VOB")) {
|
||||||
|
+ ifo_handle = ifoOpen(device, title);
|
||||||
|
+ if (0 == ifo_handle)
|
||||||
|
+ return 0;
|
||||||
|
+
|
||||||
|
+ switch(part) {
|
||||||
|
+ case 0:
|
||||||
|
+ if (0 == ifo_handle->vtsi_mat->vtsm_vobs) {
|
||||||
|
+ ifoClose(ifo_handle);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ offset += ifo_handle->vtsi_mat->vtsm_vobs;
|
||||||
|
+ break;
|
||||||
|
+ case 1:
|
||||||
|
+ if (0 == ifo_handle->vtsi_mat->vtstt_vobs) {
|
||||||
|
+ ifoClose(ifo_handle);
|
||||||
|
+ return 0;
|
||||||
|
+ }
|
||||||
|
+ offset += ifo_handle->vtsi_mat->vtstt_vobs;
|
||||||
|
+ break;
|
||||||
|
+ default: /* can't get other parts (also no need to) */
|
||||||
|
+ offset = 0;
|
||||||
|
+ break;
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ ifoClose(ifo_handle);
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+
|
||||||
|
+ *filesize = 1000000; /* File size unknown */
|
||||||
|
+ if (offset != 0)
|
||||||
|
+ return offset;
|
||||||
|
+ }
|
||||||
|
+ }
|
||||||
|
+
|
||||||
|
+ return UDFFindFileReal( device, filename, filesize);
|
||||||
|
+}
|
||||||
|
+
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
@ -1,3 +1,38 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Wed Nov 18 15:11:00 UTC 2009 - lnussel@suse.de
|
||||||
|
|
||||||
|
- enable libmodplug on >= 11.2
|
||||||
|
|
||||||
|
-------------------------------------------------------------------
|
||||||
|
Sat Nov 14 15:31:00 CEST 2009 - Manfred.Tremmel@iiv.de
|
||||||
|
|
||||||
|
- merged packman and openSUSE package
|
||||||
|
- update to 1.1.16.3
|
||||||
|
* Security fixes:
|
||||||
|
- Fix another possible int overflow in the 4XM demuxer.
|
||||||
|
(ref. TKADV2009-004, CVE-2009-0385)
|
||||||
|
- Fix an integer overflow in the Quicktime demuxer.
|
||||||
|
* Enable libmpeg2new (if configured with --enable-libmpeg2new).
|
||||||
|
This is not yet production code; the old mpeg2 decoder remains the default.
|
||||||
|
* Add support for OpenBSD.
|
||||||
|
* Fix a build failure on *BSD due to some rather useful GNUisms.
|
||||||
|
* Protect audio loop so it cannot write to a paused device (fix
|
||||||
|
pause/resume freeze with pulseaudio).
|
||||||
|
* Fix build with libavutil >= 50.0.0.
|
||||||
|
* Fix segfaults when playing VCDs.
|
||||||
|
* Fix calculation of frame duration for ffmpeg-decoded formats.
|
||||||
|
* Don't assume that ID3v2 tags with no content mean "end of ID3 data".
|
||||||
|
- changes from 1.1.16.1 to 1.1.16.2:
|
||||||
|
* Build fixes related to ImageMagick 6.4 & later.
|
||||||
|
* Fix an error in Matroska PTS calculation.
|
||||||
|
* Some front ends hang due to the hang fixes in 1.1.16. Fix this by
|
||||||
|
removing a break statement.
|
||||||
|
* Fix broken size checks in various input plugins (ref. CVE-2008-5239).
|
||||||
|
* More malloc checking (ref. CVE-2008-5240).
|
||||||
|
* Fix race conditions in gapless_switch (ref. kde bug #180339)
|
||||||
|
* Fix a possible integer overflow in the 4XM demuxer.
|
||||||
|
(TKADV2009-004, CVE-2009-0385)
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Tue Sep 29 18:01:00 CEST 2009 - meissner@suse.de
|
Tue Sep 29 18:01:00 CEST 2009 - meissner@suse.de
|
||||||
|
|
||||||
|
954
xine-lib.spec
954
xine-lib.spec
File diff suppressed because it is too large
Load Diff
Loading…
x
Reference in New Issue
Block a user