update package xine-lib

This commit is contained in:
Mark Brand 2011-11-13 12:11:14 +01:00
parent 792e8c62f1
commit 7581eace52
6 changed files with 94 additions and 227 deletions

View File

@ -1,35 +0,0 @@
This file is part of mingw-cross-env.
See doc/index.html for further information.
diff -r 42ff50f9d875 src/xine-engine/Makefile.am
--- a/src/xine-engine/Makefile.am Mon Apr 26 17:53:49 2010 +0200
+++ b/src/xine-engine/Makefile.am Tue Apr 27 11:57:54 2010 +0200
@@ -45,10 +45,10 @@
if WIN32
install-exec-local:
- cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
+ -cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
uninstall-local:
- rm -f $(DEF_FILE)
+ -rm -f $(DESTDIR)$(libdir)/$(DEF_FILE)
endif
$(XINEUTILS_LIB):
diff -r 42ff50f9d875 src/xine-engine/Makefile.in
--- a/src/xine-engine/Makefile.in Mon Apr 26 17:53:49 2010 +0200
+++ b/src/xine-engine/Makefile.in Tue Apr 27 11:57:54 2010 +0200
@@ -898,10 +898,10 @@
$(MAKE) -C $(top_builddir)/lib libxineposix.la
@WIN32_TRUE@install-exec-local:
-@WIN32_TRUE@ cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
+@WIN32_TRUE@ -cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
@WIN32_TRUE@uninstall-local:
-@WIN32_TRUE@ rm -f $(DEF_FILE)
+@WIN32_TRUE@ -rm -f $(DESTDIR)$(libdir)/$(DEF_FILE)
$(XINEUTILS_LIB):
$(MAKE) -C $(top_builddir)/src/xine-utils libxineutils.la

View File

