Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 27 Apr 2018 11:09:29 +0000 (UTC)
From:      Jan Beich <jbeich@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r468419 - head/x11/xpra/files
Message-ID:  <201804271109.w3RB9TbE030165@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jbeich
Date: Fri Apr 27 11:09:29 2018
New Revision: 468419
URL: https://svnweb.freebsd.org/changeset/ports/468419

Log:
  x11/xpra: unbreak with ffmpeg 4.0
  
  xpra/codecs/dec_avcodec2/decoder.c:5656:72: error: use of undeclared identifier 'CODEC_FLAG2_FAST'
    __pyx_v_self->codec_ctx->flags2 = (__pyx_v_self->codec_ctx->flags2 | CODEC_FLAG2_FAST);
                                                                         ^
  
  PR:		227726
  Obtained from:	upstream

Added:
  head/x11/xpra/files/patch-xpra_codecs_dec__avcodec2_decoder.pyx   (contents, props changed)
  head/x11/xpra/files/patch-xpra_codecs_enc__ffmpeg_encoder.pyx   (contents, props changed)

Added: head/x11/xpra/files/patch-xpra_codecs_dec__avcodec2_decoder.pyx
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-xpra_codecs_dec__avcodec2_decoder.pyx	Fri Apr 27 11:09:29 2018	(r468419)
@@ -0,0 +1,22 @@
+https://www.xpra.org/trac/changeset/18086/xpra
+
+--- xpra/codecs/dec_avcodec2/decoder.pyx.orig	2017-03-17 07:24:28 UTC
++++ xpra/codecs/dec_avcodec2/decoder.pyx
+@@ -51,7 +51,7 @@ cdef extern from "libavutil/pixfmt.h":
+     AVPixelFormat AV_PIX_FMT_GBRP
+ 
+ cdef extern from "libavcodec/avcodec.h":
+-    int CODEC_FLAG2_FAST
++    int AV_CODEC_FLAG2_FAST
+ 
+     ctypedef struct AVFrame:
+         uint8_t **data
+@@ -357,7 +357,7 @@ cdef class Decoder:
+         self.codec_ctx.thread_safe_callbacks = 1
+         self.codec_ctx.thread_type = 2      #FF_THREAD_SLICE: allow more than one thread per frame
+         self.codec_ctx.thread_count = 0     #auto
+-        self.codec_ctx.flags2 |= CODEC_FLAG2_FAST   #may cause "no deblock across slices" - which should be fine
++        self.codec_ctx.flags2 |= AV_CODEC_FLAG2_FAST    #may cause "no deblock across slices" - which should be fine
+         r = avcodec_open2(self.codec_ctx, self.codec, NULL)
+         if r<0:
+             log.error("could not open codec: %s", av_error_str(r))

