[packages/gmerlin-encoders] - fix building with ffmpeg 4.0 - rel 6

baggins baggins at pld-linux.org
Sun Apr 29 18:31:49 CEST 2018


commit a866127968dbaf8f4d6f2b60054d757514bef244
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Sun Apr 29 18:31:32 2018 +0200

    - fix building with ffmpeg 4.0
    - rel 6

 ffmpeg4.patch         | 242 ++++++++++++++++++++++++++++++++++++++++++++++++++
 gmerlin-encoders.spec |   4 +-
 2 files changed, 245 insertions(+), 1 deletion(-)
---
diff --git a/gmerlin-encoders.spec b/gmerlin-encoders.spec
index 9b36a57..e02b6c8 100644
--- a/gmerlin-encoders.spec
+++ b/gmerlin-encoders.spec
@@ -3,7 +3,7 @@ Summary:	Encoder plugins for gmerlin
 Summary(pl.UTF-8):	Wtyczki kodujące dla gmerlina
 Name:		gmerlin-encoders
 Version:	1.2.0
-Release:	5
+Release:	6
 License:	GPL v2+
 Group:		Libraries
 Source0:	http://downloads.sourceforge.net/gmerlin/%{name}-%{version}.tar.gz
@@ -12,6 +12,7 @@ Patch0:		%{name}-am.patch
 Patch1:		%{name}-link.patch
 Patch2:		ffmpeg2.patch
 Patch3:		ffmpeg3.patch
+Patch4:		ffmpeg4.patch
 URL:		http://gmerlin.sourceforge.net/avdec_frame.html
 BuildRequires:	autoconf >= 2.50
 BuildRequires:	automake
@@ -59,6 +60,7 @@ liczby formatów plików.
 %patch1 -p1
 %patch2 -p1
 %patch3 -p1
+%patch4 -p1
 
 # evil, sets CFLAGS basing on /proc/cpuinfo, overrides our optflags
 # (--with-cpuflags=none disables using /proc/cpuinfo, but not overriding)
