Accepting request 21428 from multimedia:apps

Copy from multimedia:apps/xine-lib based on submit request 21428 from user msmeissn

OBS-URL: https://build.opensuse.org/request/show/21428
OBS-URL: https://build.opensuse.org/package/show/openSUSE:Factory/xine-lib?expand=0&rev=25
This commit is contained in:
OBS User autobuild 2009-10-12 14:55:38 +00:00 committed by Git OBS Bridge
parent 27da690f02
commit 7b7cbd6322
3 changed files with 450 additions and 1187 deletions

View File

@ -1,8 +1,18 @@
Index: configure.ac
===================================================================
--- configure.ac.orig
================================================================================
--- configure
+++ configure
@@ -54785,6 +54785,7 @@
echo " * video decoder plugins:"
echo " - MPEG 1,2 - Amiga Bitplane"
echo " - Raw RGB - Raw YUV"
+echo " - Motion JPEG"
if test "x$with_external_ffmpeg" = "xyes"; then
echo " - ffmpeg (external library):"
else
--- configure.ac
+++ configure.ac
@@ -1075,6 +1075,28 @@ AC_SUBST([SDL_CFLAGS])
@@ -1062,6 +1062,28 @@
AC_SUBST([SDL_LIBS])
dnl ---------------------------------------------
@ -31,7 +41,7 @@ Index: configure.ac
dnl check for Libstk
dnl ---------------------------------------------
@@ -2746,6 +2768,7 @@ src/libxineadec/Makefile
@@ -2775,6 +2797,7 @@
src/libxineadec/gsm610/Makefile
src/libxineadec/nosefart/Makefile
src/libreal/Makefile
@ -39,7 +49,7 @@ Index: configure.ac
src/post/Makefile
src/post/planar/Makefile
src/post/goom/Makefile
@@ -2933,6 +2956,9 @@ echo ""
@@ -2962,6 +2985,9 @@
dnl audio decoders
echo " * audio decoder plugins:"
echo " - GSM 06.10 - linear PCM"
@ -49,11 +59,9 @@ Index: configure.ac
if test "x$with_external_ffmpeg" = "xyes"; then
echo " - ffmpeg (external library):"
else
Index: src/Makefile.am
===================================================================
--- src/Makefile.am.orig
--- src/Makefile.am
+++ src/Makefile.am
@@ -25,6 +25,7 @@ SUBDIRS = \
@@ -25,6 +25,7 @@
libreal \
libfaad \
libmusepack \
@ -61,9 +69,17 @@ Index: src/Makefile.am
post \
combined \
vdr
Index: src/mjpeg/Makefile.am
===================================================================
--- /dev/null
--- src/Makefile.in
+++ src/Makefile.in
@@ -411,6 +411,7 @@
libreal \
libfaad \
libmusepack \
+ mjpeg \
post \
combined
--- src/mjpeg/Makefile.am
+++ src/mjpeg/Makefile.am
@@ -0,0 +1,9 @@
+include $(top_srcdir)/misc/Makefile.common
@ -75,402 +91,7 @@ Index: src/mjpeg/Makefile.am
+xineplug_decode_mjpeg_la_CFLAGS = $(VISIBILITY_FLAG)
+xineplug_decode_mjpeg_la_LDFLAGS = $(xineplug_ldflags)
+endif
Index: src/mjpeg/xine_mjpeg_decoder.c
===================================================================
--- /dev/null
+++ src/mjpeg/xine_mjpeg_decoder.c
@@ -0,0 +1,388 @@
+/*
+ * Copyright (C) 2007 Marcus Meissner
+ *
+ * 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
+ *
+ * $Id: xine_decoder.c,v 1.57 2006/07/10 22:08:29 dgp85 Exp $
+ *
+ * stuff needed to turn libjpeg into a xine video decoder.
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <jpeglib.h>
+
+#define LOG_MODULE "mjpeg_decoder"
+#define LOG_VERBOSE
+
+#include "config.h"
+#include "xine_internal.h"
+#include "video_out.h"
+#include "buffer.h"
+#include "xineutils.h"
+
+static const uint8_t default_dht[420] = {
+ /* DHT(Define Huffman Table) */
+ 0xFF,0xC4,
+ 0x01,0xA2,
+ 0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x01,0x00,0x03,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
+ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x10,0x00,0x02,0x01,0x03,0x03,
+ 0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00,0x00,0x01,0x7D,0x01,0x02,0x03,0x00,0x04,
+ 0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,
+ 0x91,0xA1,0x08,0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24,0x33,0x62,0x72,0x82,
+ 0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28,0x29,0x2A,0x34,0x35,0x36,
+ 0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
+ 0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,
+ 0x77,0x78,0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,
+ 0x96,0x97,0x98,0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,
+ 0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,
+ 0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,
+ 0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0x11,0x00,0x02,
+ 0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00,0x01,
+ 0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13,0x22,
+ 0x32,0x81,0x08,0x14,0x42,0x91,0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62,
+ 0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26,0x27,0x28,
+ 0x29,0x2A,0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,
+ 0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,
+ 0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+ 0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,
+ 0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,
+ 0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xE2,0xE3,
+ 0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA
+};
+
+
+typedef struct {
+ video_decoder_class_t decoder_class;
+} mjpeg_class_t;
+
+typedef struct mjpeg_decoder_s {
+ video_decoder_t video_decoder;
+
+ xine_stream_t *xstream;
+
+ int64_t pts;
+
+ xine_bmiheader bih;
+
+ int output_sampling_rate;
+ int output_open;
+ int output_mode;
+
+ uint8_t *buffer;
+ int bytes_in_buffer;
+ int maxbytes_in_buffer;
+ int skip_frames;
+
+
+ struct jpeg_decompress_struct jd;
+ struct jpeg_error_mgr jerr;
+ struct jpeg_source_mgr jsm;
+} mjpeg_decoder_t;
+
+/* For the JPEG decompressor source manager. */
+static void _jpeg_init_source(j_decompress_ptr cinfo) { }
+
+static boolean _jpeg_fill_input_buffer(j_decompress_ptr cinfo) {
+ fprintf(stderr, "_jpeg_fill_input_buffer(): should not get here.\n");
+ return FALSE;
+}
+
+static void _jpeg_skip_input_data(j_decompress_ptr cinfo,long num_bytes) {
+ fprintf(stderr, "_jpeg_skip_input_data(): Skipping %ld bytes...\n", num_bytes);
+ cinfo->src->next_input_byte += num_bytes;
+ cinfo->src->bytes_in_buffer -= num_bytes;
+}
+
+static boolean _jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired) {
+ fprintf(stderr, "_jpeg_resync_to_restart(desired=%d), should not get here.\n",desired);
+ return FALSE;
+}
+static void _jpeg_term_source(j_decompress_ptr cinfo) { }
+
+
+static void mjpeg_reset (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ this->pts = 0;
+ this->bytes_in_buffer = 0;
+ this->skip_frames = 0;
+}
+
+static void mjpeg_flush (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ this->bytes_in_buffer = 0;
+
+ lprintf ("flush\n");
+}
+
+static void mjpeg_discontinuity (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ this->bytes_in_buffer = 0;
+ this->pts = 0;
+}
+
+static void mjpeg_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
+ struct vo_frame_s *frame;
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+ int i, ret, havedht, offsetdqt;
+ uint8_t *cursamprow;
+
+#if 0
+ fprintf (stderr, "decode data, decoder_flags: %x (", buf->decoder_flags);
+#define X(x) if (BUF_FLAG_##x & buf->decoder_flags) fprintf (stderr,"BUF_FLAG_"#x", ");
+X(FRAME_START);
+X(FRAME_END);
+X(HEADER);
+X(PREVIEW);
+X(END_USER);
+X(END_STREAM);
+X(FRAMERATE);
+X(SEEK);
+X(SPECIAL);
+X(STDHEADER);
+X(ASPECT);
+#undef X
+ fprintf (stderr, ")\n");
+#endif
+
+ if (buf->decoder_flags & BUF_FLAG_HEADER) {
+ if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
+ memcpy ( &this->bih, buf->content, sizeof(xine_bmiheader) );
+ /* FIXME: handle extra data? */
+#if 0
+ fprintf (stderr,"stdheader:\n");
+ fprintf (stderr,"Height: %d\n",this->bih.biHeight);
+ fprintf (stderr,"Width: %d\n",this->bih.biWidth);
+#endif
+ /* the others are not terribly interesting for JPEG */
+ return;
+ }
+ fprintf (stderr,"Non STD-header handling not done yet.\n");
+ return;
+ }
+
+ while (buf->size>this->maxbytes_in_buffer - this->bytes_in_buffer) {
+ uint8_t *newbuf;
+ newbuf = realloc (this->buffer, this->maxbytes_in_buffer*2);
+ if (!newbuf) {
+ return; /* Hmm. Not good. */
+ }
+ this->maxbytes_in_buffer *= 2;
+ this->buffer = newbuf;
+ }
+ xine_fast_memcpy (&this->buffer[this->bytes_in_buffer],
+ buf->content, buf->size);
+ this->bytes_in_buffer += buf->size;
+
+ if (!(buf->decoder_flags & BUF_FLAG_FRAME_END))
+ return;
+
+ /* OK - Decode! */
+
+ if (this->skip_frames > 0) {
+ this->skip_frames--;
+ this->bytes_in_buffer = 0;
+ return;
+ }
+
+ havedht = 0; offsetdqt = 0;
+ for (i=0;i<this->bytes_in_buffer;i++) {
+ if (this->buffer[i] != 0xff)
+ continue;
+ i++;
+ if (i==this->bytes_in_buffer) break;
+ if (this->buffer[i] == 0xdb)/* DQT */
+ offsetdqt = i-1;
+ if (this->buffer[i] == 0xc4) /* DHT */
+ havedht = 1;
+ if (this->buffer[i] == 0xc0) /* SOF */
+ break;
+ }
+ if (!havedht) {
+ /* FIXME: we could inject this more directly into libjpeg.
+ * Find out sometime how to...
+ */
+ while (this->maxbytes_in_buffer - this->bytes_in_buffer < sizeof(default_dht)) {
+ uint8_t *newbuf;
+ newbuf = realloc (this->buffer, this->maxbytes_in_buffer*2);
+ if (!newbuf) {
+ /* Umm. how to handle out of memory situation here */
+ return;
+ }
+ this->maxbytes_in_buffer *= 2;
+ this->buffer = newbuf;
+ }
+ memmove (this->buffer+offsetdqt+sizeof(default_dht), this->buffer+offsetdqt, this->bytes_in_buffer-offsetdqt);
+ memcpy (this->buffer+offsetdqt, default_dht, sizeof(default_dht));
+ this->bytes_in_buffer += sizeof(default_dht);
+ }
+
+ this->jsm.next_input_byte = this->buffer;
+ this->jsm.bytes_in_buffer = this->bytes_in_buffer;
+
+ ret = jpeg_read_header(&this->jd,TRUE);
+ this->jd.out_color_space = JCS_YCbCr;
+ jpeg_start_decompress(&this->jd);
+ if (ret != JPEG_HEADER_OK) {
+ fprintf(stderr, "Jpeg image in stream has bad format, read header returned %d.\n",ret);
+ this->bytes_in_buffer = 0;
+ return;
+ }
+
+ /* I am not fully sure we can assume that we get 4:1:1 YUV output.
+ * But I think we do with JCS_YCbCr.
+ */
+ frame = this->xstream->video_out->get_frame (this->xstream->video_out,
+ this->jd.output_width,
+ this->jd.output_height,
+ (1.00*this->jd.output_width)/this->jd.output_height,
+ XINE_IMGFMT_YV12,
+ 0
+ );
+
+ cursamprow = calloc(1,this->jd.output_width*this->jd.output_components);
+ while (this->jd.output_scanline < this->jd.output_height) {
+ uint8_t *y,*u,*v;
+ int i;
+ int x = jpeg_read_scanlines(&this->jd,&cursamprow,1);
+
+ if (x != 1) {
+ fprintf(stderr, "failed to read current scanline?\n");
+ break;
+ }
+ y = frame->base[0]+frame->pitches[0]*this->jd.output_scanline;
+ u = frame->base[1]+frame->pitches[1]*(this->jd.output_scanline/2);
+ v = frame->base[2]+frame->pitches[2]*(this->jd.output_scanline/2);
+ for (i=0;i<this->jd.output_width;i++) {
+ y[i] = cursamprow[i*3+0];
+ u[i/2] = cursamprow[i*3+1];
+ v[i/2] = cursamprow[i*3+2];
+ }
+ }
+ free (cursamprow);
+
+ this->skip_frames = frame->draw(frame,this->xstream);
+ frame->drawn = 1;
+ frame->free(frame);
+ jpeg_finish_decompress(&this->jd);
+ this->bytes_in_buffer = 0;
+}
+
+static void mjpeg_dispose (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ jpeg_destroy_decompress(&this->jd);
+ if (this->output_open) {
+ this->xstream->video_out->close (this->xstream->video_out, this->xstream);
+ this->output_open = 0;
+ }
+ if (this->buffer) free (this->buffer);
+ this->buffer = NULL;
+ free (this_gen);
+}
+
+static video_decoder_t *open_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream) {
+ mjpeg_decoder_t *this ;
+
+ this = (mjpeg_decoder_t *) xine_xmalloc (sizeof (mjpeg_decoder_t));
+
+ this->video_decoder.decode_data = mjpeg_decode_data;
+ this->video_decoder.reset = mjpeg_reset;
+ this->video_decoder.flush = mjpeg_flush;
+ this->video_decoder.discontinuity = mjpeg_discontinuity;
+ this->video_decoder.dispose = mjpeg_dispose;
+
+ this->output_open = 0;
+ this->bytes_in_buffer = 0;
+ this->skip_frames = 0;
+ this->xstream = stream;
+
+ this->maxbytes_in_buffer = 16384;
+ this->buffer = malloc(this->maxbytes_in_buffer);
+
+ this->jd.err = jpeg_std_error(&this->jerr);
+ jpeg_create_decompress(&this->jd);
+
+ this->jsm.init_source = _jpeg_init_source;
+ this->jsm.fill_input_buffer = _jpeg_fill_input_buffer;
+ this->jsm.skip_input_data = _jpeg_skip_input_data;
+ this->jsm.resync_to_restart = _jpeg_resync_to_restart;
+ this->jsm.term_source = _jpeg_term_source;
+ this->jd.src = &this->jsm;
+
+ stream->video_out->open(stream->video_out, stream);
+#if 0
+ caps = stream->video_out->get_capabilities (stream->video_out);
+ fprintf (stderr, "video out caps: %x\n", caps);
+#endif
+ return &this->video_decoder;
+}
+
+/*
+ * mjpeg plugin class
+ */
+
+static char *get_identifier (video_decoder_class_t *this) {
+ return "mjpeg";
+}
+
+static char *get_description (video_decoder_class_t *this) {
+ return "libjpeg based mjpeg video decoder plugin";
+}
+
+static void dispose_class (video_decoder_class_t *this) {
+ free (this);
+}
+
+static void *init_plugin (xine_t *xine, void *data) {
+
+ mjpeg_class_t *this;
+
+ this = (mjpeg_class_t *) xine_xmalloc (sizeof (mjpeg_class_t));
+
+ this->decoder_class.open_plugin = open_plugin;
+ this->decoder_class.get_identifier = get_identifier;
+ this->decoder_class.get_description = get_description;
+ this->decoder_class.dispose = dispose_class;
+
+ return this;
+}
+
+static uint32_t video_types[] = {
+ BUF_VIDEO_JPEG,
+ BUF_VIDEO_MJPEG,
+ 0
+};
+
+static const decoder_info_t dec_info_video = {
+ video_types, /* supported types */
+ 7 /* priority */
+};
+
+const plugin_info_t xine_plugin_info[] EXPORTED = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 18, "mjpeg", XINE_VERSION_CODE, &dec_info_video, init_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};
Index: src/mjpeg/Makefile.in
===================================================================
--- /dev/null
--- src/mjpeg/Makefile.in
+++ src/mjpeg/Makefile.in
@@ -0,0 +1,751 @@
+# Makefile.in generated by automake 1.10 from Makefile.am.
@ -1224,27 +845,403 @@ Index: src/mjpeg/Makefile.in
+# 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.
+.NOEXPORT:
Index: configure
===================================================================
--- configure.orig
+++ configure
@@ -53975,6 +53975,7 @@ echo ""
echo " * video decoder plugins:"
echo " - MPEG 1,2 - Amiga Bitplane"
echo " - Raw RGB - Raw YUV"
+echo " - Motion JPEG"
if test "x$with_external_ffmpeg" = "xyes"; then
echo " - ffmpeg (external library):"
else
Index: src/Makefile.in
===================================================================
--- src/Makefile.in.orig
+++ src/Makefile.in
@@ -400,6 +400,7 @@ SUBDIRS = \
libreal \
libfaad \
libmusepack \
+ mjpeg \
post \
combined
--- src/mjpeg/xine_mjpeg_decoder.c
+++ src/mjpeg/xine_mjpeg_decoder.c
@@ -0,0 +1,397 @@
+/*
+ * Copyright (C) 2007 Marcus Meissner
+ *
+ * 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
+ *
+ * $Id: xine_decoder.c,v 1.57 2006/07/10 22:08:29 dgp85 Exp $
+ *
+ * stuff needed to turn libjpeg into a xine video decoder.
+ */
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <string.h>
+
+#include <jpeglib.h>
+
+#define LOG_MODULE "mjpeg_decoder"
+#define LOG_VERBOSE
+
+#include "config.h"
+#include "xine_internal.h"
+#include "video_out.h"
+#include "buffer.h"
+#include "xineutils.h"
+
+static const uint8_t default_dht[420] = {
+ /* DHT(Define Huffman Table) */
+ 0xFF,0xC4,
+ 0x01,0xA2,
+ 0x00,0x00,0x01,0x05,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,
+ 0x00,0x00,0x01,0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x01,0x00,0x03,
+ 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x00,0x00,0x00,0x00,0x00,0x00,0x01,
+ 0x02,0x03,0x04,0x05,0x06,0x07,0x08,0x09,0x0A,0x0B,0x10,0x00,0x02,0x01,0x03,0x03,
+ 0x02,0x04,0x03,0x05,0x05,0x04,0x04,0x00,0x00,0x01,0x7D,0x01,0x02,0x03,0x00,0x04,
+ 0x11,0x05,0x12,0x21,0x31,0x41,0x06,0x13,0x51,0x61,0x07,0x22,0x71,0x14,0x32,0x81,
+ 0x91,0xA1,0x08,0x23,0x42,0xB1,0xC1,0x15,0x52,0xD1,0xF0,0x24,0x33,0x62,0x72,0x82,
+ 0x09,0x0A,0x16,0x17,0x18,0x19,0x1A,0x25,0x26,0x27,0x28,0x29,0x2A,0x34,0x35,0x36,
+ 0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,0x53,0x54,0x55,0x56,
+ 0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,0x73,0x74,0x75,0x76,
+ 0x77,0x78,0x79,0x7A,0x83,0x84,0x85,0x86,0x87,0x88,0x89,0x8A,0x92,0x93,0x94,0x95,
+ 0x96,0x97,0x98,0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,0xA8,0xA9,0xAA,0xB2,0xB3,
+ 0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,0xC6,0xC7,0xC8,0xC9,0xCA,
+ 0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xE1,0xE2,0xE3,0xE4,0xE5,0xE6,0xE7,
+ 0xE8,0xE9,0xEA,0xF1,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA,0x11,0x00,0x02,
+ 0x01,0x02,0x04,0x04,0x03,0x04,0x07,0x05,0x04,0x04,0x00,0x01,0x02,0x77,0x00,0x01,
+ 0x02,0x03,0x11,0x04,0x05,0x21,0x31,0x06,0x12,0x41,0x51,0x07,0x61,0x71,0x13,0x22,
+ 0x32,0x81,0x08,0x14,0x42,0x91,0xA1,0xB1,0xC1,0x09,0x23,0x33,0x52,0xF0,0x15,0x62,
+ 0x72,0xD1,0x0A,0x16,0x24,0x34,0xE1,0x25,0xF1,0x17,0x18,0x19,0x1A,0x26,0x27,0x28,
+ 0x29,0x2A,0x35,0x36,0x37,0x38,0x39,0x3A,0x43,0x44,0x45,0x46,0x47,0x48,0x49,0x4A,
+ 0x53,0x54,0x55,0x56,0x57,0x58,0x59,0x5A,0x63,0x64,0x65,0x66,0x67,0x68,0x69,0x6A,
+ 0x73,0x74,0x75,0x76,0x77,0x78,0x79,0x7A,0x82,0x83,0x84,0x85,0x86,0x87,0x88,0x89,
+ 0x8A,0x92,0x93,0x94,0x95,0x96,0x97,0x98,0x99,0x9A,0xA2,0xA3,0xA4,0xA5,0xA6,0xA7,
+ 0xA8,0xA9,0xAA,0xB2,0xB3,0xB4,0xB5,0xB6,0xB7,0xB8,0xB9,0xBA,0xC2,0xC3,0xC4,0xC5,
+ 0xC6,0xC7,0xC8,0xC9,0xCA,0xD2,0xD3,0xD4,0xD5,0xD6,0xD7,0xD8,0xD9,0xDA,0xE2,0xE3,
+ 0xE4,0xE5,0xE6,0xE7,0xE8,0xE9,0xEA,0xF2,0xF3,0xF4,0xF5,0xF6,0xF7,0xF8,0xF9,0xFA
+};
+
+
+typedef struct {
+ video_decoder_class_t decoder_class;
+} mjpeg_class_t;
+
+typedef struct mjpeg_decoder_s {
+ video_decoder_t video_decoder;
+
+ xine_stream_t *xstream;
+
+ int64_t pts;
+
+ xine_bmiheader bih;
+
+ int output_sampling_rate;
+ int output_open;
+ int output_mode;
+
+ uint8_t *buffer;
+ int bytes_in_buffer;
+ int maxbytes_in_buffer;
+ int skip_frames;
+
+
+ struct jpeg_decompress_struct jd;
+ struct jpeg_error_mgr jerr;
+ struct jpeg_source_mgr jsm;
+} mjpeg_decoder_t;
+
+/* For the JPEG decompressor source manager. */
+static void _jpeg_init_source(j_decompress_ptr cinfo) { }
+
+static boolean _jpeg_fill_input_buffer(j_decompress_ptr cinfo) {
+ fprintf(stderr, "_jpeg_fill_input_buffer(): should not get here.\n");
+ return FALSE;
+}
+
+static void _jpeg_skip_input_data(j_decompress_ptr cinfo,long num_bytes) {
+ fprintf(stderr, "_jpeg_skip_input_data(): Skipping %ld bytes...\n", num_bytes);
+ cinfo->src->next_input_byte += num_bytes;
+ cinfo->src->bytes_in_buffer -= num_bytes;
+}
+
+static boolean _jpeg_resync_to_restart(j_decompress_ptr cinfo, int desired) {
+ fprintf(stderr, "_jpeg_resync_to_restart(desired=%d): Should not get here.\n",desired);
+ return FALSE;
+}
+static void _jpeg_term_source(j_decompress_ptr cinfo) { }
+
+
+static void mjpeg_reset (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ this->pts = 0;
+ this->bytes_in_buffer = 0;
+ this->skip_frames = 0;
+}
+
+static void mjpeg_flush (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ this->bytes_in_buffer = 0;
+
+ lprintf ("flush\n");
+}
+
+static void mjpeg_discontinuity (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ this->bytes_in_buffer = 0;
+ this->pts = 0;
+}
+
+static void mjpeg_decode_data (video_decoder_t *this_gen, buf_element_t *buf) {
+ struct vo_frame_s *frame;
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+ int i, ret, havedht, offsetdqt;
+ uint8_t *cursamprow;
+ int minscanline=1000;
+
+#if 0
+ fprintf (stderr, "decode data, decoder_flags: %x (", buf->decoder_flags);
+#define X(x) if (BUF_FLAG_##x & buf->decoder_flags) fprintf (stderr,"BUF_FLAG_"#x", ");
+X(FRAME_START);
+X(FRAME_END);
+X(HEADER);
+X(PREVIEW);
+X(END_USER);
+X(END_STREAM);
+X(FRAMERATE);
+X(SEEK);
+X(SPECIAL);
+X(STDHEADER);
+X(ASPECT);
+#undef X
+ fprintf (stderr, ")\n");
+#endif
+
+ if (buf->decoder_flags & BUF_FLAG_HEADER) {
+ if (buf->decoder_flags & BUF_FLAG_STDHEADER) {
+ memcpy ( &this->bih, buf->content, sizeof(xine_bmiheader) );
+ /* FIXME: handle extra data? */
+#if 0
+ fprintf (stderr,"stdheader:\n");
+ fprintf (stderr,"Height: %d\n",this->bih.biHeight);
+ fprintf (stderr,"Width: %d\n",this->bih.biWidth);
+#endif
+ /* the others are not terribly interesting for JPEG */
+ return;
+ }
+ fprintf (stderr,"Non STD-header handling not done yet.\n");
+ return;
+ }
+
+ while (buf->size>this->maxbytes_in_buffer - this->bytes_in_buffer) {
+ uint8_t *newbuf;
+ newbuf = realloc (this->buffer, this->maxbytes_in_buffer*2);
+ if (!newbuf) {
+ return; /* Hmm. Not good. */
+ }
+ this->maxbytes_in_buffer *= 2;
+ this->buffer = newbuf;
+ }
+ xine_fast_memcpy (&this->buffer[this->bytes_in_buffer],
+ buf->content, buf->size);
+ this->bytes_in_buffer += buf->size;
+
+ if (!(buf->decoder_flags & BUF_FLAG_FRAME_END))
+ return;
+
+ /* OK - Decode! */
+
+ if (this->skip_frames > 0) {
+ this->skip_frames--;
+ this->bytes_in_buffer = 0;
+ return;
+ }
+
+ havedht = 0; offsetdqt = 0;
+ for (i=0;i<this->bytes_in_buffer;i++) {
+ if (this->buffer[i] != 0xff)
+ continue;
+ i++;
+ if (i==this->bytes_in_buffer) break;
+ if (this->buffer[i] == 0xdb)/* DQT */
+ offsetdqt = i-1;
+ if (this->buffer[i] == 0xc4) /* DHT */
+ havedht = 1;
+ if (this->buffer[i] == 0xc0) /* SOF */
+ break;
+ }
+ if (!havedht) {
+ /* FIXME: we could inject this more directly into libjpeg.
+ * Find out sometime how to...
+ */
+ while (this->maxbytes_in_buffer - this->bytes_in_buffer < sizeof(default_dht)) {
+ uint8_t *newbuf;
+ newbuf = realloc (this->buffer, this->maxbytes_in_buffer*2);
+ if (!newbuf) {
+ /* Umm. how to handle out of memory situation here */
+ return;
+ }
+ this->maxbytes_in_buffer *= 2;
+ this->buffer = newbuf;
+ }
+ memmove (this->buffer+offsetdqt+sizeof(default_dht), this->buffer+offsetdqt, this->bytes_in_buffer-offsetdqt);
+ memcpy (this->buffer+offsetdqt, default_dht, sizeof(default_dht));
+ this->bytes_in_buffer += sizeof(default_dht);
+ }
+
+ this->jsm.next_input_byte = this->buffer;
+ this->jsm.bytes_in_buffer = this->bytes_in_buffer;
+
+ ret = jpeg_read_header(&this->jd,TRUE);
+ this->jd.out_color_space = JCS_YCbCr;
+ jpeg_start_decompress(&this->jd);
+ if (ret != JPEG_HEADER_OK) {
+ fprintf(stderr, "Jpeg image in stream has bad format, read header returned %d.\n",ret);
+ this->bytes_in_buffer = 0;
+ return;
+ }
+
+ /* I am not fully sure we can assume that we get 4:1:1 YUV output.
+ * But I think we do with JCS_YCbCr.
+ */
+ frame = this->xstream->video_out->get_frame (this->xstream->video_out,
+ this->jd.output_width,
+ this->jd.output_height,
+ (1.00*this->jd.output_width)/this->jd.output_height,
+ XINE_IMGFMT_YV12,
+ 0
+ );
+
+ cursamprow = calloc(1,this->jd.output_width*this->jd.output_components);
+ while (this->jd.output_scanline < this->jd.output_height) {
+ uint8_t *y,*u,*v;
+ int i, curscanline;
+ int x = jpeg_read_scanlines(&this->jd,&cursamprow,1);
+
+ /* it occasionaly starts at 1 and goes to height+1 for curious reasons */
+ if (minscanline > this->jd.output_scanline) {
+ minscanline = this->jd.output_scanline;
+ if (minscanline) fprintf (stderr,"minscanline %d\n", minscanline);
+ }
+ curscanline = this->jd.output_scanline-minscanline;
+ if (x != 1) {
+ fprintf(stderr, "failed to read current scanline?\n");
+ break;
+ }
+ y = frame->base[0]+frame->pitches[0]*curscanline;
+ u = frame->base[1]+frame->pitches[1]*(curscanline/2);
+ v = frame->base[2]+frame->pitches[2]*(curscanline/2);
+ for (i=0;i<this->jd.output_width;i++) {
+ y[i] = cursamprow[i*3+0];
+ u[i/2] = cursamprow[i*3+1];
+ v[i/2] = cursamprow[i*3+2];
+ }
+ }
+ free (cursamprow);
+
+ frame->pts = buf->pts;
+ frame->duration = buf->decoder_info[0];
+ this->skip_frames = frame->draw(frame,this->xstream);
+ frame->drawn = 1;
+ frame->free(frame);
+ jpeg_finish_decompress(&this->jd);
+ this->bytes_in_buffer = 0;
+}
+
+static void mjpeg_dispose (video_decoder_t *this_gen) {
+ mjpeg_decoder_t *this = (mjpeg_decoder_t *) this_gen;
+
+ jpeg_destroy_decompress(&this->jd);
+ if (this->output_open) {
+ this->xstream->video_out->close (this->xstream->video_out, this->xstream);
+ this->output_open = 0;
+ }
+ if (this->buffer) free (this->buffer);
+ this->buffer = NULL;
+ free (this_gen);
+}
+
+static video_decoder_t *open_plugin (video_decoder_class_t *class_gen, xine_stream_t *stream) {
+ mjpeg_decoder_t *this ;
+
+ this = (mjpeg_decoder_t *) xine_xmalloc (sizeof (mjpeg_decoder_t));
+
+ this->video_decoder.decode_data = mjpeg_decode_data;
+ this->video_decoder.reset = mjpeg_reset;
+ this->video_decoder.flush = mjpeg_flush;
+ this->video_decoder.discontinuity = mjpeg_discontinuity;
+ this->video_decoder.dispose = mjpeg_dispose;
+
+ this->output_open = 0;
+ this->bytes_in_buffer = 0;
+ this->skip_frames = 0;
+ this->xstream = stream;
+
+ this->maxbytes_in_buffer = 16384;
+ this->buffer = malloc(this->maxbytes_in_buffer);
+
+ this->jd.err = jpeg_std_error(&this->jerr);
+ jpeg_create_decompress(&this->jd);
+
+ this->jsm.init_source = _jpeg_init_source;
+ this->jsm.fill_input_buffer = _jpeg_fill_input_buffer;
+ this->jsm.skip_input_data = _jpeg_skip_input_data;
+ this->jsm.resync_to_restart = _jpeg_resync_to_restart;
+ this->jsm.term_source = _jpeg_term_source;
+ this->jd.src = &this->jsm;
+
+ stream->video_out->open(stream->video_out, stream);
+#if 0
+ caps = stream->video_out->get_capabilities (stream->video_out);
+ fprintf (stderr, "video out caps: %x\n", caps);
+#endif
+ return &this->video_decoder;
+}
+
+/*
+ * mjpeg plugin class
+ */
+
+static char *get_identifier (video_decoder_class_t *this) {
+ return "mjpeg";
+}
+
+static char *get_description (video_decoder_class_t *this) {
+ return "libjpeg based mjpeg video decoder plugin";
+}
+
+static void dispose_class (video_decoder_class_t *this) {
+ free (this);
+}
+
+static void *init_plugin (xine_t *xine, void *data) {
+
+ mjpeg_class_t *this;
+
+ this = (mjpeg_class_t *) xine_xmalloc (sizeof (mjpeg_class_t));
+
+ this->decoder_class.open_plugin = open_plugin;
+ this->decoder_class.get_identifier = get_identifier;
+ this->decoder_class.get_description = get_description;
+ this->decoder_class.dispose = dispose_class;
+
+ return this;
+}
+
+static uint32_t video_types[] = {
+ BUF_VIDEO_JPEG,
+ BUF_VIDEO_MJPEG,
+ 0
+};
+
+static const decoder_info_t dec_info_video = {
+ video_types, /* supported types */
+ 7 /* priority */
+};
+
+const plugin_info_t xine_plugin_info[] EXPORTED = {
+ /* type, API, "name", version, special_info, init_function */
+ { PLUGIN_VIDEO_DECODER, 18, "mjpeg", XINE_VERSION_CODE, &dec_info_video, init_plugin },
+ { PLUGIN_NONE, 0, "", 0, NULL, NULL }
+};

