{opal,ptlib,ekiga,sipcmd}: remove unmaintained

Were also removed from Debian and Arch and don't build on recent GCC
versions anymore. Needed lots of patching anyway. Last release was 2013.
This commit is contained in:
Franz Pletz 2019-12-30 02:15:10 +01:00
parent 2b4e0459d8
commit 3ff62fe45b
No known key found for this signature in database
GPG Key ID: 846FDED7792617B4
9 changed files with 0 additions and 998 deletions
pkgs

View File

@ -1,73 +0,0 @@
{ stdenv, glib, fetchurl, fetchpatch, cyrus_sasl, gettext, openldap, ptlib, opal, libXv, rarian, intltool
, perlPackages, evolution-data-server, gnome-doc-utils, avahi, autoreconfHook
, libsigcxx, gtk2, dbus-glib, libnotify, libXext, xorgproto, gnome3, boost, libsecret
, pkgconfig, libxml2, unixODBC, db, nspr, nss, zlib
, libXrandr, which, libxslt, libtasn1, gmp, nettle, sqlite, makeWrapper }:
stdenv.mkDerivation rec {
pname = "ekiga";
version = "4.0.1";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "5f4f491c9496cf65ba057a9345d6bb0278f4eca07bcda5baeecf50bfcd9a4a3b";
};
buildInputs = [ cyrus_sasl gettext openldap ptlib opal libXv rarian intltool
evolution-data-server gnome-doc-utils avahi
libsigcxx gtk2 dbus-glib libnotify libXext xorgproto sqlite
gnome3.libsoup glib gnome3.adwaita-icon-theme boost
autoreconfHook pkgconfig libxml2 unixODBC db nspr
nss zlib libsecret libXrandr which libxslt libtasn1
gmp nettle makeWrapper ]
++ (with perlPackages; [ perl XMLParser ]);
preAutoreconf = ''
substituteInPlace configure.ac --replace AM_GCONF_SOURCE_2 ""
substituteInPlace configure.ac --replace gnome-icon-theme adwaita-icon-theme
'';
configureFlags = [
"--with-ldap-dir=${openldap.dev}"
"--with-libsasl2-dir=${cyrus_sasl.dev}"
"--with-boost-libdir=${boost.out}/lib"
"--disable-gconf"
];
enableParallelBuilding = true;
patches = [
(fetchpatch { url = https://sources.debian.net/data/main/e/ekiga/4.0.1-7/debian/patches/autofoo.patch;
sha256 = "1vyagslws4mm9yfz1m5p1kv9sxmk5lls9vxpm6j72q2ahsgydzx4";
})
(fetchpatch { url = https://sources.debian.net/data/main/e/ekiga/4.0.1-7/debian/patches/boost.patch;
sha256 = "01k0rw8ibrrf9zn9lx6dzbrgy58w089hqxqxqdv9whb65cldlj5s";
})
(fetchpatch { url = https://src.fedoraproject.org/rpms/ekiga/raw/dbf5f5ba449d22bd79f0394cddb7d4d8a88ec6ac/f/ekiga-4.0.1-libresolv.patch;
sha256 = "18wc68im8422ibpa0gkrkgjq41m7hikaha3xqmjs2km45i1cwcaz";
})
];
postInstall = ''
wrapProgram "$out"/bin/ekiga \
--prefix XDG_DATA_DIRS : "$XDG_ICON_DIRS:$GSETTINGS_SCHEMAS_PATH"
'';
passthru = {
updateInfo = {
downloadPage = "mirror://gnome/sources/ekiga";
};
updateScript = gnome3.updateScript {
packageName = pname;
};
};
meta = with stdenv.lib; {
description = "VOIP/Videoconferencing app with full SIP and H.323 support";
homepage = "https://www.ekiga.org/";
maintainers = [ maintainers.raskin ];
platforms = platforms.linux;
license = licenses.gpl2Plus;
};
}

View File

@ -1,34 +0,0 @@
{ stdenv, fetchFromGitHub, opal, ptlib }:
stdenv.mkDerivation rec {
rev = "3090e9f";
name = "sipcmd-${rev}";
src = fetchFromGitHub {
repo = "sipcmd";
owner = "tmakkonen";
inherit rev;
sha256 = "072h9qapmz46r8pxbzkfmc4ikd7dv9g8cgrfrw21q942icbrvq2c";
};
buildInputs = [ opal ptlib ];
buildPhase = ''
make IFLAGS="-I${opal}/include/opal -I${ptlib}/include -Isrc/ -L${opal}/lib -L${ptlib}/lib"
'';
installPhase = ''
mkdir -pv $out/bin
cp sipcmd $out/bin/sipcmd
'';
meta = {
homepage = https://github.com/tmakkonen/sipcmd;
description = "The command line SIP/H.323/RTP softphone";
platforms = with stdenv.lib.platforms; linux;
license = stdenv.lib.licenses.gpl2;
};
}

