pkgsrc-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[pkgsrc/trunk]: pkgsrc/multimedia/transcode transcode: use ffmpeg4



details:   https://anonhg.NetBSD.org/pkgsrc/rev/843ade0c7aac
branches:  trunk
changeset: 419829:843ade0c7aac
user:      markd <markd%pkgsrc.org@localhost>
date:      Sun Dec 29 10:23:53 2019 +0000

description:
transcode: use ffmpeg4

diffstat:

 multimedia/transcode/Makefile                                |    6 +-
 multimedia/transcode/distinfo                                |   17 +-
 multimedia/transcode/patches/patch-encode_encode_lavc.c      |  369 +++++++++-
 multimedia/transcode/patches/patch-export_aud__aux.c         |   86 ++-
 multimedia/transcode/patches/patch-export_export_ffmpeg.c    |  265 +++++++-
 multimedia/transcode/patches/patch-export_ffmpeg_cfg.c       |   80 ++-
 multimedia/transcode/patches/patch-filter_filter__resample.c |   23 +
 multimedia/transcode/patches/patch-import_import_ffmpeg.c    |  184 +++++-
 multimedia/transcode/patches/patch-import_probe_ffmpeg.c     |   22 +-
 9 files changed, 964 insertions(+), 88 deletions(-)

diffs (truncated from 1475 to 300 lines):

diff -r 313f328e4403 -r 843ade0c7aac multimedia/transcode/Makefile
--- a/multimedia/transcode/Makefile     Sun Dec 29 10:15:04 2019 +0000
+++ b/multimedia/transcode/Makefile     Sun Dec 29 10:23:53 2019 +0000
@@ -1,7 +1,7 @@
-# $NetBSD: Makefile,v 1.118 2019/07/21 22:25:28 wiz Exp $
+# $NetBSD: Makefile,v 1.119 2019/12/29 10:23:53 markd Exp $
 
 DISTNAME=      transcode-1.1.7
-PKGREVISION=   36
+PKGREVISION=   37
 CATEGORIES=    multimedia
 MASTER_SITES=  http://bitbucket.org/france/transcode-tcforge/downloads/
 EXTRACT_SUFX=  .tar.bz2
@@ -55,7 +55,7 @@
 .include "../../graphics/freetype2/buildlink3.mk"
 .include "../../graphics/liblqr/buildlink3.mk"
 .include "../../graphics/png/buildlink3.mk"
-.include "../../multimedia/ffmpeg2/buildlink3.mk"
+.include "../../multimedia/ffmpeg4/buildlink3.mk"
 .include "../../multimedia/libdvdread/buildlink3.mk"
 .include "../../multimedia/libmpeg2/buildlink3.mk"
 .include "../../multimedia/libogg/buildlink3.mk"
diff -r 313f328e4403 -r 843ade0c7aac multimedia/transcode/distinfo
--- a/multimedia/transcode/distinfo     Sun Dec 29 10:15:04 2019 +0000
+++ b/multimedia/transcode/distinfo     Sun Dec 29 10:23:53 2019 +0000
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.26 2016/05/16 19:41:17 adam Exp $
+$NetBSD: distinfo,v 1.27 2019/12/29 10:23:53 markd Exp $
 
 SHA1 (transcode-1.1.7.tar.bz2) = e35df68b960eb56ef0a59a4cdbed1491be56aee6
 RMD160 (transcode-1.1.7.tar.bz2) = faa854acbbfd52faaa216505176f94d756d77841
@@ -6,22 +6,23 @@
 Size (transcode-1.1.7.tar.bz2) = 2183627 bytes
 SHA1 (patch-avilib_avidump.c) = 640aac6fc274a685b1847b48870b37b2c2ab1e88
 SHA1 (patch-configure) = 38418cd91750f55828124b5895d42d3af5c2d56a
