Bug 214188

Summary: emulators/kcemu: fails to build with ffmpeg 3.x
Product: Ports & Packages Reporter: Jan Beich <jbeich>
Component: Individual Port(s)Assignee: Jan Beich <jbeich>
Status: Closed FIXED    
Severity: Affects Only Me CC: hardy.schumacher
Priority: --- Keywords: patch, patch-ready
Version: LatestFlags: bugzilla: maintainer-feedback? (hardy.schumacher)
Hardware: Any   
OS: Any   
Bug Depends on:    
Bug Blocks: 207547    
Attachments:
Description Flags
fix, v1 jbeich: maintainer-approval? (hardy.schumacher)

Description Jan Beich freebsd_committer freebsd_triage 2016-11-04 04:33:38 UTC
ffmpeg.cc:79:29: error: use of undeclared identifier 'PIX_FMT_YUV420P'; did you mean 'AV_PIX_FMT_YUV420P'?
  _stream->codec->pix_fmt = PIX_FMT_YUV420P;
                            ^~~~~~~~~~~~~~~
                            AV_PIX_FMT_YUV420P
/usr/local/include/libavutil/pixfmt.h:62:5: note: 'AV_PIX_FMT_YUV420P' declared here
    AV_PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
    ^
ffmpeg.cc:100:12: error: use of undeclared identifier 'avcodec_alloc_frame'
  _frame = avcodec_alloc_frame();
           ^
ffmpeg.cc:159:18: error: use of undeclared identifier 'avcodec_encode_video'; did you mean 'avcodec_encode_video2'?
  int out_size = avcodec_encode_video(_stream->codec, _buf, _bufsize, _frame);
                 ^~~~~~~~~~~~~~~~~~~~
                 avcodec_encode_video2
/usr/local/include/libavcodec/avcodec.h:5261:5: note: 'avcodec_encode_video2' declared here
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
    ^
ffmpeg.cc:159:55: error: cannot initialize a parameter of type 'AVPacket *' with an lvalue of type 'byte_t *' (aka 'unsigned char *')
  int out_size = avcodec_encode_video(_stream->codec, _buf, _bufsize, _frame);
                                                      ^~~~
/usr/local/include/libavcodec/avcodec.h:5261:60: note: passing argument to parameter 'avpkt' here
int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
                                                           ^

http://package23.nyi.freebsd.org/data/103i386-default-PR207547/2016-10-04_18h24m30s/logs/errors/kcemu-0.5.1_8.log
Comment 1 Jan Beich freebsd_committer freebsd_triage 2016-11-04 15:47:58 UTC
Created attachment 176627 [details]
fix, v1

FreeBSD 10.1 i386 + ffmpeg 2.8 build log: http://sprunge.us/jICZ
Comment 2 commit-hook freebsd_committer freebsd_triage 2016-11-18 22:01:38 UTC
A commit references this bug:

Author: jbeich
Date: Fri Nov 18 22:00:37 UTC 2016
New revision: 426344
URL: https://svnweb.freebsd.org/changeset/ports/426344

Log:
  emulators/kcemu: unbreak build with ffmpeg 3.x

  ffmpeg.cc:79:29: error: use of undeclared identifier 'PIX_FMT_YUV420P'; did you mean 'AV_PIX_FMT_YUV420P'?
    _stream->codec->pix_fmt = PIX_FMT_YUV420P;
                              ^~~~~~~~~~~~~~~
                              AV_PIX_FMT_YUV420P
  /usr/local/include/libavutil/pixfmt.h:62:5: note: 'AV_PIX_FMT_YUV420P' declared here
      AV_PIX_FMT_YUV420P,   ///< planar YUV 4:2:0, 12bpp, (1 Cr & Cb sample per 2x2 Y samples)
      ^
  ffmpeg.cc:100:12: error: use of undeclared identifier 'avcodec_alloc_frame'
    _frame = avcodec_alloc_frame();
             ^
  ffmpeg.cc:159:18: error: use of undeclared identifier 'avcodec_encode_video'; did you mean 'avcodec_encode_video2'?
    int out_size = avcodec_encode_video(_stream->codec, _buf, _bufsize, _frame);
                   ^~~~~~~~~~~~~~~~~~~~
                   avcodec_encode_video2
  /usr/local/include/libavcodec/avcodec.h:5261:5: note: 'avcodec_encode_video2' declared here
  int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
      ^
  ffmpeg.cc:159:55: error: cannot initialize a parameter of type 'AVPacket *' with an lvalue of type 'byte_t *' (aka 'unsigned char *')
    int out_size = avcodec_encode_video(_stream->codec, _buf, _bufsize, _frame);
                                                        ^~~~
  /usr/local/include/libavcodec/avcodec.h:5261:60: note: passing argument to parameter 'avpkt' here
  int avcodec_encode_video2(AVCodecContext *avctx, AVPacket *avpkt,
                                                             ^

  PR:		214188
  Approved by:	maintainer timeout (2 weeks)

Changes:
  head/emulators/kcemu/Makefile
  head/emulators/kcemu/files/patch-src-ui-gtk-ffmpeg.cc