View File

@ -1,43 +0,0 @@
{ stdenv, fetchurl, pkgconfig, ptlib, srtp, libtheora, speex, gnome3
, ffmpeg, x264, cyrus_sasl, openldap, openssl, expat, unixODBC }:
stdenv.mkDerivation rec {
pname = "opal";
version = "3.10.10";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "f208985003461b2743575eccac13ad890b3e5baac35b68ddef17162460aff864";
};
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ ptlib srtp libtheora speex
ffmpeg x264 cyrus_sasl openldap openssl expat unixODBC ];
propagatedBuildInputs = [ speex ];
configureFlags = [ "--enable-h323" ];
enableParallelBuilding = true;
NIX_CFLAGS_COMPILE = "-D__STDC_CONSTANT_MACROS=1 -std=gnu++98";
patches = [ ./disable-samples-ftbfs.diff ./libav9.patch ./libav10.patch ];
meta = with stdenv.lib; {
description = "VoIP library";
maintainers = [ maintainers.raskin ];
platforms = platforms.linux;
homepage = "http://www.opalvoip.org/";
license = with licenses; [ bsdOriginal mpl10 gpl2Plus lgpl21 ];
};
passthru = {
updateInfo = {
downloadPage = "http://ftp.gnome.org/pub/GNOME/sources/opal";
};
updateScript = gnome3.updateScript {
packageName = pname;
};
};
}

View File

@ -1,14 +0,0 @@
Index: opal-3.10.4~dfsg/Makefile.in
===================================================================
--- opal-3.10.4~dfsg.orig/Makefile.in 2012-02-22 10:08:36.000000000 +1100
+++ opal-3.10.4~dfsg/Makefile.in 2012-03-08 08:32:44.000000000 +1100
@@ -45,8 +45,7 @@
samples/codectest \
samples/callgen \
samples/opalecho \
- samples/faxopal \
- samples/c_api
+ samples/faxopal
ifeq ($(OPAL_IVR),yes)
SUBDIRS += samples/opalmcu \
samples/ivropal \

View File