-SHA1 (patch-encode_encode_lavc.c) = c33f40dab212b601e5d808d972d132db4eee2d2e
-SHA1 (patch-export_aud__aux.c) = 84b774d13e363721db692b1edc53589e165b094e
+SHA1 (patch-encode_encode_lavc.c) = 5ce01220933d58ab09a58c37146da290a3d91164
+SHA1 (patch-export_aud__aux.c) = 437ffde84123eccfe496c478a9db0066208fe256
 SHA1 (patch-export_export__im.c) = 3a4f08d548cdebdfa618aeff2df398bd61002120
-SHA1 (patch-export_export_ffmpeg.c) = 4367d16ba83ccc5c868f0dc470dcd0b64770b185
-SHA1 (patch-export_ffmpeg_cfg.c) = 216f7970f3885a3f7fc8c229e4d1950cd6430cff
+SHA1 (patch-export_export_ffmpeg.c) = 2cc6100ab5e837b8d3fe66ec55c88962e6fbfb26
+SHA1 (patch-export_ffmpeg_cfg.c) = d1678b2b6bdd2a9353d1fb34d72c2cc2d1aa1fa4
 SHA1 (patch-export_ffmpeg_cfg.h) = 7cf230de948de004cc0500f0ae2511561081e952
 SHA1 (patch-filter_filter__compare.c) = b866aa3f36607bee87aad4eb7023b0e5087b1c25
 SHA1 (patch-filter_filter__logo.c) = 4cff9a4123797d3a25df17b22f3922260ed3a7d4
 SHA1 (patch-filter_filter__logoaway.c) = 252986a1e3ce9969e97bfeedd63bec6e3cf6273c
 SHA1 (patch-filter_filter__pp.c) = a7a3f9c49e65e87bed343dd2d045457341e42114
+SHA1 (patch-filter_filter__resample.c) = 9e8176070682984b4f7f0cc29d21437ff5ba4710
 SHA1 (patch-filter_subtitler_load_font.c) = 2c496c63f4fe27190761d170cc825633eb63c11f
-SHA1 (patch-import_decode_lavc.c) = adf9274c5085012adcfeeb2f2366600155f0994c
+SHA1 (patch-import_decode_lavc.c) = 37c172b40858028592ced6a35f19fdd2873a07c6
 SHA1 (patch-import_import__im.c) = 30fdb4ce905c0bdd959964b1455f31823b681e9e
 SHA1 (patch-import_import__imlist.c) = 677ffc2c4ed48ab1e9f4f3f4a28f53b368ae7651
-SHA1 (patch-import_import_ffmpeg.c) = bbbbdec6a1c20a9c02a1e2ef4cca10919eb2854c
+SHA1 (patch-import_import_ffmpeg.c) = 601ff0f67727c7dc3bdad8c5c43a8b8b4baae5ea
 SHA1 (patch-import_nuv_import__nuv.c) = e4a57c29b97b23aed068c06a2ed29dd9e29a9919
-SHA1 (patch-import_probe_ffmpeg.c) = 6bbf65b513e999ac770bafc6aa9b508bfdb5ae15
+SHA1 (patch-import_probe_ffmpeg.c) = eabbdbc2ffad5da51cb77547ac6a3f92c7bafcdb
 SHA1 (patch-import_probe_im.c) = 27bce069c78e5eee94c14d3f5f03cc14145f85ac
 SHA1 (patch-libtc_tcavcodec.h) = 6fcef1e338e53c974b295b1a10b2cb06e6fcfbd3
diff -r 313f328e4403 -r 843ade0c7aac multimedia/transcode/patches/patch-encode_encode_lavc.c
--- a/multimedia/transcode/patches/patch-encode_encode_lavc.c   Sun Dec 29 10:15:04 2019 +0000
+++ b/multimedia/transcode/patches/patch-encode_encode_lavc.c   Sun Dec 29 10:23:53 2019 +0000
@@ -1,20 +1,27 @@
-$NetBSD: patch-encode_encode_lavc.c,v 1.2 2015/11/21 17:14:26 adam Exp $
+$NetBSD: patch-encode_encode_lavc.c,v 1.3 2019/12/29 10:23:53 markd Exp $
 
