diff options
author | root <root@rshg054.dnsready.net> | 2012-06-12 00:01:37 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-06-12 00:01:37 +0000 |
commit | 14b46fb49966c5beb34127a600e7be2a04d0821b (patch) | |
tree | 65525e60fb02fa22c1f3acfd99f60d500606f1f8 /staging/opal | |
parent | 306ac55c1e99cfb5801ef0d9acf2a11d3994d80d (diff) |
Tue Jun 12 00:01:37 UTC 2012
Diffstat (limited to 'staging/opal')
-rw-r--r-- | staging/opal/PKGBUILD | 30 | ||||
-rw-r--r-- | staging/opal/opal-ffmpeg.patch | 194 |
2 files changed, 224 insertions, 0 deletions
diff --git a/staging/opal/PKGBUILD b/staging/opal/PKGBUILD new file mode 100644 index 000000000..7bc062dbe --- /dev/null +++ b/staging/opal/PKGBUILD @@ -0,0 +1,30 @@ +# $Id: PKGBUILD 161382 2012-06-10 15:56:57Z jgc $ +# Maintainer: Jan de Groot <jan@archlinux.org> +# Contributor: Tom K <tomk@runbox.com> +pkgname=opal +pkgver=3.10.5 +pkgrel=1 +pkgdesc="Open Phone Abstraction Library" +arch=(i686 x86_64) +url="http://www.opalvoip.org" +license=('GPL') +depends=('ptlib' 'libtheora' 'x264' 'speex' 'gsm') +makedepends=('ffmpeg') +options=(!makeflags) +source=(http://downloads.sourceforge.net/sourceforge/opalvoip/$pkgname-$pkgver.tar.bz2 + opal-ffmpeg.patch) +md5sums=('22b0d716ed1cbc935245539e0bbab38f' '53bb06a376fb57a306522bfa6a573217') + +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" +} diff --git a/staging/opal/opal-ffmpeg.patch b/staging/opal/opal-ffmpeg.patch new file mode 100644 index 000000000..ebfd1f037 --- /dev/null +++ b/staging/opal/opal-ffmpeg.patch @@ -0,0 +1,194 @@ +diff -ru opal-3.10.5/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.5.patched/plugins/video/H.263-1998/h263-1998.cxx +--- opal-3.10.5/plugins/video/H.263-1998/h263-1998.cxx 2012-04-26 06:56:01.000000000 +0200 ++++ opal-3.10.5.patched/plugins/video/H.263-1998/h263-1998.cxx 2012-06-10 16:39:35.447021150 +0200 +@@ -51,6 +51,7 @@ + #endif + + #include "h263-1998.h" ++#include <libavutil/opt.h> + #include <limits> + #include <iomanip> + #include <stdio.h> +@@ -324,9 +325,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; + } + +@@ -335,9 +336,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 +@@ -367,9 +368,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; + } + +@@ -377,9 +378,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; + } + } +@@ -445,15 +446,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; + } + +@@ -516,7 +508,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; +@@ -598,13 +590,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; + } +diff -ru opal-3.10.5/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.5.patched/plugins/video/H.264/gpl/h264_helper.cxx +--- opal-3.10.5/plugins/video/H.264/gpl/h264_helper.cxx 2012-04-26 06:56:00.000000000 +0200 ++++ opal-3.10.5.patched/plugins/video/H.264/gpl/h264_helper.cxx 2012-06-10 16:49:11.210568639 +0200 +@@ -25,6 +25,7 @@ + #include <fstream> + #include <stdlib.h> + #include <sys/stat.h> ++#include <unistd.h> + + + #ifndef PLUGINCODEC_TRACING +diff -ru opal-3.10.5/plugins/video/H.264/h264-x264.cxx opal-3.10.5.patched/plugins/video/H.264/h264-x264.cxx +--- opal-3.10.5/plugins/video/H.264/h264-x264.cxx 2012-04-26 06:56:00.000000000 +0200 ++++ opal-3.10.5.patched/plugins/video/H.264/h264-x264.cxx 2012-06-10 17:04:19.695646950 +0200 +@@ -1035,13 +1035,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; + +diff -ru opal-3.10.5/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.5.patched/plugins/video/H.264/shared/x264wrap.cxx +--- opal-3.10.5/plugins/video/H.264/shared/x264wrap.cxx 2012-04-26 06:56:00.000000000 +0200 ++++ opal-3.10.5.patched/plugins/video/H.264/shared/x264wrap.cxx 2012-06-10 17:04:46.012171051 +0200 +@@ -33,6 +33,7 @@ + + #include <codec/opalplugin.hpp> + #include <stdio.h> ++#include <unistd.h> + + + #if defined(X264_LICENSED) || defined(GPL_HELPER_APP) +diff -ru opal-3.10.5/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.5.patched/plugins/video/MPEG4-ffmpeg/mpeg4.cxx +--- opal-3.10.5/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-04-26 06:56:02.000000000 +0200 ++++ opal-3.10.5.patched/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2012-06-10 16:46:33.498089705 +0200 +@@ -101,8 +101,10 @@ + #include <libavutil/bswap.h> + #include <libavcodec/mpegvideo.h> + ++ + #else /* LIBAVCODEC_HAVE_SOURCE_DIR */ + #include LIBAVCODEC_HEADER ++#include <libavutil/opt.h> + #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */ + } + +@@ -589,17 +591,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 +806,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 +1327,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 + } + |