diff options
author | Peter Sutton | 2018-05-14 16:48:01 +0100 |
---|---|---|
committer | Peter Sutton | 2018-05-14 16:48:01 +0100 |
commit | c470a0e2acf738accf6278b908d0423f5f729598 (patch) | |
tree | 546d7a2a5e36b2c0d4f439ace9b09c3adca4f1f6 | |
parent | 2f80d5f24ecfc72aa9635a34b6b1b41f1d6e28e2 (diff) | |
download | aur-c470a0e2acf738accf6278b908d0423f5f729598.tar.gz |
Patch to work with latest ffmpeg
-rw-r--r-- | .SRCINFO | 10 | ||||
-rw-r--r-- | 318.patch | 92 | ||||
-rw-r--r-- | PKGBUILD | 14 |
3 files changed, 109 insertions, 7 deletions
@@ -1,7 +1,7 @@ pkgbase = pangolin-git pkgdesc = Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input. - pkgver = 2017.10.07 - pkgrel = 2 + pkgver = r1610.c2a6ef5 + pkgrel = 1 url = https://github.com/stevenlovegrove/Pangolin arch = x86_64 license = MIT @@ -23,9 +23,11 @@ pkgbase = pangolin-git provides = pangolin conflicts = pangolin source = LICENSE + source = 318.patch source = pangolin::git+https://github.com/stevenlovegrove/Pangolin.git - md5sums = 4e1a0885cb682d59abd660ae471481aa - md5sums = SKIP + sha256sums = fe25815547bcad7ff6d9ab12a381f64c0ef57e9fbb06cb831e9becdd22fde7c7 + sha256sums = 13e2dfe72209656e309e3d767e021f8c341326bec1c2a579aef5a610dab9efe6 + sha256sums = SKIP pkgname = pangolin-git diff --git a/318.patch b/318.patch new file mode 100644 index 000000000000..29e8ddd90731 --- /dev/null +++ b/318.patch @@ -0,0 +1,92 @@ +From b56a041ca1586ebaac0659892e5ba381e0a4288d Mon Sep 17 00:00:00 2001 +From: ericb <eric.bachard@free.fr> +Date: Wed, 3 Jan 2018 18:46:31 +0100 +Subject: [PATCH] Proposed fix for the Linux (maybe other OSs) issue, because + of deprecated CONSTANTS + +--- + CMakeModules/FindFFMPEG.cmake | 4 ++-- + src/video/drivers/ffmpeg.cpp | 12 ++++++++++++ + 2 files changed, 14 insertions(+), 2 deletions(-) + +diff --git a/CMakeModules/FindFFMPEG.cmake b/CMakeModules/FindFFMPEG.cmake +index 4f77e5a6..0f3b6cb8 100644 +--- a/CMakeModules/FindFFMPEG.cmake ++++ b/CMakeModules/FindFFMPEG.cmake +@@ -60,8 +60,8 @@ IF(AVCODEC_INCLUDE_DIR AND AVFORMAT_INCLUDE_DIR AND AVUTIL_INCLUDE_DIR AND SWSCA + CHECK_CXX_SOURCE_COMPILES( + "#include \"${AVCODEC_INCLUDE_DIR}/libavformat/avformat.h\" + int main() { +- sizeof(AVFormatContext::max_analyze_duration2); +- }" HAVE_FFMPEG_MAX_ANALYZE_DURATION2 ++ sizeof(AVFormatContext::max_analyze_duration); ++ }" HAVE_FFMPEG_MAX_ANALYZE_DURATION + ) + CHECK_CXX_SOURCE_COMPILES( + "#include \"${AVCODEC_INCLUDE_DIR}/libavformat/avformat.h\" +diff --git a/src/video/drivers/ffmpeg.cpp b/src/video/drivers/ffmpeg.cpp +index f0aa6ad5..efd48ddc 100644 +--- a/src/video/drivers/ffmpeg.cpp ++++ b/src/video/drivers/ffmpeg.cpp +@@ -40,6 +40,8 @@ extern "C" + #include <libavutil/mathematics.h> + } + ++#define CODEC_FLAG_GLOBAL_HEADER AV_CODEC_FLAG_GLOBAL_HEADER ++ + namespace pangolin + { + +@@ -80,8 +82,10 @@ std::string FfmpegFmtToString(const AVPixelFormat fmt) + TEST_PIX_FMT_RETURN(YUVJ420P); + TEST_PIX_FMT_RETURN(YUVJ422P); + TEST_PIX_FMT_RETURN(YUVJ444P); ++#ifdef FF_API_XVMC + TEST_PIX_FMT_RETURN(XVMC_MPEG2_MC); + TEST_PIX_FMT_RETURN(XVMC_MPEG2_IDCT); ++#endif + TEST_PIX_FMT_RETURN(UYVY422); + TEST_PIX_FMT_RETURN(UYYVYY411); + TEST_PIX_FMT_RETURN(BGR8); +@@ -101,11 +105,13 @@ std::string FfmpegFmtToString(const AVPixelFormat fmt) + TEST_PIX_FMT_RETURN(YUV440P); + TEST_PIX_FMT_RETURN(YUVJ440P); + TEST_PIX_FMT_RETURN(YUVA420P); ++#ifdef FF_API_VDPAU + TEST_PIX_FMT_RETURN(VDPAU_H264); + TEST_PIX_FMT_RETURN(VDPAU_MPEG1); + TEST_PIX_FMT_RETURN(VDPAU_MPEG2); + TEST_PIX_FMT_RETURN(VDPAU_WMV3); + TEST_PIX_FMT_RETURN(VDPAU_VC1); ++#endif + TEST_PIX_FMT_RETURN(RGB48BE ); + TEST_PIX_FMT_RETURN(RGB48LE ); + TEST_PIX_FMT_RETURN(RGB565BE); +@@ -125,7 +131,9 @@ std::string FfmpegFmtToString(const AVPixelFormat fmt) + TEST_PIX_FMT_RETURN(YUV422P16BE); + TEST_PIX_FMT_RETURN(YUV444P16LE); + TEST_PIX_FMT_RETURN(YUV444P16BE); ++#ifdef FF_API_VDPAU + TEST_PIX_FMT_RETURN(VDPAU_MPEG4); ++#endif + TEST_PIX_FMT_RETURN(DXVA2_VLD); + TEST_PIX_FMT_RETURN(RGB444BE); + TEST_PIX_FMT_RETURN(RGB444LE); +@@ -578,6 +586,7 @@ void FfmpegVideoOutputStream::WriteFrame(AVFrame* frame) + int ret; + int got_packet = 1; + ++#if FF_API_LAVF_FMT_RAWPICTURE + // Setup AVPacket + if (recorder.oc->oformat->flags & AVFMT_RAWPICTURE) { + /* Raw video case - directly store the picture in the packet */ +@@ -587,6 +596,9 @@ void FfmpegVideoOutputStream::WriteFrame(AVFrame* frame) + pkt.pts = frame->pts; + ret = 0; + } else { ++#else ++ { ++#endif + /* encode the image */ + #if (LIBAVFORMAT_VERSION_MAJOR >= 54) + ret = avcodec_encode_video2(stream->codec, &pkt, frame, &got_packet); @@ -1,7 +1,7 @@ # Maintainer: Peter Sutton <foxxy@foxdogstudios.com> pkgname=pangolin-git -pkgver=2017.10.07 -pkgrel=2 +pkgver=r1610.c2a6ef5 +pkgrel=1 pkgdesc="Pangolin is a lightweight portable rapid development library for managing OpenGL display / interaction and abstracting video input." arch=(x86_64) url="https://github.com/stevenlovegrove/Pangolin" @@ -34,16 +34,24 @@ options=() install= source=( 'LICENSE' + '318.patch' 'pangolin::git+https://github.com/stevenlovegrove/Pangolin.git' ) noextract=() -md5sums=('4e1a0885cb682d59abd660ae471481aa' 'SKIP') +sha256sums=('fe25815547bcad7ff6d9ab12a381f64c0ef57e9fbb06cb831e9becdd22fde7c7' + '13e2dfe72209656e309e3d767e021f8c341326bec1c2a579aef5a610dab9efe6' + 'SKIP') pkgver() { cd "$srcdir/${pkgname%-git}" printf "r%s.%s" "$(git rev-list --count HEAD)" "$(git rev-parse --short HEAD)" } +prepare() { + cd "$srcdir/${pkgname%-git}" + git apply "$srcdir/318.patch" +} + build() { cd "$srcdir/${pkgname%-git}" mkdir build |