From 8136f8edb010df5f33390027a584d30ae9c27d21 Mon Sep 17 00:00:00 2001 From: David Woodfall Date: Mon, 5 Feb 2018 11:41:27 +0000 Subject: libraries/opal: Updated for version 3.10.10. Signed-off-by: David Spencer --- libraries/opal/README | 3 +- libraries/opal/ffmpeg2.patch | 398 +++++++++++++++++++++++++++++++++++++++ libraries/opal/opal-ffmpeg.patch | 389 -------------------------------------- libraries/opal/opal.SlackBuild | 72 +++++-- 4 files changed, 453 insertions(+), 409 deletions(-) create mode 100644 libraries/opal/ffmpeg2.patch delete mode 100644 libraries/opal/opal-ffmpeg.patch diff --git a/libraries/opal/README b/libraries/opal/README index c0a84e54c98d..a6a7e53e8814 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/ffmpeg2.patch b/libraries/opal/ffmpeg2.patch new file mode 100644 index 000000000000..80dca469d947 --- /dev/null +++ b/libraries/opal/ffmpeg2.patch @@ -0,0 +1,398 @@ +patch from: http://www.linuxfromscratch.org/blfs/view/svn/multimedia/opal.html + +Submitted By: Igor Živković +Date: 2013-10-08 +Initial Package Version: 3.10.10 +Upstream Status: Unknown +Origin: Gentoo +Description: Fixes building against FFmpeg version >= 2.0.0 + +diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.cxx opal-3.10.10/plugins/video/common/dyna.cxx +--- opal-3.10.10.orig/plugins/video/common/dyna.cxx 2013-02-20 03:18:05.000000000 +0100 ++++ plugins/video/common/dyna.cxx 2013-10-08 12:57:25.058873513 +0200 +@@ -210,7 +210,7 @@ + #endif + + +-FFMPEGLibrary::FFMPEGLibrary(CodecID codec) ++FFMPEGLibrary::FFMPEGLibrary(AVCodecID codec) + { + m_codec = codec; + if (m_codec==CODEC_ID_H264) +@@ -348,12 +348,12 @@ + return true; + } + +-AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum CodecID id) ++AVCodec *FFMPEGLibrary::AvcodecFindEncoder(enum AVCodecID id) + { + return Favcodec_find_encoder(id); + } + +-AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum CodecID id) ++AVCodec *FFMPEGLibrary::AvcodecFindDecoder(enum AVCodecID id) + { + WaitAndSignal m(processLock); + +diff -Naur opal-3.10.10.orig/plugins/video/common/dyna.h opal-3.10.10/plugins/video/common/dyna.h +--- opal-3.10.10.orig/plugins/video/common/dyna.h 2013-02-20 03:18:05.000000000 +0100 ++++ plugins/video/common/dyna.h 2013-10-08 12:57:25.058873513 +0200 +@@ -88,13 +88,13 @@ + class FFMPEGLibrary + { + public: +- FFMPEGLibrary(CodecID codec); ++ FFMPEGLibrary(AVCodecID codec); + ~FFMPEGLibrary(); + + bool Load(); + +- AVCodec *AvcodecFindEncoder(enum CodecID id); +- AVCodec *AvcodecFindDecoder(enum CodecID id); ++ AVCodec *AvcodecFindEncoder(enum AVCodecID id); ++ AVCodec *AvcodecFindDecoder(enum AVCodecID id); + AVCodecContext *AvcodecAllocContext(void); + AVFrame *AvcodecAllocFrame(void); + int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec); +@@ -117,15 +117,15 @@ + DynaLink m_libAvcodec; + DynaLink m_libAvutil; + +- CodecID m_codec; ++ AVCodecID m_codec; + char m_codecString[32]; + + void (*Favcodec_init)(void); + void (*Fav_init_packet)(AVPacket *pkt); + + void (*Favcodec_register_all)(void); +- AVCodec *(*Favcodec_find_encoder)(enum CodecID id); +- AVCodec *(*Favcodec_find_decoder)(enum CodecID id); ++ AVCodec *(*Favcodec_find_encoder)(enum AVCodecID id); ++ AVCodec *(*Favcodec_find_decoder)(enum AVCodecID id); + AVCodecContext *(*Favcodec_alloc_context)(void); + AVFrame *(*Favcodec_alloc_frame)(void); + int (*Favcodec_open)(AVCodecContext *ctx, AVCodec *codec); +diff -Naur opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h opal-3.10.10/plugins/video/common/ffmpeg/libavcodec/avcodec.h +--- opal-3.10.10.orig/plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-02-20 03:18:04.000000000 +0100 ++++ plugins/video/common/ffmpeg/libavcodec/avcodec.h 2013-10-08 12:57:25.060873488 +0200 +@@ -101,7 +101,7 @@ + * 1. no value of a existing codec ID changes (that would break ABI), + * 2. it is as close as possible to similar codecs. + */ +-enum CodecID { ++enum AVCodecID { + CODEC_ID_NONE, + + /* video codecs */ +@@ -1390,7 +1390,7 @@ + + char codec_name[32]; + enum AVMediaType codec_type; /* see AVMEDIA_TYPE_xxx */ +- enum CodecID codec_id; /* see CODEC_ID_xxx */ ++ enum AVCodecID codec_id; /* see CODEC_ID_xxx */ + + /** + * fourcc (LSB first, so "ABCD" -> ('D'<<24) + ('C'<<16) + ('B'<<8) + 'A'). +@@ -2843,7 +2843,7 @@ + */ + const char *name; + enum AVMediaType type; +- enum CodecID id; ++ enum AVCodecID id; + int priv_data_size; + int (*init)(AVCodecContext *); + int (*encode)(AVCodecContext *, uint8_t *buf, int buf_size, void *data); +@@ -2898,7 +2898,7 @@ + * + * See CODEC_ID_xxx + */ +- enum CodecID id; ++ enum AVCodecID id; + + /** + * Supported pixel format. +@@ -3402,10 +3402,10 @@ + /** + * Find a registered encoder with a matching codec ID. + * +- * @param id CodecID of the requested encoder ++ * @param id AVCodecID of the requested encoder + * @return An encoder if one was found, NULL otherwise. + */ +-AVCodec *avcodec_find_encoder(enum CodecID id); ++AVCodec *avcodec_find_encoder(enum AVCodecID id); + + /** + * Find a registered encoder with the specified name. +@@ -3418,10 +3418,10 @@ + /** + * Find a registered decoder with a matching codec ID. + * +- * @param id CodecID of the requested decoder ++ * @param id AVCodecID of the requested decoder + * @return A decoder if one was found, NULL otherwise. + */ +-AVCodec *avcodec_find_decoder(enum CodecID id); ++AVCodec *avcodec_find_decoder(enum AVCodecID id); + + /** + * Find a registered decoder with the specified name. +@@ -3822,7 +3822,7 @@ + * @param[in] codec_id the codec + * @return Number of bits per sample or zero if unknown for the given codec. + */ +-int av_get_bits_per_sample(enum CodecID codec_id); ++int av_get_bits_per_sample(enum AVCodecID codec_id); + + #if FF_API_OLD_SAMPLE_FMT + /** +diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx opal-3.10.10/plugins/video/H.263-1998/h263-1998.cxx +--- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.cxx 2013-02-20 03:18:03.000000000 +0100 ++++ plugins/video/H.263-1998/h263-1998.cxx 2013-10-08 12:57:25.061873475 +0200 +@@ -48,6 +48,10 @@ + #endif + + #include "h263-1998.h" ++extern "C" ++{ ++#include ++} + #include + #include + #include +@@ -203,7 +207,7 @@ + PTRACE(4, m_prefix, "Encoder closed"); + } + +-bool H263_Base_EncoderContext::Init(CodecID codecId) ++bool H263_Base_EncoderContext::Init(AVCodecID codecId) + { + PTRACE(5, m_prefix, "Opening encoder"); + +@@ -317,9 +321,9 @@ + // Level 2+ + // works with eyeBeam, signaled via non-standard "D" + if (atoi(value) == 1) +- m_context->flags |= CODEC_FLAG_H263P_UMV; ++ av_opt_set_int(m_context->priv_data, "umv", 1, 0); + else +- m_context->flags &= ~CODEC_FLAG_H263P_UMV; ++ av_opt_set_int(m_context->priv_data, "umv", 0, 0); + return; + } + +@@ -328,9 +332,9 @@ + // Annex F: Advanced Prediction Mode + // does not work with eyeBeam + if (atoi(value) == 1) +- m_context->flags |= CODEC_FLAG_OBMC; ++ av_opt_set_int(m_context->priv_data, "obmc", 1, 0); + else +- m_context->flags &= ~CODEC_FLAG_OBMC; ++ av_opt_set_int(m_context->priv_data, "obmc", 0, 0); + return; + } + #endif +@@ -360,9 +364,9 @@ + // Annex K: Slice Structure + // does not work with eyeBeam + if (atoi(value) != 0) +- m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; ++ av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0); + else +- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; ++ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); + return; + } + +@@ -370,9 +374,9 @@ + // Annex S: Alternative INTER VLC mode + // does not work with eyeBeam + if (atoi(value) == 1) +- m_context->flags |= CODEC_FLAG_H263P_AIV; ++ av_opt_set_int(m_context->priv_data, "aiv", 1, 0); + else +- m_context->flags &= ~CODEC_FLAG_H263P_AIV; ++ av_opt_set_int(m_context->priv_data, "aiv", 0, 0); + return; + } + +@@ -450,15 +454,6 @@ + PTRACE(5, m_prefix, "qmax set to " << m_context->qmax); + PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size); + +- #define CODEC_TRACER_FLAG(tracer, flag) \ +- PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled")); +- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV); +- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC); +- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED); +- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT) +- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER); +- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV); +- + return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0; + } + +@@ -521,7 +516,7 @@ + + // Need to copy to local buffer to guarantee 16 byte alignment + memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2); +- m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE; ++ m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE; + + /* + m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE; +@@ -603,13 +598,13 @@ + m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack; + m_context->opaque = this; // used to separate out packets from different encode threads + +- m_context->flags &= ~CODEC_FLAG_H263P_UMV; ++ av_opt_set_int(m_context->priv_data, "umv", 0, 0); + m_context->flags &= ~CODEC_FLAG_4MV; + #if LIBAVCODEC_RTP_MODE + m_context->flags &= ~CODEC_FLAG_H263P_AIC; + #endif +- m_context->flags &= ~CODEC_FLAG_H263P_AIV; +- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; ++ av_opt_set_int(m_context->priv_data, "aiv", 0, 0); ++ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); + + return true; + } +diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h opal-3.10.10/plugins/video/H.263-1998/h263-1998.h +--- opal-3.10.10.orig/plugins/video/H.263-1998/h263-1998.h 2013-02-20 03:18:03.000000000 +0100 ++++ plugins/video/H.263-1998/h263-1998.h 2013-10-08 12:57:25.062873463 +0200 +@@ -115,7 +115,7 @@ + virtual ~H263_Base_EncoderContext(); + + virtual bool Init() = 0; +- virtual bool Init(CodecID codecId); ++ virtual bool Init(AVCodecID codecId); + + virtual bool SetOptions(const char * const * options); + virtual void SetOption(const char * option, const char * value); +diff -Naur opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in opal-3.10.10/plugins/video/H.263-1998/Makefile.in +--- opal-3.10.10.orig/plugins/video/H.263-1998/Makefile.in 2013-02-20 03:18:03.000000000 +0100 ++++ plugins/video/H.263-1998/Makefile.in 2013-10-08 12:57:25.062873463 +0200 +@@ -35,7 +35,7 @@ + $(COMMONDIR)/dyna.cxx + + CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) +-LIBS += @DL_LIBS@ ++LIBS += @DL_LIBS@ @LIBAVUTIL_LIBS@ + + HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@ + ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes) +diff -Naur opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx opal-3.10.10/plugins/video/H.264/gpl/h264_helper.cxx +--- opal-3.10.10.orig/plugins/video/H.264/gpl/h264_helper.cxx 2013-02-20 03:18:02.000000000 +0100 ++++ plugins/video/H.264/gpl/h264_helper.cxx 2013-10-08 12:57:25.062873463 +0200 +@@ -27,6 +27,7 @@ + #include + #include + #include ++#include + + #ifdef HAVE_UNISTD_H + #include +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 + + #include "../common/ffmpeg.h" +@@ -1071,13 +1074,10 @@ + return false; + + m_context->workaround_bugs = FF_BUG_AUTODETECT; +- m_context->error_recognition = FF_ER_AGGRESSIVE; + m_context->idct_algo = FF_IDCT_H264; + m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK; + m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE; +- m_context->flags2 = CODEC_FLAG2_BRDO | +- CODEC_FLAG2_MEMC_ONLY | +- CODEC_FLAG2_DROP_FRAME_TIMECODE | ++ m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE | + CODEC_FLAG2_SKIP_RD | + CODEC_FLAG2_CHUNKS; + +diff -Naur opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx +--- opal-3.10.10.orig/plugins/video/H.264/shared/x264wrap.cxx 2013-02-20 03:18:02.000000000 +0100 ++++ plugins/video/H.264/shared/x264wrap.cxx 2013-10-08 12:57:25.064873438 +0200 +@@ -33,6 +33,7 @@ + + #include + #include ++#include + + #ifdef HAVE_UNISTD_H + #include +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 + # Also add libavutil, so ffmpeg headers can #include "log.h". +diff -Naur opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx opal-3.10.10/plugins/video/MPEG4-ffmpeg/mpeg4.cxx +--- opal-3.10.10.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-02-20 03:18:07.000000000 +0100 ++++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx 2013-10-08 12:57:25.065873425 +0200 +@@ -103,6 +103,7 @@ + + #else /* LIBAVCODEC_HAVE_SOURCE_DIR */ + #include "../common/ffmpeg.h" ++#include + #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */ + } + +@@ -589,17 +590,17 @@ + m_avpicture->quality = m_videoQMin; + + #ifdef USE_ORIG +- m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning ++ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); + m_avcontext->flags |= CODEC_FLAG_4MV; // 4 motion vectors + #else + m_avcontext->max_b_frames=0; /*don't use b frames*/ + m_avcontext->flags|=CODEC_FLAG_AC_PRED; +- m_avcontext->flags|=CODEC_FLAG_H263P_UMV; ++ av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0); + /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */ + m_avcontext->flags|=CODEC_FLAG_4MV; + m_avcontext->flags|=CODEC_FLAG_GMC; + m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER; +- m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT; ++ av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0); + #endif + m_avcontext->opaque = this; // for use in RTP callback + } +@@ -804,7 +805,7 @@ + // Should the next frame be an I-Frame? + if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0)) + { +- m_avpicture->pict_type = FF_I_TYPE; ++ m_avpicture->pict_type = AV_PICTURE_TYPE_I; + } + else // No IFrame requested, let avcodec decide what to do + { +@@ -1325,7 +1326,7 @@ + + void MPEG4DecoderContext::SetStaticDecodingParams() { + m_avcontext->flags |= CODEC_FLAG_4MV; +- m_avcontext->flags |= CODEC_FLAG_PART; ++ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); + m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations + } + diff --git a/libraries/opal/opal-ffmpeg.patch b/libraries/opal/opal-ffmpeg.patch deleted file mode 100644 index de828b5b2bfa..000000000000 --- a/libraries/opal/opal-ffmpeg.patch +++ /dev/null @@ -1,389 +0,0 @@ -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 -@@ -48,6 +48,10 @@ - #endif - - #include "h263-1998.h" -+extern "C" -+{ -+#include -+} - #include - #include - #include -@@ -203,7 +207,7 @@ - PTRACE(4, m_prefix, "Encoder closed"); - } - --bool H263_Base_EncoderContext::Init(CodecID codecId) -+bool H263_Base_EncoderContext::Init(AVCodecID codecId) - { - PTRACE(5, m_prefix, "Opening encoder"); - -@@ -317,9 +321,9 @@ - // Level 2+ - // works with eyeBeam, signaled via non-standard "D" - if (atoi(value) == 1) -- m_context->flags |= CODEC_FLAG_H263P_UMV; -+ av_opt_set_int(m_context->priv_data, "umv", 1, 0); - else -- m_context->flags &= ~CODEC_FLAG_H263P_UMV; -+ av_opt_set_int(m_context->priv_data, "umv", 0, 0); - return; - } - -@@ -328,9 +332,9 @@ - // Annex F: Advanced Prediction Mode - // does not work with eyeBeam - if (atoi(value) == 1) -- m_context->flags |= CODEC_FLAG_OBMC; -+ av_opt_set_int(m_context->priv_data, "obmc", 1, 0); - else -- m_context->flags &= ~CODEC_FLAG_OBMC; -+ av_opt_set_int(m_context->priv_data, "obmc", 0, 0); - return; - } - #endif -@@ -360,9 +364,9 @@ - // Annex K: Slice Structure - // does not work with eyeBeam - if (atoi(value) != 0) -- m_context->flags |= CODEC_FLAG_H263P_SLICE_STRUCT; -+ av_opt_set_int(m_context->priv_data, "structured_slices", 1, 0); - else -- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; -+ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); - return; - } - -@@ -370,9 +374,9 @@ - // Annex S: Alternative INTER VLC mode - // does not work with eyeBeam - if (atoi(value) == 1) -- m_context->flags |= CODEC_FLAG_H263P_AIV; -+ av_opt_set_int(m_context->priv_data, "aiv", 1, 0); - else -- m_context->flags &= ~CODEC_FLAG_H263P_AIV; -+ av_opt_set_int(m_context->priv_data, "aiv", 0, 0); - return; - } - -@@ -450,15 +454,6 @@ - PTRACE(5, m_prefix, "qmax set to " << m_context->qmax); - PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size); - -- #define CODEC_TRACER_FLAG(tracer, flag) \ -- PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled")); -- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV); -- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC); -- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED); -- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT) -- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER); -- CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV); -- - return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0; - } - -@@ -521,7 +516,7 @@ - - // Need to copy to local buffer to guarantee 16 byte alignment - memcpy(m_inputFrame->data[0], OPAL_VIDEO_FRAME_DATA_PTR(header), header->width*header->height*3/2); -- m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? FF_I_TYPE : AV_PICTURE_TYPE_NONE; -+ m_inputFrame->pict_type = (flags & PluginCodec_CoderForceIFrame) ? AV_PICTURE_TYPE_I : AV_PICTURE_TYPE_NONE; - - /* - m_inputFrame->pts = (int64_t)srcRTP.GetTimestamp()*m_context->time_base.den/m_context->time_base.num/VIDEO_CLOCKRATE; -@@ -603,13 +598,13 @@ - m_context->rtp_callback = &H263_RFC2190_EncoderContext::RTPCallBack; - m_context->opaque = this; // used to separate out packets from different encode threads - -- m_context->flags &= ~CODEC_FLAG_H263P_UMV; -+ av_opt_set_int(m_context->priv_data, "umv", 0, 0); - m_context->flags &= ~CODEC_FLAG_4MV; - #if LIBAVCODEC_RTP_MODE - m_context->flags &= ~CODEC_FLAG_H263P_AIC; - #endif -- m_context->flags &= ~CODEC_FLAG_H263P_AIV; -- m_context->flags &= ~CODEC_FLAG_H263P_SLICE_STRUCT; -+ av_opt_set_int(m_context->priv_data, "aiv", 0, 0); -+ av_opt_set_int(m_context->priv_data, "structured_slices", 0, 0); - - return true; - } -diff -Naur opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.h opal-3.10.10/plugins/video/H.263-1998/h263-1998.h ---- opal-3.10.10-orig/plugins/video/H.263-1998/h263-1998.h 2013-02-20 03:18:03.000000000 +0100 -+++ opal-3.10.10/plugins/video/H.263-1998/h263-1998.h 2013-09-10 21:43:11.091108557 +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 -@@ -27,6 +27,7 @@ - #include - #include - #include -+#include - - #ifdef HAVE_UNISTD_H - #include -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 -@@ -40,6 +40,9 @@ - #include "plugin-config.h" - #endif - -+#define FF_IDCT_H264 11 -+#define CODEC_FLAG2_SKIP_RD 0x00004000 -+ - #include - - #include "../common/ffmpeg.h" -@@ -1071,13 +1074,10 @@ - return false; - - m_context->workaround_bugs = FF_BUG_AUTODETECT; -- m_context->error_recognition = FF_ER_AGGRESSIVE; - m_context->idct_algo = FF_IDCT_H264; - m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK; - m_context->flags = CODEC_FLAG_INPUT_PRESERVED | CODEC_FLAG_EMU_EDGE; -- m_context->flags2 = CODEC_FLAG2_BRDO | -- CODEC_FLAG2_MEMC_ONLY | -- CODEC_FLAG2_DROP_FRAME_TIMECODE | -+ m_context->flags2 = CODEC_FLAG2_DROP_FRAME_TIMECODE | - CODEC_FLAG2_SKIP_RD | - CODEC_FLAG2_CHUNKS; - -diff -Naur opal-3.10.10-orig/plugins/video/H.264/shared/x264wrap.cxx opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx ---- opal-3.10.10-orig/plugins/video/H.264/shared/x264wrap.cxx 2013-02-20 03:18:02.000000000 +0100 -+++ opal-3.10.10/plugins/video/H.264/shared/x264wrap.cxx 2013-09-10 21:43:11.091108557 +0200 -@@ -33,6 +33,7 @@ - - #include - #include -+#include - - #ifdef HAVE_UNISTD_H - #include -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 -@@ -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 - # 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 -@@ -103,6 +103,7 @@ - - #else /* LIBAVCODEC_HAVE_SOURCE_DIR */ - #include "../common/ffmpeg.h" -+#include - #endif /* LIBAVCODEC_HAVE_SOURCE_DIR */ - } - -@@ -589,17 +590,17 @@ - m_avpicture->quality = m_videoQMin; - - #ifdef USE_ORIG -- m_avcontext->flags |= CODEC_FLAG_PART; // data partitioning -+ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); - m_avcontext->flags |= CODEC_FLAG_4MV; // 4 motion vectors - #else - m_avcontext->max_b_frames=0; /*don't use b frames*/ - m_avcontext->flags|=CODEC_FLAG_AC_PRED; -- m_avcontext->flags|=CODEC_FLAG_H263P_UMV; -+ av_opt_set_int(m_avcontext->priv_data, "umv", 1, 0); - /*c->flags|=CODEC_FLAG_QPEL;*/ /*don't enable this one: this forces profile_level to advanced simple profile */ - m_avcontext->flags|=CODEC_FLAG_4MV; - m_avcontext->flags|=CODEC_FLAG_GMC; - m_avcontext->flags|=CODEC_FLAG_LOOP_FILTER; -- m_avcontext->flags|=CODEC_FLAG_H263P_SLICE_STRUCT; -+ av_opt_set_int(m_avcontext->priv_data, "structured_slices", 1, 0); - #endif - m_avcontext->opaque = this; // for use in RTP callback - } -@@ -804,7 +805,7 @@ - // Should the next frame be an I-Frame? - if ((flags & PluginCodec_CoderForceIFrame) || (m_frameNum == 0)) - { -- m_avpicture->pict_type = FF_I_TYPE; -+ m_avpicture->pict_type = AV_PICTURE_TYPE_I; - } - else // No IFrame requested, let avcodec decide what to do - { -@@ -1325,7 +1326,7 @@ - - void MPEG4DecoderContext::SetStaticDecodingParams() { - m_avcontext->flags |= CODEC_FLAG_4MV; -- m_avcontext->flags |= CODEC_FLAG_PART; -+ av_opt_set_int(m_avcontext->priv_data, "data_partitionin", 1, 0); - m_avcontext->workaround_bugs = 0; // no workaround for buggy implementations - } - -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 ab4de8a733c0..ca382bc4ef91 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 -- cgit v1.2.3