@ -0,0 +1,92 @@
This file is part of mingw-cross-env.
See doc/index.html for further information.
Contains ad hoc patches for cross building.
From 10c6f4cb18b2b8e710a89ac36e360f3bb414a81c Mon Sep 17 00:00:00 2001
From: mingw-cross-env
Date: Sun, 13 Nov 2011 11:48:07 +0100
Subject: [PATCH 1/3] fix-install-def-file
diff --git a/src/xine-engine/Makefile.am b/src/xine-engine/Makefile.am
index 67ae63f..0f94abf 100644
--- a/src/xine-engine/Makefile.am
+++ b/src/xine-engine/Makefile.am
@@ -45,10 +45,10 @@ noinst_HEADERS = bswap.h ffmpeg_bswap.h xine_private.h
if WIN32
install-exec-local:
- cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
+ -cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
uninstall-local:
- rm -f $(DEF_FILE)
+ -rm -f $(DESTDIR)$(libdir)/$(DEF_FILE)
endif
$(XINEUTILS_LIB):
diff --git a/src/xine-engine/Makefile.in b/src/xine-engine/Makefile.in
index 167a32b..0664e1f 100644
--- a/src/xine-engine/Makefile.in
+++ b/src/xine-engine/Makefile.in
@@ -905,10 +905,10 @@ $(LIBXINEPOSIX):
$(MAKE) -C $(top_builddir)/lib libxineposix.la
@WIN32_TRUE@install-exec-local:
-@WIN32_TRUE@ cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
+@WIN32_TRUE@ -cp -p $(DEF_FILE) $(DESTDIR)$(libdir)
@WIN32_TRUE@uninstall-local:
-@WIN32_TRUE@ rm -f $(DEF_FILE)
+@WIN32_TRUE@ -rm -f $(DESTDIR)$(libdir)/$(DEF_FILE)
$(XINEUTILS_LIB):
$(MAKE) -C $(top_builddir)/src/xine-utils libxineutils.la
--
1.7.7
From 536bda7f4b05f9a70bfbeca9578565a03b54c94e Mon Sep 17 00:00:00 2001
From: mingw-cross-env
Date: Sun, 13 Nov 2011 12:05:22 +0100
Subject: [PATCH 2/3] fake missing definitions for WIN32
Taken from:
https://bugs.xine-project.org/show_bug.cgi?id=433
diff --git a/src/audio_out/audio_file_out.c b/src/audio_out/audio_file_out.c
index 0895a2e..51f8855 100644
--- a/src/audio_out/audio_file_out.c
+++ b/src/audio_out/audio_file_out.c
@@ -40,6 +40,18 @@
#define GAP_TOLERANCE INT_MAX
+#ifdef WIN32
+#ifndef S_IWUSR
+#define S_IWUSR 0x0000
+#endif
+#ifndef S_IRGRP
+#define S_IRGRP 0x0000
+#endif
+#ifndef S_IROTH
+#define S_IROTH 0x0000
+#endif
+#endif
+
/* Taken (hStudlyCapsAndAll) from sox's wavwritehdr */
struct wavhdr {
@@ -116,7 +128,6 @@ static int ao_file_open(ao_driver_t *this_gen, uint32_t bits, uint32_t rate, int
this->fname = "xine-out.wav";
this->fd = xine_create_cloexec(this->fname, O_WRONLY|O_TRUNC, S_IRUSR|S_IWUSR|S_IRGRP|S_IROTH);
-
if (this->fd == -1) {
xprintf (this->xine, XINE_VERBOSITY_LOG, "audio_file_out: Failed to open file '%s': %s\n",
this->fname, strerror(errno));
--
1.7.7

View File

@ -1,38 +0,0 @@
# This file is part of mingw-cross-env.
# See doc/index.html for further information.
This patch has been taken from:
https://bugs.xine-project.org/show_bug.cgi?id=411
diff --git a/configure.ac b/configure.ac
index dc53a73..90f23a8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -281,7 +281,6 @@ case "$host_os" in
GOOM_LIBS="-liberty"
LDFLAGS="-Wl,--enable-stdcall-fixup $LDFLAGS"
fi
- LDFLAGS="-no-undefined $LDFLAGS"
;;
esac
AC_SUBST(GOOM_LIBS)
@@ -2877,6 +2876,19 @@ mv -f libtool.tmp libtool
chmod +x libtool
dnl ---------------------------------------------
+dnl Libtool flag for Windows:
+dnl
+dnl The "-no-undefined" flag must be added after all other
+dnl configure checks, because it is only for libtool and
+dnl must not be passed to GCC by accident.
+dnl ---------------------------------------------
+case "$host_os" in
+ mingw* | cygwin*)
+ LDFLAGS="-no-undefined $LDFLAGS"
+ ;;
+esac
+
+dnl ---------------------------------------------
dnl Some infos:
dnl ---------------------------------------------

View File

@ -1,109 +0,0 @@
This file is part of mingw-cross-env.
See doc/index.html for further information.
This patch taken from:
http://www.nntpnews.info/threads/20303026-packages-xine-lib-xine-lib.spec-xine-lib-xine-lib-ffmpeg-0.8.patch-%28NEW%29-UTF-8-Q-20-...
diff -urN a/src/combined/ffmpeg/ff_audio_decoder.c b/src/combined/ffmpeg/ff_audio_decoder.c
--- a/src/combined/ffmpeg/ff_audio_decoder.c 2010-03-23 16:41:49.000000000 +0100
+++ b/src/combined/ffmpeg/ff_audio_decoder.c 2011-07-11 10:48:48.967401526 +0200
@@ -255,6 +255,7 @@
buf->decoder_info[2]);
} else if (!(buf->decoder_flags & BUF_FLAG_SPECIAL)) {
+ AVPacket avpkt;
if( !this->decoder_ok ) {
if ( ! this->context || ! this->codec ) {
@@ -286,11 +287,13 @@
if (!this->output_open) {
if (!this->audio_bits || !this->audio_sample_rate || !this->audio_channels) {
decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
- avcodec_decode_audio2 (this->context,
- (int16_t *)this->decode_buffer,
- &decode_buffer_size,
- &this->buf[0],
- this->size);
+ av_init_packet(&avpkt);
+ avpkt.data = (uint8_t *)&this->buf[0];
+ avpkt.size = this->size;
+ avpkt.flags = AV_PKT_FLAG_KEY;
+ avcodec_decode_audio3 (this->context,
+ (int16_t *)this->decode_buffer,
+ &decode_buffer_size, &avpkt);
this->audio_bits = this->context->bits_per_sample;
this->audio_sample_rate = this->context->sample_rate;
this->audio_channels = this->context->channels;
@@ -311,11 +314,13 @@
offset = 0;
while (this->size>0) {
decode_buffer_size = AVCODEC_MAX_AUDIO_FRAME_SIZE;
- bytes_consumed = avcodec_decode_audio2 (this->context,
- (int16_t *)this->decode_buffer,
- &decode_buffer_size,
- &this->buf[offset],
- this->size);
+ av_init_packet(&avpkt);
+ avpkt.data = (uint8_t *)&this->buf[offset];
+ avpkt.size = this->size;
+ avpkt.flags = AV_PKT_FLAG_KEY;
+ bytes_consumed = avcodec_decode_audio3 (this->context,
+ (int16_t *)this->decode_buffer,
+ &decode_buffer_size, &avpkt);
if (bytes_consumed<0) {
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
diff -urN a/src/combined/ffmpeg/ff_video_decoder.c b/src/combined/ffmpeg/ff_video_decoder.c
--- a/src/combined/ffmpeg/ff_video_decoder.c 2010-03-10 20:07:15.000000000 +0100
+++ b/src/combined/ffmpeg/ff_video_decoder.c 2011-07-11 10:48:48.967401526 +0200
@@ -1055,12 +1055,16 @@
}
/* skip decoding b frames if too late */
- this->context->hurry_up = (this->skipframes > 0);
+ this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
lprintf("avcodec_decode_video: size=%d\n", this->mpeg_parser->buffer_size);
- len = avcodec_decode_video (this->context, this->av_frame,
- &got_picture, this->mpeg_parser->chunk_buffer,
- this->mpeg_parser->buffer_size);
+ AVPacket avpkt;
+ av_init_packet(&avpkt);
+ avpkt.data = (uint8_t *)this->mpeg_parser->chunk_buffer;
+ avpkt.size = this->mpeg_parser->buffer_size;
+ avpkt.flags = AV_PKT_FLAG_KEY;
+ len = avcodec_decode_video2 (this->context, this->av_frame,
+ &got_picture, &avpkt);
lprintf("avcodec_decode_video: decoded_size=%d, got_picture=%d\n",
len, got_picture);
len = current - buf->content - offset;
@@ -1112,7 +1116,7 @@
} else {
- if (this->context->hurry_up) {
+ if (this->context->skip_frame != AVDISCARD_DEFAULT) {
/* skipped frame, output a bad frame */
img = this->stream->video_out->get_frame (this->stream->video_out,
this->bih.biWidth,
@@ -1304,12 +1308,16 @@
got_picture = 0;
} else {
/* skip decoding b frames if too late */
- this->context->hurry_up = (this->skipframes > 0);
+ this->context->skip_frame = (this->skipframes > 0) ? AVDISCARD_NONREF : AVDISCARD_DEFAULT;
lprintf("buffer size: %d\n", this->size);
- len = avcodec_decode_video (this->context, this->av_frame,
- &got_picture, &chunk_buf[offset],
- this->size);
+ AVPacket avpkt;
+ av_init_packet(&avpkt);
+ avpkt.data = (uint8_t *)&chunk_buf[offset];
+ avpkt.size = this->size;
+ avpkt.flags = AV_PKT_FLAG_KEY;
+ len = avcodec_decode_video2 (this->context, this->av_frame,
+ &got_picture, &avpkt);
#ifdef AVCODEC_HAS_REORDERED_OPAQUE
/* reset consumed pts value */

View File

@ -1,43 +0,0 @@
This file is part of mingw-cross-env.
See doc/index.html for further information.
This patch taken from:
https://bugs.xine-project.org/show_bug.cgi?id=430
From 937ff31c13b06d22a094d6a91d2ae33471f2bc58 Mon Sep 17 00:00:00 2001
From: Mark Brand <mabrand@mabrand.nl>
Date: Thu, 3 Nov 2011 23:48:50 +0100
Subject: [PATCH] fix include order to avoid conflicting INT32
basetsd.h and jmorecfg.h both define INT32, but jmorecfg.h checks.
libmng.h introduces jmorecfg.h and so it must follow xine_internal.h
which introduces basetsd.h.
---
src/demuxers/demux_mng.c | 4 ++--
1 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/demuxers/demux_mng.c b/src/demuxers/demux_mng.c
index 2fccd0b..bf4dfec 100644
--- a/src/demuxers/demux_mng.c
+++ b/src/demuxers/demux_mng.c
@@ -38,8 +38,6 @@
#undef HAVE_STDLIB_H
#endif
-#include <libmng.h>
-
#define LOG_MODULE "demux_mng"
#define LOG_VERBOSE
/*
@@ -50,6 +48,8 @@
#include "xineutils.h"
#include "demux.h"
+#include <libmng.h>
+
typedef struct {
demux_plugin_t demux_plugin;
--
1.7.7

View File

@ -4,8 +4,8 @@
# xine-lib
PKG := xine-lib
$(PKG)_IGNORE :=
$(PKG)_VERSION := 1.1.19
$(PKG)_CHECKSUM := 5afcc28c5cf2bdaab99d951960f6587797e1e5a0
$(PKG)_VERSION := 1.1.20
$(PKG)_CHECKSUM := 60ce1cea9bf7a6b7d8c60141593a8ed0c54f9445
$(PKG)_SUBDIR := $(PKG)-$($(PKG)_VERSION)
$(PKG)_FILE := $(PKG)-$($(PKG)_VERSION).tar.bz2
$(PKG)_WEBSITE := http://www.xine-project.org/