Date: Wednesday, September 14, 2022 @ 02:53:33
  Author: dbermond
Revision: 1301136

upgpkg: xine-lib 1.2.12-3: rebuild for flac 1.4.0

This also fixes building with dav1d 1.0.0 and ffmpeg 5.1.

Added:
  xine-lib/trunk/010-xine-lib-dav1d-1.0.0-support.patch
  xine-lib/trunk/020-xine-lib-ffmpeg-5.1-fix.patch
Modified:
  xine-lib/trunk/PKGBUILD

----------------------------------------+
 010-xine-lib-dav1d-1.0.0-support.patch |   28 ++
 020-xine-lib-ffmpeg-5.1-fix.patch      |  330 +++++++++++++++++++++++++++++++
 PKGBUILD                               |   17 +
 3 files changed, 371 insertions(+), 4 deletions(-)

Added: 010-xine-lib-dav1d-1.0.0-support.patch
===================================================================
--- 010-xine-lib-dav1d-1.0.0-support.patch                              (rev 0)
+++ 010-xine-lib-dav1d-1.0.0-support.patch      2022-09-14 02:53:33 UTC (rev 
1301136)
@@ -0,0 +1,28 @@
+--- 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;

Added: 020-xine-lib-ffmpeg-5.1-fix.patch
===================================================================
--- 020-xine-lib-ffmpeg-5.1-fix.patch                           (rev 0)
+++ 020-xine-lib-ffmpeg-5.1-fix.patch   2022-09-14 02:53:33 UTC (rev 1301136)
@@ -0,0 +1,330 @@
+--- 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 <[email protected]>
+  *
+  * 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 <[email protected]>
+  *
+  * 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"

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2022-09-13 23:25:00 UTC (rev 1301135)
+++ PKGBUILD    2022-09-14 02:53:33 UTC (rev 1301136)
@@ -3,7 +3,7 @@
 
 pkgname=xine-lib
 pkgver=1.2.12
-pkgrel=2
+pkgrel=3
 pkgdesc='Multimedia playback engine'
 arch=('x86_64')
 url='https://www.xine-project.org'
@@ -35,12 +35,21 @@
              '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";)
-sha256sums=('d606270468e1540c2a89c0d7f5fdf11e17ecc0c2698cc0bcb1065ff26abee098')
+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"
+}
+
 build() {
     cd "${pkgname}-${pkgver}"
-    ./configure \
+    ./autogen.sh \
         --prefix='/usr' \
         --enable-antialiasing \
         --with-external-dvdnav \

Reply via email to