mirror of
https://github.com/Ponce/slackbuilds
synced 2024-11-16 19:50:19 +01:00
libraries/t38modem-opal: Added (Open Phone Abstraction Library).
Signed-off-by: Willy Sudiarto Raharjo <willysr@slackbuilds.org>
This commit is contained in:
parent
816645e929
commit
af9ed69225
5 changed files with 586 additions and 0 deletions
7
libraries/t38modem-opal/README
Normal file
7
libraries/t38modem-opal/README
Normal 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.
|
398
libraries/t38modem-opal/ffmpeg2.patch
Normal file
398
libraries/t38modem-opal/ffmpeg2.patch
Normal 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
|
||||
}
|
||||
|
19
libraries/t38modem-opal/slack-desc
Normal file
19
libraries/t38modem-opal/slack-desc
Normal 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:
|
152
libraries/t38modem-opal/t38modem-opal.SlackBuild
Normal file
152
libraries/t38modem-opal/t38modem-opal.SlackBuild
Normal 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}
|
10
libraries/t38modem-opal/t38modem-opal.info
Normal file
10
libraries/t38modem-opal/t38modem-opal.info
Normal 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"
|
Loading…
Reference in a new issue