View File

@ -1,3 +1,14 @@
-------------------------------------------------------------------
Tue Sep 29 18:01:00 CEST 2009 - meissner@suse.de
- trying to fix timing issue in MJPEG plugin. bnc#327569
-------------------------------------------------------------------
Fri Sep 25 15:19:17 CEST 2009 - meissner@suse.de
- Made my xine MJPEG plugin more stable. bnc#327569
(still crashes in XShm mode, but this might be due to XShm)
-------------------------------------------------------------------
Fri Mar 6 19:25:25 CET 2009 - mhopf@suse.de

View File

@ -94,7 +94,7 @@ BuildRequires: DirectFB
BuildRequires: libmodplug
%endif
Version: 1.1.16.1
Release: 4
Release: 5
# XINE_MAJOR.XINE_LT_CURRENT in configure.ac
%define abiversion 1.25
# bug437293
@ -104,7 +104,7 @@ Obsoletes: xine-lib-64bit
#
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Url: http://xine.sourceforge.net
BuildRoot: %{_tmppath}/%{name}-%{version}-build
Source: xine-lib-%{version}-crippled.tar.bz2
@ -150,7 +150,7 @@ Authors:
%package -n libxine1
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Provides: xine-lib = %{version}-%{release}
Obsoletes: xine-lib < %{version}-%{release}
Obsoletes: xine-extra < %{version}-%{release}
@ -235,7 +235,7 @@ Authors:
%if %{with sdl}
%package -n libxine1-sdl
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
Requires: libxine1 = %{version}
@ -261,7 +261,7 @@ Authors:
%if %{with arts}
%package -n libxine1-arts
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
Requires: libxine1 = %{version}
@ -287,7 +287,7 @@ Authors:
%if %{with aalib}
%package -n libxine1-aa
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
Requires: libxine1 = %{version}
@ -313,7 +313,7 @@ Authors:
%if %{with esd}
%package -n libxine1-esd
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
Requires: libxine1 = %{version}
@ -339,7 +339,7 @@ Authors:
%if %{with jack}
%package -n libxine1-jack
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Summary: jack plugin for xine
Group: Productivity/Multimedia/Video/Players
Requires: libxine1 = %{version}
@ -357,7 +357,7 @@ Authors:
%if %{with directfb}
%package -n libxine1-directfb
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
Summary: Video Player with Plug-Ins
Group: Productivity/Multimedia/Video/Players
Requires: libxine1 = %{version}
@ -402,7 +402,7 @@ Authors:
%if !%{with distributable}
%package -n libxine1-codecs
License: GPL v2 or later; Public Domain, Freeware
License: GPL v2 or later ; Public Domain, Freeware
# these libs are possibly illegal and may not work without libdvdcss anyway
Summary: additional codecs for xine
Group: Productivity/Multimedia/Video/Players
@ -814,748 +814,3 @@ rm -rf %{buildroot}
%endif
%changelog
* Fri Mar 06 2009 mhopf@suse.de
- Updated security fix for 4xm demuxer (TKADV2009-004, bnc#473825)
* Tue Feb 17 2009 lnussel@suse.de
- fix libtool breakage on older distributions with hack
* Tue Feb 10 2009 mhopf@suse.de
- Security fix for 4xm demuxer (TKADV2009-004, bnc#473825)
* Tue Jan 27 2009 mhopf@suse.de
- Update to 1.1.16.1:
* Security fixes:
- Heap overflow in Quicktime atom parsing. (CVE-2008-5234)
- Multiple buffer overflows. (CVE-2008-5236)
- Multiple integer overflows. (CVE-2008-5237)
- Unchecked or incompletely-checked read function results. (CVE-2008-5239)
- Unchecked malloc using untrusted values. (CVE-2008-5240, CVE-2008-5242)
- Integer underflow in qt compressed atom handling. (CVE-2008-5241)
- Buffer indexing using untrusted or unchecked values. (CVE-2008-5243)
- Integer overflows in the ffmpeg audio decoder and the CDDA server.
- Heap buffer overflow in the ffmpeg video decoder.
- Avoid segfault on invalid track type in Matroska files.
- Avoid underflow (compressed atoms) in the Qt demuxer.
* Fix reported compilation failures (with C++ programs).
* Fix CDDB access in 64-bit builds.
* Fix seeking FLV clips that don't specify the movie length in the headers.
* Support H.264 and AAC streams within FLV.
* Fix timing issues (broken audio) on mingw.
* Add ID3 tag TDRC to replace/complement the deprecated tag TYER.
* Add a new meta-tag, "Composer", and use it in the FLAC demuxer.
* Correct AAC channel ordering for multi-channel audio, at least for FLAC
when using ALSA or PulseAudio. (Needs a proper fix.)
* Add position-based seeking independent from seekpoints.
* Fix some XCB Xv attribute configuration breakage.
* Add a configuration option for Xv bicubic filtering, implemented in
xf86-video-ati 6.9.1.
* Recognise Xv "blitter" adaptors for port selection purposes.
NOTE: you will need to remove ~/.xine/catalog.cache when upgrading from
xine-lib 1.1.15 or older if you wish to use this extra option.
* Fix MMS media requests where the URI contains %%-encoded characters.
* Fix two hangs related to stopping playback of broken audio streams where
no audio data is sent to the output thread.
* Fix WAV demuxer to send the last frames when they don't fit perfectly into
the buffer
* Fix build with older ffmpeg, both internal and in Debian 5.0.
* Add version check for CACA library and disable CACA plugin if needed
* Fix playback of some H.264 files (broken in 1.1.16).
* Various other build & bug fixes.
* Some FAQ list updates.
* Wed Jan 07 2009 olh@suse.de
- obsolete old -XXbit packages (bnc#437293)
* Thu Nov 27 2008 ro@suse.de
- update baselibs.conf
* Thu Nov 13 2008 lnussel@suse.de
- explicitly require Mesa-devel
* Tue Oct 21 2008 lnussel@suse.de
- fix build with newer autoconf
* Wed Sep 17 2008 lnussel@suse.de
- add some more obsoletes/provides for legacy packman packages
- fix build with newer ffmpeg releases
* Thu Sep 04 2008 lnussel@suse.de
- split and rename package to adhere to library package conventions
* Tue Aug 26 2008 lnussel@suse.de
- remove fuzzy hunk from xine-lib-1.1.15-cpp-compilation.diff to fix
build on older distributions
* Fri Aug 22 2008 lnussel@suse.de
- Update to 1.1.15:
* Security fixes:
- Fix crashes with various corrupted media files, including Ogg.
(CVE-2008-3231)
This includes a libfaad update from the 1.2 branch.
- Delay V4L video frame preallocation until we know how large they'll be.
- Fix an exploitable ID3 heap buffer overflow.
- Check for possible buffer overflow attempts in the Real demuxer.
- Use size_t for data length variables where there may be int overflows.
- Add some checks for memory allocation failures.
* Use external ffmpeg and libfaad by default.
* V4L: Don't segfault if asked for an input that doesn't exist.
* Recognise AMR audio (normally found in 3GP files).
* Recognise Snow video.
* Xv deinterlacing didn't take the size of the deinterlaced image into
account; on some chipsets, this would cause image corruption, while on
others, there would be no problem.
* V4L: only try and set the tuner if we're going to use it. Setting the tuner
when using baseband video (CVBS, S-Video) breaks the input.
* Fix crashes with MP3 files with metadata consisting only of separators.
- move extra skins to xine-ui package
- use external faad and ffmpeg libraries
* Fri Aug 01 2008 mhopf@suse.de
- Verify whether the visual is direct rendering capable before actually
activating the opengl plugin (bnc #402687)
* Fri Jul 25 2008 lnussel@suse.de
- Update to 1.1.14:
* DVB changes:
- Reacquire PIDs whenever a PMT is parsed. (Some channels' PIDs are
changed on a regular basis.)
- Recognise more stream formats (as defined in the broadcast PMT).
- Allow automatic detection of more DVB tuning parameters.
- Allow the GUI to be disabled.
- Allow configuration of the location of channels.conf.
* V4L: allow TV standard selection.
* Allow input plugins to report MIME type information.
This is used for demuxer plugin selection immediately before testing the
filename extension (so it won't work when demuxer selection is done by
stream content only). [Bug #120]
* Allow input plugins to ask for a specific demuxer, overriding the normal
demuxer selection methods. (Most won't need this.)
* The Xv and XxMC video output plugins now support Xv port selection via
two methods: port number and port type (currently "any", "overlay" and
"textured video"). Port number takes precedence; the plugins will fall
back on another port of the same type (if a type was specified) then on
whatever they can find.
XvMC does not support port selection at present.
(Backported from the 1.2 branch.)
* Fix MPEG TS audio stream problems introduced in 1.1.13.
* Add basic aspect ratio detection for Windows Media Video streams.
- Update to 1.1.13:
* Security fixes:
- Buffer overflow in the NSF demuxer which may allow remote attackers to
cause a denial of service (crash) or possibly execute arbitrary code
via an NSF file with a long title or copyright message. (CVE-2008-1878)
- For extra safety against possible Integer overflows like the ones found
in CVE-2008-1482, backport more calloc usage from 1.2 branch.
* Improved JACK output plugin.
* Added MIME types and .mpp for musepack.
* Fixed display of some MJPEG streams (YUVJ420P).
* Deprecate xine_xmalloc() function, see src/xine-utils/utils.c for more
information about the reason.
* Provide a useful implementation of xine_register_log_cb().
* Thu Jun 19 2008 schwab@suse.de
- Remove local libtool macros and run autoreconf.
* Wed May 14 2008 mhopf@suse.de
- Update to 1.1.12: (fixes bnc#379499)
* Fixed and improved the PulseAudio driver.
* Fixed a regression in 1.1.11.1 which broke Quicktime container handling.
* And another, this time in the Matroska demuxer.
* Added a tool to assist with generating front ends' desktop files. It
lists MIME types & filename extensions known to the installed xine-lib.
* Various Real codec improvements, including:
- RV20 no longer causes segfaults (observed on amd64);
- Cook is now handled by ffmpeg.
* Added a video output plugin intended for passing raw data to the front end.
* Fri Apr 18 2008 lnussel@suse.de
- fix overflow in nsf demuxer (bnc#380772, CVE-2008-1878)
* Thu Apr 17 2008 lnussel@suse.de
- Update to vdr-xine-0.8.2
* bugfix release
- don't use %%run_ldconfig anymore
- don't install non-Linux READMEs
* Tue Apr 15 2008 lnussel@suse.de
- fix insufficient bounds checking in speex decoder (bnc#379106,
CVE-2008-1686)
* Thu Apr 10 2008 ro@suse.de
- added baselibs.conf file to build xxbit packages
for multilib support
* Mon Mar 31 2008 mhopf@suse.de
- Update to 1.1.11.1:
* Added a few more memory allocation checks to the above demuxers.
* WAV file playback fix: don't assume that the first chunk is "fmt ".
* Don't try to play partial 24-bit AIFF frames (decoder would lose data).
* Fixed AIFF comment chunk handling and sample rate reading.
* LPCM fixes: input over-reading, conversion of 24-bit samples.
- Updated precheckin_cripple_tarball.sh
* Tue Mar 25 2008 mhopf@suse.de
- Security fix for bnc#372877: integer overflows in malloc
CVE-2008-1482
- Added missing aalib-devel dependency.
* Wed Mar 19 2008 mhopf@suse.de
- Update to 1.1.11:
* Security fixes:
- Array Indexing Vulnerability in sdpplin_parse(). (CVE-2008-0073)
* Reworked the plugin directory naming so that external plugins don't have
to be rebuilt for every release. We now use a naming scheme based on the
API/ABI versioning, checking older directories - with this release, the
plugin directory name is 1.20, and if this gets bumped to 1.21 in a
future release, 1.20 will still be available for external plugins.
(Any directories not 1.* won't be looked in.)
* Made the version parsing much more reliable; it wasn't properly coping
with four-part version numbers. This affects any program whose build
scripts use xine-lib's automake macros.
* Fixed an off-by-one in the FLAC security fix patch. This breakage was
causing failure to play some files.
* Support 16-bit big-endian DTS audio.
* Improved frame snapshot API. (ABI extension.)
* Re-add support for # (stream parameter separator) in raw filenames,
without the bugs found in the original implementation.
(This is a convenience feature for users only. Front ends which rely on
it for functions like subtitle file detection must instead use file://
MRLs; if they don't, we consider them to be buggy.)
* Fixed long delay when closing stream on dual core systems [Bug #33]
* Mon Mar 10 2008 lnussel@suse.de
- get rid of nosrc so a debuginfo package get created (bnc#284030)
* Fri Feb 15 2008 lnussel@suse.de
- Update to 1.1.10.1:
* Security fix: Array index vulnerability which may allow remote
attackers to execute arbitrary code via a crafted FLAC tag,
causing a stack buffer overflow. (CVE-2008-0486)
* Fix a RealPlayer codec detection bug.
* Improve detection of MP3 streams with ID3v2 tags. Don't trust the tag
size.
* Tue Jan 29 2008 lnussel@suse.de
- Update to 1.1.10: Maintenance release with security fix
* Security fixes:
- Buffer overflow which allows a remote attacker to execute arbitrary
code or crash the client program via a crafted ASF header.
(Related to CVE-2006-1664)
* Update Ogg and Annodex mimetypes and extensions.
* Change the default v4l device paths to /dev/video0 and /dev/radio0.
* Fix support for subtitles with schemes (e.g. http://), partly broken
since 1.1.8.
* Unescape the filename in "#save:". This allows filenames to contain ';'
etc. without ambiguity, e.g. "#save:foo%%3B1.ts" -> "foo;1.ts", but front
end authors should be careful with xine-lib older than 1.1.10.
* Backported xine-config & libxine.pc from 1.2.
Consequently, xine-config now requires pkg-config.
* Don't discard audio samples forever. Fixed streaming playback.
* Fix a possible crash on channel change in the DVB plugin.
* Flash video demuxer improvements and bug fixes.
* Make the V4L ALSA audio input device configurable.
- stick with xine-lib instead of xine-base
* Tue Jan 29 2008 lnussel@suse.de
- fix build on older distros and x86_64
* Thu Jan 24 2008 mhopf@suse.de
- Add mad-devel only if building uncrippled.
* Tue Jan 22 2008 mhopf@suse.de
- Move source package to xine-base:
- Build xine-internal depending on define in top of specfile
- Make package distributable for inclusion in openSUSE.
- xine-internal now created by additional xine-base-internal package.
* Fri Jan 11 2008 mhopf@suse.de
- Update to 1.1.9.1: Security fix
Buffer overflow in RTSP header-handling code. (CVE-2008-0225)
* Thu Jan 10 2008 lnussel@suse.de
- fix path to vdr-xine fifos
* Mon Jan 07 2008 mhopf@suse.de
- Update to 1.1.9: Maintenance release
* Fix dvd://.../title[.chapter] handling.
* Many DVB fixes.
* Fix incorrect H.264 detection on successive MPEG1/2 B frames.
* Add UI option to configure FFmpeg's video decoder thread count.
* Improve syncing of audio and video in the presence of bad frames.
* Improve handling of invalid or unknown frame sizes.
* Fixes in Flash video, Real demuxer, sputext, subtitle rendering.
* Fixes in XML, UTF-8, URL, filename handling.
* Crash, deadlock, and build fixes.
* Nicer wakeup behaviour, using select instead of nanosleep (800 -> 100
wakeups/s).
* Fix ALSA sample loss on close.
* Updated translations.
* Detect corrupted or broken seek tables in CBR MP3 files. [Bug #3]
- Update to vdr-xine-0.8.1
* Tue Nov 13 2007 mhopf@suse.de
- Workarounds to compile with gcc 4.3
* Wed Oct 31 2007 ro@suse.de
- include assert.h for alsa source
* Fri Oct 19 2007 lnussel@suse.de
- Update to vdr-xine-0.7.12
* Tue Aug 28 2007 mhopf@suse.de
- Installing input_vdr.h again (304220).
* Tue Aug 28 2007 mhopf@suse.de
- Fixed DVB issues (305265).
- Updated to 1.1.8 - mostly Bugfixes:
* Fix an audio resampling problem which was causing regular clicking.
* Fix a crash with "dvb:/".
* DVB subtitle fixes: deadlock prevention, thread leakage, spec compliance.
* Allow the DVB input plugin to timeout if it is receiving no signal.
* Fix handling of multiple MPEG TS audio streams & subtitle languages.
* Clean up "%%" unescaping in MRLs; correctly handle "%%" in DVD and VCD MRLs.
* Fix some memory leaks in the Vorbis decoder and video overlays.
* Fix a problem with the goom plugin which could cause it to stop working.
* Various small video frame-handling bug fixes.
* Send a channel-changed event to the frontend when receiving the SYNC
string from last.fm streaming server.
* Add colouring for bold & italic in text subtitles.
* Simple scaling of subtitles to fit the frame width (intended to cope
with common DVB resolutions such as 544x576).
* Add options to control bob deinterlacing in the XxMC video output plugin.
* Sat Aug 18 2007 ssommer@suse.de
- Recommend and use opensuse-codecs-installer
* Mon Jul 02 2007 mhopf@suse.de
- Fixed MJPG decoder linkage.
- Finally removed obsolete vdr-xine-lib-0.7.10-noncrippled.diff.
* Thu Jun 28 2007 meissner@suse.de
- added motion jpeg decoder plugin so we can play
movies captured by digital camera even on the crippled
version.
* Tue Jun 12 2007 mhopf@suse.de
- Fixed precheckin_cripple_tarball.sh
- Updated to 1.1.7:
* Support for libdca.
* handle disappearing audio devices (typically USB).
* Fixed VCD playback (broken since 1.1.4).
* Various other minor fixes and improvements.
* Thu Apr 26 2007 lnussel@suse.de
- fix build on 10.2 by excluding xcb plugins from file list
* Wed Apr 18 2007 mhopf@suse.de
- Updated to 1.1.6:
* 1.1.5 had a few problems with CD audio and DVD playback.
* Split the DirectFB plugin into X11 and non-X versions.
* Fixed the XcbXv plugin - an empty plugin would be built if "old" Xv
isn't detected.
* Reworked the channels.conf file handling in the DVB plugin.
* Fixed a CDDA-related crash and a DVD-related hang.
* Mon Apr 16 2007 mhopf@suse.de
- Updated to 1.1.5:
* Security fixes.
* Improved PulseAudio plugin.
* Added XCB-based output plugins (Xv and XShm).
* Fix race condition in alsa audio out driver.
* Fixed a crash in the eq2 plugin.
* Fixed content type detection for AAC.
* Parse ID3v2 tags on AAC and FLAC files, as well as mp3 files.
* Priority of the AAC encoder is now lower than anything else.
* Relicense the xine-lib XML parser under the GNU LGPL.
* Spanish translation updated by Carlos E. Robinson M.
* Don't leave libstk support to be detected automagically.
* Cleaned up Real binary codecs support.
* Avoid a possible floating-point exception when starting stream playback.
* Now xine can play correctly media on HTTP servers reporting status codes
but no status message.
* Wave files with 24-bit integer PCM streams now should play correctly.
* Added centre-cutout (4:3 in 16:9) to the expand plugin.
* Fix support of block devices for AC3 and DTS demuxers.
* Fix amp muting when level is still at 100.
* Create at least a 1x1 shared image when the first frame is skipped.
* Send an event when the amp level is modified.
* Add support for H.264 video stream in PES packets.
* Support multiple audio PID in MPEG TS.
* Multiple platform fixes.
* Wed Mar 28 2007 mhopf@suse.de
- Distributed source tarball is now crippled.
Call precheckin_cripple_tarball.sh for new xine-lib tarballs.
- Major build update.
* Wed Mar 14 2007 mhopf@suse.de
- Security fix for #254374: DSO loader buffer overflow.
CVE-2007-1387
- BuildRequires fix (libcdio).
* Tue Feb 27 2007 sbrabec@suse.cz
- Reduced BuildRequires.
* Wed Jan 31 2007 mhopf@suse.de
- Update to xine-lib-1.1.4
- Update to vdr-xine-0.7.10
- Fixed some new(?) installation failures
- xineplug_flac has to be triggered on configure manually now.
* Thu Jan 18 2007 mhopf@suse.de
- Fix comparing char* pointer with a string literal.
* Fri Dec 08 2006 mhopf@suse.de
- Update to xine-lib 1.1.3
- Fixed several strncat() and dubious postincrements.
* Thu Nov 30 2006 mhopf@suse.de
- Security fix for #224813: Potential buffer overflow for real media.
SF tracker #1603458:
https://sf.net/tracker/index.php?func=detail&aid=1603458&group_id=9655&atid=109655
* Tue Nov 21 2006 mhopf@suse.de
- Security fix for #222892: Insufficient validation of AVI headers.
CVE-2006-4799 and CVE-2006-4800.
* Mon Oct 16 2006 ro@suse.de
- remove DirectFB from BuildRequires (unused)
* Thu Oct 12 2006 mhopf@suse.de
- Hotfix for automake-less patch.
* Wed Oct 11 2006 mhopf@suse.de
- Missed spu detection in one place.
- Fixed for building w/o automake.
- Spec file cleanup.
* Tue Oct 10 2006 mhopf@suse.de
- Fixed detection of crippled package for DVD playback (mpeg2 + spu).
* Wed Sep 27 2006 lnussel@suse.de
- build xine-ui in separate package
* Mon Sep 11 2006 mhopf@suse.de
- Fixed VDR plugin build.
* Fri Aug 11 2006 mhopf@suse.de
- Fixed X11R6 paths in docs.
* Tue Aug 08 2006 mhopf@suse.de
- Fixes for compatibility to X.org 7.1
- Cleaned up web references (codec crippled xine + base url)
- Improved author lists
- Removed unnecessary autoreconf for libs.
- Added plugins that are finnally building on ppc64 (+s390?)
- More cleanup
* Thu Jul 13 2006 mhopf@suse.de
- Update to xine-lib-1.1.2
- Update to vdr-xine-0.7.9
- Cleanup, renamed several patches.
* Thu Jul 06 2006 mhopf@suse.de
- Security fix for #190398: Buffer overflow in libmms.
- xine-devel Requires: xine-lib now.
* Wed Jun 21 2006 mhopf@suse.de
- Update po/Makefile.in.in for updated autotools.
* Mon Jun 19 2006 schwab@suse.de
- Work around broken use of configure substitutions.
* Tue Jun 06 2006 mhopf@suse.de
- Improved fix for #180850: Use correct buffer size.
* Thu Jun 01 2006 mhopf@suse.de
- Security fix for #180850: Buffer overflow in HTTP input plugin.
* Wed May 17 2006 schwab@suse.de
- Fix unaligned access.
* Sun May 14 2006 schwab@suse.de
- Fix undefined symbol [#173413].
- Fix misuses of sprintf.
- Ensure non-executable stack.
* Thu Apr 20 2006 mhopf@suse.de
- Security fix for #167276: http://open-security.org/advisories/16
* Thu Apr 20 2006 meissner@suse.de
- Removed -U_FORTIFY_SOURCE. Verified xine --keymap working.
* Tue Apr 11 2006 mhopf@suse.de
- Security fix for http://www.xfocus.org/advisories/200603/11.html,
as far as xine is affected.
* Thu Mar 30 2006 mhopf@suse.de
- Fix for #157854: Check for mad and ffmpeg before advertizing mp3.
- Improved fix for shared images, but not shared pixmaps.
* Thu Mar 16 2006 mhopf@suse.de
- Really fixed #132749: crippled xine URL was no longer valid.
Missed text in one of the patches.
* Fri Mar 10 2006 bk@suse.de
- Add esound-devel to BuildRequires (was implicily by SDL-devel)
* Mon Mar 06 2006 mhopf@suse.de
- xine-ui had broken user interface on Xservers that support shared images,
but no shared pixmaps (like Xgl). Fixed.
* Fri Mar 03 2006 mhopf@suse.de
- Fixed #132749: crippled xine URL was no longer valid.
Now on opensuse.org.
* Wed Mar 01 2006 mhopf@suse.de
- Fixed #144083: vdr button not shown.
* Fri Jan 27 2006 mhopf@suse.de
- Fixed BuildRequires.
* Wed Jan 25 2006 mls@suse.de
- converted neededforbuild to BuildRequires
* Mon Jan 09 2006 mhopf@suse.de
- Fixed snapshot function (aspect ratio calculation).
* Mon Jan 09 2006 schwab@suse.de
- Fix support for RealPlayer10 codecs.
* Tue Jan 03 2006 mhopf@suse.de
- Update to xine-lib 1.1.1
- Update to vdr-xine 0.7.6 (adapted to 1.1.1)
* Sun Dec 04 2005 lmuelle@suse.de
- Revert libsmbclient renameing.
* Mon Nov 14 2005 lmuelle@suse.de
- Use samba-libs instead of libsmbclient.
* Thu Oct 27 2005 adrian@suse.de
- xine-internal needs xine-mad now
* Tue Sep 06 2005 schwab@suse.de
- Use <mad.h> instead of own headers, SIZEOF_INT is missing.
* Tue Sep 06 2005 adrian@suse.de
- use external mad lib, fix crashes on 64bit (#115358)
* Thu Sep 01 2005 tiwai@suse.de
- Fix suspend/resume (#114725)
* Mon Aug 29 2005 jw@suse.de
- That is actually: *Do* compile with -U_FORTIFY_SOURCE ...
* Mon Aug 29 2005 kukuk@suse.de
- Fix xine-ui version number
- Don't compile with -U_FORTIFY_SOURCE as workaround for [#113612]
* Thu Aug 25 2005 lnussel@suse.de
- update vdr-xine to version 0.7.5
* Thu Aug 25 2005 schwab@suse.de
- Fix last change.
* Thu Aug 25 2005 adrian@suse.de
- require explicit the xine-lib version in plugin packages
* Fri Aug 19 2005 adrian@suse.de
- move mpeg codecs to -mad package
- convert default video into theora format
* Thu Aug 11 2005 adrian@suse.de
- enable smb and openGL plugins again
- extra file to mark mad support
* Tue Aug 09 2005 schwab@suse.de
- Don't hardcode cache line size.
* Fri Aug 05 2005 lnussel@suse.de
- update to vdr-xine-0.7.4
* Thu Aug 04 2005 adrian@suse.de
- update xine-lib to version 1.1.0 to fix crashes with gcc4
- update xine-ui to version 0.99.4
* Thu Jul 21 2005 hvogel@suse.de
- Set Version tag in the xine-ui subpackage
* Mon Jul 18 2005 schwab@suse.de
- Fix undefined operation.
- Support RealPlayer10 codecs.
* Tue Jul 12 2005 adrian@suse.de
- package xineplug_vo_out_xvmc again, xvmc got fixed
* Wed Apr 27 2005 adrian@suse.de
- update to version 1.0.1
* security fixes
* mpc/musepack decoder
- remove extra binaries for mmx/xmm and trust in runtime detection
* Tue Apr 12 2005 adrian@suse.de
- fix compilation with gcc 4
* Fri Apr 08 2005 adrian@suse.de
- move arts plugin to -extra package, since it is no optional in KDE
* Wed Mar 09 2005 adrian@suse.de
- avoid dependencies to main package
* Wed Mar 02 2005 adrian@suse.de
- parallelise build
* Thu Feb 17 2005 adrian@suse.de
- new url for xine dvd explanations
* Mon Jan 31 2005 lnussel@suse.de
- set vdr-xine fifodir to /var/lib/vdr-xine
* Mon Jan 31 2005 adrian@suse.de
- apply patch to support new vdr
* Tue Jan 25 2005 sbrabec@suse.cz
- Use system libcdio and libvcdinfo.
* Mon Jan 10 2005 adrian@suse.de
- disable XvMC support temporarly, the current X11 snapshot does mis
it.
* Mon Jan 03 2005 adrian@suse.de
- update to the FINAL version 1.0 !
* spudvb support
- update xine-ui to version 0.99.3
- own subpackage for -mad dependency
* Wed Nov 10 2004 uli@suse.de
- fixed to build on ppc64, s390* (no X?MC)
* Tue Nov 09 2004 adrian@suse.de
- update to version 1.0 rc7
* rewritten DVB support
* speed improvements
* fix for playback freezes on 2.6 kernel
* Thu Oct 14 2004 ro@suse.de
- added gnutls et.al. to neededforbuild
* Sat Sep 25 2004 adrian@suse.de
- fix build of mad decoder (leads to crashes on 64bit #46091)
- downgrade goom plugin due to problems on 64bit (#46091)
* Fri Sep 24 2004 adrian@suse.de
- fix permissions on directories (#45957)
* Mon Sep 20 2004 adrian@suse.de
- update to verions 1.0 rc6a
* further security fix and obsoletes patches
* fix for QuickTime 6.3 DLLs
* Sat Aug 21 2004 adrian@suse.de
- review the new plugins and move them either to the
public or internal package
- move flac to xine-lib, since we have flac anyway installed
by default now.
* Thu Aug 19 2004 adrian@suse.de
- add libtheora-devel to nfb
* Tue Aug 10 2004 adrian@suse.de
- fix buffer overflow in vcd input plugin (#43642)
http://www.open-security.org/advisories/6
* Tue Jul 06 2004 adrian@suse.de
- update xine-ui to version 0.99.2
* Wed Jun 23 2004 adrian@suse.de
- update to version rc5
* Sat May 15 2004 adrian@suse.de
- update to version rc4a
- add /usr/lib/win32 dir on ia32
* Sat May 01 2004 adrian@suse.de
- add input plugin from VDR system
- revert libmpeg2 change, it got too imcompatible meanwhile
- add some skins for xine-ui
* Thu Apr 29 2004 adrian@suse.de
- update to version rc4
- use external libmad and libmpeg2
* Thu Apr 22 2004 adrian@suse.de
- update xine-ui to version 0.99.1
* Wed Apr 14 2004 adrian@suse.de
- update to version rc3c.
- enable theora support
* Sat Apr 03 2004 adrian@suse.de
- fix crash in goom plugin on 64bit (#36702)
* Sun Mar 21 2004 adrian@suse.de
- fix crash, when accessing a DVD
* Thu Feb 26 2004 adrian@suse.de
- enable arts plugin again for all architectures
* Thu Feb 12 2004 adrian@suse.de
- fix build (any base header had defined TRUE and FALSE before)
* Thu Feb 05 2004 adrian@suse.de
- this changelog entry misses a proper excuse, why the last one
broke the build
* Wed Feb 04 2004 adrian@suse.de
- remove theora from build system, or ogg would require it
* Mon Feb 02 2004 ro@suse.de
- fix file-list for s390* (alsa)
* Sat Jan 31 2004 adrian@suse.de
- add switch to enable theora support, disabled by default
* Mon Dec 29 2003 adrian@suse.de
- update to version 1.0.0rc3a
* works with NPTL on kernel 2.6 now
* Fri Dec 26 2003 adrian@suse.de
- update xine-ui to version 0.9.23
* Thu Dec 18 2003 adrian@suse.de
- update to version 1.0.0rc3
* Sun Nov 23 2003 adrian@suse.de
- accept alsa 1.0 release in config check
* Mon Oct 27 2003 adrian@suse.de
- update to version 1.0.0rc2
* new/better VCD plugin
* Tue Oct 14 2003 adrian@suse.de
- update to version 1.0.0rc1
* most amd64 patches are merged
* new frame buffer output plugin
* Mon Sep 22 2003 adrian@suse.de
- fix rpm v4 Provides/Obsoletes behaviour
* Sun Sep 21 2003 adrian@suse.de
- do not try to open the dvd device at all, if needed codecs
are missing (or a dead lock can happen) #30224
- move dxr3 plugin to -extra, because of confusing console
messages (most people do not have the dxr3 hardware)
* Fri Sep 19 2003 adrian@suse.de
- move alsa plugin into -extra package, not in default selection
* depending on the driver it crashes in libasound on some systems
while oss works fine
* Fri Sep 05 2003 adrian@suse.de
- justify Categories
* Wed Sep 03 2003 adrian@suse.de
- add warning popup, if the user click on dvd button and
has not sufficient support to play it
* Tue Aug 19 2003 adrian@suse.de
- better 64bit fixes, unbreaking raw device support again
- do not load modules on ix86 multiple times
* Tue Aug 19 2003 adrian@suse.de
- fix libdvdnav/read for 64bit/amd64
- enable SSE/MMX on amd64
- some magic mmx/sse fixes for amd64 from aj
- compile the fallback plugins really without mmx on ix86
* Thu Aug 14 2003 adrian@suse.de
- move speex plugin back to main package, ogg needs it anyway now
- head/tail syntax fixes
- fix crippled logo detection without xine-internal installed
- use desktop file from kappfinder
- do not package arts plugin on 64bit, it cause heavy memory
problems and I really do not want to fix them, after I have
seen the compiler warnings ...
* Fri Aug 08 2003 adrian@suse.de
- update xine-ui to version 0.9.22
* Wed Aug 06 2003 adrian@suse.de
- move speex plugin to -extra
* Sun Aug 03 2003 adrian@suse.de
- update to version 1-rc0
* new support for speex and other
* broadcast functionality
* Tue Jul 29 2003 adrian@suse.de
- add update-desktop-files to #neededforbuild
- fix gnome-vfs detection on lib64
- define x86_64 architecture
* Mon Jul 28 2003 adrian@suse.de
- fix file list
* Mon Jul 28 2003 adrian@suse.de
- add Categories
* Tue Jul 22 2003 adrian@suse.de
- package missing directories
* Tue Jul 22 2003 adrian@suse.de
- fix build for older distributions
- add MMX optimized plugins
- build a SSE and a MMX libxine additionaly.
* Tue Jul 15 2003 adrian@suse.de
- workaround libtool rpath auto usage
- fix build for non-ix86 architectures
- disable gnome_vfs support on 64bit until gnome is fixed
* Mon Jul 14 2003 sbrabec@suse.cz
- GNOME prefix change to /opt/gnome.
* Tue Jun 17 2003 ro@suse.de
- added directories to filelists
* Mon Jun 02 2003 schwab@suse.de
- Put manpages in the correct subpackages.
* Fri May 30 2003 adrian@suse.de
- build also SSE/i686 optimized plugins on ia32
and patch xine to support them, if the cpu provides SSE
(there are already runtime checks in some code, but this is
the only way to get complete i686 optimized plugins)
- remove unneeded .la files in plugin directory
* Sun May 18 2003 adrian@suse.de
- update xine-ui to version 0.9.21
* Fri May 16 2003 adrian@suse.de
- fix patch to build also with 2.4 headers
* Tue May 13 2003 adrian@suse.de
- fix build
* Mon May 12 2003 ro@suse.de
- fix build with current glibc/kernel includes
* Mon May 12 2003 adrian@suse.de
- update to version 1.0-beta12
(sorenson support, but it is not distributable)
* Tue Apr 29 2003 adrian@suse.de
- update to version 1.0-beta11
* Wed Apr 16 2003 adrian@suse.de
- fix typos
* Tue Apr 15 2003 adrian@suse.de
- fix criple runtime check
* Wed Apr 09 2003 schwab@suse.de
- Fix uninitialized variable.
* Wed Apr 09 2003 adrian@suse.de
- update to version 1.0-beta10
- rename package from xine to xine-lib and create xine-ui and
an internal xine-INTERNAL package to check the packaging
- add freetype support
* Mon Apr 07 2003 kukuk@suse.de
- Not all architectures have ALSA
* Wed Mar 12 2003 adrian@suse.de
- use cripple warning in default video
* Mon Feb 24 2003 schwab@suse.de
- Fix broken configure check.
* Mon Feb 17 2003 adrian@suse.de
- update legal comment according gsm 06.10
* Fri Feb 14 2003 adrian@suse.de
- add README.SuSE, written by Stanislav
* Wed Feb 12 2003 adrian@suse.de
- fix build for 8.1
* Thu Feb 06 2003 adrian@suse.de
- faad implementation is okay, but there are maybe other copyrights
-> disabled
* Tue Feb 04 2003 adrian@suse.de
- update xine-lib to 1-beta4
- enable aalib support
- reorganize subpackages
* xine-extra for Gnome2 plugins
* xine-devel
- install .desktop file in KDE Multimedia menu
- install fonts, they are xine own property and freeware
* Sun Feb 02 2003 adrian@suse.de
- update xine-lib to version 1 beta3
- update xine-ui to version 0.9.18
- review all codecs for legal problems, still unsure on some,
which remain disabled
* Tue Jun 11 2002 ro@suse.de
- added slang to neededforbuild (for aalib)
- fix build for lib64 running full auto-tools
* Tue Apr 16 2002 mmj@suse.de
- Turn /usr/share/man into %%docdir -> fix aaa_dir clash
* Fri Feb 15 2002 ro@suse.de
- changed neededforbuild <kdelibs3-artsd> to <arts arts-devel>
* Fri Feb 01 2002 ro@suse.de
- changed neededforbuild <libpng> to <libpng-devel-packages>
* Tue Jan 22 2002 ro@suse.de
- changed neededforbuild <kdelibs-artsd> to <kdelibs3-artsd>
* Tue Dec 11 2001 ro@suse.de
- move dvd plugins to subpackage again
* Tue Nov 20 2001 ro@suse.de
- fix neededforbuild: xf86
* Tue Nov 20 2001 ro@suse.de
- added ogg-vorbis, esound. kdelibs-artsd to neededforbuild
* Tue Nov 20 2001 ro@suse.de
- no-fpic made it segfault on x86: force it to on
- disabled cpu-acceleration to make it compile with -fPIC
- update to 0.9.4
* Sat Nov 03 2001 stepan@suse.de
- update to 0.9.3. got rid of patches as they are included now.
* Thu Sep 27 2001 stepan@suse.de
- update to 0.9.1 (thanks to bjacke@suse.de)
- autoconf/gcc/libtool fixes. works on ia64 and s390 now.
* Tue Jun 05 2001 kukuk@suse.de
- Remove nox86 patch, not necessary and does not apply
* Tue May 22 2001 wimer@suse.de
- updated to version 0.4.3
- changed SuSE series to gra again (change vanished)
* Wed May 09 2001 wimer@suse.de
- updated to version 0.4.2 (stability fixes and works on ppc now)
- changed SuSE Series to gra instead of snd.
* Sat Apr 07 2001 bjacke@suse.de
- make xine look for win32 codecs
- move doc to correct place
- some spec file fixes
* Mon Mar 12 2001 wimer@suse.de
- initial version: 0.4.01