diff --git a/ffmpeg4.patch b/ffmpeg4.patch
new file mode 100644
index 0000000..a416f24
--- /dev/null
+++ b/ffmpeg4.patch
@@ -0,0 +1,242 @@
+--- gmerlin-encoders-1.2.0/plugins/ffmpeg/ffmpeg_common.c~	2018-04-29 11:55:22.000000000 +0200
++++ gmerlin-encoders-1.2.0/plugins/ffmpeg/ffmpeg_common.c	2018-04-29 11:57:40.390265983 +0200
+@@ -633,7 +633,7 @@
+ 
+   /* Extract extradata */
+   if(priv->ctx->oformat->flags & AVFMT_GLOBALHEADER)
+-    st->stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
++    st->stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+   
+ #if LIBAVCODEC_VERSION_MAJOR < 54
+   if(avcodec_open(st->stream->codec, codec) < 0)
+@@ -710,7 +710,7 @@
+     if(st->pass == 1)
+       {
+       st->stats_file = fopen(st->stats_filename, "w");
+-      st->stream->codec->flags |= CODEC_FLAG_PASS1;
++      st->stream->codec->flags |= AV_CODEC_FLAG_PASS1;
+       }
+     else if(st->pass == st->total_passes)
+       {
+@@ -732,7 +732,7 @@
+       fclose(st->stats_file);
+       st->stats_file = NULL;
+       
+-      st->stream->codec->flags |= CODEC_FLAG_PASS2;
++      st->stream->codec->flags |= AV_CODEC_FLAG_PASS2;
+       }
+     }
+ 
+@@ -758,7 +758,7 @@
+ 
+   /* Extract extradata */
+   if(priv->ctx->oformat->flags & AVFMT_GLOBALHEADER)
+-    st->stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
++    st->stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+   
+ #if LIBAVCODEC_VERSION_MAJOR < 54
+   if(avcodec_open(st->stream->codec, codec) < 0)
+@@ -1555,7 +1555,7 @@
+     memcpy(st->stream->codec->extradata,
+            st->ci->global_header,
+            st->ci->global_header_len);
+-    st->stream->codec->flags |= CODEC_FLAG_GLOBAL_HEADER;
++    st->stream->codec->flags |= AV_CODEC_FLAG_GLOBAL_HEADER;
+     }
+ 
+   
+--- gmerlin-encoders-1.2.0/plugins/ffmpeg/codecs.c.orig	2018-04-29 11:55:22.000000000 +0200
++++ gmerlin-encoders-1.2.0/plugins/ffmpeg/codecs.c	2018-04-29 12:11:43.181063727 +0200
+@@ -129,31 +129,6 @@
+   PARAM_MAX_B_FRAMES,                 \
+   PARAM_B_FRAME_STRATEGY
+ 
+-#define ENCODE_PARAM_VIDEO_ME \
+-  {                                           \
+-    .name =      "motion_estimation",                       \
+-    .long_name = TRS("Motion estimation"),                     \
+-    .type =      BG_PARAMETER_SECTION,         \
+-  },                                        \
+-    PARAM_ME_METHOD,                        \
+-    PARAM_ME_CMP,\
+-    PARAM_ME_CMP_CHROMA,\
+-    PARAM_ME_RANGE,\
+-    PARAM_ME_THRESHOLD,\
+-    PARAM_MB_DECISION,\
+-    PARAM_DIA_SIZE
+-
+-#define ENCODE_PARAM_VIDEO_ME_PRE \
+-  {                                           \
+-    .name =      "motion_estimation",                       \
+-    .long_name = TRS("ME pre-pass"),                     \
+-    .type =      BG_PARAMETER_SECTION,         \
+-  },                                        \
+-    PARAM_PRE_ME,\
+-    PARAM_ME_PRE_CMP,\
+-    PARAM_ME_PRE_CMP_CHROMA,\
+-    PARAM_PRE_DIA_SIZE
+-
+ #define ENCODE_PARAM_VIDEO_QPEL                 \
+   {                                           \
+     .name =      "qpel_motion_estimation",                       \
+@@ -175,7 +150,6 @@
+     PARAM_DARK_MASKING, \
+     PARAM_TEMPORAL_CPLX_MASKING, \
+     PARAM_SPATIAL_CPLX_MASKING, \
+-    PARAM_BORDER_MASKING, \
+     PARAM_P_MASKING,                                       \
+     PARAM_FLAG_NORMALIZE_AQP
+ 
+@@ -196,12 +170,10 @@
+   ENCODE_PARAM_VIDEO_RATECONTROL,
+   ENCODE_PARAM_VIDEO_QUANTIZER_IPB,
+   PARAM_FLAG_CBP_RD,
+-  ENCODE_PARAM_VIDEO_ME,
+   PARAM_FLAG_GMC,
+   PARAM_FLAG_4MV,
+   PARAM_FLAG_MV0,
+   PARAM_FLAG_QP_RD,
+-  ENCODE_PARAM_VIDEO_ME_PRE,
+   ENCODE_PARAM_VIDEO_QPEL,
+   ENCODE_PARAM_VIDEO_MASKING,
+   ENCODE_PARAM_VIDEO_MISC,
+@@ -219,8 +191,6 @@
+   ENCODE_PARAM_VIDEO_FRAMETYPES_IPB,
+   ENCODE_PARAM_VIDEO_RATECONTROL,
+   ENCODE_PARAM_VIDEO_QUANTIZER_IPB,
+-  ENCODE_PARAM_VIDEO_ME,
+-  ENCODE_PARAM_VIDEO_ME_PRE,
+   ENCODE_PARAM_VIDEO_MASKING,
+   ENCODE_PARAM_VIDEO_MISC,
+   { /* End of parameters */ }
+@@ -231,8 +201,6 @@
+   ENCODE_PARAM_VIDEO_FRAMETYPES_IP,
+   ENCODE_PARAM_VIDEO_RATECONTROL,
+   ENCODE_PARAM_VIDEO_QUANTIZER_IP,
+-  ENCODE_PARAM_VIDEO_ME,
+-  ENCODE_PARAM_VIDEO_ME_PRE,
+   ENCODE_PARAM_VIDEO_MASKING,
+   ENCODE_PARAM_VIDEO_MISC,
+   { /* End of parameters */ }
+@@ -817,16 +785,6 @@
+ 
+   
+ 
+-const enum_t me_method[] =
+-  {
+-    { "Zero",  ME_ZERO },
+-    { "Phods", ME_PHODS },
+-    { "Log",   ME_LOG },
+-    { "X1",    ME_X1 },
+-    { "Epzs",  ME_EPZS },
+-    { "Full",  ME_FULL }
+-  };
+-
+ const enum_t prediction_method[] =
+   {
+     { "Left",   FF_PRED_LEFT },
+@@ -920,7 +878,6 @@
+   PARAM_STR_INT_SCALE("ff_bit_rate_str", bit_rate, 1000);
+ 
+   PARAM_INT_SCALE("ff_bit_rate_tolerance",bit_rate_tolerance,1000);
+-  PARAM_ENUM("ff_me_method",me_method,me_method);
+   PARAM_INT("ff_gop_size",gop_size);
+   PARAM_FLOAT("ff_qcompress",qcompress);
+   PARAM_FLOAT("ff_qblur",qblur);
+@@ -935,10 +892,10 @@
+   PARAM_INT("ff_rc_min_rate",rc_min_rate);
+   PARAM_INT("ff_rc_max_rate",rc_max_rate);
+   PARAM_INT_SCALE("ff_rc_buffer_size",rc_buffer_size,1000);
+-  PARAM_FLOAT("ff_rc_buffer_aggressivity",rc_buffer_aggressivity);
++  //PARAM_FLOAT("ff_rc_buffer_aggressivity",rc_buffer_aggressivity);
+   PARAM_FLOAT("ff_i_quant_factor",i_quant_factor);
+   PARAM_QP2LAMBDA("ff_i_quant_offset",i_quant_offset);
+-  PARAM_FLOAT("ff_rc_initial_cplx",rc_initial_cplx);
++  //PARAM_FLOAT("ff_rc_initial_cplx",rc_initial_cplx);
+   PARAM_FLOAT("ff_lumi_masking",lumi_masking);
+   PARAM_FLOAT("ff_temporal_cplx_masking",temporal_cplx_masking);
+   PARAM_FLOAT("ff_spatial_cplx_masking",spatial_cplx_masking);
+@@ -963,46 +920,46 @@
+   PARAM_INT("ff_me_range",me_range);
+   PARAM_ENUM("ff_mb_decision",mb_decision,mb_decision);
+   PARAM_INT("ff_scenechange_threshold",scenechange_threshold);
+-  PARAM_QP2LAMBDA("ff_lmin", lmin);
+-  PARAM_QP2LAMBDA("ff_lmax", lmax);
++  //PARAM_QP2LAMBDA("ff_lmin", lmin);
++  //PARAM_QP2LAMBDA("ff_lmax", lmax);
+   PARAM_INT("ff_noise_reduction",noise_reduction);
+   PARAM_INT_SCALE("ff_rc_initial_buffer_occupancy",rc_initial_buffer_occupancy,1000);
+-  PARAM_INT("ff_me_threshold",me_threshold);
+-  PARAM_INT("ff_mb_threshold",mb_threshold);
++  //PARAM_INT("ff_me_threshold",me_threshold);
++  //PARAM_INT("ff_mb_threshold",mb_threshold);
+   PARAM_INT("ff_nsse_weight",nsse_weight);
+-  PARAM_FLOAT("ff_border_masking",border_masking);
++  // PARAM_FLOAT("ff_border_masking",border_masking);
+   PARAM_QP2LAMBDA("ff_mb_lmin", mb_lmin);
+   PARAM_QP2LAMBDA("ff_mb_lmax", mb_lmax);
+   PARAM_INT("ff_me_penalty_compensation",me_penalty_compensation);
+   PARAM_INT("ff_bidir_refine",bidir_refine);
+   PARAM_INT("ff_brd_scale",brd_scale);
+-  PARAM_INT("ff_scenechange_factor",scenechange_factor);
+-  PARAM_FLAG("ff_flag_qscale",CODEC_FLAG_QSCALE);
+-  PARAM_FLAG("ff_flag_4mv",CODEC_FLAG_4MV);
+-  PARAM_FLAG("ff_flag_qpel",CODEC_FLAG_QPEL);
+-  PARAM_FLAG("ff_flag_gmc",CODEC_FLAG_GMC);
+-  PARAM_FLAG("ff_flag_mv0",CODEC_FLAG_MV0);
+-  //  PARAM_FLAG("ff_flag_part",CODEC_FLAG_PART);
+-  PARAM_FLAG("ff_flag_gray",CODEC_FLAG_GRAY);
+-  PARAM_FLAG("ff_flag_emu_edge",CODEC_FLAG_EMU_EDGE);
+-  PARAM_FLAG("ff_flag_normalize_aqp",CODEC_FLAG_NORMALIZE_AQP);
+-  //  PARAM_FLAG("ff_flag_alt_scan",CODEC_FLAG_ALT_SCAN);
++  //PARAM_INT("ff_scenechange_factor",scenechange_factor);
++  PARAM_FLAG("ff_flag_qscale",AV_CODEC_FLAG_QSCALE);
++  PARAM_FLAG("ff_flag_4mv",AV_CODEC_FLAG_4MV);
++  PARAM_FLAG("ff_flag_qpel",AV_CODEC_FLAG_QPEL);
++  // PARAM_FLAG("ff_flag_gmc",AV_CODEC_FLAG_GMC);
++  // PARAM_FLAG("ff_flag_mv0",AV_CODEC_FLAG_MV0);
++  //  PARAM_FLAG("ff_flag_part",AV_CODEC_FLAG_PART);
++  PARAM_FLAG("ff_flag_gray",AV_CODEC_FLAG_GRAY);
++  // PARAM_FLAG("ff_flag_emu_edge",AV_CODEC_FLAG_EMU_EDGE);
++  // PARAM_FLAG("ff_flag_normalize_aqp",AV_CODEC_FLAG_NORMALIZE_AQP);
++  //  PARAM_FLAG("ff_flag_alt_scan",AV_CODEC_FLAG_ALT_SCAN);
+ #if LIBAVCODEC_VERSION_INT < ((52<<16)+(0<<8)+0)
+-  PARAM_FLAG("ff_flag_trellis_quant",CODEC_FLAG_TRELLIS_QUANT);
++  PARAM_FLAG("ff_flag_trellis_quant",AV_CODEC_FLAG_TRELLIS_QUANT);
+ #else
+   PARAM_INT("ff_trellis",trellis);
+ #endif
+-  PARAM_FLAG("ff_flag_bitexact",CODEC_FLAG_BITEXACT);
+-  PARAM_FLAG("ff_flag_ac_pred",CODEC_FLAG_AC_PRED);
+-  //  PARAM_FLAG("ff_flag_h263p_umv",CODEC_FLAG_H263P_UMV);
++  PARAM_FLAG("ff_flag_bitexact",AV_CODEC_FLAG_BITEXACT);
++  PARAM_FLAG("ff_flag_ac_pred",AV_CODEC_FLAG_AC_PRED);
++  //  PARAM_FLAG("ff_flag_h263p_umv",AV_CODEC_FLAG_H263P_UMV);
+   PARAM_FLAG("ff_flag_cbp_rd",0x04000000);
+   PARAM_FLAG("ff_flag_qp_rd",0x08000000);
+-  //  PARAM_FLAG("ff_flag_h263p_aiv",CODEC_FLAG_H263P_AIV);
+-  //  PARAM_FLAG("ffx_flag_obmc",CODEC_FLAG_OBMC);
+-  PARAM_FLAG("ff_flag_loop_filter",CODEC_FLAG_LOOP_FILTER);
+-  //  PARAM_FLAG("ff_flag_h263p_slice_struct",CODEC_FLAG_H263P_SLICE_STRUCT);
+-  PARAM_FLAG("ff_flag_closed_gop",CODEC_FLAG_CLOSED_GOP);
+-  PARAM_FLAG2("ff_flag2_fast",CODEC_FLAG2_FAST);
++  //  PARAM_FLAG("ff_flag_h263p_aiv",AV_CODEC_FLAG_H263P_AIV);
++  //  PARAM_FLAG("ffx_flag_obmc",AV_CODEC_FLAG_OBMC);
++  PARAM_FLAG("ff_flag_loop_filter",AV_CODEC_FLAG_LOOP_FILTER);
++  //  PARAM_FLAG("ff_flag_h263p_slice_struct",AV_CODEC_FLAG_H263P_SLICE_STRUCT);
++  PARAM_FLAG("ff_flag_closed_gop",AV_CODEC_FLAG_CLOSED_GOP);
++  PARAM_FLAG2("ff_flag2_fast",AV_CODEC_FLAG2_FAST);
+   PARAM_FLAG2("ff_flag2_strict_gop",0x00000002);
+ 
+ #if LIBAVCODEC_VERSION_MAJOR >= 54
+--- gmerlin-encoders-1.2.0/plugins/ffmpeg/params.h~	2012-06-08 13:52:27.000000000 +0200
++++ gmerlin-encoders-1.2.0/plugins/ffmpeg/params.h	2018-04-29 12:09:17.582500806 +0200
+@@ -146,7 +146,7 @@
+     .type =      BG_PARAMETER_SLIDER_INT,                                       \
+     .val_default = { .val_i = 0 },                                        \
+     .val_min =     { .val_i = 0 },                                        \
+-    .val_max =     { .val_i = FF_MAX_B_FRAMES },                          \
++    .val_max =     { .val_i = 16 },                          \
+     .help_string = TRS("Maximum number of B-frames between non B-frames") \
+   }
+ 
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/gmerlin-encoders.git/commitdiff/a866127968dbaf8f4d6f2b60054d757514bef244



More information about the pld-cvs-commit mailing list