Bug 214824 - multimedia/gmerlin-avdecoder: fails to build with ffmpeg 3.x
Summary: multimedia/gmerlin-avdecoder: fails to build with ffmpeg 3.x
Status: Closed Overcome By Events
Alias: None
Product: Ports & Packages
Classification: Unclassified
Component: Individual Port(s) (show other bugs)
Version: Latest
Hardware: Any Any
: --- Affects Only Me
Assignee: William Grzybowski
URL:
Keywords: patch
Depends on: 214823
Blocks: 207547
  Show dependency treegraph
 
Reported: 2016-11-25 12:20 UTC by Jan Beich
Modified: 2018-03-04 19:41 UTC (History)
2 users (show)

See Also:
bugzilla: maintainer-feedback? (wg)


Attachments
workaround (2.99 KB, patch)
2016-11-25 12:23 UTC, Jan Beich
no flags Details | Diff
workaround (3.02 KB, patch)
2016-11-25 12:32 UTC, Jan Beich
jbeich: maintainer-approval? (wg)
Details | Diff

Note You need to log in before you can comment on or make changes to this bug.
Description Jan Beich freebsd_committer 2016-11-25 12:20:48 UTC
video_ffmpeg.c:206:12: error: no member named 'type' in 'struct AVFrame'
      pic->type = FF_BUFFER_TYPE_USER;
      ~~~  ^
video_ffmpeg.c:206:19: error: use of undeclared identifier 'FF_BUFFER_TYPE_USER'
      pic->type = FF_BUFFER_TYPE_USER;
                  ^
video_ffmpeg.c:222:15: error: no member named 'reference' in 'struct AVFrame'
      if(pic->reference)
         ~~~  ^
video_ffmpeg.c:278:10: error: returning 'const enum PixelFormat' from a function with incompatible
      result type 'enum AVPixelFormat'
  return *fmt;
         ^~~~
video_ffmpeg.c:788:14: error: no member named 'get_buffer' in 'struct AVCodecContext'; did you mean
      'get_buffer2'?
  priv->ctx->get_buffer      = vdpau_get_buffer;
             ^~~~~~~~~~
             get_buffer2
/usr/local/include/libavcodec/avcodec.h:2593:11: note: 'get_buffer2' declared here
    int (*get_buffer2)(struct AVCodecContext *s, AVFrame *frame, int flags);
          ^
video_ffmpeg.c:788:30: warning: incompatible pointer types assigning to 'int (*)(struct
      AVCodecContext *, AVFrame *, int)' (aka 'int (*)(struct AVCodecContext *, struct AVFrame *,
      int)') from 'int (struct AVCodecContext *, AVFrame *)' (aka 'int (struct AVCodecContext *,
      struct AVFrame *)') [-Wincompatible-pointer-types]
  priv->ctx->get_buffer      = vdpau_get_buffer;
                             ^ ~~~~~~~~~~~~~~~~
video_ffmpeg.c:789:14: error: no member named 'release_buffer' in 'struct AVCodecContext'
  priv->ctx->release_buffer      = vdpau_release_buffer;
  ~~~~~~~~~  ^
Comment 1 Jan Beich freebsd_committer 2016-11-25 12:23:07 UTC
Created attachment 177380 [details]
workaround

graphics/osg/files/patch-ffmpeg3 has an example how to convert to get_buffer2.
Comment 2 Jan Beich freebsd_committer 2016-11-25 12:32:11 UTC
Created attachment 177382 [details]
workaround

Better wording of BROKEN line.
Comment 3 Walter Schwarzenfeld freebsd_triage 2018-03-04 19:41:32 UTC
No more BROKEN statement in the Makefile:
.if ${PORT_OPTIONS:MVDPAU}
LIB_DEPENDS+=   libvdpau.so:multimedia/libvdpau
.else
CONFIGURE_ARGS+=        --disable-vdpau
.endif

seems fixed or overcome by events.