[FFmpeg-trac] #6719(build system:new): ffmpeg doesn't build with newest openjpeg dependency from its git now at v2.3.0

FFmpeg trac at avcodec.org
Thu Oct 5 14:05:31 EEST 2017


#6719: ffmpeg doesn't build with newest openjpeg dependency from its git now at
v2.3.0
-------------------------------------+-------------------------------------
             Reporter:  hydra3333    |                     Type:  defect
               Status:  new          |                 Priority:  normal
            Component:  build        |                  Version:  git-
  system                             |  master
             Keywords:               |               Blocked By:
  openjpeg_v2.3.0                    |  Reproduced by developer:  0
             Blocking:               |
Analyzed by developer:  0            |
-------------------------------------+-------------------------------------
 Summary of the bug:

 Openjpeg git at https://github.com/uclouvain/openjpeg is up from v2.2 to
 v2.3, which means that ffmpeg no longer builds with the openjpeg
 dependency as built from its git.

 The attached .diff patches seem to fix ffmpeg so that it builds with
 openjpeg v2.3 as a dependency built from its git.

 built on:

 2017.10.05

 Patches should be submitted to the ffmpeg-devel mailing list and not this
 bug tracker.

 ... except that I'm a newbie and don't know how and may be totally
 embarrassed by my lack of competence.  Some kind reviewer may choose to
 consider reviewing the patches or equivalents and maybe submit them to
 update ffmpeg so that it then builds with openjpeg v2.3 ?
 {{{
 --- libopenjpegdec.c    2017-10-05 19:19:04.193903000 +1030
 +++ libopenjpegdec.2.3.c        2017-10-05 19:19:04.193903000 +1030
 @@ -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 <openjpeg-2.3/openjpeg.h>
 +#elif HAVE_OPENJPEG_2_2_OPENJPEG_H
  #  include <openjpeg-2.2/openjpeg.h>
  #elif HAVE_OPENJPEG_2_1_OPENJPEG_H
  #  include <openjpeg-2.1/openjpeg.h>
 @@ -46,7 +48,7 @@
  #  include <openjpeg.h>
  #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 @@
      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);
 }}}
 {{{
 --- libopenjpegenc.c    2017-10-05 19:19:04.193903000 +1030
 +++ libopenjpegenc.2.3.c        2017-10-05 19:19:04.193903000 +1030
 @@ -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 <openjpeg-2.3/openjpeg.h>
 +#elif HAVE_OPENJPEG_2_2_OPENJPEG_H
  #  include <openjpeg-2.2/openjpeg.h>
  #elif HAVE_OPENJPEG_2_1_OPENJPEG_H
  #  include <openjpeg-2.1/openjpeg.h>
 @@ -44,7 +46,7 @@
  #  include <openjpeg.h>
  #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 @@

      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 @@
      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);
 }}}
 {{{
 --- configure   2017-10-05 19:19:04.193903000 +1030
 +++ configure.2.3.new   2017-10-05 19:19:04.193903000 +1030
 @@ -1930,6 +1930,7 @@
      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 @@
                                   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 ||
 }}}

--
Ticket URL: <https://trac.ffmpeg.org/ticket/6719>
FFmpeg <https://ffmpeg.org>
FFmpeg issue tracker


More information about the FFmpeg-trac mailing list