From 7b7cbd6322034d80a579317eb278aa69b668f44619805a9464ed1917f36b90ab Mon Sep 17 00:00:00 2001 From: OBS User autobuild Date: Mon, 12 Oct 2009 14:55:38 +0000 Subject: [PATCH] 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 --- xine-lib-mjpegplugin.diff | 861 +++++++++++++++++++------------------- xine-lib.changes | 11 + xine-lib.spec | 765 +-------------------------------- 3 files changed, 450 insertions(+), 1187 deletions(-) diff --git a/xine-lib-mjpegplugin.diff b/xine-lib-mjpegplugin.diff index 4eeea8b..9ed0cac 100644 --- a/xine-lib-mjpegplugin.diff +++ b/xine-lib-mjpegplugin.diff @@ -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 -+#include -+#include -+#include -+ -+#include -+ -+#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;ibytes_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;ijd.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 ++#include ++#include ++#include ++ ++#include ++ ++#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;ibytes_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;ijd.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 } ++}; diff --git a/xine-lib.changes b/xine-lib.changes index 98fc74c..5e63637 100644 --- a/xine-lib.changes +++ b/xine-lib.changes @@ -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 diff --git a/xine-lib.spec b/xine-lib.spec index 00ee7e8..ec40550 100644 --- a/xine-lib.spec +++ b/xine-lib.spec @@ -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 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 to -* Fri Feb 01 2002 ro@suse.de -- changed neededforbuild to -* Tue Jan 22 2002 ro@suse.de -- changed neededforbuild to -* 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