Added: head/x11/xpra/files/patch-xpra_codecs_enc__ffmpeg_encoder.pyx
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/x11/xpra/files/patch-xpra_codecs_enc__ffmpeg_encoder.pyx	Fri Apr 27 11:09:29 2018	(r468419)
@@ -0,0 +1,185 @@
+https://www.xpra.org/trac/changeset/18088/xpra
+
+--- xpra/codecs/enc_ffmpeg/encoder.pyx.orig	2017-03-17 07:24:28 UTC
++++ xpra/codecs/enc_ffmpeg/encoder.pyx
+@@ -134,44 +134,36 @@ cdef extern from "libavcodec/avcodec.h":
+     int FF_PROFILE_H264_HIGH_444_INTRA
+     int FF_PROFILE_H264_CAVLC_444
+ 
+-    int CODEC_FLAG_UNALIGNED
+-    int CODEC_FLAG_QSCALE
+-    int CODEC_FLAG_4MV
+-    int CODEC_FLAG_OUTPUT_CORRUPT
+-    int CODEC_FLAG_QPEL
+-    int CODEC_FLAG_GMC
+-    int CODEC_FLAG_MV0
+-    int CODEC_FLAG_INPUT_PRESERVED
+-    int CODEC_FLAG_PASS1
+-    int CODEC_FLAG_PASS2
+-    int CODEC_FLAG_GRAY
+-    int CODEC_FLAG_EMU_EDGE
+-    int CODEC_FLAG_PSNR
+-    int CODEC_FLAG_TRUNCATED
+-    int CODEC_FLAG_NORMALIZE_AQP
+-    int CODEC_FLAG_INTERLACED_DCT
+-    int CODEC_FLAG_GLOBAL_HEADER
++    int AV_CODEC_FLAG_UNALIGNED
++    int AV_CODEC_FLAG_QSCALE
++    int AV_CODEC_FLAG_4MV
++    int AV_CODEC_FLAG_OUTPUT_CORRUPT
++    int AV_CODEC_FLAG_QPEL
++    int AV_CODEC_FLAG_PASS1
++    int AV_CODEC_FLAG_PASS2
++    int AV_CODEC_FLAG_GRAY
++    int AV_CODEC_FLAG_PSNR
++    int AV_CODEC_FLAG_TRUNCATED
++    int AV_CODEC_FLAG_INTERLACED_DCT
++    int AV_CODEC_FLAG_GLOBAL_HEADER
+ 
+-    int CODEC_FLAG2_FAST
++    int AV_CODEC_FLAG2_FAST
+ 
+-    int CODEC_CAP_DRAW_HORIZ_BAND
+-    int CODEC_CAP_DR1
+-    int CODEC_CAP_TRUNCATED
+-    int CODEC_CAP_HWACCEL
+-    int CODEC_CAP_DELAY
+-    int CODEC_CAP_SMALL_LAST_FRAME
+-    int CODEC_CAP_HWACCEL_VDPAU
+-    int CODEC_CAP_SUBFRAMES
+-    int CODEC_CAP_EXPERIMENTAL
+-    int CODEC_CAP_CHANNEL_CONF
+-    int CODEC_CAP_NEG_LINESIZES
+-    int CODEC_CAP_FRAME_THREADS
+-    int CODEC_CAP_SLICE_THREADS
+-    int CODEC_CAP_PARAM_CHANGE
+-    int CODEC_CAP_AUTO_THREADS
+-    int CODEC_CAP_VARIABLE_FRAME_SIZE
+-    int CODEC_CAP_INTRA_ONLY
+-    int CODEC_CAP_LOSSLESS
++    int AV_CODEC_CAP_DRAW_HORIZ_BAND
++    int AV_CODEC_CAP_DR1
++    int AV_CODEC_CAP_TRUNCATED
++    int AV_CODEC_CAP_DELAY
++    int AV_CODEC_CAP_SMALL_LAST_FRAME
++    int AV_CODEC_CAP_SUBFRAMES
++    int AV_CODEC_CAP_EXPERIMENTAL
++    int AV_CODEC_CAP_CHANNEL_CONF
++    int AV_CODEC_CAP_FRAME_THREADS
++    int AV_CODEC_CAP_SLICE_THREADS
++    int AV_CODEC_CAP_PARAM_CHANGE
++    int AV_CODEC_CAP_AUTO_THREADS
++    int AV_CODEC_CAP_VARIABLE_FRAME_SIZE
++    int AV_CODEC_CAP_INTRA_ONLY
++    int AV_CODEC_CAP_LOSSLESS
+ 
+     ctypedef struct AVFrame:
+         uint8_t     **data
+@@ -385,7 +377,6 @@ cdef extern from "libavformat/avformat.h":
+     int AVFMT_NOFILE                #Demuxer will use avio_open, no opened file should be provided by the caller
+     int AVFMT_NEEDNUMBER            #Needs '%d' in filename
+     int AVFMT_SHOW_IDS              #Show format stream IDs numbers
+-    int AVFMT_RAWPICTURE            #Format wants AVPicture structure for raw picture data. @deprecated Not used anymore
+     int AVFMT_GLOBALHEADER          #Format wants global header
+     int AVFMT_NOTIMESTAMPS          #Format does not need / have any timestamps
+     int AVFMT_GENERIC_INDEX         #Use generic index building code
+@@ -489,27 +480,22 @@ AVFMTCTX = {
+             }
+ 
+ CODEC_FLAGS = {
+-               CODEC_FLAG_UNALIGNED         : "UNALIGNED",
+-               CODEC_FLAG_QSCALE            : "QSCALE",
+-               CODEC_FLAG_4MV               : "4MV",
+-               CODEC_FLAG_OUTPUT_CORRUPT    : "OUTPUT_CORRUPT",
+-               CODEC_FLAG_QPEL              : "QPEL",
+-               CODEC_FLAG_GMC               : "GMC",
+-               CODEC_FLAG_MV0               : "MV0",
+-               CODEC_FLAG_INPUT_PRESERVED   : "INPUT_PRESERVED",
+-               CODEC_FLAG_PASS1             : "PASS1",
+-               CODEC_FLAG_PASS2             : "PASS2",
+-               CODEC_FLAG_GRAY              : "GRAY",
+-               CODEC_FLAG_EMU_EDGE          : "EMU_EDGE",
+-               CODEC_FLAG_PSNR              : "PSNR",
+-               CODEC_FLAG_TRUNCATED         : "TRUNCATED",
+-               CODEC_FLAG_NORMALIZE_AQP     : "NORMALIZE_AQP",
+-               CODEC_FLAG_INTERLACED_DCT    : "INTERLACED_DCT",
+-               CODEC_FLAG_GLOBAL_HEADER     : "GLOBAL_HEADER",
++               AV_CODEC_FLAG_UNALIGNED          : "UNALIGNED",
++               AV_CODEC_FLAG_QSCALE             : "QSCALE",
++               AV_CODEC_FLAG_4MV                : "4MV",
++               AV_CODEC_FLAG_OUTPUT_CORRUPT     : "OUTPUT_CORRUPT",
++               AV_CODEC_FLAG_QPEL               : "QPEL",
++               AV_CODEC_FLAG_PASS1              : "PASS1",
++               AV_CODEC_FLAG_PASS2              : "PASS2",
++               AV_CODEC_FLAG_GRAY               : "GRAY",
++               AV_CODEC_FLAG_PSNR               : "PSNR",
++               AV_CODEC_FLAG_TRUNCATED          : "TRUNCATED",
++               AV_CODEC_FLAG_INTERLACED_DCT     : "INTERLACED_DCT",
++               AV_CODEC_FLAG_GLOBAL_HEADER      : "GLOBAL_HEADER",
+                }
+ 
+ CODEC_FLAGS2 = {
+-                CODEC_FLAG2_FAST : "FAST",
++                AV_CODEC_FLAG2_FAST : "FAST",
+                 }
+ 
+ FMT_FLAGS = {
+@@ -535,7 +521,6 @@ AVFMT = {
+          AVFMT_NOFILE           : "NOFILE",
+          AVFMT_NEEDNUMBER       : "NEEDNUMBER",
+          AVFMT_SHOW_IDS         : "SHOW_IDS",
+-         AVFMT_RAWPICTURE       : "RAWPICTURE",
+          AVFMT_GLOBALHEADER     : "GLOBALHEADER",
+          AVFMT_NOTIMESTAMPS     : "NOTIMESTAMPS",
+          AVFMT_GENERIC_INDEX    : "GENERIC_INDEX",
+@@ -554,24 +539,21 @@ AVFMT = {
+ 
+ 
+ CAPS = {
+-        CODEC_CAP_DRAW_HORIZ_BAND       : "DRAW_HORIZ_BAND",
+-        CODEC_CAP_DR1                   : "DR1",
+-        CODEC_CAP_TRUNCATED             : "TRUNCATED",
+-        CODEC_CAP_HWACCEL               : "HWACCEL",
+-        CODEC_CAP_DELAY                 : "DELAY",
+-        CODEC_CAP_SMALL_LAST_FRAME      : "SMALL_LAST_FRAME",
+-        CODEC_CAP_HWACCEL_VDPAU         : "HWACCEL_VDPAU",
+-        CODEC_CAP_SUBFRAMES             : "SUBFRAMES",
+-        CODEC_CAP_EXPERIMENTAL          : "EXPERIMENTAL",
+-        CODEC_CAP_CHANNEL_CONF          : "CHANNEL_CONF",
+-        CODEC_CAP_NEG_LINESIZES         : "NEG_LINESIZES",
+-        CODEC_CAP_FRAME_THREADS         : "FRAME_THREADS",
+-        CODEC_CAP_SLICE_THREADS         : "SLICE_THREADS",
+-        CODEC_CAP_PARAM_CHANGE          : "PARAM_CHANGE",
+-        CODEC_CAP_AUTO_THREADS          : "AUTO_THREADS",
+-        CODEC_CAP_VARIABLE_FRAME_SIZE   : "VARIABLE_FRAME_SIZE",
+-        CODEC_CAP_INTRA_ONLY            : "INTRA_ONLY",
+-        CODEC_CAP_LOSSLESS              : "LOSSLESS",
++        AV_CODEC_CAP_DRAW_HORIZ_BAND        : "DRAW_HORIZ_BAND",
++        AV_CODEC_CAP_DR1                    : "DR1",
++        AV_CODEC_CAP_TRUNCATED              : "TRUNCATED",
++        AV_CODEC_CAP_DELAY                  : "DELAY",
++        AV_CODEC_CAP_SMALL_LAST_FRAME       : "SMALL_LAST_FRAME",
++        AV_CODEC_CAP_SUBFRAMES              : "SUBFRAMES",
++        AV_CODEC_CAP_EXPERIMENTAL           : "EXPERIMENTAL",
++        AV_CODEC_CAP_CHANNEL_CONF           : "CHANNEL_CONF",
++        AV_CODEC_CAP_FRAME_THREADS          : "FRAME_THREADS",
++        AV_CODEC_CAP_SLICE_THREADS          : "SLICE_THREADS",
++        AV_CODEC_CAP_PARAM_CHANGE           : "PARAM_CHANGE",
++        AV_CODEC_CAP_AUTO_THREADS           : "AUTO_THREADS",
++        AV_CODEC_CAP_VARIABLE_FRAME_SIZE    : "VARIABLE_FRAME_SIZE",
++        AV_CODEC_CAP_INTRA_ONLY             : "INTRA_ONLY",
++        AV_CODEC_CAP_LOSSLESS               : "LOSSLESS",
+         }
+ log("CODEC_CAP:")
+ print_nested_dict(dict((hex(abs(k)),v) for k,v in CAPS.items()), print_fn=log.debug)
+@@ -890,8 +872,8 @@ cdef class Encoder(object):
+         self.video_ctx.thread_type = THREAD_TYPE
+         self.video_ctx.thread_count = THREAD_COUNT     #0=auto
+         #if oformat.flags & AVFMT_GLOBALHEADER:
+-        self.video_ctx.flags |= CODEC_FLAG_GLOBAL_HEADER
+-        self.video_ctx.flags2 |= CODEC_FLAG2_FAST   #may cause "no deblock across slices" - which should be fine
++        self.video_ctx.flags |= AV_CODEC_FLAG_GLOBAL_HEADER
++        self.video_ctx.flags2 |= AV_CODEC_FLAG2_FAST   #may cause "no deblock across slices" - which should be fine
+         if self.encoding.startswith("h264") and profile:
+             r = av_dict_set(&opts, b"vprofile", strtobytes(profile), 0)
+             log("av_dict_set vprofile=%s returned %i", profile, r)



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201804271109.w3RB9TbE030165>