From patchwork Sun Oct 8 11:21:49 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Gyan X-Patchwork-Id: 5454 Delivered-To: ffmpegpatchwork@gmail.com Received: by 10.2.161.90 with SMTP id m26csp1511988jah; Sun, 8 Oct 2017 04:22:06 -0700 (PDT) X-Received: by 10.223.183.43 with SMTP id l43mr768889wre.200.1507461726530; Sun, 08 Oct 2017 04:22:06 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1507461726; cv=none; d=google.com; s=arc-20160816; b=R1JLmBEvwf8AOyxQZCy2fsJDtyBkOph5TVQgGVvSA5Jc7xwWA+ClkWSS78ZGyvgxlr zXrRlWOuGkFYYKa7fhChDeVDItDuWuth6/iuOJYk4tB72eSGE8N9jYV1k9SHZQ+Xhue4 RUx3PHw3h/NeWunHxbuzku0D/KZAyQoE9SvFs0xhik6I5wyDyXgAjp9oJy10VXU9rYMD 868hPkfCw+iCXjm+8ltRUYbvK/IO92D2Cvjq96rvmBf7BV2p90SKmRJ51Mh4BLQ8NXJV WpjuzwIaheXf+3DmPQhKFWikLonmzAGhBusQ1hu8rvpjgq230WX1mZSiqDAwrOq/xHtj dA0w== 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 :content-language:mime-version:user-agent:date:message-id:from:to :dkim-signature:delivered-to:arc-authentication-results; bh=Df66f7xrzbBeI9kkkZanTIRrKQ8xNhlHb0PDtmhOyKA=; b=CwyRWRnGyuWWg3raflr9x2rSZXPzuxxYfTC2mLP4vRvhKsrEWyOhLUAlFgUbWBje99 czAcd/wrzaPP/JC/WpUWLesU+pllr5h6DTqPbN6pyaVsqrONCLQuYCPlLFPgDbj9QZ6T RFHy28NZJbN/L2WTX1B/KMEcF9ySIudH1iZfA1frjuMlByR31VgrZ9PA1s3bynHMmfRZ AgtvdIPy0UWR/fCzu7Hn5MIe8FxaDUUslEnbLq/u1VOEv9nkZm+yv4SSW2IKBMdwGB1h lFQKAaE3T4P7i/yJb4PxUpeUC6tH99ZRCfis3k1J6PH7cErtlWFEcP1Ykn53xaLXEZST 4Jtg== ARC-Authentication-Results: i=1; mx.google.com; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=LFP2Y41b; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Return-Path: Received: from ffbox0-bg.mplayerhq.hu (ffbox0-bg.ffmpeg.org. [79.124.17.100]) by mx.google.com with ESMTP id m70si4512685wmh.265.2017.10.08.04.22.06; Sun, 08 Oct 2017 04:22:06 -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; dkim=neutral (body hash did not verify) header.i=@gmail.com header.s=20161025 header.b=LFP2Y41b; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=gmail.com Received: from [127.0.1.1] (localhost [127.0.0.1]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTP id B79A1689DA2; Sun, 8 Oct 2017 14:22:03 +0300 (EEST) X-Original-To: ffmpeg-devel@ffmpeg.org Delivered-To: ffmpeg-devel@ffmpeg.org Received: from mail-pg0-f65.google.com (mail-pg0-f65.google.com [74.125.83.65]) by ffbox0-bg.mplayerhq.hu (Postfix) with ESMTPS id 9A276689D7D for ; Sun, 8 Oct 2017 14:21:56 +0300 (EEST) Received: by mail-pg0-f65.google.com with SMTP id o1so22299751pga.4 for ; Sun, 08 Oct 2017 04:21:58 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=to:from:subject:message-id:date:user-agent:mime-version :content-language; bh=D2BCWe2d1u+Y+PyNig0xVtpiy7zhoH9JbNLBSL8seqg=; b=LFP2Y41bIW2E3aOzkNbCc2u/w3flg9S2jSyHlrWOS6eHnvt1V3BWbVx9MfvpN5slGZ 1F4+JGhL7Fv7MhrcfTM5i30zqyZoNc0jWhs8xXYScySYfjR13SW7L4wooBHf+YHjvMte Vp8KQ4E8HQmu3n2SvTKwkJUm3kDQTmBr8+/0AFVvU9aNppuY4gUEpDk/V5arTY5j438e ql4ztLRV6FS+nrTrLHeZlAeSYW/glQdyzFAfgJCJPiaHsBdnqP2iJFPKd7Tmtj3m6Yq3 AYEIM2Yl/0Cblk2/+quTs1t0BNHX2s0YUqquAssa/pBeWFIRMWN7L5cyL37J7q/yhk7e oh/w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:to:from:subject:message-id:date:user-agent :mime-version:content-language; bh=D2BCWe2d1u+Y+PyNig0xVtpiy7zhoH9JbNLBSL8seqg=; b=sGsCzugXVl5a2KyiCy888cU2F+kQ08NP1NY4ey6oMJBqADjrrzT6+h5wXp/nBz1Rxo wqm2CkB4R2N+eudcYcnA8iNcgDjE3ms0QOuQ+KLh2d5J+MSBYscEj3W482UYwT0g2vM7 jNt6AQ8keTTYGTfl0vSXqcOLp09HyZm9VINZvlTU8B1zsnX1CKWIQ34fhH3rSzf7tyNf eIir94MpMwy/ivy2BWdOn5uGD2fSa84KISkilSP+1KqJy+yobAmX9zKNYQXvscpFpDMg 5AK/di2rlQPB5nUCKi9vlX88kCLP/DQUU/YP51sjPCgp8q5QtZP/bPviQxaxMYkle9ZX bs1w== X-Gm-Message-State: AMCzsaUEkvWGPgYidIn2XLZuj9MiGQTj6kKKJcgdMldmtY+twuff1g3h 5lxdL4XNY8RloDGDbU+vh5O5uG8w X-Google-Smtp-Source: AOwi7QB0LSKpkTWyGMf6v7d0d544uQn0TAnLk4oRXedCUzpo3CnR1xvwayTDmsF+vJDdplN0CRCHPA== X-Received: by 10.159.218.69 with SMTP id x5mr6362517plv.4.1507461716012; Sun, 08 Oct 2017 04:21:56 -0700 (PDT) Received: from [192.168.1.9] ([103.206.133.164]) by smtp.gmail.com with ESMTPSA id l28sm2628055pgu.38.2017.10.08.04.21.53 for (version=TLS1_2 cipher=ECDHE-RSA-AES128-GCM-SHA256 bits=128/128); Sun, 08 Oct 2017 04:21:53 -0700 (PDT) To: ffmpeg-devel@ffmpeg.org From: Gyan Doshi Message-ID: Date: Sun, 8 Oct 2017 16:51:49 +0530 User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 MIME-Version: 1.0 Content-Language: en-US Subject: [FFmpeg-devel] [PATCH] Add support for libopenjpeg 2.3 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" OpenJPEG 2.3 was released a few days ago. Changelog reports "No API/ABI break compared to v2.2.0 but additional symbols for subset of components decoding" This patch is adapted from an earlier patch which added support for 2.2. Applied and tested locally. From c42f0c4290170cb49dc00f7898bee31d2e8ee814 Mon Sep 17 00:00:00 2001 From: Gyan Doshi Date: Sun, 8 Oct 2017 14:59:23 +0530 Subject: [PATCH] lavc: add support for openjpeg 2.3 Signed-off-by: Gyan Doshi --- configure | 5 ++++- libavcodec/libopenjpegdec.c | 8 +++++--- libavcodec/libopenjpegenc.c | 10 ++++++---- 3 files changed, 15 insertions(+), 8 deletions(-) diff --git a/configure b/configure index 391c141e7a..3280e74f0f 100755 --- a/configure +++ b/configure @@ -1930,6 +1930,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 @@ -5950,7 +5951,9 @@ enabled libopencv && { check_header opencv2/core/core_c.h && require opencv opencv2/core/core_c.h cvCreateImageHeader -lopencv_core -lopencv_imgproc; } || require_pkg_config libopencv opencv opencv/cxcore.h cvCreateImageHeader; } enabled libopenh264 && require_pkg_config libopenh264 openh264 wels/codec_api.h WelsGetCodecVersion -enabled libopenjpeg && { { check_lib libopenjpeg openjpeg-2.2/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || +enabled libopenjpeg && { { check_lib libopenjpeg openjpeg-2.3/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || + check_lib libopenjpeg openjpeg-2.3/openjpeg.h opj_version -lopenjp2 || + { check_lib libopenjpeg openjpeg-2.2/openjpeg.h opj_version -lopenjp2 -DOPJ_STATIC && add_cppflags -DOPJ_STATIC; } || check_lib libopenjpeg openjpeg-2.2/openjpeg.h opj_version -lopenjp2 || { 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 || diff --git a/libavcodec/libopenjpegdec.c b/libavcodec/libopenjpegdec.c index 1210123265..67d47bd6a0 100644 --- a/libavcodec/libopenjpegdec.c +++ b/libavcodec/libopenjpegdec.c @@ -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(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_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 --git a/libavcodec/libopenjpegenc.c b/libavcodec/libopenjpegenc.c index b67e533d1d..92b4433b04 100644 --- a/libavcodec/libopenjpegenc.c +++ b/libavcodec/libopenjpegenc.c @@ -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_init(AVCodecContext *avctx) 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(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_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);