aboutsummaryrefslogtreecommitdiff
path: root/libraries/opal
diff options
context:
space:
mode:
Diffstat (limited to 'libraries/opal')
-rw-r--r--libraries/opal/README3
-rw-r--r--libraries/opal/ffmpeg2.patch (renamed from libraries/opal/opal-ffmpeg.patch)405
-rw-r--r--libraries/opal/opal.SlackBuild72
3 files changed, 262 insertions, 218 deletions
diff --git a/libraries/opal/README b/libraries/opal/README
index c0a84e54c98d1..a6a7e53e8814a 100644
--- a/libraries/opal/README
+++ b/libraries/opal/README
@@ -2,5 +2,4 @@ The Open Phone Abstraction Library (OPAL) is a C++ multi-platform,
multi-protocol library for Fax, Video & Voice over IP and other
networks.
-Optional dependencies are Speex (recommended, even though Opal
-ships with its own version), ffmpeg, and celt.
+Optional dependencies are ffmpeg, x264, celt and jdk/openjdk.
diff --git a/libraries/opal/opal-ffmpeg.patch b/libraries/opal/ffmpeg2.patch
index de828b5b2bfae..80dca469d9479 100644
--- a/libraries/opal/opal-ffmpeg.patch
+++ b/libraries/opal/ffmpeg2.patch
@@ -1,21 +1,158 @@
-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
-+++ opal-3.10.10/plugins/video/H.263-1998/Makefile.in 2013-09-10 21:43:11.091108557 +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.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
-+++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx 2013-09-10 21:43:11.091108557 +0200
+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"
+{
@@ -27,14 +164,14 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10
@@ -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+
+ // Level 2+
// works with eyeBeam, signaled via non-standard "D"
if (atoi(value) == 1)
- m_context->flags |= CODEC_FLAG_H263P_UMV;
@@ -44,7 +181,7 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10
+ 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
@@ -68,7 +205,7 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10
+ 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
@@ -80,11 +217,11 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10
+ 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);
@@ -96,20 +233,20 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10
-
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;
@@ -120,48 +257,60 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10
- 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
-+++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.h 2013-09-10 21:43:11.091108557 +0200
+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.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
-+++ opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx 2013-09-10 21:43:11.091108557 +0200
+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 <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
-+++ opal-3.10.10/plugins/video/H.264/h264-x264.cxx 2013-09-10 21:43:11.091108557 +0200
+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;
@@ -173,33 +322,33 @@ diff -Naur opal-3.10.10-orig/plugins/video/H.264/h264-x264.cxx opal-3.10.10/plug
+ 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
-+++ opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx 2013-09-10 21:43:11.091108557 +0200
+
+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
-+++ opal-3.10.10/plugins/video/MPEG4-ffmpeg/Makefile.in 2013-09-10 21:43:49.101654132 +0200
+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
-+++ opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-09-10 21:43:11.091108557 +0200
+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 */
@@ -247,143 +396,3 @@ diff -Naur opal-3.10.10-orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.10/p
m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations
}
-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
-+++ opal-3.10.10/plugins/video/common/dyna.cxx 2013-09-10 21:43:11.091108557 +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
-+++ opal-3.10.10/plugins/video/common/dyna.h 2013-09-10 21:43:11.091108557 +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
-+++ opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-09-10 21:43:11.094441937 +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 --git a/libraries/opal/opal.SlackBuild b/libraries/opal/opal.SlackBuild
index ab4de8a733c03..ca382bc4ef91a 100644
--- a/libraries/opal/opal.SlackBuild
+++ b/libraries/opal/opal.SlackBuild
@@ -25,12 +25,12 @@
PRGNAM=opal
VERSION=${VERSION:-3.10.10}
-BUILD=${BUILD:-2}
+BUILD=${BUILD:-3}
TAG=${TAG:-_SBo}
if [ -z "$ARCH" ]; then
case "$( uname -m )" in
- i?86) ARCH=i486 ;;
+ i?86) ARCH=i586 ;;
arm*) ARCH=arm ;;
*) ARCH=$( uname -m ) ;;
esac
@@ -41,21 +41,17 @@ TMP=${TMP:-/tmp/SBo}
PKG=$TMP/package-$PRGNAM
OUTPUT=${OUTPUT:-/tmp}
-# The -D__STDC_CONSTANT_MACROS thing is required to build against ffmpeg 0.6
-# Retrieved from
-# http://sources.gentoo.org/cgi-bin/viewvc.cgi/gentoo-x86/net-libs/opal/opal-3.6.7.ebuild?r1=1.3&r2=1.4
-# Thanks to the Gentoo folks for coming up with this fix!
-if [ "$ARCH" = "i486" ]; then
- SLKCFLAGS="-O2 -march=i486 -mtune=i686 -D__STDC_CONSTANT_MACROS"
+if [ "$ARCH" = "i586" ]; then
+ SLKCFLAGS="-O2 -march=i586 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "i686" ]; then
- SLKCFLAGS="-O2 -march=i686 -mtune=i686 -D__STDC_CONSTANT_MACROS"
+ SLKCFLAGS="-O2 -march=i686 -mtune=i686"
LIBDIRSUFFIX=""
elif [ "$ARCH" = "x86_64" ]; then
- SLKCFLAGS="-O2 -fPIC -D__STDC_CONSTANT_MACROS"
+ SLKCFLAGS="-O2 -fPIC"
LIBDIRSUFFIX="64"
else
- SLKCFLAGS="-O2 -D__STDC_CONSTANT_MACROS"
+ SLKCFLAGS="-O2"
LIBDIRSUFFIX=""
fi
@@ -68,12 +64,6 @@ rm -rf $PRGNAM-$VERSION
tar xvf $CWD/$PRGNAM-$VERSION.tar.xz
cd $PRGNAM-$VERSION
-(
- cd plugins
- aclocal
- autoconf
-)
-
chown -R root:root .
find -L . \
\( -perm 777 -o -perm 775 -o -perm 750 -o -perm 711 -o -perm 555 \
@@ -81,7 +71,22 @@ find -L . \
\( -perm 666 -o -perm 664 -o -perm 640 -o -perm 600 -o -perm 444 \
-o -perm 440 -o -perm 400 \) -exec chmod 644 {} \;
-patch -p1 < $CWD/opal-ffmpeg.patch
+# 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" \
@@ -91,6 +96,37 @@ CXXFLAGS="$SLKCFLAGS" \
--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