@ -1,208 +0,0 @@
Description: Fix compilation against libav10
Author: Reinhard Tartler <siretart@tauware.de>
Bug-Debian: http://bugs.debian.org/739439
--- a/plugins/video/H.263-1998/h263-1998.cxx
+++ b/plugins/video/H.263-1998/h263-1998.cxx
@@ -94,7 +94,7 @@ static struct StdSizes {
{ CIF16_WIDTH, CIF16_HEIGHT, PLUGINCODEC_CIF16_MPI },
};
-static FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H263P);
+static FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H263P);
/////////////////////////////////////////////////////////////////////////////
@@ -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");
@@ -589,7 +589,7 @@ void H263_RFC2190_EncoderContext::RTPCal
bool H263_RFC2190_EncoderContext::Init()
{
- if (!H263_Base_EncoderContext::Init(CODEC_ID_H263))
+ if (!H263_Base_EncoderContext::Init(AV_CODEC_ID_H263))
return false;
#if LIBAVCODEC_RTP_MODE
@@ -632,7 +632,7 @@ H263_RFC2429_EncoderContext::~H263_RFC24
bool H263_RFC2429_EncoderContext::Init()
{
- return H263_Base_EncoderContext::Init(CODEC_ID_H263P);
+ return H263_Base_EncoderContext::Init(AV_CODEC_ID_H263P);
}
@@ -656,7 +656,7 @@ H263_Base_DecoderContext::H263_Base_Deco
if (!FFMPEGLibraryInstance.Load())
return;
- if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_H263)) == NULL) {
+ if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(AV_CODEC_ID_H263)) == NULL) {
PTRACE(1, m_prefix, "Codec not found for decoder");
return;
}
--- a/plugins/video/H.264/h264-x264.cxx
+++ b/plugins/video/H.264/h264-x264.cxx
@@ -105,7 +105,7 @@ static struct PluginCodec_information Li
///////////////////////////////////////////////////////////////////////////////
-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H264);
+FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H264);
PLUGINCODEC_CONTROL_LOG_FUNCTION_DEF
@@ -1065,17 +1065,17 @@ class MyDecoder : public PluginCodec<MY_
allows you to fail the create operation (return false), which cannot
be done in the normal C++ constructor. */
- if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_H264)) == NULL)
+ if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(AV_CODEC_ID_H264)) == NULL)
return false;
if ((m_context = FFMPEGLibraryInstance.AvcodecAllocContext(m_codec)) == NULL)
return false;
m_context->workaround_bugs = FF_BUG_AUTODETECT;
- m_context->idct_algo = FF_IDCT_H264;
+ m_context->idct_algo = FF_IDCT_AUTO;
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_SKIP_RD |
+ m_context->flags2 =
#ifdef CODEC_FLAG2_DROP_FRAME_TIMECODE
CODEC_FLAG2_DROP_FRAME_TIMECODE |
#endif
--- a/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
+++ b/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
@@ -205,7 +205,7 @@ const static struct mpeg4_resolution {
{ 0 }
};
-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_MPEG4);
+FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_MPEG4);
static bool mpeg4IsIframe (BYTE * frameBuffer, unsigned int frameLen )
@@ -688,7 +688,7 @@ void MPEG4EncoderContext::ResizeEncoding
bool MPEG4EncoderContext::OpenCodec()
{
- if((m_avcodec = FFMPEGLibraryInstance.AvcodecFindEncoder(CODEC_ID_MPEG4)) == NULL){
+ if((m_avcodec = FFMPEGLibraryInstance.AvcodecFindEncoder(AV_CODEC_ID_MPEG4)) == NULL){
PTRACE(1, "MPEG4", "Encoder not found");
return false;
}
@@ -1390,7 +1390,7 @@ void MPEG4DecoderContext::ResizeDecoding
bool MPEG4DecoderContext::OpenCodec()
{
- if ((m_avcodec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_MPEG4)) == NULL) {
+ if ((m_avcodec = FFMPEGLibraryInstance.AvcodecFindDecoder(AV_CODEC_ID_MPEG4)) == NULL) {
PTRACE(1, "MPEG4", "Decoder not found for encoder");
return false;
}
--- a/plugins/video/H.263-1998/h263-1998.h
+++ b/plugins/video/H.263-1998/h263-1998.h
@@ -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);
--- a/plugins/video/common/dyna.cxx
+++ b/plugins/video/common/dyna.cxx
@@ -217,14 +217,14 @@ static void logCallbackFFMPEG(void * avc
#endif
-FFMPEGLibrary::FFMPEGLibrary(CodecID codec)
+FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec)
{
m_codec = codec;
- if (m_codec==CODEC_ID_H264)
+ if (m_codec==AV_CODEC_ID_H264)
snprintf( m_codecString, sizeof(m_codecString), "H264");
- if (m_codec==CODEC_ID_H263P)
+ if (m_codec==AV_CODEC_ID_H263P)
snprintf( m_codecString, sizeof(m_codecString), "H263+");
- if (m_codec==CODEC_ID_MPEG4)
+ if (m_codec==AV_CODEC_ID_MPEG4)
snprintf( m_codecString, sizeof(m_codecString), "MPEG4");
m_isLoadedOK = false;
}
@@ -268,12 +268,12 @@ bool FFMPEGLibrary::Load()
return true;
}
-AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
+AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id)
{
return avcodec_find_encoder(id);
}
-AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
+AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id)
{
WaitAndSignal m(processLock);
@@ -308,13 +308,18 @@ int FFMPEGLibrary::AvcodecClose(AVCodecC
return avcodec_close(ctx);
}
+#undef FFMAX
+#define FFMAX(a,b) ((a) > (b) ? (a) : (b))
int FFMPEGLibrary::AvcodecEncodeVideo(AVCodecContext *ctx, BYTE *buf, int buf_size, const AVFrame *pict)
{
+ AVPacket pkt = { 0 };
+ int ret, got_output;
int res;
- res = avcodec_encode_video(ctx, buf, buf_size, pict);
+ ret = avcodec_encode_video2(ctx, &pkt, pict, &got_output);
- PTRACE(6, m_codecString, "DYNA\tEncoded into " << res << " bytes, max " << buf_size);
+ PTRACE(6, m_codecString, "DYNA\tEncoded into " << ret << " bytes, max " << buf_size);
+ memcpy(buf, pkt.data, FFMAX(pkt.size, buf_size));
return res;
}
--- a/plugins/video/common/dyna.h
+++ b/plugins/video/common/dyna.h
@@ -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(AVCodec*);
AVFrame *AvcodecAllocFrame(void);
int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
@@ -117,7 +117,7 @@ class FFMPEGLibrary
DynaLink m_libAvcodec;
DynaLink m_libAvutil;
- CodecID m_codec;
+ AVCodecID m_codec;
char m_codecString[32];
bool m_isLoadedOK;

View File

@ -1,543 +0,0 @@
Description: Backport changes for the libav 9 API
Also replace loading of libavcodec and libavutil via dlopen by linking against
it.
Author: Sebastian Ramacher <sramacher@debian.org>
Bug-Debian: http://bugs.debian.org/720824
Last-Update: 2013-09-12
--- a/plugins/video/H.263-1998/h263-1998.cxx
+++ b/plugins/video/H.263-1998/h263-1998.cxx
@@ -216,7 +216,7 @@
return false;
}
- m_context = FFMPEGLibraryInstance.AvcodecAllocContext();
+ m_context = FFMPEGLibraryInstance.AvcodecAllocContext(m_codec);
if (m_context == NULL) {
PTRACE(1, m_prefix, "Failed to allocate context for encoder");
return false;
@@ -312,6 +312,7 @@
return;
}
+#ifdef CODEC_FLAG_H263P_UMV
if (STRCMPI(option, H263_ANNEX_D) == 0) {
// Annex D: Unrestructed Motion Vectors
// Level 2+
@@ -322,6 +323,7 @@
m_context->flags &= ~CODEC_FLAG_H263P_UMV;
return;
}
+#endif
#if 0 // DO NOT ENABLE THIS FLAG. FFMPEG IS NOT THREAD_SAFE WHEN THIS FLAG IS SET
if (STRCMPI(option, H263_ANNEX_F) == 0) {
@@ -356,6 +358,7 @@
return;
}
+#ifdef CODEC_FLAG_H263P_SLICE_STRUCT
if (STRCMPI(option, H263_ANNEX_K) == 0) {
// Annex K: Slice Structure
// does not work with eyeBeam
@@ -365,7 +368,9 @@
m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
return;
}
+#endif
+#ifdef CODEC_FLAG_H263P_AIV
if (STRCMPI(option, H263_ANNEX_S) == 0) {
// Annex S: Alternative INTER VLC mode
// does not work with eyeBeam
@@ -375,6 +380,7 @@
m_context->flags &= ~CODEC_FLAG_H263P_AIV;
return;
}
+#endif
if (STRCMPI(option, PLUGINCODEC_MEDIA_PACKETIZATION) == 0 ||
STRCMPI(option, PLUGINCODEC_MEDIA_PACKETIZATIONS) == 0) {
@@ -450,15 +456,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 +518,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 +600,19 @@
m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack;
m_context->opaque = this; // used to separate out packets from different encode threads
+#ifdef CODEC_FLAG_H263P_UMV
m_context->flags &= ~CODEC_FLAG_H263P_UMV;
+#endif
m_context->flags &= ~CODEC_FLAG_4MV;
#if LIBAVCODEC_RTP_MODE
m_context->flags &= ~CODEC_FLAG_H263P_AIC;
#endif
+#ifdef CODEC_FLAG_H263P_AIV
m_context->flags &= ~CODEC_FLAG_H263P_AIV;
+#endif
+#ifdef CODEC_FLAG_H263P_SLICE_STRUCT
m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT;
+#endif
return true;
}
@@ -658,7 +661,7 @@
return;
}
- m_context = FFMPEGLibraryInstance.AvcodecAllocContext();
+ m_context = FFMPEGLibraryInstance.AvcodecAllocContext(m_codec);
if (m_context == NULL) {
PTRACE(1, m_prefix, "Failed to allocate context for decoder");
return;
--- a/plugins/video/H.264/h264-x264.cxx
+++ b/plugins/video/H.264/h264-x264.cxx
@@ -48,6 +48,7 @@
#include "shared/h264frame.h"
#include "shared/x264wrap.h"
+#include <cstdio>
#define MY_CODEC x264 // Name of codec (use C variable characters)
#define MY_CODEC_LOG "x264"
@@ -1067,18 +1068,17 @@
if ((m_codec = FFMPEGLibraryInstance.AvcodecFindDecoder(CODEC_ID_H264)) == NULL)
return false;
- if ((m_context = FFMPEGLibraryInstance.AvcodecAllocContext()) == NULL)
+ if ((m_context = FFMPEGLibraryInstance.AvcodecAllocContext(m_codec)) == NULL)
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 |
+ m_context->flags2 = CODEC_FLAG2_SKIP_RD |
+#ifdef CODEC_FLAG2_DROP_FRAME_TIMECODE
CODEC_FLAG2_DROP_FRAME_TIMECODE |
- CODEC_FLAG2_SKIP_RD |
+#endif
CODEC_FLAG2_CHUNKS;
if ((m_picture = FFMPEGLibraryInstance.AvcodecAllocFrame()) == NULL)
--- a/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
+++ b/plugins/video/MPEG4-ffmpeg/mpeg4.cxx
@@ -589,17 +589,14 @@
m_avpicture->quality = m_videoQMin;
#ifdef USE_ORIG
- m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning
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;
/*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;
#endif
m_avcontext->opaque = this; // for use in RTP callback
}
@@ -691,7 +688,12 @@
bool MPEG4EncoderContext::OpenCodec()
{
- m_avcontext = FFMPEGLibraryInstance.AvcodecAllocContext();
+ if((m_avcodec = FFMPEGLibraryInstance.AvcodecFindEncoder(CODEC_ID_MPEG4)) == NULL){
+ PTRACE(1, "MPEG4", "Encoder not found");
+ return false;
+ }
+
+ m_avcontext = FFMPEGLibraryInstance.AvcodecAllocContext(m_avcodec);
if (m_avcontext == NULL) {
PTRACE(1, "MPEG4", "Encoder failed to allocate context for encoder");
return false;
@@ -703,11 +705,6 @@
return false;
}
- if((m_avcodec = FFMPEGLibraryInstance.AvcodecFindEncoder(CODEC_ID_MPEG4)) == NULL){
- PTRACE(1, "MPEG4", "Encoder not found");
- return false;
- }
-
#if PLUGINCODEC_TRACING
// debugging flags
if (PTRACE_CHECK(4)) {
@@ -804,7 +801,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 +1322,6 @@
void MPEG4DecoderContext::SetStaticDecodingParams() {
m_avcontext->flags |= CODEC_FLAG_4MV;
- m_avcontext->flags |= CODEC_FLAG_PART;
m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
}
@@ -1399,7 +1395,7 @@
return false;
}
- m_avcontext = FFMPEGLibraryInstance.AvcodecAllocContext();
+ m_avcontext = FFMPEGLibraryInstance.AvcodecAllocContext(m_avcodec);
if (m_avcontext == NULL) {
PTRACE(1, "MPEG4", "Decoder failed to allocate context");
return false;
--- a/plugins/video/common/dyna.cxx
+++ b/plugins/video/common/dyna.cxx
@@ -38,6 +38,13 @@
* Matthias Schneider (ma30002000@yahoo.de)
*/
#include "dyna.h"
+#include <cstdio>
+#include <cstdarg>
+
+extern "C" {
+#include <libavcodec/avcodec.h>
+#include <libavutil/mem.h>
+}
bool DynaLink::Open(const char *name)
{
@@ -228,101 +235,15 @@
m_libAvutil.Close();
}
-#define CHECK_AVUTIL(name, func) \
- (seperateLibAvutil ? \
- m_libAvutil.GetFunction(name, (DynaLink::Function &)func) : \
- m_libAvcodec.GetFunction(name, (DynaLink::Function &)func) \
- ) \
-
-
bool FFMPEGLibrary::Load()
{
WaitAndSignal m(processLock);
if (IsLoaded())
return true;
- bool seperateLibAvutil = false;
-
-#ifdef LIBAVCODEC_LIB_NAME
- if (m_libAvcodec.Open(LIBAVCODEC_LIB_NAME))
- seperateLibAvutil = true;
- else
-#endif
- if (m_libAvcodec.Open("libavcodec"))
- seperateLibAvutil = false;
- else if (m_libAvcodec.Open("avcodec-" AV_STRINGIFY(LIBAVCODEC_VERSION_MAJOR)))
- seperateLibAvutil = true;
- else {
- PTRACE(1, m_codecString, "Failed to load FFMPEG libavcodec library");
- return false;
- }
-
- if (seperateLibAvutil &&
- !(
-#ifdef LIBAVUTIL_LIB_NAME
- m_libAvutil.Open(LIBAVUTIL_LIB_NAME) ||
-#endif
- m_libAvutil.Open("libavutil") ||
- m_libAvutil.Open("avutil-" AV_STRINGIFY(LIBAVUTIL_VERSION_MAJOR))
- ) ) {
- PTRACE(1, m_codecString, "Failed to load FFMPEG libavutil library");
- return false;
- }
-
- strcpy(m_libAvcodec.m_codecString, m_codecString);
- strcpy(m_libAvutil.m_codecString, m_codecString);
-
- if (!m_libAvcodec.GetFunction("avcodec_init", (DynaLink::Function &)Favcodec_init))
- return false;
-
- if (!m_libAvcodec.GetFunction("av_init_packet", (DynaLink::Function &)Fav_init_packet))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_register_all", (DynaLink::Function &)Favcodec_register_all))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_find_encoder", (DynaLink::Function &)Favcodec_find_encoder))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_find_decoder", (DynaLink::Function &)Favcodec_find_decoder))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_alloc_context", (DynaLink::Function &)Favcodec_alloc_context))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_alloc_frame", (DynaLink::Function &)Favcodec_alloc_frame))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_open", (DynaLink::Function &)Favcodec_open))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_close", (DynaLink::Function &)Favcodec_close))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_encode_video", (DynaLink::Function &)Favcodec_encode_video))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_decode_video2", (DynaLink::Function &)Favcodec_decode_video))
- return false;
-
- if (!m_libAvcodec.GetFunction("avcodec_set_dimensions", (DynaLink::Function &)Favcodec_set_dimensions))
- return false;
-
- if (!CHECK_AVUTIL("av_free", Favcodec_free))
- return false;
-
- if(!m_libAvcodec.GetFunction("avcodec_version", (DynaLink::Function &)Favcodec_version))
- return false;
-
- if (!CHECK_AVUTIL("av_log_set_level", FAv_log_set_level))
- return false;
-
- if (!CHECK_AVUTIL("av_log_set_callback", FAv_log_set_callback))
- return false;
-
// must be called before using avcodec lib
- unsigned libVer = Favcodec_version();
+ unsigned libVer = avcodec_version();
if (libVer != LIBAVCODEC_VERSION_INT) {
PTRACE(2, m_codecString, "Warning: compiled against libavcodec headers from version "
<< LIBAVCODEC_VERSION_MAJOR << '.' << LIBAVCODEC_VERSION_MINOR << '.' << LIBAVCODEC_VERSION_MICRO
@@ -334,8 +255,7 @@
<< (libVer >> 16) << ((libVer>>8) & 0xff) << (libVer & 0xff));
}
- Favcodec_init();
- Favcodec_register_all ();
+ avcodec_register_all();
#if PLUGINCODEC_TRACING
AvLogSetLevel(AV_LOG_DEBUG);
@@ -350,49 +270,49 @@
AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id)
{
- return Favcodec_find_encoder(id);
+ return avcodec_find_encoder(id);
}
AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id)
{
WaitAndSignal m(processLock);
- return Favcodec_find_decoder(id);
+ return avcodec_find_decoder(id);
}
-AVCodecContext *FFMPEGLibrary::AvcodecAllocContext(void)
+AVCodecContext *FFMPEGLibrary::AvcodecAllocContext(AVCodec *codec)
{
WaitAndSignal m(processLock);
- return Favcodec_alloc_context();
+ return avcodec_alloc_context3(codec);
}
AVFrame *FFMPEGLibrary::AvcodecAllocFrame(void)
{
WaitAndSignal m(processLock);
- return Favcodec_alloc_frame();
+ return avcodec_alloc_frame();
}
int FFMPEGLibrary::AvcodecOpen(AVCodecContext *ctx, AVCodec *codec)
{
WaitAndSignal m(processLock);
- return Favcodec_open(ctx, codec);
+ return avcodec_open2(ctx, codec, NULL);
}
int FFMPEGLibrary::AvcodecClose(AVCodecContext *ctx)
{
WaitAndSignal m(processLock);
- return Favcodec_close(ctx);
+ return avcodec_close(ctx);
}
int FFMPEGLibrary::AvcodecEncodeVideo(AVCodecContext *ctx, BYTE *buf, int buf_size, const AVFrame *pict)
{
int res;
- res = Favcodec_encode_video(ctx, buf, buf_size, pict);
+ res = avcodec_encode_video(ctx, buf, buf_size, pict);
PTRACE(6, m_codecString, "DYNA\tEncoded into " << res << " bytes, max " << buf_size);
return res;
@@ -401,35 +321,35 @@
int FFMPEGLibrary::AvcodecDecodeVideo(AVCodecContext *ctx, AVFrame *pict, int *got_picture_ptr, BYTE *buf, int buf_size)
{
AVPacket avpkt;
- Fav_init_packet(&avpkt);
+ av_init_packet(&avpkt);
avpkt.data = buf;
avpkt.size = buf_size;
- return Favcodec_decode_video(ctx, pict, got_picture_ptr, &avpkt);
+ return avcodec_decode_video2(ctx, pict, got_picture_ptr, &avpkt);
}
void FFMPEGLibrary::AvcodecFree(void * ptr)
{
WaitAndSignal m(processLock);
- Favcodec_free(ptr);
+ av_free(ptr);
}
void FFMPEGLibrary::AvSetDimensions(AVCodecContext *s, int width, int height)
{
WaitAndSignal m(processLock);
- Favcodec_set_dimensions(s, width, height);
+ avcodec_set_dimensions(s, width, height);
}
void FFMPEGLibrary::AvLogSetLevel(int level)
{
- FAv_log_set_level(level);
+ av_log_set_level(level);
}
void FFMPEGLibrary::AvLogSetCallback(void (*callback)(void*, int, const char*, va_list))
{
- FAv_log_set_callback(callback);
+ av_log_set_callback(callback);
}
bool FFMPEGLibrary::IsLoaded()
--- a/plugins/video/common/dyna.h
+++ b/plugins/video/common/dyna.h
@@ -95,7 +95,7 @@
AVCodec *AvcodecFindEncoder(enum CodecID id);
AVCodec *AvcodecFindDecoder(enum CodecID id);
- AVCodecContext *AvcodecAllocContext(void);
+ AVCodecContext *AvcodecAllocContext(AVCodec*);
AVFrame *AvcodecAllocFrame(void);
int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec);
int AvcodecClose(AVCodecContext *ctx);
@@ -120,26 +120,6 @@
CodecID 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);
- AVCodecContext *(*Favcodec_alloc_context)(void);
- AVFrame *(*Favcodec_alloc_frame)(void);
- int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec);
- int (*Favcodec_close)(AVCodecContext *ctx);
- int (*Favcodec_encode_video)(AVCodecContext *ctx, BYTE *buf, int buf_size, const AVFrame *pict);
- int (*Favcodec_decode_video)(AVCodecContext *ctx, AVFrame *pict, int *got_picture_ptr, AVPacket *avpkt);
- unsigned (*Favcodec_version)(void);
- void (*Favcodec_set_dimensions)(AVCodecContext *ctx, int width, int height);
-
- void (*Favcodec_free)(void *);
-
- void (*FAv_log_set_level)(int level);
- void (*FAv_log_set_callback)(void (*callback)(void*, int, const char*, va_list));
-
bool m_isLoadedOK;
};
--- a/plugins/video/common/ffmpeg.h
+++ b/plugins/video/common/ffmpeg.h
@@ -45,11 +45,13 @@
#include "platform.h"
-#include "libavcodec/avcodec.h"
+extern "C" {
+#include <libavcodec/avcodec.h>
// AVPacket was declared in avformat.h before April 2009
#if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 25, 0)
-#include "libavformat/avformat.h"
+#include <libavformat/avformat.h>
#endif
+}
#ifndef LIBAVCODEC_VERSION_INT
#error Libavcodec include is not correct
--- a/plugins/video/H.263-1998/Makefile.in
+++ b/plugins/video/H.263-1998/Makefile.in
@@ -34,8 +34,8 @@
$(COMMONDIR)/mpi.cxx \
$(COMMONDIR)/dyna.cxx
-CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
-LIBS += @DL_LIBS@
+CFLAGS += @LIBAVCODEC_CFLAGS@ @LIBAVUTIL_CFLAGS@ -I$(COMMONDIR)
+LIBS += @DL_LIBS@ @LIBAVCODEC_LIBS@ @LIBAVUTIL_LIBS@
HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@
ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes)
--- a/plugins/video/H.264/Makefile.in
+++ b/plugins/video/H.264/Makefile.in
@@ -34,8 +34,8 @@
$(SHAREDDIR)/x264wrap.cxx \
$(COMMONDIR)/dyna.cxx \
-CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) -DLIB_DIR='"$(libdir)"' -DVC_PLUGIN_DIR='"@VC_PLUGIN_DIR@"'
-LIBS += @DL_LIBS@
+CFLAGS += @LIBAVCODEC_CFLAGS@ @LIBAVUTIL_CFLAGS@ -I$(COMMONDIR) -DLIB_DIR='"$(libdir)"' -DVC_PLUGIN_DIR='"@VC_PLUGIN_DIR@"'
+LIBS += @DL_LIBS@ @LIBAVCODEC_LIBS@ @LIBAVUTIL_LIBS@
IS_H264_LICENSED:=@IS_H264_LICENSED@
ifeq ($(IS_H264_LICENSED),yes)
--- a/plugins/video/MPEG4-ffmpeg/Makefile.in
+++ b/plugins/video/MPEG4-ffmpeg/Makefile.in
@@ -30,8 +30,8 @@
SRCDIR := .
SRCS := mpeg4.cxx $(COMMONDIR)/dyna.cxx
-CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR)
-LIBS += @DL_LIBS@
+CFLAGS += @LIBAVCODEC_CFLAGS@ @LIBAVUTIL_CFLAGS@ -I$(COMMONDIR)
+LIBS += @DL_LIBS@ @LIBAVCODEC_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".

