Update to Xine-lib 1.2.6.
ok ajacoutot@ sthen@
This commit is contained in:
parent
d1604ea6b2
commit
3a4940ef57
@ -1,17 +1,15 @@
|
||||
# $OpenBSD: Makefile,v 1.115 2014/07/13 17:02:59 brad Exp $
|
||||
# $OpenBSD: Makefile,v 1.116 2014/07/13 20:03:51 brad Exp $
|
||||
|
||||
SHARED_ONLY= Yes
|
||||
|
||||
COMMENT= multimedia decoding library
|
||||
|
||||
DISTNAME= xine-lib-1.2.5
|
||||
DISTNAME= xine-lib-1.2.6
|
||||
CATEGORIES= multimedia
|
||||
MASTER_SITES= ${MASTER_SITE_SOURCEFORGE:=xine/}
|
||||
EXTRACT_SUFX= .tar.xz
|
||||
|
||||
REVISION= 5
|
||||
|
||||
SHARED_LIBS= xine 31.0
|
||||
SHARED_LIBS= xine 32.0
|
||||
|
||||
HOMEPAGE= http://www.xine-project.org/
|
||||
|
||||
@ -28,7 +26,7 @@ WANTLIB= FLAC GL GLU ICE SDL SM X11 Xext Xinerama Xv XvMCW a52 avcodec \
|
||||
vorbis vpx>=5 wavpack xcb-shape xcb-shm xcb-xv xcb xdg-basedir \
|
||||
xml2 z
|
||||
|
||||
XINEAPI_REV= 2.4
|
||||
XINEAPI_REV= 2.5
|
||||
SUBST_VARS+= XINEAPI_REV
|
||||
|
||||
MODULES= devel/gettext
|
||||
|
@ -1,2 +1,2 @@
|
||||
SHA256 (xine-lib-1.2.5.tar.xz) = yOpAkNH6g/i2iHEYcwVHqpGIYtYPQ+pnAIn5BT5Uq3w=
|
||||
SIZE (xine-lib-1.2.5.tar.xz) = 5007012
|
||||
SHA256 (xine-lib-1.2.6.tar.xz) = vQQdc4gXx8DGOSo8DlvaWmZKR+A1E1taRJNk+Mm2oAU=
|
||||
SIZE (xine-lib-1.2.6.tar.xz) = 5020964
|
||||
|
@ -1,7 +1,7 @@
|
||||
$OpenBSD: patch-configure_ac,v 1.18 2013/11/30 22:13:37 brad Exp $
|
||||
--- configure.ac.orig Fri Sep 20 09:04:44 2013
|
||||
+++ configure.ac Wed Nov 20 16:57:34 2013
|
||||
@@ -811,9 +811,7 @@ AC_ARG_ENABLE([optimizations],
|
||||
$OpenBSD: patch-configure_ac,v 1.19 2014/07/13 20:03:51 brad Exp $
|
||||
--- configure.ac.orig Thu May 29 07:11:59 2014
|
||||
+++ configure.ac Sun Jul 13 13:05:53 2014
|
||||
@@ -819,9 +819,7 @@ AC_ARG_ENABLE([optimizations],
|
||||
[AS_HELP_STRING([--disable-optimizations], [Don't try to guess what optimization to enable])],
|
||||
[], [test x"$enable_debug" != x"no" && enable_optimizations="no"])
|
||||
AM_CONDITIONAL([DISABLE_OPTIMIZATIONS], [test x"$enable_optimizations" = x"no"])
|
||||
@ -12,7 +12,7 @@ $OpenBSD: patch-configure_ac,v 1.18 2013/11/30 22:13:37 brad Exp $
|
||||
dnl For multi-pass compilation: never when cross-compiling
|
||||
if test x"$cross_compiling" != x"yes"; then
|
||||
if test x"$GCC" = x"yes"; then
|
||||
@@ -837,7 +835,7 @@ AC_SUBST(O3_CFLAGS)
|
||||
@@ -845,7 +843,7 @@ AC_SUBST(O3_CFLAGS)
|
||||
AC_SUBST(PASS1_CFLAGS)
|
||||
AC_SUBST(PASS2_CFLAGS)
|
||||
|
||||
@ -21,7 +21,7 @@ $OpenBSD: patch-configure_ac,v 1.18 2013/11/30 22:13:37 brad Exp $
|
||||
AC_SUBST(DEFAULT_OCFLAGS)
|
||||
|
||||
if test x"$arch_x86" != x"no" && test x"$enable_macosx_universal" = x"no"; then
|
||||
@@ -989,9 +987,9 @@ t q
|
||||
@@ -997,9 +995,9 @@ t q
|
||||
b
|
||||
:q
|
||||
q"
|
||||
|
@ -1,14 +0,0 @@
|
||||
$OpenBSD: patch-include_xine_buffer_h,v 1.1 2014/05/21 23:41:03 brad Exp $
|
||||
|
||||
Add buffer type for Opus.
|
||||
|
||||
--- include/xine/buffer.h.orig Wed May 21 09:33:56 2014
|
||||
+++ include/xine/buffer.h Wed May 21 09:34:30 2014
|
||||
@@ -272,6 +272,7 @@ extern "C" {
|
||||
#define BUF_AUDIO_EAC3 0x03410000
|
||||
#define BUF_AUDIO_AAC_LATM 0x03420000
|
||||
#define BUF_AUDIO_ADPCM_G726 0x03430000
|
||||
+#define BUF_AUDIO_OPUS 0x03440000
|
||||
/*@}*/
|
||||
|
||||
/**
|
@ -1,33 +0,0 @@
|
||||
$OpenBSD: patch-src_audio_out_audio_sndio_out_c,v 1.1 2014/06/02 22:26:10 brad Exp $
|
||||
|
||||
Re-enable the multichannel audio support.
|
||||
|
||||
--- src/audio_out/audio_sndio_out.c.orig Mon May 26 20:31:35 2014
|
||||
+++ src/audio_out/audio_sndio_out.c Mon May 26 20:39:17 2014
|
||||
@@ -105,7 +105,6 @@ static int ao_sndio_open(ao_driver_t *this_gen,
|
||||
case AO_CAP_MODE_STEREO:
|
||||
par.pchan = 2;
|
||||
break;
|
||||
-#if 0
|
||||
case AO_CAP_MODE_4CHANNEL:
|
||||
par.pchan = 4;
|
||||
break;
|
||||
@@ -114,7 +113,6 @@ static int ao_sndio_open(ao_driver_t *this_gen,
|
||||
case AO_CAP_MODE_5_1CHANNEL:
|
||||
par.pchan = 6;
|
||||
break;
|
||||
-#endif
|
||||
default:
|
||||
xprintf (this->xine, XINE_VERBOSITY_DEBUG,
|
||||
"audio_sndio_out: ao_sndio_open does not support the requested mode: 0x%X\n",
|
||||
@@ -335,10 +333,8 @@ static ao_driver_t *open_plugin (audio_driver_class_t
|
||||
* Set capabilities
|
||||
*/
|
||||
this->capabilities = AO_CAP_MODE_MONO | AO_CAP_MODE_STEREO |
|
||||
-#if 0
|
||||
AO_CAP_MODE_4CHANNEL | AO_CAP_MODE_4_1CHANNEL |
|
||||
AO_CAP_MODE_5CHANNEL | AO_CAP_MODE_5_1CHANNEL |
|
||||
-#endif
|
||||
AO_CAP_MIXER_VOL | AO_CAP_MUTE_VOL | AO_CAP_8BITS |
|
||||
AO_CAP_16BITS;
|
||||
|
@ -1,121 +0,0 @@
|
||||
$OpenBSD: patch-src_combined_ffmpeg_ff_video_decoder_c,v 1.18 2014/05/24 16:16:14 brad Exp $
|
||||
|
||||
- Simplify FFmpeg video edge handling.
|
||||
- Add DR1 reenable message.
|
||||
- Fix multithreading.
|
||||
|
||||
--- src/combined/ffmpeg/ff_video_decoder.c.orig Thu Mar 13 00:06:09 2014
|
||||
+++ src/combined/ffmpeg/ff_video_decoder.c Sat May 24 11:17:54 2014
|
||||
@@ -278,8 +278,19 @@ static int get_buffer (AVCodecContext *context, AVFram
|
||||
/* The visible size, may be smaller. */
|
||||
int width = context->width;
|
||||
int height = context->height;
|
||||
+ int top_edge;
|
||||
int guarded_render = 0;
|
||||
|
||||
+ /* multiple threads have individual contexts !! */
|
||||
+#ifdef AVCODEC_HAS_COLORSPACE
|
||||
+ if (context != this->context) {
|
||||
+ if (this->context->colorspace == 2) /* undefined */
|
||||
+ this->context->colorspace = context->colorspace;
|
||||
+ if (this->context->color_range == 0)
|
||||
+ this->context->color_range = context->color_range;
|
||||
+ }
|
||||
+#endif
|
||||
+
|
||||
/* A bit of unmotivated paranoia... */
|
||||
if (buf_width < width)
|
||||
buf_width = width;
|
||||
@@ -303,7 +314,7 @@ static int get_buffer (AVCodecContext *context, AVFram
|
||||
avcodec_align_dimensions(context, &buf_width, &buf_height);
|
||||
|
||||
#ifdef ENABLE_VAAPI
|
||||
- if( this->context->pix_fmt == PIX_FMT_VAAPI_VLD) {
|
||||
+ if( context->pix_fmt == PIX_FMT_VAAPI_VLD ) {
|
||||
|
||||
av_frame->opaque = NULL;
|
||||
av_frame->data[0] = NULL;
|
||||
@@ -406,13 +417,18 @@ static int get_buffer (AVCodecContext *context, AVFram
|
||||
#endif /* ENABLE_VAAPI */
|
||||
|
||||
/* The alignment rhapsody */
|
||||
- buf_width += 2 * this->edge + 15;
|
||||
- buf_width &= ~15;
|
||||
- buf_height += 2 * this->edge + 15;
|
||||
+ /* SSE2+ requirement (U, V rows need to be 16 byte aligned too) */
|
||||
+ buf_width += 2 * this->edge + 31;
|
||||
+ buf_width &= ~31;
|
||||
+ /* 2 extra lines for the edge wrap below plus XINE requirement */
|
||||
+ top_edge = this->edge;
|
||||
+ if (top_edge)
|
||||
+ top_edge += 2;
|
||||
+ buf_height += top_edge + this->edge + 15;
|
||||
buf_height &= ~15;
|
||||
|
||||
- if ((this->full2mpeg || (this->context->pix_fmt != PIX_FMT_YUV420P &&
|
||||
- this->context->pix_fmt != PIX_FMT_YUVJ420P)) || guarded_render) {
|
||||
+ if (this->full2mpeg || guarded_render ||
|
||||
+ (context->pix_fmt != PIX_FMT_YUV420P && context->pix_fmt != PIX_FMT_YUVJ420P)) {
|
||||
if (!this->is_direct_rendering_disabled) {
|
||||
xprintf(this->stream->xine, XINE_VERBOSITY_LOG,
|
||||
_("ffmpeg_video_dec: unsupported frame format, DR1 disabled.\n"));
|
||||
@@ -449,7 +465,10 @@ static int get_buffer (AVCodecContext *context, AVFram
|
||||
}
|
||||
}
|
||||
|
||||
- this->is_direct_rendering_disabled = 0;
|
||||
+ if (this->is_direct_rendering_disabled) {
|
||||
+ xprintf (this->stream->xine, XINE_VERBOSITY_LOG, _("ffmpeg_video_dec: direct rendering enabled\n"));
|
||||
+ this->is_direct_rendering_disabled = 0;
|
||||
+ }
|
||||
|
||||
img = this->stream->video_out->get_frame (this->stream->video_out,
|
||||
buf_width,
|
||||
@@ -503,13 +522,15 @@ static int get_buffer (AVCodecContext *context, AVFram
|
||||
av_frame->linesize[2] = img->pitches[2];
|
||||
|
||||
if (this->output_format == XINE_IMGFMT_YV12) {
|
||||
- av_frame->data[0] += (img->pitches[0] + 1) * this->edge;
|
||||
- av_frame->data[1] += (img->pitches[1] + 1) * this->edge / 2;
|
||||
- av_frame->data[2] += (img->pitches[2] + 1) * this->edge / 2;
|
||||
- img->crop_left = this->edge;
|
||||
- img->crop_top = this->edge;
|
||||
- img->crop_right = buf_width - width - this->edge;
|
||||
- img->crop_bottom = buf_height - height - this->edge;
|
||||
+ /* nasty hack: wrap left edge to the right side to get proper
|
||||
+ SSE2 alignment on all planes. */
|
||||
+ av_frame->data[0] += img->pitches[0] * top_edge;
|
||||
+ av_frame->data[1] += img->pitches[1] * top_edge / 2;
|
||||
+ av_frame->data[2] += img->pitches[2] * top_edge / 2;
|
||||
+ img->crop_left = 0;
|
||||
+ img->crop_top = top_edge;
|
||||
+ img->crop_right = buf_width - width;
|
||||
+ img->crop_bottom = buf_height - height - top_edge;
|
||||
}
|
||||
|
||||
/* We should really keep track of the ages of xine frames (see
|
||||
@@ -731,6 +752,7 @@ static void init_video_codec (ff_video_decoder_t *this
|
||||
if( this->codec->capabilities & CODEC_CAP_DR1 && this->class->enable_dri ) {
|
||||
#ifdef AV_BUFFER
|
||||
this->context->get_buffer2 = get_buffer;
|
||||
+ this->context->thread_safe_callbacks = 1;
|
||||
#else
|
||||
this->context->get_buffer = get_buffer;
|
||||
this->context->release_buffer = release_buffer;
|
||||
@@ -2280,6 +2302,7 @@ static void ff_free_dr1_frames (ff_video_decoder_t *th
|
||||
They will only be replaced when new ones arrive, and freed on codec close.
|
||||
They also have no AVCodec.flush () callback for manual freeing (that is,
|
||||
avcodec_flush_buffers () does nothing).
|
||||
+ Even worse: multithreading seems to always do it like that...
|
||||
So lets tolerate this behaviour on plain stream seek. */
|
||||
if (!all) {
|
||||
it = NULL;
|
||||
@@ -2288,7 +2311,7 @@ static void ff_free_dr1_frames (ff_video_decoder_t *th
|
||||
frames++;
|
||||
if (!frames)
|
||||
return;
|
||||
- if (frames < 5) {
|
||||
+ if (frames < 12) {
|
||||
xprintf (this->stream->xine, XINE_VERBOSITY_DEBUG,
|
||||
"ffmpeg_video_dec: tolerating %d held DR1 frames.\n", frames);
|
||||
return;
|
@ -1,14 +0,0 @@
|
||||
$OpenBSD: patch-src_combined_ffmpeg_xine_audio_list,v 1.3 2014/07/13 17:02:59 brad Exp $
|
||||
|
||||
Enable Opus decoder.
|
||||
|
||||
--- src/combined/ffmpeg/xine_audio.list.orig Wed Feb 26 10:49:10 2014
|
||||
+++ src/combined/ffmpeg/xine_audio.list Sat Jul 12 20:15:14 2014
|
||||
@@ -46,6 +46,7 @@ AAC AAC MPEG4
|
||||
AAC_LATM AAC_LATM AAC LATM
|
||||
ADPCM_G726 ADPCM_G726 ADPCM G726
|
||||
QCLP QCELP QualComm Purevoice
|
||||
+OPUS OPUS Opus Audio
|
||||
|
||||
# disabled codecs (ref. configure.ac)
|
||||
! AC3
|
@ -1,18 +0,0 @@
|
||||
$OpenBSD: patch-src_demuxers_demux_matroska_c,v 1.13 2014/05/21 23:41:03 brad Exp $
|
||||
|
||||
Demux Opus.
|
||||
|
||||
--- src/demuxers/demux_matroska.c.orig Wed May 21 09:35:32 2014
|
||||
+++ src/demuxers/demux_matroska.c Wed May 21 09:36:08 2014
|
||||
@@ -1425,6 +1425,11 @@ static int parse_track_entry(demux_matroska_t *this, m
|
||||
track->buf_type = BUF_AUDIO_VORBIS;
|
||||
init_codec = init_codec_xiph;
|
||||
|
||||
+ } else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_OPUS)) {
|
||||
+ lprintf("MATROSKA_CODEC_ID_A_OPUS\n");
|
||||
+ track->buf_type = BUF_AUDIO_OPUS;
|
||||
+ init_codec = init_codec_audio;
|
||||
+
|
||||
} else if (!strcmp(track->codec_id, MATROSKA_CODEC_ID_A_ACM)) {
|
||||
xine_waveformatex *wfh;
|
||||
lprintf("MATROSKA_CODEC_ID_A_ACM\n");
|
@ -1,14 +0,0 @@
|
||||
$OpenBSD: patch-src_demuxers_matroska_h,v 1.8 2014/05/21 23:41:03 brad Exp $
|
||||
|
||||
Demux Opus.
|
||||
|
||||
--- src/demuxers/matroska.h.orig Wed May 21 09:36:13 2014
|
||||
+++ src/demuxers/matroska.h Wed May 21 09:36:39 2014
|
||||
@@ -337,6 +337,7 @@ struct matroska_track_s {
|
||||
#define MATROSKA_CODEC_ID_A_REAL_RALF "A_REAL/RALF"
|
||||
#define MATROSKA_CODEC_ID_A_REAL_ATRC "A_REAL/ATRC"
|
||||
#define MATROSKA_CODEC_ID_A_FLAC "A_FLAC"
|
||||
+#define MATROSKA_CODEC_ID_A_OPUS "A_OPUS"
|
||||
|
||||
#define MATROSKA_CODEC_ID_S_TEXT_UTF8 "S_TEXT/UTF8"
|
||||
#define MATROSKA_CODEC_ID_S_TEXT_SSA "S_TEXT/SSA"
|
@ -1,7 +1,7 @@
|
||||
$OpenBSD: patch-src_post_deinterlace_plugins_Makefile_in,v 1.15 2014/04/16 05:09:00 brad Exp $
|
||||
--- src/post/deinterlace/plugins/Makefile.in.orig Tue Apr 8 11:04:17 2014
|
||||
+++ src/post/deinterlace/plugins/Makefile.in Wed Apr 9 22:07:16 2014
|
||||
@@ -597,7 +597,7 @@ noinst_HEADERS = plugins.h greedyhmacros.h
|
||||
$OpenBSD: patch-src_post_deinterlace_plugins_Makefile_in,v 1.16 2014/07/13 20:03:51 brad Exp $
|
||||
--- src/post/deinterlace/plugins/Makefile.in.orig Sun Jul 6 08:55:28 2014
|
||||
+++ src/post/deinterlace/plugins/Makefile.in Sun Jul 13 13:05:53 2014
|
||||
@@ -603,7 +603,7 @@ noinst_HEADERS = plugins.h greedyhmacros.h
|
||||
# doesn't run out of general registers trying to compile it.
|
||||
noinst_LTLIBRARIES = libdeinterlacepluginsO1.la libdeinterlaceplugins.la
|
||||
libdeinterlacepluginsO1_la_SOURCES = kdetv_greedyh.c $(debug_sources)
|
||||
|
@ -1,23 +0,0 @@
|
||||
$OpenBSD: patch-src_post_goom_mmx_h,v 1.1 2014/07/12 21:55:35 brad Exp $
|
||||
|
||||
Fix build with clang.
|
||||
|
||||
--- src/post/goom/mmx.h.orig Fri Jun 6 00:08:16 2014
|
||||
+++ src/post/goom/mmx.h Fri Jun 6 00:08:39 2014
|
||||
@@ -724,14 +724,12 @@ void zoom_filter_xmmx (int prevX, int prevY, Pixel *ex
|
||||
#define emms() \
|
||||
{ \
|
||||
printf("emms()\n"); \
|
||||
- __asm__ __volatile__ ("emms" \
|
||||
- "st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)"); \
|
||||
+ __asm__ __volatile__ ("emms");
|
||||
}
|
||||
|
||||
#else
|
||||
|
||||
-#define emms() __asm__ __volatile__ ("emms"::: \
|
||||
- "st(1)","st(2)","st(3)","st(4)","st(5)","st(6)","st(7)")
|
||||
+#define emms() __asm__ __volatile__ ("emms")
|
||||
|
||||
#endif
|
||||
|
@ -1,21 +0,0 @@
|
||||
$OpenBSD: patch-src_xine-engine_buffer_types_c,v 1.5 2014/05/21 23:41:03 brad Exp $
|
||||
|
||||
Add buffer type for Opus.
|
||||
|
||||
--- src/xine-engine/buffer_types.c.orig Wed May 21 09:34:46 2014
|
||||
+++ src/xine-engine/buffer_types.c Wed May 21 09:35:11 2014
|
||||
@@ -1231,6 +1231,14 @@ static const audio_db_t audio_db[] = {
|
||||
BUF_AUDIO_ADPCM_G726,
|
||||
"ADPCM G.726"
|
||||
},
|
||||
+{
|
||||
+ {
|
||||
+ ME_FOURCC('O', 'p', 'u', 's'),
|
||||
+ 0
|
||||
+ },
|
||||
+ BUF_AUDIO_OPUS,
|
||||
+ "Opus Audio"
|
||||
+},
|
||||
{ { 0 }, 0, "last entry" }
|
||||
};
|
||||
|
Loading…
x
Reference in New Issue
Block a user