From 5e4f1ab980e5eaea3dae5af82b93426cc4938bc7 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Fri, 13 Oct 2017 00:50:45 +0200 Subject: [PATCH] add support for OpenJPEG v2.3 --- LibOpenJPEG-2.3.patch | 95 +++++++++++++++++++++++++++++++++++++++++++ ffmpeg.spec | 8 +++- 2 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 LibOpenJPEG-2.3.patch diff --git a/LibOpenJPEG-2.3.patch b/LibOpenJPEG-2.3.patch new file mode 100644 index 0000000..28bd4be --- /dev/null +++ b/LibOpenJPEG-2.3.patch @@ -0,0 +1,95 @@ +diff -up ffmpeg-3.3.4/configure.ojp23 ffmpeg-3.3.4/configure +--- ffmpeg-3.3.4/configure.ojp23 2017-10-13 00:22:16.314149496 +0200 ++++ ffmpeg-3.3.4/configure 2017-10-13 00:27:54.069637935 +0200 +@@ -1875,6 +1875,7 @@ HEADERS_LIST=" + machine_ioctl_meteor_h + malloc_h + opencv2_core_core_c_h ++ openjpeg_2_3_openjpeg_h + openjpeg_2_2_openjpeg_h + openjpeg_2_1_openjpeg_h + openjpeg_2_0_openjpeg_h +@@ -5806,7 +5807,9 @@ enabled libopencv && { check_hea + require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || + require_pkg_config opencv opencv/cxcore.h cvCreateImageHeader; } + enabled libopenh264 && require_pkg_config openh264 wels/codec_api.h WelsGetCodecVersion +-enabled libopenjpeg && { { check_lib openjpeg-2.2/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || ++enabled libopenjpeg && { { check_lib openjpeg-2.3/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || ++ check_lib openjpeg-2.3/openjpeg.h opj_version -lopenjp2 || ++ { check_lib openjpeg-2.2/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || + check_lib openjpeg-2.2/openjpeg.h opj_version -lopenjp2 || + { check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || + check_lib openjpeg-2.1/openjpeg.h opj_version -lopenjp2 || +diff -up ffmpeg-3.3.4/libavcodec/libopenjpegdec.c.ojp23 ffmpeg-3.3.4/libavcodec/libopenjpegdec.c +--- ffmpeg-3.3.4/libavcodec/libopenjpegdec.c.ojp23 2017-10-13 00:22:16.303149420 +0200 ++++ ffmpeg-3.3.4/libavcodec/libopenjpegdec.c 2017-10-13 00:25:29.561527565 +0200 +@@ -34,7 +34,9 @@ + #include "internal.h" + #include "thread.h" + +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H ++# include ++#elif HAVE_OPENJPEG_2_2_OPENJPEG_H + # include + #elif HAVE_OPENJPEG_2_1_OPENJPEG_H + # include +@@ -46,7 +48,7 @@ + # include + #endif + +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H || HAVE_OPENJPEG_2_0_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H || HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H || HAVE_OPENJPEG_2_0_OPENJPEG_H + # define OPENJPEG_MAJOR_VERSION 2 + # define OPJ(x) OPJ_##x + #else +@@ -431,7 +433,7 @@ static int libopenjpeg_decode_frame(AVCo + opj_stream_set_read_function(stream, stream_read); + opj_stream_set_skip_function(stream, stream_skip); + opj_stream_set_seek_function(stream, stream_seek); +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H || HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H + opj_stream_set_user_data(stream, &reader, NULL); + #elif HAVE_OPENJPEG_2_0_OPENJPEG_H + opj_stream_set_user_data(stream, &reader); +diff -up ffmpeg-3.3.4/libavcodec/libopenjpegenc.c.ojp23 ffmpeg-3.3.4/libavcodec/libopenjpegenc.c +--- ffmpeg-3.3.4/libavcodec/libopenjpegenc.c.ojp23 2017-10-13 00:22:16.303149420 +0200 ++++ ffmpeg-3.3.4/libavcodec/libopenjpegenc.c 2017-10-13 00:25:29.561527565 +0200 +@@ -32,7 +32,9 @@ + #include "avcodec.h" + #include "internal.h" + +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H ++# include ++#elif HAVE_OPENJPEG_2_2_OPENJPEG_H + # include + #elif HAVE_OPENJPEG_2_1_OPENJPEG_H + # include +@@ -44,7 +46,7 @@ + # include + #endif + +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H || HAVE_OPENJPEG_2_0_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H || HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H || HAVE_OPENJPEG_2_0_OPENJPEG_H + # define OPENJPEG_MAJOR_VERSION 2 + # define OPJ(x) OPJ_##x + #else +@@ -307,7 +309,7 @@ static av_cold int libopenjpeg_encode_in + + opj_set_default_encoder_parameters(&ctx->enc_params); + +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H || HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H + switch (ctx->cinema_mode) { + case OPJ_CINEMA2K_24: + ctx->enc_params.rsiz = OPJ_PROFILE_CINEMA_2K; +@@ -771,7 +773,7 @@ static int libopenjpeg_encode_frame(AVCo + opj_stream_set_write_function(stream, stream_write); + opj_stream_set_skip_function(stream, stream_skip); + opj_stream_set_seek_function(stream, stream_seek); +-#if HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H ++#if HAVE_OPENJPEG_2_3_OPENJPEG_H || HAVE_OPENJPEG_2_2_OPENJPEG_H || HAVE_OPENJPEG_2_1_OPENJPEG_H + opj_stream_set_user_data(stream, &writer, NULL); + #elif HAVE_OPENJPEG_2_0_OPENJPEG_H + opj_stream_set_user_data(stream, &writer); diff --git a/ffmpeg.spec b/ffmpeg.spec index 94d08c2..d5772c8 100644 --- a/ffmpeg.spec +++ b/ffmpeg.spec @@ -71,7 +71,7 @@ Summary: Digital VCR and streaming server Name: ffmpeg%{?flavor} Version: 3.3.4 -Release: 1%{?date}%{?date:git}%{?rel}%{?dist} +Release: 2%{?date}%{?date:git}%{?rel}%{?dist} License: %{ffmpeg_license} URL: http://ffmpeg.org/ %if 0%{?date} @@ -81,6 +81,8 @@ Source0: http://ffmpeg.org/releases/ffmpeg-%{version}.tar.xz %endif # Patch based on https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/078322f33ced4b2db6ac3e5002f98233d6fbf643 Patch0: LibOpenJPEG-2.2.patch +# Patch based on https://git.ffmpeg.org/gitweb/ffmpeg.git/patch/41d6d627024393c142cf7cd93eff1d5a049105f5 +Patch1: LibOpenJPEG-2.3.patch Requires: %{name}-libs%{?_isa} = %{version}-%{release} %{?_with_cuda:BuildRequires: cuda-driver-dev-8-0 cuda-misc-headers-8-0 cuda-drivers-devel%{_isa}} %{?_with_libnpp:BuildRequires: cuda-cudart-dev-8-0 cuda-misc-headers-8-0 cuda-npp-dev-8-0} @@ -292,6 +294,7 @@ echo "git-snapshot-%{?branch}%{date}-RPMFusion" > VERSION %setup -q -n ffmpeg-%{version} %endif %patch0 -p1 +%patch1 -p1 # fix -O3 -g in host_cflags sed -i "s|check_host_cflags -O3|check_host_cflags %{optflags}|" configure mkdir -p _doc/examples @@ -393,6 +396,9 @@ install -pm755 tools/qt-faststart %{buildroot}%{_bindir} %changelog +* Thu Oct 12 2017 Dominik Mierzejewski - 3.3.4-2 +- add support for OpenJPEG v2.3 + * Tue Sep 12 2017 Leigh Scott - 3.3.4-1 - Updated to 3.3.4