From patchwork Mon Jun 12 23:36:50 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Reino Wijnsma X-Patchwork-Id: 3956 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.103.22.4 with SMTP id 4csp92818vsw; Mon, 12 Jun 2017 16:36:51 -0700 (PDT) X-Received: by 10.28.45.5 with SMTP id t5mr2981058wmt.50.1497310611392; Mon, 12 Jun 2017 16:36:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1497310611; cv=none; d=google.com; s=arc-20160816; b=ktGig/1byyqMuoRWlMlcJvq24RkBhY+3lYZXeWU7Q7IGNY6nvkyUVWMjgImMFJNeRx qrB2HV+N0A7jPECZmo25hzeSazNTHsbo1NdgUrqlys/RelB1wj8i7BbNTPD5U/ucTWFz uON2RA+Q8z1QKPkUACna18sbHwE8d0VBtKSC9N1gk9BxMeIggHo3OxgA1i25jTOtPnDi xRUIel+p3wzJvdzRoA7MzkOZMU0au4e99iWBelM4WecI40VLenh2sy2Hm/2juq9r4VrO MqUZoumGzb2pL15TL+fDTBIMQ20U/TViM7GUgTUdimx2QBvQOOFkvWWyzxF8aSiaWDIa grbw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=sender:errors-to:reply-to:list-subscribe:list-help:list-post :list-archive:list-unsubscribe:list-id:precedence:subject :mime-version:user-agent:date:message-id:from:to:delivered-to :arc-authentication-results; bh=WCXTyTWHuINNXuG4Ac+TfC8I2Qy/wX/Efe8QOHiCC6E=; b=eV0SJA4UN4AF3wIWb6x/9Ch9huTLsW/C2EqSUKOTcNPXamKhDDqhQZpOF0KzhV8Rtc 0FKZ9j+ZBNVF3rQWIKhAdTe2RV8Yup6xsAqo9u9fMMaLZmFCbARx7wLB8fzHVosy9SvD u1bDCyR6OTpbxc18xDo0f6y/K9OOLQ1JTdTzUR17/1lw/ttCAJIxCr8zAtPjQJJKUULw MB88gTM+NC9nyBKH64prXgtMQay/VxLNd5Ura3N2ehOGLcaFtT+n1eO13SKy5CZ7J6rk wpO3ZUgNFvJmprc9OdQJgVof6iKylB50wsXlLG/03zbOGAUJ8Jsyr5CRukULbzS1tzLl QojQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id y11si10531423wrd.301.2017.06.12.16.36.49; Mon, 12 Jun 2017 16:36:51 -0700 (PDT) Received-SPF: pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) client-ip=79.124.17.100; Authentication-Results: mx.google.com; spf=pass (google.com: domain of ffmpeg-devel-bounces@ffmpeg.org designates 79.124.17.100 as permitted sender) smtp.mailfrom=ffmpeg-devel-bounces@ffmpeg.org Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id 5AB9C68A0F8; Tue, 13 Jun 2017 02:36:44 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from lb2-smtp-cloud3.xs4all.net (lb2-smtp-cloud3.xs4all.net [194.109.24.26]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 82EB768A0B5 for ; Tue, 13 Jun 2017 02:36:37 +0300 (EEST) Received: from [IPv6:2001:980:2408:1:9940:6a39:cae5:d2e8] ([IPv6:2001:980:2408:1:9940:6a39:cae5:d2e8]) by smtp-cloud3.xs4all.net with ESMTP id Xzcd1v00B2waueA01zceck; Tue, 13 Jun 2017 01:36:38 +0200 To: ffmpeg-devel@ffmpeg.org From: Reino Wijnsma Message-ID: <593F2592.2030709@xs4all.nl> Date: Tue, 13 Jun 2017 01:36:50 +0200 User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:38.0) Gecko/20100101 Thunderbird/38.5.0 MIME-Version: 1.0 X-Content-Filtered-By: Mailman/MimeDel 2.1.20 Subject: [FFmpeg-devel] configure/libopenjpegdec.c/libopenjpegenc.c: Add support for LibOpenJPEG v2.2/git X-BeenThere: ffmpeg-devel@ffmpeg.org X-Mailman-Version: 2.1.20 Precedence: list List-Id: FFmpeg development discussions and patches List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: FFmpeg development discussions and patches Errors-To: ffmpeg-devel-bounces@ffmpeg.org Sender: "ffmpeg-devel" This patch adds support for LibOpenJPEG v2.2/git. At the moment v2.1 is the highest version FFmpeg supports. I've successfully cross-compiled FFmpeg this way. From df61d7a295bec74c85d37042051e9dc1ef5cdbce Mon Sep 17 00:00:00 2001 From: Reino17 Date: Tue, 13 Jun 2017 01:01:07 +0200 Subject: [PATCH] Add support for LibOpenJPEG v2.2/git --- configure | 3 ++- libavcodec/libopenjpegdec.c | 10 +++++++--- libavcodec/libopenjpegenc.c | 12 ++++++++---- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/configure b/configure index e3941f9..003d359 100755 --- a/configure +++ b/configure @@ -5831,7 +5831,8 @@ enabled libopencv && { check_header opencv2/core/core_c.h && 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 libopenjpeg openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || +enabled libopenjpeg && { { check_lib libopenjpeg openjpeg-2.2/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || + { check_lib libopenjpeg openjpeg-2.1/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || check_lib libopenjpeg openjpeg-2.1/openjpeg.h opj_version -lopenjp2 || { check_lib libopenjpeg openjpeg-2.0/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || { check_lib libopenjpeg openjpeg-1.5/openjpeg.h opj_version -lopenjpeg -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c index ce4e2b0..5ed9ce1 100644 --- a/libavcodec/libopenjpegdec.c +++ b/libavcodec/libopenjpegdec.c @@ -34,7 +34,9 @@ #include "internal.h" #include "thread.h" -#if HAVE_OPENJPEG_2_1_OPENJPEG_H +#if HAVE_OPENJPEG_2_2_OPENJPEG_H +# include +#elif HAVE_OPENJPEG_2_1_OPENJPEG_H # include #elif HAVE_OPENJPEG_2_0_OPENJPEG_H # include @@ -44,7 +46,7 @@ # include #endif -#if HAVE_OPENJPEG_2_1_OPENJPEG_H || HAVE_OPENJPEG_2_0_OPENJPEG_H +#if 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 @@ -429,7 +431,9 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx, 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_1_OPENJPEG_H +#if HAVE_OPENJPEG_2_2_OPENJPEG_H + opj_stream_set_user_data(stream, &reader, NULL); +#elif 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 --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index 4a12729..d3b9161 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -32,7 +32,9 @@ #include "avcodec.h" #include "internal.h" -#if HAVE_OPENJPEG_2_1_OPENJPEG_H +#if HAVE_OPENJPEG_2_2_OPENJPEG_H +# include +#elif HAVE_OPENJPEG_2_1_OPENJPEG_H # include #elif HAVE_OPENJPEG_2_0_OPENJPEG_H # include @@ -42,7 +44,7 @@ # include #endif -#if HAVE_OPENJPEG_2_1_OPENJPEG_H || HAVE_OPENJPEG_2_0_OPENJPEG_H +#if 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 @@ -305,7 +307,7 @@ static av_cold int libopenjpeg_encode_init(AVCodecContext *avctx) opj_set_default_encoder_parameters(&ctx->enc_params); -#if HAVE_OPENJPEG_2_1_OPENJPEG_H +#if 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; @@ -769,7 +771,9 @@ static int libopenjpeg_encode_frame(AVCodecContext *avctx, AVPacket *pkt, 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_1_OPENJPEG_H +#if HAVE_OPENJPEG_2_2_OPENJPEG_H + opj_stream_set_user_data(stream, &writer, NULL); +#elif 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);