diff options
author | Chris Walker <kris240376@gmail.com> | 2020-03-28 13:14:54 +0700 |
---|---|---|
committer | Willy Sudiarto Raharjo <willysr@slackbuilds.org> | 2020-03-28 13:14:54 +0700 |
commit | af9ed692259133148b8dce9129a3e2e2be2681b9 (patch) | |
tree | c33d666e6cb4fc797696f5a8f81239666606a8dc /libraries/t38modem-opal | |
parent | 816645e9292559839eb903e25c205c8b89e066f5 (diff) |
libraries/t38modem-opal: Added (Open Phone Abstraction Library).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
Diffstat (limited to 'libraries/t38modem-opal')
-rw-r--r-- | libraries/t38modem-opal/README | 7 | ||||
-rw-r--r-- | libraries/t38modem-opal/ffmpeg2.patch | 398 | ||||
-rw-r--r-- | libraries/t38modem-opal/slack-desc | 19 | ||||
-rw-r--r-- | libraries/t38modem-opal/t38modem-opal.SlackBuild | 152 | ||||
-rw-r--r-- | libraries/t38modem-opal/t38modem-opal.info | 10 |
5 files changed, 586 insertions, 0 deletions
diff --git a/libraries/t38modem-opal/README b/libraries/t38modem-opal/README new file mode 100644 index 000000000000..da6ec422f32b --- /dev/null +++ b/libraries/t38modem-opal/README @@ -0,0 +1,7 @@ +This is a fork of the Open Phone Abstraction Library (OPAL) project +maintained and updated by the maintainer of the t38modem project in order +to support t38modem. + +This project conflicts with opal. + +Optional dependencies are ffmpeg, x264, celt and jdk/openjdk. diff --git a/libraries/t38modem-opal/ffmpeg2.patch b/libraries/t38modem-opal/ffmpeg2.patch new file mode 100644 index 000000000000..80dca469d947 --- /dev/null +++ b/libraries/t38modem-opal/ffmpeg2.patch @@ -0,0 +1,398 @@ +patch from: http://www.linuxfromscratch.org/blfs/view/svn/multimedia/opal.html + +Submitted By: Igor Živković <contact@igor-zivkovic.from.hr> +Date: 2013-10-08 +Initial Package Version: 3.10.10 +Upstream Status: Unknown +Origin: Gentoo +Description: Fixes building against FFmpeg version >= 2.0.0 + +diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.cxx opal-3.10.10/plugins/video/common/dyna.cxx +--- opal-3.10.10.orig/plugins/video/common/dyna.cxx 2013-02-20 03:18:05.000000000 +0100 ++++ plugins/video/common/dyna.cxx 2013-10-08 12:57:25.058873513 +0200 +@@ -210,7 +210,7 @@ + #endif + + +-FFMPEGLibrary::FFMPEGLibrary(CodecID codec) ++FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec) + { + m_codec = codec; + if (m_codec==CODEC_ID_H264) +@@ -348,12 +348,12 @@ + 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 -Naur opal-3.10.10.orig/plugins/video/common/dyna.h opal-3.10.10/plugins/video/common/dyna.h +--- opal-3.10.10.orig/plugins/video/common/dyna.h 2013-02-20 03:18:05.000000000 +0100 ++++ plugins/video/common/dyna.h 2013-10-08 12:57:25.058873513 +0200 +@@ -88,13 +88,13 @@ + 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 @@ + 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 -Naur opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h +--- opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 03:18:04.000000000 +0100 ++++ plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-10-08 12:57:25.060873488 +0200 +@@ -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 @@ + + 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 @@ + */ + 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 @@ + * + * See CODEC_ID_xxx + */ +- enum CodecID id; ++ enum AVCodecID id; + + /** + * Supported pixel format. +@@ -3402,10 +3402,10 @@ + /** + * 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 @@ + /** + * 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 @@ + * @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 -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 +--- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 03:18:03.000000000 +0100 ++++ plugins/video/H.263-1998/h263-1998.cxx 2013-10-08 12:57:25.061873475 +0200 +@@ -48,6 +48,10 @@ + #endif + + #include "h263-1998.h" ++extern "C" ++{ ++#include <libavutil/opt.h> ++} + #include <limits> + #include <iomanip> + #include <stdio.h> +@@ -203,7 +207,7 @@ + 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"); + +@@ -317,9 +321,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 +332,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 +364,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 +374,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 +454,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 +516,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 +598,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 -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 +--- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h 2013-02-20 03:18:03.000000000 +0100 ++++ plugins/video/H.263-1998/h263-1998.h 2013-10-08 12:57:25.062873463 +0200 +@@ -115,7 +115,7 @@ + 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 -Naur opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in opal-3.10.10/plugins/video/H.263-1998/Makefile.in +--- opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in 2013-02-20 03:18:03.000000000 +0100 ++++ plugins/video/H.263-1998/Makefile.in 2013-10-08 12:57:25.062873463 +0200 +@@ -35,7 +35,7 @@ + $(COMMONDIR)/dyna.cxx + + CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) +-LIBS += @DL_LIBS@ ++LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@ + + HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@ + ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes) +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 +--- opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx 2013-02-20 03:18:02.000000000 +0100 ++++ plugins/video/H.264/gpl/h264_helper.cxx 2013-10-08 12:57:25.062873463 +0200 +@@ -27,6 +27,7 @@ + #include <fstream> + #include <stdlib.h> + #include <sys/stat.h> ++#include <unistd.h> + + #ifdef HAVE_UNISTD_H + #include <unistd.h> +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 +--- opal-3.10.10.orig/plugins/video/H.264/h264-x264.cxx 2013-02-20 03:18:02.000000000 +0100 ++++ plugins/video/H.264/h264-x264.cxx 2013-10-08 12:57:25.063873450 +0200 +@@ -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" +@@ -1071,13 +1074,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 -Naur opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx +--- opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx 2013-02-20 03:18:02.000000000 +0100 ++++ plugins/video/H.264/shared/x264wrap.cxx 2013-10-08 12:57:25.064873438 +0200 +@@ -33,6 +33,7 @@ + + #include <codec/opalplugin.hpp> + #include <stdio.h> ++#include <unistd.h> + + #ifdef HAVE_UNISTD_H + #include <unistd.h> +diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/Makefile.in opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in +--- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/Makefile.in 2013-02-20 03:18:07.000000000 +0100 ++++ plugins/video/MPEG4-ffmpeg/Makefile.in 2013-10-08 12:57:25.064873438 +0200 +@@ -31,7 +31,7 @@ + SRCS := mpeg4.cxx $(COMMONDIR)/dyna.cxx + + CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) +-LIBS += @DL_LIBS@ ++LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@ + + # Add LIBAVCODEC_SOURCE_DIR to the include path so we can #include <libavcodec/...h> + # Also add libavutil, so ffmpeg headers can #include "log.h". +diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx +--- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-02-20 03:18:07.000000000 +0100 ++++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-10-08 12:57:25.065873425 +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 --git a/libraries/t38modem-opal/slack-desc b/libraries/t38modem-opal/slack-desc new file mode 100644 index 000000000000..13fcf51e0b79 --- /dev/null +++ b/libraries/t38modem-opal/slack-desc @@ -0,0 +1,19 @@ +# HOW TO EDIT THIS FILE: +# The "handy ruler" below makes it easier to edit a package description. +# Line up the first '|' above the ':' following the base package name, and +# the '|' on the right side marks the last column you can put a character in. +# You must make exactly 11 lines for the formatting to be correct. It's also +# customary to leave one space after the ':' except on otherwise blank lines. + + |-----handy-ruler------------------------------------------------------| +t38modem-opal: t38modem-opal (Open Phone Abstraction Library) +t38modem-opal: +t38modem-opal: This project is a fork of the OPAL project maintained and updated by +t38modem-opal: the maintainer of the t38modem project in order to support the +t38modem-opal: t38modem project. +t38modem-opal: +t38modem-opal: Original project homepage: http://www.opalvoip.org +t38modem-opal: +t38modem-opal: Homepage: https://github.com/T38Modem/opal/releases +t38modem-opal: +t38modem-opal: diff --git a/libraries/t38modem-opal/t38modem-opal.SlackBuild b/libraries/t38modem-opal/t38modem-opal.SlackBuild new file mode 100644 index 000000000000..8cd3df36396c --- /dev/null +++ b/libraries/t38modem-opal/t38modem-opal.SlackBuild @@ -0,0 +1,152 @@ +#!/bin/sh + +# Slackware build script for t38modem-opal + +# Copyright 2008-2009 Mauro Giachero +# Copyright 2011 David Woodfall +# Copyright 2020 Chris Walker +# All rights reserved. +# +# Redistribution and use of this script, with or without modification, is +# permitted provided that the following conditions are met: +# +# 1. Redistributions of this script must retain the above copyright +# notice, this list of conditions and the following disclaimer. +# +# THIS SOFTWARE IS PROVIDED BY THE AUTHOR ''AS IS'' AND ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO +# EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, +# PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; +# OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, +# WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR +# OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF +# ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + +PRGNAM=t38modem-opal +VERSION=${VERSION:-3.10.15} +BUILD=${BUILD:-1} +TAG=${TAG:-_SBo} + +if [ -z "$ARCH" ]; then + case "$( uname -m )" in + i?86) ARCH=i586 ;; + arm*) ARCH=arm ;; + *) ARCH=$( uname -m ) ;; + esac +fi + +SRCNAM=opal + +CWD=$(pwd) +TMP=${TMP:-/tmp/SBo} +PKG=$TMP/package-$PRGNAM +OUTPUT=${OUTPUT:-/tmp} + +if [ "$ARCH" = "i586" ]; then + SLKCFLAGS="-O2 -march=i586 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "i686" ]; then + SLKCFLAGS="-O2 -march=i686 -mtune=i686" + LIBDIRSUFFIX="" +elif [ "$ARCH" = "x86_64" ]; then + SLKCFLAGS="-O2 -fPIC" + LIBDIRSUFFIX="64" +else + SLKCFLAGS="-O2" + LIBDIRSUFFIX="" +fi + +set -e + +rm -rf $PKG +mkdir -p $TMP $PKG $OUTPUT +cd $TMP +rm -rf $SRCNAM-$VERSION +tar xvf $CWD/$SRCNAM-$VERSION.tar.gz +cd $SRCNAM-$VERSION + +chown -R root:root . +find -L . \ + \( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \ + -o -perm 511 \) -exec chmod 755 {} \; -o \ + \( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \ + -o -perm 440 -o -perm 400 \) -exec chmod 644 {} \; + +# patch and seds from lfs: +# http://www.linuxfromscratch.org/blfs/view/svn/multimedia/opal.html +patch -p1 --verbose < $CWD/ffmpeg2.patch + +sed -e 's/CODEC_ID/AV_&/' \ + -e 's/PIX_FMT_/AV_&/' \ + -i plugins/video/H.263-1998/h263-1998.cxx \ + plugins/video/common/dyna.cxx \ + plugins/video/H.264/h264-x264.cxx \ + plugins/video/MPEG4-ffmpeg/mpeg4.cxx + +sed -e '/<< mime.PrintContents/ s/mime/(const std::string\&)&/' \ + -i src/im/msrp.cxx && + +sed -e '/abs(/s/MPI.*)/(int)(&)/' \ + -i ./plugins/video/common/mpi.cxx + +CFLAGS="$SLKCFLAGS" \ +CXXFLAGS="$SLKCFLAGS" \ +./configure \ + --prefix=/usr \ + --libdir=/usr/lib${LIBDIRSUFFIX} \ + --sysconfdir=/etc \ + --localstatedir=/var \ + --enable-shared \ + --enable-ivr \ + --enable-rfc4175 \ + --enable-rfc2435 \ + --enable-aec \ + --enable-g711plc \ + --enable-rtcpxr \ + --enable-statistics \ + --enable-mixer \ + --enable-pcss \ + --enable-rfc4103 \ + --enable-fax \ + --enable-h450 \ + --enable-h460 \ + --enable-h239 \ + --enable-h501 \ + --enable-lid \ + --enable-zrtp \ + --enable-srtp \ + --enable-capi \ + --enable-java \ + --enable-ruby \ + --enable-video \ + --enable-sip \ + --enable-h323 \ + --enable-iax2 \ + --enable-h224 \ + --enable-h281 \ + --enable-t38 \ + --enable-msrp \ + --enable-sipim \ + --enable-plugins \ + --build=$ARCH-slackware-linux + +make VERBOSE=1 +make install DESTDIR=$PKG + +# Remove static library +rm $PKG/usr/lib${LIBDIRSUFFIX}/libopal_s.a + +find $PKG | xargs file | grep -e "executable" -e "shared object" | grep ELF \ + | cut -f 1 -d : | xargs strip --strip-unneeded 2> /dev/null || true + +mkdir -p $PKG/usr/doc/$PRGNAM-$VERSION +cp -a mpl-1.0.htm docs/* $PKG/usr/doc/$PRGNAM-$VERSION +cat $CWD/$PRGNAM.SlackBuild > $PKG/usr/doc/$PRGNAM-$VERSION/$PRGNAM.SlackBuild + +mkdir -p $PKG/install +cat $CWD/slack-desc > $PKG/install/slack-desc + +cd $PKG +/sbin/makepkg -l y -c n $OUTPUT/$PRGNAM-$VERSION-$ARCH-$BUILD$TAG.${PKGTYPE:-tgz} diff --git a/libraries/t38modem-opal/t38modem-opal.info b/libraries/t38modem-opal/t38modem-opal.info new file mode 100644 index 000000000000..377ba1126401 --- /dev/null +++ b/libraries/t38modem-opal/t38modem-opal.info @@ -0,0 +1,10 @@ +PRGNAM="t38modem-opal" +VERSION="3.10.15" +HOMEPAGE="https://github.com/T38Modem/opal/releases" +DOWNLOAD="https://github.com/T38Modem/opal/archive/v3.10.15/opal-3.10.15.tar.gz" +MD5SUM="737fda4d30aa00eaf8ecdfb5ddb7652e" +DOWNLOAD_x86_64="" +MD5SUM_x86_64="" +REQUIRES="t38modem-ptlib speex" +MAINTAINER="Chris Walker" +EMAIL="kris240376@gmail.com" |