libraries/t38modem-opal: Added (Open Phone Abstraction Library).

Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
Chris Walker 2020-03-28 13:14:54 +07:00 committed by Willy Sudiarto Raharjo
parent 816645e929
commit af9ed69225
5 changed files with 586 additions and 0 deletions

View file

@ -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.

View file

@ -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
}

View file

@ -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:

View file

@ -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}

View file

@ -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"