{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:
parent
2b4e0459d8
commit
3ff62fe45b
pkgs
applications/networking
development/libraries
opal
ptlib
top-level
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
}
|
||||
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
||||
|
@ -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 \
|
@ -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;
|
@ -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".
|
@ -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;
|
||||
};
|
||||
};
|
||||
}
|
@ -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"
|
||||
|
@ -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 {
|
||||
|
Loading…
Reference in New Issue
Block a user