URI:
       topal-3.10.10-ffmpeg2-1.patch - parlay - yet another gentoo overlay
  HTML git clone https://git.parazyd.org/parlay
   DIR Log
   DIR Files
   DIR Refs
   DIR README
       ---
       topal-3.10.10-ffmpeg2-1.patch (15039B)
       ---
            1 Submitted By:            Igor Živković <contact@igor-zivkovic.from.hr>
            2 Date:                    2013-10-08
            3 Initial Package Version: 3.10.10
            4 Upstream Status:         Unknown
            5 Origin:                  Gentoo
            6 Description:             Fixes building against FFmpeg version >= 2.0.0
            7 
            8 diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.cxx opal-3.10.10/plugins/video/common/dyna.cxx
            9 --- opal-3.10.10.orig/plugins/video/common/dyna.cxx        2013-02-20 03:18:05.000000000 +0100
           10 +++ opal-3.10.10/plugins/video/common/dyna.cxx        2013-10-08 12:57:25.058873513 +0200
           11 @@ -210,7 +210,7 @@
           12  #endif
           13  
           14  
           15 -FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
           16 +FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
           17  {
           18    m_codec = codec;
           19    if (m_codec==CODEC_ID_H264)
           20 @@ -348,12 +348,12 @@
           21    return true;
           22  }
           23  
           24 -AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
           25 +AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
           26  {
           27    return Favcodec_find_encoder(id);
           28  }
           29  
           30 -AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
           31 +AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
           32  {
           33    WaitAndSignal m(processLock);
           34  
           35 diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.h opal-3.10.10/plugins/video/common/dyna.h
           36 --- opal-3.10.10.orig/plugins/video/common/dyna.h        2013-02-20 03:18:05.000000000 +0100
           37 +++ opal-3.10.10/plugins/video/common/dyna.h        2013-10-08 12:57:25.058873513 +0200
           38 @@ -88,13 +88,13 @@
           39  class FFMPEGLibrary 
           40  {
           41    public:
           42 -    FFMPEGLibrary(CodecID codec);
           43 +    FFMPEGLibrary(AVCodecID codec);
           44      ~FFMPEGLibrary();
           45  
           46      bool Load();
           47  
           48 -    AVCodec *AvcodecFindEncoder(enum CodecID id);
           49 -    AVCodec *AvcodecFindDecoder(enum CodecID id);
           50 +    AVCodec *AvcodecFindEncoder(enum AVCodecID id);
           51 +    AVCodec *AvcodecFindDecoder(enum AVCodecID id);
           52      AVCodecContext *AvcodecAllocContext(void);
           53      AVFrame *AvcodecAllocFrame(void);
           54      int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
           55 @@ -117,15 +117,15 @@
           56      DynaLink m_libAvcodec;
           57      DynaLink m_libAvutil;
           58  
           59 -    CodecID m_codec;
           60 +    AVCodecID m_codec;
           61      char m_codecString[32];
           62  
           63      void (*Favcodec_init)(void);
           64      void (*Fav_init_packet)(AVPacket *pkt);
           65  
           66      void (*Favcodec_register_all)(void);
           67 -    AVCodec *(*Favcodec_find_encoder)(enum CodecID id);
           68 -    AVCodec *(*Favcodec_find_decoder)(enum CodecID id);
           69 +    AVCodec *(*Favcodec_find_encoder)(enum AVCodecID id);
           70 +    AVCodec *(*Favcodec_find_decoder)(enum AVCodecID id);
           71      AVCodecContext *(*Favcodec_alloc_context)(void);
           72      AVFrame *(*Favcodec_alloc_frame)(void);
           73      int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec);
           74 diff -Naur opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h
           75 --- opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h        2013-02-20 03:18:04.000000000 +0100
           76 +++ opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h        2013-10-08 12:57:25.060873488 +0200
           77 @@ -101,7 +101,7 @@
           78   * 1. no value of a existing codec ID changes (that would break ABI),
           79   * 2. it is as close as possible to similar codecs.
           80   */
           81 -enum CodecID {
           82 +enum AVCodecID {
           83      CODEC_ID_NONE,
           84  
           85      /* video codecs */
           86 @@ -1390,7 +1390,7 @@
           87  
           88      char codec_name[32];
           89      enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
           90 -    enum CodecID codec_id; /* see CODEC_ID_xxx */
           91 +    enum AVCodecID codec_id; /* see CODEC_ID_xxx */
           92  
           93      /**
           94       * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
           95 @@ -2843,7 +2843,7 @@
           96       */
           97      const char *name;
           98      enum AVMediaType type;
           99 -    enum CodecID id;
          100 +    enum AVCodecID id;
          101      int priv_data_size;
          102      int (*init)(AVCodecContext *);
          103      int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
          104 @@ -2898,7 +2898,7 @@
          105       *
          106       * See CODEC_ID_xxx
          107       */
          108 -    enum CodecID id;
          109 +    enum AVCodecID id;
          110  
          111      /**
          112       * Supported pixel format.
          113 @@ -3402,10 +3402,10 @@
          114  /**
          115   * Find a registered encoder with a matching codec ID.
          116   *
          117 - * @param id CodecID of the requested encoder
          118 + * @param id AVCodecID of the requested encoder
          119   * @return An encoder if one was found, NULL otherwise.
          120   */
          121 -AVCodec *avcodec_find_encoder(enum CodecID id);
          122 +AVCodec *avcodec_find_encoder(enum AVCodecID id);
          123  
          124  /**
          125   * Find a registered encoder with the specified name.
          126 @@ -3418,10 +3418,10 @@
          127  /**
          128   * Find a registered decoder with a matching codec ID.
          129   *
          130 - * @param id CodecID of the requested decoder
          131 + * @param id AVCodecID of the requested decoder
          132   * @return A decoder if one was found, NULL otherwise.
          133   */
          134 -AVCodec *avcodec_find_decoder(enum CodecID id);
          135 +AVCodec *avcodec_find_decoder(enum AVCodecID id);
          136  
          137  /**
          138   * Find a registered decoder with the specified name.
          139 @@ -3822,7 +3822,7 @@
          140   * @param[in] codec_id the codec
          141   * @return Number of bits per sample or zero if unknown for the given codec.
          142   */
          143 -int av_get_bits_per_sample(enum CodecID codec_id);
          144 +int av_get_bits_per_sample(enum AVCodecID codec_id);
          145  
          146  #if FF_API_OLD_SAMPLE_FMT
          147  /**
          148 diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx
          149 --- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx        2013-02-20 03:18:03.000000000 +0100
          150 +++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx        2013-10-08 12:57:25.061873475 +0200
          151 @@ -48,6 +48,10 @@
          152  #endif
          153  
          154  #include "h263-1998.h"
          155 +extern "C"
          156 +{
          157 +#include <libavutil/opt.h>
          158 +}
          159  #include <limits>
          160  #include <iomanip>
          161  #include <stdio.h>
          162 @@ -203,7 +207,7 @@
          163    PTRACE(4, m_prefix, "Encoder closed");
          164  }
          165  
          166 -bool H263_Base_EncoderContext::Init(CodecID codecId)
          167 +bool H263_Base_EncoderContext::Init(AVCodecID codecId)
          168  {
          169    PTRACE(5, m_prefix, "Opening encoder");
          170  
          171 @@ -317,9 +321,9 @@
          172      // Level 2+ 
          173      // works with eyeBeam, signaled via  non-standard "D"
          174      if (atoi(value) == 1)
          175 -      m_context->flags |= CODEC_FLAG_H263P_UMV; 
          176 +      av_opt_set_int(m_context->priv_data, "umv", 1, 0);
          177      else
          178 -      m_context->flags &= ~CODEC_FLAG_H263P_UMV; 
          179 +      av_opt_set_int(m_context->priv_data, "umv", 0, 0);
          180      return;
          181    }
          182  
          183 @@ -328,9 +332,9 @@
          184      // Annex F: Advanced Prediction Mode
          185      // does not work with eyeBeam
          186      if (atoi(value) == 1)
          187 -      m_context->flags |= CODEC_FLAG_OBMC; 
          188 +      av_opt_set_int(m_context->priv_data, "obmc", 1, 0);
          189      else
          190 -      m_context->flags &= ~CODEC_FLAG_OBMC; 
          191 +      av_opt_set_int(m_context->priv_data, "obmc", 0, 0);
          192      return;
          193    }
          194  #endif
          195 @@ -360,9 +364,9 @@
          196      // Annex K: Slice Structure
          197      // does not work with eyeBeam
          198      if (atoi(value) != 0)
          199 -      m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; 
          200 +      av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0);
          201      else
          202 -      m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; 
          203 +      av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
          204      return;
          205    }
          206  
          207 @@ -370,9 +374,9 @@
          208      // Annex S: Alternative INTER VLC mode
          209      // does not work with eyeBeam
          210      if (atoi(value) == 1)
          211 -      m_context->flags |= CODEC_FLAG_H263P_AIV; 
          212 +      av_opt_set_int(m_context->priv_data, "aiv", 1, 0);
          213      else
          214 -      m_context->flags &= ~CODEC_FLAG_H263P_AIV; 
          215 +      av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
          216      return;
          217    }
          218  
          219 @@ -450,15 +454,6 @@
          220    PTRACE(5, m_prefix, "qmax set to " << m_context->qmax);
          221    PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size);
          222  
          223 -  #define CODEC_TRACER_FLAG(tracer, flag) \
          224 -    PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled"));
          225 -  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV);
          226 -  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC);
          227 -  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED);
          228 -  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT)
          229 -  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER);
          230 -  CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV);
          231 -
          232    return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0;
          233  }
          234  
          235 @@ -521,7 +516,7 @@
          236  
          237      // Need to copy to local buffer to guarantee 16 byte alignment
          238      memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2);
          239 -    m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE;
          240 +    m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE;
          241  
          242      /*
          243      m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE;
          244 @@ -603,13 +598,13 @@
          245    m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack;
          246    m_context->opaque = this; // used to separate out packets from different encode threads
          247  
          248 -  m_context->flags &= ~CODEC_FLAG_H263P_UMV;
          249 +  av_opt_set_int(m_context->priv_data, "umv", 0, 0);
          250    m_context->flags &= ~CODEC_FLAG_4MV;
          251  #if LIBAVCODEC_RTP_MODE
          252    m_context->flags &= ~CODEC_FLAG_H263P_AIC;
          253  #endif
          254 -  m_context->flags &= ~CODEC_FLAG_H263P_AIV;
          255 -  m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
          256 +  av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
          257 +  av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
          258  
          259    return true;
          260  }
          261 diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h opal-3.10.10/plugins/video/H.263-1998/h263-1998.h
          262 --- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h        2013-02-20 03:18:03.000000000 +0100
          263 +++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.h        2013-10-08 12:57:25.062873463 +0200
          264 @@ -115,7 +115,7 @@
          265      virtual ~H263_Base_EncoderContext();
          266  
          267      virtual bool Init() = 0;
          268 -    virtual bool Init(CodecID codecId);
          269 +    virtual bool Init(AVCodecID codecId);
          270  
          271      virtual bool SetOptions(const char * const * options);
          272      virtual void SetOption(const char * option, const char * value);
          273 diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in opal-3.10.10/plugins/video/H.263-1998/Makefile.in
          274 --- opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in        2013-02-20 03:18:03.000000000 +0100
          275 +++ opal-3.10.10/plugins/video/H.263-1998/Makefile.in        2013-10-08 12:57:25.062873463 +0200
          276 @@ -35,7 +35,7 @@
          277               $(COMMONDIR)/dyna.cxx
          278  
          279  CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
          280 -LIBS   += @DL_LIBS@
          281 +LIBS   += @DL_LIBS@ @LIBAVUTIL_LIBS@
          282  
          283  HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@
          284  ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes)
          285 diff -Naur opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx
          286 --- opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx        2013-02-20 03:18:02.000000000 +0100
          287 +++ opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx        2013-10-08 12:57:25.062873463 +0200
          288 @@ -27,6 +27,7 @@
          289  #include <fstream>
          290  #include <stdlib.h> 
          291  #include <sys/stat.h>
          292 +#include <unistd.h>
          293  
          294  #ifdef HAVE_UNISTD_H
          295  #include <unistd.h>
          296 diff -Naur opal-3.10.10.orig/plugins/video/H.264/h264-x264.cxx opal-3.10.10/plugins/video/H.264/h264-x264.cxx
          297 --- opal-3.10.10.orig/plugins/video/H.264/h264-x264.cxx        2013-02-20 03:18:02.000000000 +0100
          298 +++ opal-3.10.10/plugins/video/H.264/h264-x264.cxx        2013-10-08 12:57:25.063873450 +0200
          299 @@ -40,6 +40,9 @@
          300  #include "plugin-config.h"
          301  #endif
          302  
          303 +#define FF_IDCT_H264 11
          304 +#define CODEC_FLAG2_SKIP_RD 0x00004000
          305 +
          306  #include <codec/opalplugin.hpp>
          307  
          308  #include "../common/ffmpeg.h"
          309 @@ -1071,13 +1074,10 @@
          310          return false;
          311  
          312        m_context->workaround_bugs = FF_BUG_AUTODETECT;
          313 -      m_context->error_recognition = FF_ER_AGGRESSIVE;
          314        m_context->idct_algo = FF_IDCT_H264;
          315        m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
          316        m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE;
          317 -      m_context->flags2 = CODEC_FLAG2_BRDO |
          318 -                          CODEC_FLAG2_MEMC_ONLY |
          319 -                          CODEC_FLAG2_DROP_FRAME_TIMECODE |
          320 +      m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE |
          321                            CODEC_FLAG2_SKIP_RD |
          322                            CODEC_FLAG2_CHUNKS;
          323  
          324 diff -Naur opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx
          325 --- opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx        2013-02-20 03:18:02.000000000 +0100
          326 +++ opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx        2013-10-08 12:57:25.064873438 +0200
          327 @@ -33,6 +33,7 @@
          328  
          329  #include <codec/opalplugin.hpp>
          330  #include <stdio.h>
          331 +#include <unistd.h>
          332  
          333  #ifdef HAVE_UNISTD_H
          334  #include <unistd.h>
          335 diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/Makefile.in opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in
          336 --- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/Makefile.in        2013-02-20 03:18:07.000000000 +0100
          337 +++ opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in        2013-10-08 12:57:25.064873438 +0200
          338 @@ -31,7 +31,7 @@
          339  SRCS      := mpeg4.cxx $(COMMONDIR)/dyna.cxx
          340  
          341  CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
          342 -LIBS   += @DL_LIBS@
          343 +LIBS   += @DL_LIBS@ @LIBAVUTIL_LIBS@
          344  
          345  # Add LIBAVCODEC_SOURCE_DIR to the include path so we can #include <libavcodec/...h>
          346  # Also add libavutil, so ffmpeg headers can #include "log.h".
          347 diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
          348 --- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx        2013-02-20 03:18:07.000000000 +0100
          349 +++ opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx        2013-10-08 12:57:25.065873425 +0200
          350 @@ -103,6 +103,7 @@
          351  
          352  #else /* LIBAVCODEC_HAVE_SOURCE_DIR */
          353  #include "../common/ffmpeg.h"
          354 +#include <libavutil/opt.h>
          355  #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */
          356  }
          357  
          358 @@ -589,17 +590,17 @@
          359      m_avpicture->quality = m_videoQMin;
          360  
          361  #ifdef USE_ORIG
          362 -    m_avcontext->flags |= CODEC_FLAG_PART;   // data partitioning
          363 +    av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
          364      m_avcontext->flags |= CODEC_FLAG_4MV;    // 4 motion vectors
          365  #else
          366      m_avcontext->max_b_frames=0; /*don't use b frames*/
          367      m_avcontext->flags|=CODEC_FLAG_AC_PRED;
          368 -    m_avcontext->flags|=CODEC_FLAG_H263P_UMV;
          369 +    av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0);
          370      /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */
          371      m_avcontext->flags|=CODEC_FLAG_4MV;
          372      m_avcontext->flags|=CODEC_FLAG_GMC;
          373      m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER;
          374 -    m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
          375 +    av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0);
          376  #endif
          377      m_avcontext->opaque = this;              // for use in RTP callback
          378  }
          379 @@ -804,7 +805,7 @@
          380          // Should the next frame be an I-Frame?
          381          if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0))
          382          {
          383 -            m_avpicture->pict_type = FF_I_TYPE;
          384 +            m_avpicture->pict_type = AV_PICTURE_TYPE_I;
          385          }
          386          else // No IFrame requested, let avcodec decide what to do
          387          {
          388 @@ -1325,7 +1326,7 @@
          389  
          390  void MPEG4DecoderContext::SetStaticDecodingParams() {
          391      m_avcontext->flags |= CODEC_FLAG_4MV; 
          392 -    m_avcontext->flags |= CODEC_FLAG_PART;
          393 +    av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
          394      m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
          395  }
          396