View File

@ -1,59 +0,0 @@
{ stdenv, fetchurl, fetchpatch, pkgconfig, bison, flex, unixODBC, gnome3
, openssl, openldap, cyrus_sasl, kerberos, expat, SDL, libdv, libv4l, alsaLib }:
stdenv.mkDerivation rec {
pname = "ptlib";
version = "2.10.11";
src = fetchurl {
url = "mirror://gnome/sources/${pname}/${stdenv.lib.versions.majorMinor version}/${pname}-${version}.tar.xz";
sha256 = "1jf27mjz8vqnclhrhrpn7niz4c177kcjbd1hc7vn65ihcqfz05rs";
};
NIX_CFLAGS_COMPILE = "-std=gnu++98";
nativeBuildInputs = [ pkgconfig ];
buildInputs = [ bison flex unixODBC openssl openldap
cyrus_sasl kerberos expat SDL libdv libv4l alsaLib ];
enableParallelBuilding = true;
patches = [
(fetchpatch { url = http://sources.debian.net/data/main/p/ptlib/2.10.11~dfsg-2.1/debian/patches/bison-fix;
sha256 = "0vzv9kyn9s628z8wy2gva380gi1rmhxilwlg5pikl5a0wn8p46nw";
})
(fetchpatch { url = http://sources.debian.net/data/main/p/ptlib/2.10.11~dfsg-2.1/debian/patches/no-sslv3;
sha256 = "172s1dnnrl54p9sf1nl7s475sm78rpw3p8jxi0pdx6izzl8hcdr0";
})
(fetchpatch {
name = "openssl-1.1.patch";
url = "https://git.archlinux.org/svntogit/packages.git/plain/trunk/openssl-1.1.0.patch?h=packages/ptlib&id=1dfa9f55e7e030d261228fca27dda82979ca7f30";
sha256 = "11hdgyyibycg0wf5ls0wk9hksa4jd434i86xqiccbyg17n4l6lc1";
})
./ptlib-2.10.11-glibc-2.26.patch
];
# fix typedef clashes with unixODBC>=2.3.5
postPatch = ''
substituteInPlace include/ptlib/unix/ptlib/contain.h \
--replace "typedef uintptr_t UINT" "typedef unsigned int UINT" \
--replace "typedef wchar_t WCHAR" "typedef unsigned short WCHAR"
'';
meta = with stdenv.lib; {
description = "Portable Tools from OPAL VoIP";
maintainers = [ maintainers.raskin ];
homepage = "http://www.opalvoip.org/";
platforms = platforms.linux;
license = with licenses; [ beerware bsdOriginal mpl10 ];
};
passthru = {
updateInfo = {
downloadPage = "http://ftp.gnome.org/sources/ptlib/";
};
updateScript = gnome3.updateScript {
packageName = pname;
};
};
}

