[arch-commits] Commit in opal/repos (6 files)
Bartłomiej Piotrowski
bpiotrowski at nymeria.archlinux.org
Mon Jul 22 17:45:13 UTC 2013
Date: Monday, July 22, 2013 @ 19:45:13
Author: bpiotrowski
Revision: 191265
archrelease: copy trunk to staging-i686, staging-x86_64
Added:
opal/repos/staging-i686/
opal/repos/staging-i686/PKGBUILD
(from rev 191264, opal/trunk/PKGBUILD)
opal/repos/staging-i686/opal-ffmpeg.patch
(from rev 191264, opal/trunk/opal-ffmpeg.patch)
opal/repos/staging-x86_64/
opal/repos/staging-x86_64/PKGBUILD
(from rev 191264, opal/trunk/PKGBUILD)
opal/repos/staging-x86_64/opal-ffmpeg.patch
(from rev 191264, opal/trunk/opal-ffmpeg.patch)
----------------------------------+
staging-i686/PKGBUILD | 31 +++
staging-i686/opal-ffmpeg.patch | 372 +++++++++++++++++++++++++++++++++++++
staging-x86_64/PKGBUILD | 31 +++
staging-x86_64/opal-ffmpeg.patch | 372 +++++++++++++++++++++++++++++++++++++
4 files changed, 806 insertions(+)
Copied: opal/repos/staging-i686/PKGBUILD (from rev 191264, opal/trunk/PKGBUILD)
===================================================================
--- staging-i686/PKGBUILD (rev 0)
+++ staging-i686/PKGBUILD 2013-07-22 17:45:13 UTC (rev 191265)
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Jan de Groot <jan at archlinux.org>
+# Contributor: Tom K <tomk at runbox.com>
+pkgname=opal
+pkgver=3.10.10
+pkgrel=2
+pkgdesc="Open Phone Abstraction Library"
+arch=(i686 x86_64)
+url="http://www.opalvoip.org"
+license=(GPL)
+depends=(ptlib libtheora x264 speex gsm celt)
+makedepends=(ffmpeg)
+options=(!makeflags)
+source=(http://ftp.gnome.org/pub/GNOME/sources/opal/${pkgver%.*}/opal-$pkgver.tar.xz
+ opal-ffmpeg.patch)
+sha256sums=('f208985003461b2743575eccac13ad890b3e5baac35b68ddef17162460aff864'
+ '0111eec3f7109a83f8cd4a87744ca050b3ca27482e9d31e3a1d50798f8cd88c1')
+
+build() {
+ cd "${srcdir}/opal-${pkgver}"
+ patch -Np1 -i "${srcdir}/opal-ffmpeg.patch"
+ CXXFLAGS="$CXXFLAGS -fpermissive" \
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/opal-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ chmod 644 "${pkgdir}/usr/lib/libopal_s.a"
+}
Copied: opal/repos/staging-i686/opal-ffmpeg.patch (from rev 191264, opal/trunk/opal-ffmpeg.patch)
===================================================================
--- staging-i686/opal-ffmpeg.patch (rev 0)
+++ staging-i686/opal-ffmpeg.patch 2013-07-22 17:45:13 UTC (rev 191265)
@@ -0,0 +1,372 @@
+diff -ru opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.7.patched/plugins/video/H.263-1998/h263-1998.cxx
+--- opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx 2012-08-23 04:18:42.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.263-1998/h263-1998.cxx 2012-08-28 19:53:12.080918973 +0200
+@@ -48,6 +48,7 @@
+ #endif
+
+ #include "h263-1998.h"
++#include <libavutil/opt.h>
+ #include <limits>
+ #include <iomanip>
+ #include <stdio.h>
+@@ -317,9 +318,9 @@
+ // Level 2+
+ // works with eyeBeam, signaled via non-standard "D"
+ if (atoi(value) == 1)
+- m_context->flags |= CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_context->priv_data, "umv", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_context->priv_data, "umv", 0, 0);
+ return;
+ }
+
+@@ -328,9 +329,9 @@
+ // Annex F: Advanced Prediction Mode
+ // does not work with eyeBeam
+ if (atoi(value) == 1)
+- m_context->flags |= CODEC_FLAG_OBMC;
++ av_opt_set_int(m_context->priv_data, "obmc", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_OBMC;
++ av_opt_set_int(m_context->priv_data, "obmc", 0, 0);
+ return;
+ }
+ #endif
+@@ -360,9 +361,9 @@
+ // Annex K: Slice Structure
+ // does not work with eyeBeam
+ if (atoi(value) != 0)
+- m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
+ return;
+ }
+
+@@ -370,9 +371,9 @@
+ // Annex S: Alternative INTER VLC mode
+ // does not work with eyeBeam
+ if (atoi(value) == 1)
+- m_context->flags |= CODEC_FLAG_H263P_AIV;
++ av_opt_set_int(m_context->priv_data, "aiv", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_H263P_AIV;
++ av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
+ return;
+ }
+
+@@ -450,15 +451,6 @@
+ PTRACE(5, m_prefix, "qmax set to " << m_context->qmax);
+ PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size);
+
+- #define CODEC_TRACER_FLAG(tracer, flag) \
+- PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled"));
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT)
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV);
+-
+ return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0;
+ }
+
+@@ -521,7 +513,7 @@
+
+ // Need to copy to local buffer to guarantee 16 byte alignment
+ memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2);
+- m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE;
++ m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE;
+
+ /*
+ m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE;
+@@ -603,13 +595,13 @@
+ m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack;
+ m_context->opaque = this; // used to separate out packets from different encode threads
+
+- m_context->flags &= ~CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_context->priv_data, "umv", 0, 0);
+ m_context->flags &= ~CODEC_FLAG_4MV;
+ #if LIBAVCODEC_RTP_MODE
+ m_context->flags &= ~CODEC_FLAG_H263P_AIC;
+ #endif
+- m_context->flags &= ~CODEC_FLAG_H263P_AIV;
+- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
++ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
+
+ return true;
+ }
+Only in opal-3.10.7.patched/plugins/video/H.263-1998: h263-1998.cxx.orig
+diff -ru opal-3.10.7/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.7.patched/plugins/video/H.264/gpl/h264_helper.cxx
+--- opal-3.10.7/plugins/video/H.264/gpl/h264_helper.cxx 2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.264/gpl/h264_helper.cxx 2012-08-28 19:53:12.080918973 +0200
+@@ -27,6 +27,7 @@
+ #include <fstream>
+ #include <stdlib.h>
+ #include <sys/stat.h>
++#include <unistd.h>
+
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+Only in opal-3.10.7.patched/plugins/video/H.264/gpl: h264_helper.cxx.orig
+diff -ru opal-3.10.7/plugins/video/H.264/h264-x264.cxx opal-3.10.7.patched/plugins/video/H.264/h264-x264.cxx
+--- opal-3.10.7/plugins/video/H.264/h264-x264.cxx 2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.264/h264-x264.cxx 2012-08-28 19:53:12.080918973 +0200
+@@ -1071,13 +1071,10 @@
+ return false;
+
+ m_context->workaround_bugs = FF_BUG_AUTODETECT;
+- m_context->error_recognition = FF_ER_AGGRESSIVE;
+ m_context->idct_algo = FF_IDCT_H264;
+ m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
+ m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE;
+- m_context->flags2 = CODEC_FLAG2_BRDO |
+- CODEC_FLAG2_MEMC_ONLY |
+- CODEC_FLAG2_DROP_FRAME_TIMECODE |
++ m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE |
+ CODEC_FLAG2_SKIP_RD |
+ CODEC_FLAG2_CHUNKS;
+
+Only in opal-3.10.7.patched/plugins/video/H.264: h264-x264.cxx.orig
+diff -ru opal-3.10.7/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.7.patched/plugins/video/H.264/shared/x264wrap.cxx
+--- opal-3.10.7/plugins/video/H.264/shared/x264wrap.cxx 2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.264/shared/x264wrap.cxx 2012-08-28 19:53:12.084252306 +0200
+@@ -33,6 +33,7 @@
+
+ #include <codec/opalplugin.hpp>
+ #include <stdio.h>
++#include <unistd.h>
+
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+Only in opal-3.10.7.patched/plugins/video/H.264/shared: x264wrap.cxx.orig
+diff -ru opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.7.patched/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
+--- opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-08-23 04:18:44.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-08-28 19:54:35.460923804 +0200
+@@ -103,6 +103,7 @@
+
+ #else /* LIBAVCODEC_HAVE_SOURCE_DIR */
+ #include "../common/ffmpeg.h"
++#include <libavutil/opt.h>
+ #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */
+ }
+
+@@ -589,17 +590,17 @@
+ m_avpicture->quality = m_videoQMin;
+
+ #ifdef USE_ORIG
+- m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning
++ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
+ m_avcontext->flags |= CODEC_FLAG_4MV; // 4 motion vectors
+ #else
+ m_avcontext->max_b_frames=0; /*don't use b frames*/
+ m_avcontext->flags|=CODEC_FLAG_AC_PRED;
+- m_avcontext->flags|=CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0);
+ /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */
+ m_avcontext->flags|=CODEC_FLAG_4MV;
+ m_avcontext->flags|=CODEC_FLAG_GMC;
+ m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER;
+- m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0);
+ #endif
+ m_avcontext->opaque = this; // for use in RTP callback
+ }
+@@ -804,7 +805,7 @@
+ // Should the next frame be an I-Frame?
+ if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0))
+ {
+- m_avpicture->pict_type = FF_I_TYPE;
++ m_avpicture->pict_type = AV_PICTURE_TYPE_I;
+ }
+ else // No IFrame requested, let avcodec decide what to do
+ {
+@@ -1325,7 +1326,7 @@
+
+ void MPEG4DecoderContext::SetStaticDecodingParams() {
+ m_avcontext->flags |= CODEC_FLAG_4MV;
+- m_avcontext->flags |= CODEC_FLAG_PART;
++ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
+ m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
+ }
+
+diff -rupN a/plugins/video/common/dyna.cxx b/plugins/video/common/dyna.cxx
+--- a/plugins/video/common/dyna.cxx 2013-02-20 02:18:05.000000000 +0000
++++ b/plugins/video/common/dyna.cxx 2013-07-22 16:55:47.307946942 +0000
+@@ -210,7 +210,7 @@ static void logCallbackFFMPEG(void * avc
+ #endif
+
+
+-FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
++FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
+ {
+ m_codec = codec;
+ if (m_codec==CODEC_ID_H264)
+@@ -348,12 +348,12 @@ bool FFMPEGLibrary::Load()
+ return true;
+ }
+
+-AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
++AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
+ {
+ return Favcodec_find_encoder(id);
+ }
+
+-AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
++AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
+ {
+ WaitAndSignal m(processLock);
+
+diff -rupN a/plugins/video/common/dyna.h b/plugins/video/common/dyna.h
+--- a/plugins/video/common/dyna.h 2013-02-20 02:18:05.000000000 +0000
++++ b/plugins/video/common/dyna.h 2013-07-22 16:55:47.191281134 +0000
+@@ -88,13 +88,13 @@ class DynaLink
+ class FFMPEGLibrary
+ {
+ public:
+- FFMPEGLibrary(CodecID codec);
++ FFMPEGLibrary(AVCodecID codec);
+ ~FFMPEGLibrary();
+
+ bool Load();
+
+- AVCodec *AvcodecFindEncoder(enum CodecID id);
+- AVCodec *AvcodecFindDecoder(enum CodecID id);
++ AVCodec *AvcodecFindEncoder(enum AVCodecID id);
++ AVCodec *AvcodecFindDecoder(enum AVCodecID id);
+ AVCodecContext *AvcodecAllocContext(void);
+ AVFrame *AvcodecAllocFrame(void);
+ int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
+@@ -117,15 +117,15 @@ class FFMPEGLibrary
+ DynaLink m_libAvcodec;
+ DynaLink m_libAvutil;
+
+- CodecID m_codec;
++ AVCodecID m_codec;
+ char m_codecString[32];
+
+ void (*Favcodec_init)(void);
+ void (*Fav_init_packet)(AVPacket *pkt);
+
+ void (*Favcodec_register_all)(void);
+- AVCodec *(*Favcodec_find_encoder)(enum CodecID id);
+- AVCodec *(*Favcodec_find_decoder)(enum CodecID id);
++ AVCodec *(*Favcodec_find_encoder)(enum AVCodecID id);
++ AVCodec *(*Favcodec_find_decoder)(enum AVCodecID id);
+ AVCodecContext *(*Favcodec_alloc_context)(void);
+ AVFrame *(*Favcodec_alloc_frame)(void);
+ int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec);
+diff -rupN a/plugins/video/common/ffmpeg/libavcodec/avcodec.h b/plugins/video/common/ffmpeg/libavcodec/avcodec.h
+--- a/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 02:18:04.000000000 +0000
++++ b/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-07-22 16:55:47.167947971 +0000
+@@ -101,7 +101,7 @@
+ * 1. no value of a existing codec ID changes (that would break ABI),
+ * 2. it is as close as possible to similar codecs.
+ */
+-enum CodecID {
++enum AVCodecID {
+ CODEC_ID_NONE,
+
+ /* video codecs */
+@@ -1390,7 +1390,7 @@ typedef struct AVCodecContext {
+
+ char codec_name[32];
+ enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
+- enum CodecID codec_id; /* see CODEC_ID_xxx */
++ enum AVCodecID codec_id; /* see CODEC_ID_xxx */
+
+ /**
+ * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
+@@ -2843,7 +2843,7 @@ typedef struct AVCodec {
+ */
+ const char *name;
+ enum AVMediaType type;
+- enum CodecID id;
++ enum AVCodecID id;
+ int priv_data_size;
+ int (*init)(AVCodecContext *);
+ int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
+@@ -2898,7 +2898,7 @@ typedef struct AVHWAccel {
+ *
+ * See CODEC_ID_xxx
+ */
+- enum CodecID id;
++ enum AVCodecID id;
+
+ /**
+ * Supported pixel format.
+@@ -3402,10 +3402,10 @@ void avcodec_register(AVCodec *codec);
+ /**
+ * Find a registered encoder with a matching codec ID.
+ *
+- * @param id CodecID of the requested encoder
++ * @param id AVCodecID of the requested encoder
+ * @return An encoder if one was found, NULL otherwise.
+ */
+-AVCodec *avcodec_find_encoder(enum CodecID id);
++AVCodec *avcodec_find_encoder(enum AVCodecID id);
+
+ /**
+ * Find a registered encoder with the specified name.
+@@ -3418,10 +3418,10 @@ AVCodec *avcodec_find_encoder_by_name(co
+ /**
+ * Find a registered decoder with a matching codec ID.
+ *
+- * @param id CodecID of the requested decoder
++ * @param id AVCodecID of the requested decoder
+ * @return A decoder if one was found, NULL otherwise.
+ */
+-AVCodec *avcodec_find_decoder(enum CodecID id);
++AVCodec *avcodec_find_decoder(enum AVCodecID id);
+
+ /**
+ * Find a registered decoder with the specified name.
+@@ -3822,7 +3822,7 @@ char av_get_pict_type_char(int pict_type
+ * @param[in] codec_id the codec
+ * @return Number of bits per sample or zero if unknown for the given codec.
+ */
+-int av_get_bits_per_sample(enum CodecID codec_id);
++int av_get_bits_per_sample(enum AVCodecID codec_id);
+
+ #if FF_API_OLD_SAMPLE_FMT
+ /**
+diff -rupN a/plugins/video/H.263-1998/h263-1998.cxx b/plugins/video/H.263-1998/h263-1998.cxx
+--- a/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 02:18:03.000000000 +0000
++++ b/plugins/video/H.263-1998/h263-1998.cxx 2013-07-22 16:55:47.314613571 +0000
+@@ -203,7 +203,7 @@ H263_Base_EncoderContext::~H263_Base_Enc
+ PTRACE(4, m_prefix, "Encoder closed");
+ }
+
+-bool H263_Base_EncoderContext::Init(CodecID codecId)
++bool H263_Base_EncoderContext::Init(AVCodecID codecId)
+ {
+ PTRACE(5, m_prefix, "Opening encoder");
+
+diff -rupN a/plugins/video/H.263-1998/h263-1998.h b/plugins/video/H.263-1998/h263-1998.h
+--- a/plugins/video/H.263-1998/h263-1998.h 2013-02-20 02:18:03.000000000 +0000
++++ b/plugins/video/H.263-1998/h263-1998.h 2013-07-22 16:55:47.307946942 +0000
+@@ -115,7 +115,7 @@ class H263_Base_EncoderContext
+ virtual ~H263_Base_EncoderContext();
+
+ virtual bool Init() = 0;
+- virtual bool Init(CodecID codecId);
++ virtual bool Init(AVCodecID codecId);
+
+ virtual bool SetOptions(const char * const * options);
+ virtual void SetOption(const char * option, const char * value);
+diff -rupN a/plugins/video/H.264/h264-x264.cxx b/plugins/video/H.264/h264-x264.cxx
+--- a/plugins/video/H.264/h264-x264.cxx 2013-02-20 02:18:02.000000000 +0000
++++ b/plugins/video/H.264/h264-x264.cxx 2013-07-22 17:05:35.383661843 +0000
+@@ -40,6 +40,9 @@
+ #include "plugin-config.h"
+ #endif
+
++#define FF_IDCT_H264 11
++#define CODEC_FLAG2_SKIP_RD 0x00004000
++
+ #include <codec/opalplugin.hpp>
+
+ #include "../common/ffmpeg.h"
Copied: opal/repos/staging-x86_64/PKGBUILD (from rev 191264, opal/trunk/PKGBUILD)
===================================================================
--- staging-x86_64/PKGBUILD (rev 0)
+++ staging-x86_64/PKGBUILD 2013-07-22 17:45:13 UTC (rev 191265)
@@ -0,0 +1,31 @@
+# $Id$
+# Maintainer: Jan de Groot <jan at archlinux.org>
+# Contributor: Tom K <tomk at runbox.com>
+pkgname=opal
+pkgver=3.10.10
+pkgrel=2
+pkgdesc="Open Phone Abstraction Library"
+arch=(i686 x86_64)
+url="http://www.opalvoip.org"
+license=(GPL)
+depends=(ptlib libtheora x264 speex gsm celt)
+makedepends=(ffmpeg)
+options=(!makeflags)
+source=(http://ftp.gnome.org/pub/GNOME/sources/opal/${pkgver%.*}/opal-$pkgver.tar.xz
+ opal-ffmpeg.patch)
+sha256sums=('f208985003461b2743575eccac13ad890b3e5baac35b68ddef17162460aff864'
+ '0111eec3f7109a83f8cd4a87744ca050b3ca27482e9d31e3a1d50798f8cd88c1')
+
+build() {
+ cd "${srcdir}/opal-${pkgver}"
+ patch -Np1 -i "${srcdir}/opal-ffmpeg.patch"
+ CXXFLAGS="$CXXFLAGS -fpermissive" \
+ ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var
+ make
+}
+
+package() {
+ cd "${srcdir}/opal-${pkgver}"
+ make DESTDIR="${pkgdir}" install
+ chmod 644 "${pkgdir}/usr/lib/libopal_s.a"
+}
Copied: opal/repos/staging-x86_64/opal-ffmpeg.patch (from rev 191264, opal/trunk/opal-ffmpeg.patch)
===================================================================
--- staging-x86_64/opal-ffmpeg.patch (rev 0)
+++ staging-x86_64/opal-ffmpeg.patch 2013-07-22 17:45:13 UTC (rev 191265)
@@ -0,0 +1,372 @@
+diff -ru opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.7.patched/plugins/video/H.263-1998/h263-1998.cxx
+--- opal-3.10.7/plugins/video/H.263-1998/h263-1998.cxx 2012-08-23 04:18:42.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.263-1998/h263-1998.cxx 2012-08-28 19:53:12.080918973 +0200
+@@ -48,6 +48,7 @@
+ #endif
+
+ #include "h263-1998.h"
++#include <libavutil/opt.h>
+ #include <limits>
+ #include <iomanip>
+ #include <stdio.h>
+@@ -317,9 +318,9 @@
+ // Level 2+
+ // works with eyeBeam, signaled via non-standard "D"
+ if (atoi(value) == 1)
+- m_context->flags |= CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_context->priv_data, "umv", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_context->priv_data, "umv", 0, 0);
+ return;
+ }
+
+@@ -328,9 +329,9 @@
+ // Annex F: Advanced Prediction Mode
+ // does not work with eyeBeam
+ if (atoi(value) == 1)
+- m_context->flags |= CODEC_FLAG_OBMC;
++ av_opt_set_int(m_context->priv_data, "obmc", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_OBMC;
++ av_opt_set_int(m_context->priv_data, "obmc", 0, 0);
+ return;
+ }
+ #endif
+@@ -360,9 +361,9 @@
+ // Annex K: Slice Structure
+ // does not work with eyeBeam
+ if (atoi(value) != 0)
+- m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
+ return;
+ }
+
+@@ -370,9 +371,9 @@
+ // Annex S: Alternative INTER VLC mode
+ // does not work with eyeBeam
+ if (atoi(value) == 1)
+- m_context->flags |= CODEC_FLAG_H263P_AIV;
++ av_opt_set_int(m_context->priv_data, "aiv", 1, 0);
+ else
+- m_context->flags &= ~CODEC_FLAG_H263P_AIV;
++ av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
+ return;
+ }
+
+@@ -450,15 +451,6 @@
+ PTRACE(5, m_prefix, "qmax set to " << m_context->qmax);
+ PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size);
+
+- #define CODEC_TRACER_FLAG(tracer, flag) \
+- PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled"));
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT)
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER);
+- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV);
+-
+ return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0;
+ }
+
+@@ -521,7 +513,7 @@
+
+ // Need to copy to local buffer to guarantee 16 byte alignment
+ memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2);
+- m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE;
++ m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE;
+
+ /*
+ m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE;
+@@ -603,13 +595,13 @@
+ m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack;
+ m_context->opaque = this; // used to separate out packets from different encode threads
+
+- m_context->flags &= ~CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_context->priv_data, "umv", 0, 0);
+ m_context->flags &= ~CODEC_FLAG_4MV;
+ #if LIBAVCODEC_RTP_MODE
+ m_context->flags &= ~CODEC_FLAG_H263P_AIC;
+ #endif
+- m_context->flags &= ~CODEC_FLAG_H263P_AIV;
+- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_context->priv_data, "aiv", 0, 0);
++ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0);
+
+ return true;
+ }
+Only in opal-3.10.7.patched/plugins/video/H.263-1998: h263-1998.cxx.orig
+diff -ru opal-3.10.7/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.7.patched/plugins/video/H.264/gpl/h264_helper.cxx
+--- opal-3.10.7/plugins/video/H.264/gpl/h264_helper.cxx 2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.264/gpl/h264_helper.cxx 2012-08-28 19:53:12.080918973 +0200
+@@ -27,6 +27,7 @@
+ #include <fstream>
+ #include <stdlib.h>
+ #include <sys/stat.h>
++#include <unistd.h>
+
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+Only in opal-3.10.7.patched/plugins/video/H.264/gpl: h264_helper.cxx.orig
+diff -ru opal-3.10.7/plugins/video/H.264/h264-x264.cxx opal-3.10.7.patched/plugins/video/H.264/h264-x264.cxx
+--- opal-3.10.7/plugins/video/H.264/h264-x264.cxx 2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.264/h264-x264.cxx 2012-08-28 19:53:12.080918973 +0200
+@@ -1071,13 +1071,10 @@
+ return false;
+
+ m_context->workaround_bugs = FF_BUG_AUTODETECT;
+- m_context->error_recognition = FF_ER_AGGRESSIVE;
+ m_context->idct_algo = FF_IDCT_H264;
+ m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK;
+ m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE;
+- m_context->flags2 = CODEC_FLAG2_BRDO |
+- CODEC_FLAG2_MEMC_ONLY |
+- CODEC_FLAG2_DROP_FRAME_TIMECODE |
++ m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE |
+ CODEC_FLAG2_SKIP_RD |
+ CODEC_FLAG2_CHUNKS;
+
+Only in opal-3.10.7.patched/plugins/video/H.264: h264-x264.cxx.orig
+diff -ru opal-3.10.7/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.7.patched/plugins/video/H.264/shared/x264wrap.cxx
+--- opal-3.10.7/plugins/video/H.264/shared/x264wrap.cxx 2012-08-23 04:18:41.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/H.264/shared/x264wrap.cxx 2012-08-28 19:53:12.084252306 +0200
+@@ -33,6 +33,7 @@
+
+ #include <codec/opalplugin.hpp>
+ #include <stdio.h>
++#include <unistd.h>
+
+ #ifdef HAVE_UNISTD_H
+ #include <unistd.h>
+Only in opal-3.10.7.patched/plugins/video/H.264/shared: x264wrap.cxx.orig
+diff -ru opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.7.patched/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
+--- opal-3.10.7/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-08-23 04:18:44.000000000 +0200
++++ opal-3.10.7.patched/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-08-28 19:54:35.460923804 +0200
+@@ -103,6 +103,7 @@
+
+ #else /* LIBAVCODEC_HAVE_SOURCE_DIR */
+ #include "../common/ffmpeg.h"
++#include <libavutil/opt.h>
+ #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */
+ }
+
+@@ -589,17 +590,17 @@
+ m_avpicture->quality = m_videoQMin;
+
+ #ifdef USE_ORIG
+- m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning
++ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
+ m_avcontext->flags |= CODEC_FLAG_4MV; // 4 motion vectors
+ #else
+ m_avcontext->max_b_frames=0; /*don't use b frames*/
+ m_avcontext->flags|=CODEC_FLAG_AC_PRED;
+- m_avcontext->flags|=CODEC_FLAG_H263P_UMV;
++ av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0);
+ /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */
+ m_avcontext->flags|=CODEC_FLAG_4MV;
+ m_avcontext->flags|=CODEC_FLAG_GMC;
+ m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER;
+- m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT;
++ av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0);
+ #endif
+ m_avcontext->opaque = this; // for use in RTP callback
+ }
+@@ -804,7 +805,7 @@
+ // Should the next frame be an I-Frame?
+ if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0))
+ {
+- m_avpicture->pict_type = FF_I_TYPE;
++ m_avpicture->pict_type = AV_PICTURE_TYPE_I;
+ }
+ else // No IFrame requested, let avcodec decide what to do
+ {
+@@ -1325,7 +1326,7 @@
+
+ void MPEG4DecoderContext::SetStaticDecodingParams() {
+ m_avcontext->flags |= CODEC_FLAG_4MV;
+- m_avcontext->flags |= CODEC_FLAG_PART;
++ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0);
+ m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
+ }
+
+diff -rupN a/plugins/video/common/dyna.cxx b/plugins/video/common/dyna.cxx
+--- a/plugins/video/common/dyna.cxx 2013-02-20 02:18:05.000000000 +0000
++++ b/plugins/video/common/dyna.cxx 2013-07-22 16:55:47.307946942 +0000
+@@ -210,7 +210,7 @@ static void logCallbackFFMPEG(void * avc
+ #endif
+
+
+-FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
++FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
+ {
+ m_codec = codec;
+ if (m_codec==CODEC_ID_H264)
+@@ -348,12 +348,12 @@ bool FFMPEGLibrary::Load()
+ return true;
+ }
+
+-AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
++AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
+ {
+ return Favcodec_find_encoder(id);
+ }
+
+-AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
++AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
+ {
+ WaitAndSignal m(processLock);
+
+diff -rupN a/plugins/video/common/dyna.h b/plugins/video/common/dyna.h
+--- a/plugins/video/common/dyna.h 2013-02-20 02:18:05.000000000 +0000
++++ b/plugins/video/common/dyna.h 2013-07-22 16:55:47.191281134 +0000
+@@ -88,13 +88,13 @@ class DynaLink
+ class FFMPEGLibrary
+ {
+ public:
+- FFMPEGLibrary(CodecID codec);
++ FFMPEGLibrary(AVCodecID codec);
+ ~FFMPEGLibrary();
+
+ bool Load();
+
+- AVCodec *AvcodecFindEncoder(enum CodecID id);
+- AVCodec *AvcodecFindDecoder(enum CodecID id);
++ AVCodec *AvcodecFindEncoder(enum AVCodecID id);
++ AVCodec *AvcodecFindDecoder(enum AVCodecID id);
+ AVCodecContext *AvcodecAllocContext(void);
+ AVFrame *AvcodecAllocFrame(void);
+ int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
+@@ -117,15 +117,15 @@ class FFMPEGLibrary
+ DynaLink m_libAvcodec;
+ DynaLink m_libAvutil;
+
+- CodecID m_codec;
++ AVCodecID m_codec;
+ char m_codecString[32];
+
+ void (*Favcodec_init)(void);
+ void (*Fav_init_packet)(AVPacket *pkt);
+
+ void (*Favcodec_register_all)(void);
+- AVCodec *(*Favcodec_find_encoder)(enum CodecID id);
+- AVCodec *(*Favcodec_find_decoder)(enum CodecID id);
++ AVCodec *(*Favcodec_find_encoder)(enum AVCodecID id);
++ AVCodec *(*Favcodec_find_decoder)(enum AVCodecID id);
+ AVCodecContext *(*Favcodec_alloc_context)(void);
+ AVFrame *(*Favcodec_alloc_frame)(void);
+ int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec);
+diff -rupN a/plugins/video/common/ffmpeg/libavcodec/avcodec.h b/plugins/video/common/ffmpeg/libavcodec/avcodec.h
+--- a/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 02:18:04.000000000 +0000
++++ b/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-07-22 16:55:47.167947971 +0000
+@@ -101,7 +101,7 @@
+ * 1. no value of a existing codec ID changes (that would break ABI),
+ * 2. it is as close as possible to similar codecs.
+ */
+-enum CodecID {
++enum AVCodecID {
+ CODEC_ID_NONE,
+
+ /* video codecs */
+@@ -1390,7 +1390,7 @@ typedef struct AVCodecContext {
+
+ char codec_name[32];
+ enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */
+- enum CodecID codec_id; /* see CODEC_ID_xxx */
++ enum AVCodecID codec_id; /* see CODEC_ID_xxx */
+
+ /**
+ * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A').
+@@ -2843,7 +2843,7 @@ typedef struct AVCodec {
+ */
+ const char *name;
+ enum AVMediaType type;
+- enum CodecID id;
++ enum AVCodecID id;
+ int priv_data_size;
+ int (*init)(AVCodecContext *);
+ int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data);
+@@ -2898,7 +2898,7 @@ typedef struct AVHWAccel {
+ *
+ * See CODEC_ID_xxx
+ */
+- enum CodecID id;
++ enum AVCodecID id;
+
+ /**
+ * Supported pixel format.
+@@ -3402,10 +3402,10 @@ void avcodec_register(AVCodec *codec);
+ /**
+ * Find a registered encoder with a matching codec ID.
+ *
+- * @param id CodecID of the requested encoder
++ * @param id AVCodecID of the requested encoder
+ * @return An encoder if one was found, NULL otherwise.
+ */
+-AVCodec *avcodec_find_encoder(enum CodecID id);
++AVCodec *avcodec_find_encoder(enum AVCodecID id);
+
+ /**
+ * Find a registered encoder with the specified name.
+@@ -3418,10 +3418,10 @@ AVCodec *avcodec_find_encoder_by_name(co
+ /**
+ * Find a registered decoder with a matching codec ID.
+ *
+- * @param id CodecID of the requested decoder
++ * @param id AVCodecID of the requested decoder
+ * @return A decoder if one was found, NULL otherwise.
+ */
+-AVCodec *avcodec_find_decoder(enum CodecID id);
++AVCodec *avcodec_find_decoder(enum AVCodecID id);
+
+ /**
+ * Find a registered decoder with the specified name.
+@@ -3822,7 +3822,7 @@ char av_get_pict_type_char(int pict_type
+ * @param[in] codec_id the codec
+ * @return Number of bits per sample or zero if unknown for the given codec.
+ */
+-int av_get_bits_per_sample(enum CodecID codec_id);
++int av_get_bits_per_sample(enum AVCodecID codec_id);
+
+ #if FF_API_OLD_SAMPLE_FMT
+ /**
+diff -rupN a/plugins/video/H.263-1998/h263-1998.cxx b/plugins/video/H.263-1998/h263-1998.cxx
+--- a/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 02:18:03.000000000 +0000
++++ b/plugins/video/H.263-1998/h263-1998.cxx 2013-07-22 16:55:47.314613571 +0000
+@@ -203,7 +203,7 @@ H263_Base_EncoderContext::~H263_Base_Enc
+ PTRACE(4, m_prefix, "Encoder closed");
+ }
+
+-bool H263_Base_EncoderContext::Init(CodecID codecId)
++bool H263_Base_EncoderContext::Init(AVCodecID codecId)
+ {
+ PTRACE(5, m_prefix, "Opening encoder");
+
+diff -rupN a/plugins/video/H.263-1998/h263-1998.h b/plugins/video/H.263-1998/h263-1998.h
+--- a/plugins/video/H.263-1998/h263-1998.h 2013-02-20 02:18:03.000000000 +0000
++++ b/plugins/video/H.263-1998/h263-1998.h 2013-07-22 16:55:47.307946942 +0000
+@@ -115,7 +115,7 @@ class H263_Base_EncoderContext
+ virtual ~H263_Base_EncoderContext();
+
+ virtual bool Init() = 0;
+- virtual bool Init(CodecID codecId);
++ virtual bool Init(AVCodecID codecId);
+
+ virtual bool SetOptions(const char * const * options);
+ virtual void SetOption(const char * option, const char * value);
+diff -rupN a/plugins/video/H.264/h264-x264.cxx b/plugins/video/H.264/h264-x264.cxx
+--- a/plugins/video/H.264/h264-x264.cxx 2013-02-20 02:18:02.000000000 +0000
++++ b/plugins/video/H.264/h264-x264.cxx 2013-07-22 17:05:35.383661843 +0000
+@@ -40,6 +40,9 @@
+ #include "plugin-config.h"
+ #endif
+
++#define FF_IDCT_H264 11
++#define CODEC_FLAG2_SKIP_RD 0x00004000
++
+ #include <codec/opalplugin.hpp>
+
+ #include "../common/ffmpeg.h"
More information about the arch-commits
mailing list