community/xine-lib to 1.2.13-1

This commit is contained in:
Kevin Mihelich 2023-01-27 19:10:58 +00:00
parent e74d79f1ed
commit 0d5eaad119
3 changed files with 7 additions and 374 deletions

View file

@ -1,28 +0,0 @@
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,5 @@
+ * Add dav1d 1.0.0 support.
+
xine-lib (1.2.12) 2022-03-09
* Add string tree library (generic info parser).
* Add OpenSL ES audio output plugin.
--- a/src/video_dec/dav1d.c
+++ b/src/video_dec/dav1d.c
@@ -544,11 +544,17 @@
/* multithreading */
ncpu = xine_cpu_count();
+#if DAV1D_API_VERSION_MAJOR > 5
+ settings.n_threads = ncpu + 1;
+ xprintf(stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": "
+ "Using %d threads\n", settings.n_threads);
+#else
settings.n_frame_threads = (ncpu > 8) ? 4 : (ncpu < 2) ? 1 : ncpu/2;
settings.n_tile_threads = MAX(1, ncpu - settings.n_frame_threads + 1);
xprintf(stream->xine, XINE_VERBOSITY_DEBUG, LOG_MODULE ": "
"Using %d frame threads, %d tile threads\n",
settings.n_frame_threads, settings.n_tile_threads);
+#endif
/* dri frame allocator */
settings.allocator.cookie = this;

View file