View File

@ -1,13 +0,0 @@
diff --git a/src/ptlib/unix/channel.cxx b/src/ptlib/unix/channel.cxx
index 3b17dda..2dcaa18 100644
--- a/src/ptlib/unix/channel.cxx
+++ b/src/ptlib/unix/channel.cxx
@@ -36,7 +36,7 @@
#include <ptlib.h>
#include <sys/ioctl.h>
-
+#include <sys/uio.h>
#include "../common/pchannel.cxx"

View File

@ -13449,11 +13449,6 @@ in
ois = callPackage ../development/libraries/ois {};
opal = callPackage ../development/libraries/opal {
ffmpeg = ffmpeg_2;
stdenv = gcc6Stdenv;
};
openh264 = callPackage ../development/libraries/openh264 { };
openjpeg_1 = callPackage ../development/libraries/openjpeg/1.x.nix { };
@ -13629,8 +13624,6 @@ in
pstreams = callPackage ../development/libraries/pstreams {};
ptlib = callPackage ../development/libraries/ptlib {};
pugixml = callPackage ../development/libraries/pugixml { };
pybind11 = pythonPackages.pybind11;
@ -15687,8 +15680,6 @@ in
sickrage = callPackage ../servers/sickbeard/sickrage.nix { };
sipcmd = callPackage ../applications/networking/sipcmd { };
sipwitch = callPackage ../servers/sip/sipwitch { };
slimserver = callPackage ../servers/slimserver { };
@ -24533,8 +24524,6 @@ in
dpkg = callPackage ../tools/package-management/dpkg { };
ekiga = callPackage ../applications/networking/instant-messengers/ekiga { };
dumb = callPackage ../misc/dumb { };
emulationstation = callPackage ../misc/emulators/emulationstation {