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:
parent
27da690f02
commit
7b7cbd6322
@ -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 }
|
||||
+};
|
||||
|
@ -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
|
||||
|
||||
|
765
xine-lib.spec
765
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 <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
|
||||
|
Loading…
Reference in New Issue
Block a user