@ -1,330 +0,0 @@
--- a/m4/decoders.m4
+++ b/m4/decoders.m4
@@ -134,13 +134,36 @@ a52_init ();
AC_DEFINE([HAVE_FFMPEG], 1, [Define this if you have the ffmpeg library])
dnl Check presence of ffmpeg/avutil.h to see if it's old or new
dnl style for headers. The new style would be preferred actually...
+ dnl Sigh. at least some 09/2022 ffmpeg version does violate the basic
+ dnl "get directly what you use directly" rule. especially,
+ dnl libavformat/avformat.h includes libavcodec/packet.h which uses
+ dnl (but not includes) libavutil/avutil.h. this means that a mere
+ dnl AC_CHECK_HEADERS([libavformat/avformat.h]) will fail strangely :-/
ac_save_CFLAGS="$CFLAGS" CFLAGS="$CFLAGS $FFMPEG_CFLAGS"
ac_save_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="$CFLAGS $FFMPEG_CFLAGS $AVUTIL_CFLAGS"
- AC_CHECK_HEADERS([ffmpeg/avutil.h])
- AC_CHECK_HEADERS([libavutil/avutil.h])
- AC_CHECK_HEADERS([libavutil/sha1.h])
- AC_CHECK_HEADERS([libavutil/sha.h])
+ AC_CHECK_HEADERS([ffmpeg/avutil.h libavutil/avutil.h libavutil/sha1.h libavutil/mem.h libavutil/sha.h])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <libavutil/avutil.h>
+#include <libavcodec/avcodec.h>
+ ]],[[]])], [have_avutil_avcodec_h=yes], [have_avutil_avcodec_h=no])
+ test x"$have_avutil_avcodec_h" == x"yes" && AC_DEFINE([HAVE_AVUTIL_AVCODEC_H],[1],
+ [Define this if you have libavutil/avutil.h and libavcodec/avcodec.h.])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <libavutil/avutil.h>
+#include <libavcodec/avcodec.h>
+#include <libavformat/avformat.h>
+ ]],[[]])], [have_avformat_avformat_h=yes], [have_avformat_avformat_h=no])
+ test x"$have_avformat_avformat_h" == x"yes" && AC_DEFINE([HAVE_AVFORMAT_AVFORMAT_H],[1],
+ [Define this if you have libavformat/avformat.h.])
+ AC_COMPILE_IFELSE([AC_LANG_PROGRAM([[
+#include <libavutil/avutil.h>
+#include <libavcodec/avcodec.h>
+#include <libavformat/avformat.h>
+#include <libavformat/avio.h>
+ ]],[[]])], [have_avformat_avio_h=yes], [have_avformat_avio_h=no])
+ test x"$have_avformat_avio_h" == x"yes" && AC_DEFINE([HAVE_AVFORMAT_AVIO_H],[1],
+ [Define this if you have libavformat/avformat.h.])
if test "$ac_cv_header_ffmpeg_avutil_h" = "yes" && test "$ac_cv_header_libavutil_avutil_h" = "yes"; then
AC_MSG_ERROR([old & new ffmpeg headers found - you need to clean up!])
fi
--- a/m4/input.m4
+++ b/m4/input.m4
@@ -229,6 +229,7 @@ AC_DEFUN([XINE_INPUT_PLUGINS], [
fi
if test x"$have_avformat" = x"yes"; then
AC_DEFINE([HAVE_AVFORMAT], 1, [Define this if you have libavformat installed])
+ AC_CHECK_HEADERS([libavformat/avformat.h])
fi
fi
AM_CONDITIONAL([ENABLE_AVFORMAT], [test x"$have_avformat" = x"yes"])
--- a/src/combined/ffmpeg/demux_avformat.c
+++ b/src/combined/ffmpeg/demux_avformat.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2021 the xine project
+ * Copyright (C) 2013-2022 the xine project
* Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net>
*
* This file is part of xine, a free video player.
@@ -29,6 +29,8 @@
#include <pthread.h>
#include <errno.h>
+#include <libavutil/avutil.h>
+#include <libavcodec/avcodec.h>
#include <libavformat/avformat.h>
#include <libavformat/avio.h>
@@ -922,3 +924,4 @@ void *init_avformat_demux_plugin (xine_t
(void)data;
return (demux_class_t *)&this;
}
+
--- a/src/combined/ffmpeg/ff_audio_decoder.c
+++ b/src/combined/ffmpeg/ff_audio_decoder.c
@@ -31,13 +31,20 @@
#include <pthread.h>
#include <math.h>
-#ifdef HAVE_FFMPEG_AVUTIL_H
-# include <avcodec.h>
-#else
-# include <libavcodec/avcodec.h>
+#if defined(HAVE_LIBAVUTIL_AVUTIL_H)
+# include <libavutil/avutil.h>
+#endif
+
+#if defined(HAVE_LIBAVUTIL_MEM_H)
# include <libavutil/mem.h>
#endif
+#if defined(HAVE_AVUTIL_AVCODEC_H)
+# include <libavcodec/avcodec.h>
+#else
+# include <avcodec.h>
+#endif
+
#define LOG_MODULE "ffmpeg_audio_dec"
#define LOG_VERBOSE
/*
--- a/src/combined/ffmpeg/ffmpeg_compat.h
+++ b/src/combined/ffmpeg/ffmpeg_compat.h
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2000-2021 the xine project
+ * Copyright (C) 2000-2022 the xine project
*
* This file is part of xine, a unix video player.
*
@@ -25,22 +25,24 @@
#define XFF_INT_VERSION(major,minor,micro) ((major<<16)|(minor<<8)|micro)
-#ifndef LIBAVCODEC_VERSION_INT
-# if defined(LIBAVCODEC_VERSION_MAJOR) && defined(LIBAVCODEC_VERSION_MINOR)
-# define LIBAVCODEC_VERSION_INT XFF_INT_VERSION(LIBAVCODEC_VERSION_MAJOR,LIBAVCODEC_VERSION_MINOR,0)
-# else
-# error ffmpeg headers must be included first !
-# endif
+/** NOTE: since 2022-09-01, ffmpeg headers are more detached from each other.
+ * this goes that far:
+ * libavformat/avformat.h includes libavcodec/packet.h which uses
+ * (but not includes) libavutil/avutil.h :-/ */
+
+#if !defined(LIBAVUTIL_VERSION_INT) && defined(LIBAVUTIL_VERSION_MAJOR) && defined(LIBAVUTIL_VERSION_MINOR)
+# define LIBAVUTIL_VERSION_INT XFF_INT_VERSION(LIBAVUTIL_VERSION_MAJOR,LIBAVUTIL_VERSION_MINOR,0)
+#endif
+#if !defined(LIBAVUTIL_VERSION_INT)
+# error avutil.h must be included first !
#endif
-#ifndef LIBAVUTIL_VERSION_INT
-# if defined(LIBAVUTIL_VERSION_MAJOR) && defined(LIBAVUTIL_VERSION_MINOR)
-# define LIBAVUTIL_VERSION_INT XFF_INT_VERSION(LIBAVUTIL_VERSION_MAJOR,LIBAVUTIL_VERSION_MINOR,0)
-# else
-# error ffmpeg headers must be included first !
-# endif
+#if !defined(LIBAVCODEC_VERSION_INT) && defined(LIBAVCODEC_VERSION_MAJOR) && defined(LIBAVCODEC_VERSION_MINOR)
+# define LIBAVCODEC_VERSION_INT XFF_INT_VERSION(LIBAVCODEC_VERSION_MAJOR,LIBAVCODEC_VERSION_MINOR,0)
#endif
+#if defined(LIBAVCODEC_VERSION_INT)
+
#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(52,0,0)
# define bits_per_sample bits_per_coded_sample
#endif
@@ -136,38 +138,6 @@
# define XFF_VAAPI 2 /** << libavutil/hwcontext.h, libavutil/hwcontext_vaapi.h */
#endif
-#if LIBAVUTIL_VERSION_INT >= XFF_INT_VERSION(52,0,0)
-# define PIX_FMT_NONE AV_PIX_FMT_NONE
-# define PIX_FMT_YUV420P AV_PIX_FMT_YUV420P
-# define PIX_FMT_YUVJ420P AV_PIX_FMT_YUVJ420P
-# define PIX_FMT_YUV444P AV_PIX_FMT_YUV444P
-# define PIX_FMT_YUVJ444P AV_PIX_FMT_YUVJ444P
-# define PIX_FMT_YUV410P AV_PIX_FMT_YUV410P
-# define PIX_FMT_YUV411P AV_PIX_FMT_YUV411P
-# define PIX_FMT_ARGB AV_PIX_FMT_ARGB
-# define PIX_FMT_BGRA AV_PIX_FMT_BGRA
-# define PIX_FMT_RGB24 AV_PIX_FMT_RGB24
-# define PIX_FMT_BGR24 AV_PIX_FMT_BGR24
-# define PIX_FMT_RGB555BE AV_PIX_FMT_RGB555BE
-# define PIX_FMT_RGB555LE AV_PIX_FMT_RGB555LE
-# define PIX_FMT_RGB565BE AV_PIX_FMT_RGB565BE
-# define PIX_FMT_RGB565LE AV_PIX_FMT_RGB565LE
-# define PIX_FMT_PAL8 AV_PIX_FMT_PAL8
-# define PixelFormat AVPixelFormat
-/* video_out/video_out_vaapi */
-# if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,0,100) /** << revise this */
-# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI_VLD
-# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI_IDCT
-# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI_MOCO
-# else
-# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI
-# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI
-# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI
-# endif
-
-# define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT
-#endif
-
#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(54,25,0)
/* dxr3/ffmpeg_encoder */
# define CODEC_ID_MPEG1VIDEO AV_CODEC_ID_MPEG1VIDEO
@@ -194,10 +164,6 @@
/* ff_*_decoder mapping is already handled by mkcodeclists.pl */
#endif
-#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
-# define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
-#endif
-
#if LIBAVCODEC_VERSION_INT >= XFF_INT_VERSION(55,0,100)
# define XFF_AV_BUFFER 1
#endif
@@ -290,5 +256,51 @@
# define XFF_AVCODEC_REGISTER_ALL() do {} while(0)
#endif
+#if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,24,100)
+# define XFF_AUDIO_CHANNEL_LAYOUT 1 /* AVCodecContext.channels, .channel_leyout */
+#else
+# define XFF_AUDIO_CHANNEL_LAYOUT 2 /* AVCodecContext.ch_layout.nb_channels, .ch_layout.u.mask */
+#endif
+
+#ifndef AVCODEC_MAX_AUDIO_FRAME_SIZE
+# define AVCODEC_MAX_AUDIO_FRAME_SIZE 192000
+#endif
+
+#if LIBAVUTIL_VERSION_INT >= XFF_INT_VERSION(52,0,0)
+# define PIX_FMT_NONE AV_PIX_FMT_NONE
+# define PIX_FMT_YUV420P AV_PIX_FMT_YUV420P
+# define PIX_FMT_YUVJ420P AV_PIX_FMT_YUVJ420P
+# define PIX_FMT_YUV444P AV_PIX_FMT_YUV444P
+# define PIX_FMT_YUVJ444P AV_PIX_FMT_YUVJ444P
+# define PIX_FMT_YUV410P AV_PIX_FMT_YUV410P
+# define PIX_FMT_YUV411P AV_PIX_FMT_YUV411P
+# define PIX_FMT_ARGB AV_PIX_FMT_ARGB
+# define PIX_FMT_BGRA AV_PIX_FMT_BGRA
+# define PIX_FMT_RGB24 AV_PIX_FMT_RGB24
+# define PIX_FMT_BGR24 AV_PIX_FMT_BGR24
+# define PIX_FMT_RGB555BE AV_PIX_FMT_RGB555BE
+# define PIX_FMT_RGB555LE AV_PIX_FMT_RGB555LE
+# define PIX_FMT_RGB565BE AV_PIX_FMT_RGB565BE
+# define PIX_FMT_RGB565LE AV_PIX_FMT_RGB565LE
+# define PIX_FMT_PAL8 AV_PIX_FMT_PAL8
+# define PixelFormat AVPixelFormat
+/* video_out/video_out_vaapi */
+# if LIBAVCODEC_VERSION_INT < XFF_INT_VERSION(59,0,100) /** << revise this */
+# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI_VLD
+# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI_IDCT
+# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI_MOCO
+# else
+# define PIX_FMT_VAAPI_VLD AV_PIX_FMT_VAAPI
+# define PIX_FMT_VAAPI_IDCT AV_PIX_FMT_VAAPI
+# define PIX_FMT_VAAPI_MOCO AV_PIX_FMT_VAAPI
+# endif
+
+# define CODEC_FLAG_BITEXACT AV_CODEC_FLAG_BITEXACT
+#endif
+
+#else /* defined(LIBAVCODEC_VERSION_INT) */
+# error avcodec.h must be included first !
+#endif /* defined(LIBAVCODEC_VERSION_INT) */
+
#endif /* XINE_AVCODEC_COMPAT_H */
--- a/src/combined/ffmpeg/ffmpeg_decoder.c
+++ b/src/combined/ffmpeg/ffmpeg_decoder.c 2022-09-13 23:43:40.255615724 -0300
@@ -26,12 +26,20 @@
#include <pthread.h>
-#ifdef HAVE_FFMPEG_AVUTIL_H
-# include <avcodec.h>
-#else
-# include <libavcodec/avcodec.h>
+#if defined(HAVE_LIBAVUTIL_AVUTIL_H)
+# include <libavutil/avutil.h>
+#endif
+
+#if defined(HAVE_LIBAVUTIL_MEM_H)
# include <libavutil/mem.h>
#endif
+
+#if defined(HAVE_AVUTIL_AVCODEC_H)
+# include <libavcodec/avcodec.h>
+#else
+# include <avcodec.h>
+#endif
+
#ifdef HAVE_AVFORMAT
# include <libavformat/avformat.h> // av_register_all()
#endif
--- a/src/combined/ffmpeg/ff_video_decoder.c
+++ b/src/combined/ffmpeg/ff_video_decoder.c
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2001-2021 the xine project
+ * Copyright (C) 2001-2022 the xine project
*
* This file is part of xine, a free video player.
*
@@ -32,13 +32,20 @@
#include <math.h>
#include <assert.h>
-#ifdef HAVE_FFMPEG_AVUTIL_H
-# include <avcodec.h>
-#else
-# include <libavcodec/avcodec.h>
+#if defined(HAVE_LIBAVUTIL_AVUTIL_H)
+# include <libavutil/avutil.h>
+#endif
+
+#if defined(HAVE_LIBAVUTIL_MEM_H)
# include <libavutil/mem.h>
#endif
+#if defined(HAVE_AVUTIL_AVCODEC_H)
+# include <libavcodec/avcodec.h>
+#else
+# include <avcodec.h>
+#endif
+
#define LOG_MODULE "ffmpeg_video_dec"
#define LOG_VERBOSE
/*
--- a/src/combined/ffmpeg/input_avio.c
+++ b/src/combined/ffmpeg/input_avio.c 2022-09-13 23:43:40.255615724 -0300
@@ -1,5 +1,5 @@
/*
- * Copyright (C) 2013-2020 the xine project
+ * Copyright (C) 2013-2022 the xine project
* Copyright (C) 2013-2020 Petri Hintukainen <phintuka@users.sourceforge.net>
*
* This file is part of xine, a free video player.
@@ -28,6 +28,8 @@
#include <string.h>
#include <pthread.h>
+#include <libavutil/avutil.h>
+#include <libavcodec/avcodec.h>
#include <libavformat/avio.h>
#define LOG_MODULE "libavio"

View file

@ -5,8 +5,8 @@
# - configure with --without-dav1d, FTBFS
pkgname=xine-lib
pkgver=1.2.12
pkgrel=4
pkgver=1.2.13
pkgrel=1
pkgdesc='Multimedia playback engine'
arch=('x86_64')
url='https://www.xine-project.org'
@ -38,21 +38,12 @@ makedepends=('mesa' 'libdvdnav' 'libdvdread' 'vcdimager' 'glu' 'sdl'
'wayland' 'aalib' 'a52dec' 'faad2' 'flac' 'libdca' 'libmad'
'libmpcdec' 'wavpack' 'gdk-pixbuf2' 'imagemagick' 'libcaca'
'libmng' 'libnfs' 'smbclient')
source=("https://downloads.sourceforge.net/project/xine/xine-lib/${pkgver}/xine-lib-${pkgver}.tar.xz"
'010-xine-lib-dav1d-1.0.0-support.patch'
'020-xine-lib-ffmpeg-5.1-fix.patch')
sha256sums=('d606270468e1540c2a89c0d7f5fdf11e17ecc0c2698cc0bcb1065ff26abee098'
'9e41a7e49bc81d04d8f5014d5a4fcb4961eeb735eb6329a76ac24425fdafae06'
'36930d0973c71027175530e6911a9e9ad824107eedd519b01f375800f3f98822')
prepare() {
patch -d "${pkgname}-${pkgver}" -Np1 -i "${srcdir}/010-xine-lib-dav1d-1.0.0-support.patch"
patch -d "${pkgname}-${pkgver}" -Np1 -i "${srcdir}/020-xine-lib-ffmpeg-5.1-fix.patch"
}
source=("https://downloads.sourceforge.net/project/xine/xine-lib/${pkgver}/xine-lib-${pkgver}.tar.xz")
sha256sums=('3def43d3c0597f0f23cbf73e9d4b1dcd328852f2100fcff89fe925ad7cdd0251')
build() {
cd "${pkgname}-${pkgver}"
./autogen.sh \
cd "${pkgname}.${pkgver}"
./configure \
--prefix='/usr' \
--enable-antialiasing \
--with-external-dvdnav \
@ -63,5 +54,5 @@ build() {
}
package() {
make -C "${pkgname}-${pkgver}" DESTDIR="$pkgdir" install
make -C "${pkgname}.${pkgver}" DESTDIR="$pkgdir" install
}