-Fixes building against FFmpeg version >= 2.0.0 (gentoo patch).
+Fixes building against FFmpeg version >= 4.0.0 (gentoo patch).
 
 --- encode/encode_lavc.c.orig  2011-11-19 16:50:27.000000000 +0000
 +++ encode/encode_lavc.c
-@@ -74,6 +74,9 @@ struct tclavcconfigdata_ {
+@@ -74,6 +74,16 @@ struct tclavcconfigdata_ {
      int lmin;
      int lmax;
      int me_method;
 +    int luma_elim_threshold;
 +    int chroma_elim_threshold;
 +    int quantizer_noise_shaping;
++    int inter_quant_bias;
++    int intra_quant_bias;
++    int scenechange_factor;
++    int rc_strategy;
++    float rc_initial_cplx;
++    float rc_qsquish;
++    float border_masking;
  
      /* same as above for flags */
      struct {
-@@ -114,6 +117,7 @@ struct tclavcprivatedata_ {
+@@ -114,6 +124,7 @@ struct tclavcprivatedata_ {
  
      AVFrame ff_venc_frame;
      AVCodecContext ff_vcontext;
@@ -22,7 +29,7 @@
  
      AVCodec *ff_vcodec;
  
-@@ -164,6 +168,7 @@ static const TCCodecID tc_lavc_codecs_ou
+@@ -164,6 +175,7 @@ static const TCCodecID tc_lavc_codecs_ou
      TC_CODEC_ERROR
  };
  
@@ -30,7 +37,7 @@
  static const enum CodecID tc_lavc_internal_codecs[] = {
      CODEC_ID_MPEG1VIDEO, CODEC_ID_MPEG2VIDEO, CODEC_ID_MPEG4,
      CODEC_ID_H263I, CODEC_ID_H263P,
-@@ -176,6 +181,20 @@ static const enum CodecID tc_lavc_intern
+@@ -176,6 +188,20 @@ static const enum CodecID tc_lavc_intern
      CODEC_ID_MSMPEG4V2, CODEC_ID_MSMPEG4V3,
      CODEC_ID_NONE
  };
@@ -51,7 +58,120 @@
  
  static const TCFormatID tc_lavc_formats[] = { TC_FORMAT_ERROR };
  
-@@ -937,7 +956,11 @@ static int tc_lavc_settings_from_vob(TCL
+@@ -214,7 +240,7 @@ static void pre_encode_video_yuv420p(TCL
+                                      vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, vframe->video_buf,
+-                    PIX_FMT_YUV420P,
++                    AV_PIX_FMT_YUV420P,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+ }
+ 
+@@ -228,7 +254,7 @@ static void pre_encode_video_yuv420p_huf
+                     IMG_YUV_DEFAULT,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV422P,
++                   AV_PIX_FMT_YUV422P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(src, IMG_YUV_DEFAULT,
+                   pd->ff_venc_frame.data, IMG_YUV422P,
+@@ -244,7 +270,7 @@ static void pre_encode_video_yuv422p(TCL
+                     IMG_YUV422P,
+                     pd->ff_vcontext.width, pd->ff_vcontext.height);
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV420P,
++                   AV_PIX_FMT_YUV420P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(src, IMG_YUV422P,
+                   pd->ff_venc_frame.data, IMG_YUV420P,
+@@ -256,7 +282,7 @@ static void pre_encode_video_yuv422p_huf
+                                              vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, vframe->video_buf,
+-                   PIX_FMT_YUV422P,
++                   AV_PIX_FMT_YUV422P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+ 
+ }
+@@ -266,7 +292,7 @@ static void pre_encode_video_rgb24(TCLav
+                                    vframe_list_t *vframe)
+ {
+     avpicture_fill((AVPicture *)&pd->ff_venc_frame, pd->vframe_buf->video_buf,
+-                   PIX_FMT_YUV420P,
++                   AV_PIX_FMT_YUV420P,
+                    pd->ff_vcontext.width, pd->ff_vcontext.height);
+     ac_imgconvert(&vframe->video_buf, IMG_RGB_DEFAULT,
+                   pd->ff_venc_frame.data, IMG_YUV420P,
+@@ -591,21 +617,21 @@ static int tc_lavc_set_pix_fmt(TCLavcPri
+       case CODEC_YUV:
+         if (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV) {
+             pd->tc_pix_fmt = TC_CODEC_YUV422P;
+-            pd->ff_vcontext.pix_fmt = PIX_FMT_YUV422P;
++            pd->ff_vcontext.pix_fmt = AV_PIX_FMT_YUV422P;
+             pd->pre_encode_video = pre_encode_video_yuv420p_huffyuv;
+         } else {
+             pd->tc_pix_fmt = TC_CODEC_YUV420P;
+             pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                       ? PIX_FMT_YUVJ420P
+-                                       : PIX_FMT_YUV420P;
++                                       ? AV_PIX_FMT_YUVJ420P
++                                       : AV_PIX_FMT_YUV420P;
+             pd->pre_encode_video = pre_encode_video_yuv420p;
+         }
+         break;
+       case CODEC_YUV422:
+         pd->tc_pix_fmt = TC_CODEC_YUV422P;
+         pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                   ? PIX_FMT_YUVJ422P
+-                                   : PIX_FMT_YUV422P;
++                                   ? AV_PIX_FMT_YUVJ422P
++                                   : AV_PIX_FMT_YUV422P;
+         if (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV) {
+             pd->pre_encode_video = pre_encode_video_yuv422p_huffyuv;
+         } else {
+@@ -615,10 +641,10 @@ static int tc_lavc_set_pix_fmt(TCLavcPri
+       case CODEC_RGB:
+         pd->tc_pix_fmt = TC_CODEC_RGB;
+         pd->ff_vcontext.pix_fmt = (TC_VCODEC_ID(pd) == TC_CODEC_HUFFYUV)
+-                                        ? PIX_FMT_YUV422P
++                                        ? AV_PIX_FMT_YUV422P
+                                         : (TC_VCODEC_ID(pd) == TC_CODEC_MJPEG) 
+-                                           ? PIX_FMT_YUVJ420P
+-                                           : PIX_FMT_YUV420P;
++                                           ? AV_PIX_FMT_YUVJ420P
++                                           : AV_PIX_FMT_YUV420P;
+         pd->pre_encode_video = pre_encode_video_rgb24;
+         break;
+       default:
+@@ -665,7 +691,7 @@ static int tc_lavc_init_multipass(TCLavc
+     switch (vob->divxmultipass) {
+       case 1:
+         CAN_DO_MULTIPASS(multipass_flag);
+-        pd->ff_vcontext.flags |= CODEC_FLAG_PASS1;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_PASS1;
+         pd->stats_file = fopen(vob->divxlogfile, "w");
+         if (pd->stats_file == NULL) {
+             tc_log_error(MOD_NAME, "could not create 2pass log file"
+@@ -675,7 +701,7 @@ static int tc_lavc_init_multipass(TCLavc
+         break;
+       case 2:
+         CAN_DO_MULTIPASS(multipass_flag);
+-        pd->ff_vcontext.flags |= CODEC_FLAG_PASS2;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_PASS2;
+         pd->stats_file = fopen(vob->divxlogfile, "r");
+         if (pd->stats_file == NULL){
+             tc_log_error(MOD_NAME, "could not open 2pass log file \"%s\""
+@@ -704,7 +730,7 @@ static int tc_lavc_init_multipass(TCLavc
+         break;
+       case 3:
+         /* fixed qscale :p */
+-        pd->ff_vcontext.flags |= CODEC_FLAG_QSCALE;
++        pd->ff_vcontext.flags |= AV_CODEC_FLAG_QSCALE;
+         pd->ff_venc_frame.quality = vob->divxbitrate;
+         break;
+     }
+@@ -937,7 +963,11 @@ static int tc_lavc_settings_from_vob(TCL
  static void tc_lavc_config_defaults(TCLavcPrivateData *pd)
  {
      /* first of all reinitialize lavc data */
@@ -63,7 +183,16 @@
  
      pd->confdata.thread_count = 1;
  
-@@ -955,8 +978,6 @@ static void tc_lavc_config_defaults(TCLa
+@@ -947,7 +977,7 @@ static void tc_lavc_config_defaults(TCLa
+     pd->confdata.rc_buffer_size  = 0;
+     pd->confdata.lmin            = 2;
+     pd->confdata.lmax            = 31;
+-    pd->confdata.me_method       = ME_EPZS;
++    pd->confdata.me_method       = 0;
+ 
+     memset(&pd->confdata.flags, 0, sizeof(pd->confdata.flags));
+     pd->confdata.turbo_setup = 0;
+@@ -955,19 +985,17 @@ static void tc_lavc_config_defaults(TCLa
      /* 
       * context *transcode* (not libavcodec) defaults
       */
@@ -72,35 +201,80 @@
      pd->ff_vcontext.max_qdiff               = 3;
      pd->ff_vcontext.max_b_frames            = 0;
      pd->ff_vcontext.me_range                = 0;
-@@ -977,8 +998,8 @@ static void tc_lavc_config_defaults(TCLa
+     pd->ff_vcontext.mb_decision             = 0;
+     pd->ff_vcontext.scenechange_threshold   = 0;
+-    pd->ff_vcontext.scenechange_factor      = 1;
++    pd->confdata.scenechange_factor         = 1;
+     pd->ff_vcontext.b_frame_strategy        = 0;
+     pd->ff_vcontext.b_sensitivity           = 40;
+     pd->ff_vcontext.brd_scale               = 0;
+     pd->ff_vcontext.bidir_refine            = 0;
+-    pd->ff_vcontext.rc_strategy             = 2;
++    pd->confdata.rc_strategy                = 2;
+     pd->ff_vcontext.b_quant_factor          = 1.25;
+     pd->ff_vcontext.i_quant_factor          = 0.8;
+     pd->ff_vcontext.b_quant_offset          = 1.25;
+@@ -975,10 +1003,10 @@ static void tc_lavc_config_defaults(TCLa
+     pd->ff_vcontext.qblur                   = 0.5;
+     pd->ff_vcontext.qcompress               = 0.5;
      pd->ff_vcontext.mpeg_quant              = 0;
-     pd->ff_vcontext.rc_initial_cplx         = 0.0;
-     pd->ff_vcontext.rc_qsquish              = 1.0;
+-    pd->ff_vcontext.rc_initial_cplx         = 0.0;
+-    pd->ff_vcontext.rc_qsquish              = 1.0;
 -    pd->ff_vcontext.luma_elim_threshold     = 0;
 -    pd->ff_vcontext.chroma_elim_threshold   = 0;
++    pd->confdata.rc_initial_cplx            = 0.0;
++    pd->confdata.rc_qsquish              = 1.0;
 +    pd->confdata.luma_elim_threshold     = 0;
 +    pd->confdata.chroma_elim_threshold   = 0;
      pd->ff_vcontext.strict_std_compliance   = 0;
      pd->ff_vcontext.dct_algo                = FF_DCT_AUTO;
      pd->ff_vcontext.idct_algo               = FF_IDCT_AUTO;
-@@ -1002,7 +1023,7 @@ static void tc_lavc_config_defaults(TCLa
-     pd->ff_vcontext.intra_quant_bias        = FF_DEFAULT_QUANT_BIAS;
-     pd->ff_vcontext.inter_quant_bias        = FF_DEFAULT_QUANT_BIAS;
+@@ -987,7 +1015,7 @@ static void tc_lavc_config_defaults(TCLa
+     pd->ff_vcontext.temporal_cplx_masking   = 0.0;
+     pd->ff_vcontext.spatial_cplx_masking    = 0.0;
+     pd->ff_vcontext.p_masking               = 0.0;
+-    pd->ff_vcontext.border_masking          = 0.0;
++    pd->confdata.border_masking          = 0.0;
+     pd->ff_vcontext.me_pre_cmp              = 0;



Home | Main Index | Thread Index | Old Index