diff --git a/net-libs/opal/Manifest b/net-libs/opal/Manifest new file mode 100644 index 0000000..14c78e2 --- /dev/null +++ b/net-libs/opal/Manifest @@ -0,0 +1,12 @@ +AUX opal-3.10.10-ffmpeg2-1.patch 15039 SHA256 34176e949bc874d927157316141e6c043cfef9a98bc094490eb0c30db85b8ef2 SHA512 606eb31858505c03086e963d2f75108f7ef1e6653beb46d4bc5c8ec5672fca06c653ae82689cacd6278bad32d243c4822ba9ab87500626380ca74c39081d8a82 WHIRLPOOL 8ab5ced9a8cdb2ada23d953321ff7b06477cc309a0ff43f1bfa1ad00db499bcf2b8548998e4428bfc6f5d4dfc1fb956e53aae7a88a677b0378e1ac46e01b1031 +AUX opal-3.10.11-libav9-gentoo.patch 8068 SHA256 d48e23242c1d588bdb75277697a8ad8e69513dd2c9588b18065ba92885e072af SHA512 b99d9c91bed8537d12b145053e7796e2acbb42a99bb6d415a5a02dbfc6a37e26582d076e92a032ee537071cf367e9dae3af5aa2819a1a715d062a5256665a1d2 WHIRLPOOL 3ed367fc41bb6b6c0447dbadac53d889ca5d76aa826ea682f153213c07cff062140b6d8dedff9126b07f061c8bf70b9bfb96a0bf8680638132714d18679faad4 +AUX opal-3.10.9-avoid_cflags_mixup.patch 5378 SHA256 80a41d81a1caeaee31c43c7b71bac9943692eed3e6a5f7f5c4a1bf837cd391e7 SHA512 fdc6b52db3bd299d2235ebdb917921d3c9d01a03ffed65e8e4b833e66da21bde4c1497740a38a41f3d7393a6c65969a64587612a11c9590904b66c9fb86e1e7e WHIRLPOOL fc1d97a7180d50748b521cb345b58487e2183506b68d5d952f004d3f382cd77171b222187fa4bd92510026781012d601c23ec23f5df8023ad3e9ec73c5e98b0c +AUX opal-3.10.9-disable-h323-workaround.patch 498 SHA256 b1d943f7eb33c1828bf5a086abe1256dac55ce7f9a9cd16cbe9fa72b00d7ede2 SHA512 58e8ef12c39bce3a4d386b2b6033e1e242852bbf78371c58e91bd020cfcd95b40a9831db91fa76da431a9f8c4bb40c846b420e3a462dad77658a37c2281a9d39 WHIRLPOOL 6c590b837ebdcb11491aa3b9759d6c7e5930aa07d294bcfd473327f37866df97400bf1de588da853b6c807a233c23388359ac5a1e27c05ae1d4cc361585b98ae +AUX opal-3.10.9-ffmpeg.patch 7084 SHA256 194a95dbb0905f37c6778f628baddc962249c6cbc0b000197ebd8233b1d9c6ad SHA512 109c41fd92793bafdbbf066d5f7e33175be4034fe2a1ce2bd1df8f569e86101d04617151df851025da17c7b46bb345022200990c36bbb47f940afcea306a6701 WHIRLPOOL adb1f24df323f85ea9be1349ce238705cfa656137f96fcd7a45278e4aebfd774f70c8b38e9efa05576fb6be460e32af90ec7e5666ab2050986c959c75b6551fb +AUX opal-3.10.9-java-ruby-swig-fix.patch 874 SHA256 f813a831ac8d8c6c47f951125c1c8e971849d21a9cd7403e2bd72d39a5718930 SHA512 a7132cd6ad61d143cc11e00a048aaf66e1802890ac5fbde7ff964f99dc45a3abc79a081572cbdae5a84a50eee8af11266695a5de9c2691385c6f849e27105022 WHIRLPOOL ea85ac9c3603ff0a9eaf955f232c0197c35bb39ddce9a7d28c0f682e16e3660534eab0c5106bc8395ed2ac2445fb8f615d567e5ad607b5089331c116c4ae16db +AUX opal-3.10.9-labs_is_in_stdlib.patch 532 SHA256 c6d7613fc79d7f1134a4ff9246591d96ab9c264f0c8250b1cf51a33cdafa1fc7 SHA512 f1342804fec2e6422d499f776a39dff2e36e5604e2d43084322c9fd0b4bf7d511852c3ca02dc072d133b9204b4984b4400f56846f58cc2edfc0446176cdbfcf5 WHIRLPOOL 271170a5a2adcffac9d49e146a9a3e947790b155d224cc64800eb773b31a11c34309bfa8c28083534f8e230cc3aa3ae83a6a912a266cbb681b3c120e8ae794aa +AUX opal-3.10.9-svn_revision_override.patch 456 SHA256 78e84456c02f9a8c51f60dfff4882875c2fbefc2ac7953ed96a0dba30ed0e450 SHA512 b78843500d1d90ce11e8620fdad9f4a97184ee603a839828c39aad85d5f33bb08bd776f2faaf7c86e364cd4dc4d3166485d74dd66551ce508c9bee22a336d2ee WHIRLPOOL c82b0ffeba8315d1e0e3e7250dba1c3de17e095b68dcd110539920fb6f99ba9f4a4e5ccf3e97e785b15696c5703a546f08c999dda4d71614a0fdf13074e20197 +DIST opal-3.10.11-htmldoc.tar.bz2 2944338 SHA256 66708e69f1bea6a1160f3aa904643f49b2e2679822c1446d5aeb1f29dd973cea SHA512 6075487344d4cfa5c2e2219376e3eccd98028475eac6f89d20d24d611a8806a27eb354ce8e77e16c620c8cb3d398b9502082f3fe8f67763d3f67feea835819b5 WHIRLPOOL a23aafd7da85d00db2c285641ab75f1c0850c6eaaaa649c8278891282d86312d062be7ac4d89ec3955eac11eb91c018c7b05a89282b35f1b129af90f36e34033 +DIST opal-3.10.11.tar.bz2 8590616 SHA256 f38e7969e88a28dd9a10a6051315aceecde79d0bbd1a35676868dc5787aed706 SHA512 970745375e7ebb29178ce9d0bc29254e69dd952e5f754038979a8613489a26f0fb68d63ec2709ffa1964e50fe9cfde874489f683a451d83e7a075d62d9228fa1 WHIRLPOOL b4387f8a664c2763f1e62dc16772ce869dee6d5aaac271ef0013d1e7f207d19c5e3578c26215ce246c278bc4de9aa538dabae8a3b6a794b250a5f30f9be7d206 +EBUILD opal-3.10.11.ebuild 7576 SHA256 068fe5ff3b45849f9ef03e20d02a9643c04d70e2cae5b52def7882401d95c38d SHA512 a09b032b7c02865284234ed290b216380f7c2923100021761206791e3349ecf5b187483850c3916384611198672e00246408e2222a7c6c37023839754b50459c WHIRLPOOL a1850589b9e918815434073e84a3aa5afd16d111aeefa6181808872c75fefd5497596327841bc6f8ca8d307af13b095db67328882e5993b61562a8b0da9de9a3 +MISC metadata.xml 1991 SHA256 385a70843594d4b14a0d425ba1cbbd5d86a1ce2e9a60de8fb7839c70ff1681df SHA512 13f09ef3f906a17908dd0d68994fedf6c81f92e4e87b781f7bbb9c0927148450ba782d7b06af94d1f1f1bc7a2e4d916e5467d5ed6c94e3674dfda81c3e1a5d74 WHIRLPOOL 59e405b40be0385f08142784f4adb6b6774f2ddf5353e97228d721f6c305f8235d3e617e576d429510d1c53eaf591e4de4be64e78d36063f58f69979f54b189f diff --git a/net-libs/opal/files/opal-3.10.10-ffmpeg2-1.patch b/net-libs/opal/files/opal-3.10.10-ffmpeg2-1.patch new file mode 100644 index 0000000..6b58ac2 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.10-ffmpeg2-1.patch @@ -0,0 +1,396 @@ +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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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 ++++ opal-3.10.10/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/net-libs/opal/files/opal-3.10.11-libav9-gentoo.patch b/net-libs/opal/files/opal-3.10.11-libav9-gentoo.patch new file mode 100644 index 0000000..6288866 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.11-libav9-gentoo.patch @@ -0,0 +1,262 @@ +--- plugins/video/common/dyna.cxx ++++ plugins/video/common/dyna.cxx +@@ -37,6 +37,7 @@ + * Craig Southeren (craigs@postincrement.com) + * Matthias Schneider (ma30002000@yahoo.de) + */ ++#include + #include "dyna.h" + + bool DynaLink::Open(const char *name) +@@ -210,14 +211,14 @@ + #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; + } +@@ -348,12 +349,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); + +--- plugins/video/common/dyna.h ++++ plugins/video/common/dyna.h +@@ -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); +--- plugins/video/H.263-1998/h263-1998.cxx ++++ plugins/video/H.263-1998/h263-1998.cxx +@@ -43,6 +43,12 @@ + * $Date: 2014/04/29 09:02:06 $ + */ + ++#define CODEC_FLAG_H263P_UMV 0x02000000 ++#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000 ++#define CODEC_FLAG_H263P_AIV 0x00000008 ++#define CODEC_FLAG_OBMC 0x00000001 ++#define FF_I_TYPE 1 ++ + #ifndef PLUGIN_CODEC_DLL_EXPORTS + #include "plugin-config.h" + #endif +@@ -94,7 +100,7 @@ + { CIF16_WIDTH, CIF16_HEIGHT, PLUGINCODEC_CIF16_MPI }, + }; + +-static FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H263P); ++static FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H263P); + + + ///////////////////////////////////////////////////////////////////////////// +@@ -203,7 +209,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"); + +@@ -616,7 +622,7 @@ + + 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 +@@ -661,7 +667,7 @@ + + bool H263_RFC2429_EncoderContext::Init() + { +- return H263_Base_EncoderContext::Init(CODEC_ID_H263P); ++ return H263_Base_EncoderContext::Init(AV_CODEC_ID_H263P); + } + + +@@ -685,7 +691,7 @@ + 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; + } +--- plugins/video/H.263-1998/h263-1998.h ++++ plugins/video/H.263-1998/h263-1998.h +@@ -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); +--- plugins/video/H.263-1998/Makefile.in ++++ plugins/video/H.263-1998/Makefile.in +@@ -34,7 +34,7 @@ + $(COMMONDIR)/mpi.cxx \ + $(COMMONDIR)/dyna.cxx + +-CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) ++CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) -fpermissive + LIBS += @DL_LIBS@ + + HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@ +--- plugins/video/H.264/h264-x264.cxx ++++ plugins/video/H.264/h264-x264.cxx +@@ -36,6 +36,15 @@ + * $Date: 2014/04/29 09:02:06 $ + */ + ++#define FF_ER_AGGRESSIVE 3 ++#define CODEC_FLAG2_BRDO 0x00000400 ++#define CODEC_FLAG2_MEMC_ONLY 0x00001000 ++#define CODEC_FLAG2_DROP_FRAME_TIMECODE 0x00002000 ++#define CODEC_FLAG2_SKIP_RD 0x00004000 ///< RD optimal MB level residual skipping ++#define FF_IDCT_H264 11 ++ ++#include ++ + #ifndef PLUGIN_CODEC_DLL_EXPORTS + #include "plugin-config.h" + #endif +@@ -104,7 +113,7 @@ + + /////////////////////////////////////////////////////////////////////////////// + +-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H264); ++FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H264); + + PLUGINCODEC_CONTROL_LOG_FUNCTION_DEF + +@@ -1064,7 +1073,7 @@ + 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()) == NULL) +@@ -1072,7 +1081,7 @@ + + m_context->workaround_bugs = FF_BUG_AUTODETECT; + #ifdef FF_ER_AGGRESSIVE +- m_context->error_recognition = FF_ER_AGGRESSIVE; ++ m_context->err_recognition = FF_ER_AGGRESSIVE; + #endif + m_context->idct_algo = FF_IDCT_H264; + m_context->error_concealment = FF_EC_GUESS_MVS | FF_EC_DEBLOCK; + +--- plugins/video/MPEG4-ffmpeg/mpeg4.cxx ++++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx +@@ -53,6 +53,11 @@ + + */ + ++#define CODEC_FLAG_H263P_UMV 0x02000000 ++#define CODEC_FLAG_H263P_SLICE_STRUCT 0x10000000 ++#define FF_I_TYPE 1 ++#define CODEC_FLAG_PART 0x0080 ++ + // Plugin specific + #define _CRT_SECURE_NO_DEPRECATE + +@@ -205,7 +210,7 @@ + { 0 } + }; + +-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_MPEG4); ++FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_MPEG4); + + + static bool mpeg4IsIframe (BYTE * frameBuffer, unsigned int frameLen ) +@@ -701,7 +706,7 @@ + return false; + } + +- 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; + } +@@ -1391,7 +1396,7 @@ + + 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; + } +--- plugins/video/MPEG4-ffmpeg/Makefile.in ++++ plugins/video/MPEG4-ffmpeg/Makefile.in +@@ -30,7 +30,7 @@ + SRCDIR := . + SRCS := mpeg4.cxx $(COMMONDIR)/dyna.cxx + +-CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) ++CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) -fpermissive + LIBS += @DL_LIBS@ + + # Add LIBAVCODEC_SOURCE_DIR to the include path so we can #include diff --git a/net-libs/opal/files/opal-3.10.9-avoid_cflags_mixup.patch b/net-libs/opal/files/opal-3.10.9-avoid_cflags_mixup.patch new file mode 100644 index 0000000..7f9a3b5 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.9-avoid_cflags_mixup.patch @@ -0,0 +1,131 @@ +diff -uNr opal-3.10.8.orig/plugins/plugin-inc.mak.in opal-3.10.8/plugins/plugin-inc.mak.in +--- opal-3.10.8.orig/plugins/plugin-inc.mak.in 2012-10-24 12:07:31.000000000 -0400 ++++ opal-3.10.8/plugins/plugin-inc.mak.in 2012-10-24 12:09:22.000000000 -0400 +@@ -31,11 +31,13 @@ + CC := @CC@ + CXX := @CXX@ + CFLAGS += @CFLAGS@ -I@prefix@/include -I$(PLUGINDIR)/../include -I$(PLUGINDIR) ++CXXFLAGS += @CXXFLAGS@ -I@prefix@/include -I$(PLUGINDIR)/../include -I$(PLUGINDIR) + LDFLAGS += @LDFLAGS@ @LDSO@ + PLUGINEXT :=@PLUGINEXT@ + + ifneq ($(DEBUG),) + CFLAGS += -g ++CXXFLAGS += -g + endif + + OBJDIR := $(PLUGINDIR)/../lib_@OSTYPE@_@MACHTYPE@/plugins/$(BASENAME) +@@ -64,11 +66,11 @@ + + $(OBJDIR)/%.o : %.cxx + @mkdir -p $(OBJDIR) >/dev/null 2>&1 +- $(Q_CC)$(CXX) -c $(CXXFLAGS) $(CFLAGS) -o $@ $< ++ $(Q_CC)$(CXX) -c $(CXXFLAGS) -o $@ $< + + $(OBJDIR)/%.o : %.cpp + @mkdir -p $(OBJDIR) >/dev/null 2>&1 +- $(Q_CC)$(CXX) -c $(CXXFLAGS) $(CFLAGS) -o $@ $< ++ $(Q_CC)$(CXX) -c $(CXXFLAGS) -o $@ $< + + OBJECTS = $(addprefix $(OBJDIR)/,$(patsubst %.cxx,%.o,$(patsubst %.cpp,%.o,$(patsubst %.c,%.o,$(notdir $(SRCS)))))) + +diff -uNr opal-3.10.8.orig/plugins/video/H.261-vic/Makefile.in opal-3.10.8/plugins/video/H.261-vic/Makefile.in +--- opal-3.10.8.orig/plugins/video/H.261-vic/Makefile.in 2012-10-24 12:07:46.000000000 -0400 ++++ opal-3.10.8/plugins/video/H.261-vic/Makefile.in 2012-10-24 12:04:10.000000000 -0400 +@@ -39,7 +39,7 @@ + $(SRCDIR)/bv.c \ + + +-CFLAGS += -I$(COMMONDIR) ++CXXFLAGS += -I$(COMMONDIR) + + INSTALL_DIR := @VC_PLUGIN_DIR@ + PLUGINDIR := @PLUGINDIR@ +diff -uNr opal-3.10.8.orig/plugins/video/H.263-1998/Makefile.in opal-3.10.8/plugins/video/H.263-1998/Makefile.in +--- opal-3.10.8.orig/plugins/video/H.263-1998/Makefile.in 2012-10-24 12:08:02.000000000 -0400 ++++ opal-3.10.8/plugins/video/H.263-1998/Makefile.in 2012-10-24 12:04:00.000000000 -0400 +@@ -34,12 +34,12 @@ + $(COMMONDIR)/mpi.cxx \ + $(COMMONDIR)/dyna.cxx + +-CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) ++CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) + LIBS += @DL_LIBS@ + + HAVE_LIBAVCODEC_RTP_MODE=@HAVE_LIBAVCODEC_RTP_MODE@ + ifeq ($(HAVE_LIBAVCODEC_RTP_MODE),yes) +-CFLAGS += -DLIBAVCODEC_RTP_MODE=1 ++CXXFLAGS += -DLIBAVCODEC_RTP_MODE=1 + endif + + vpath %.cxx $(COMMONDIR) +diff -uNr opal-3.10.8.orig/plugins/video/H.264/gpl/Makefile.in opal-3.10.8/plugins/video/H.264/gpl/Makefile.in +--- opal-3.10.8.orig/plugins/video/H.264/gpl/Makefile.in 2012-10-24 12:06:15.000000000 -0400 ++++ opal-3.10.8/plugins/video/H.264/gpl/Makefile.in 2012-10-24 12:11:11.000000000 -0400 +@@ -47,6 +47,7 @@ + CC =@CC@ + CXX =@CXX@ + CFLAGS =@X264_CFLAGS@ -I.. -I$(PLUGINDIR) -I$(OPALDIR)/include -DGPL_HELPER_APP -DPLUGINCODEC_TRACING ++CXXFLAGS =@X264_CFLAGS@ -I.. -I$(PLUGINDIR) -I$(OPALDIR)/include -DGPL_HELPER_APP -DPLUGINCODEC_TRACING + LDFLAGS =@LDFLAGS@ @X264_LIBS@ + + +@@ -59,7 +60,7 @@ + + $(OBJDIR)/%.o : %.cxx + @mkdir -p $(OBJDIR) >/dev/null 2>&1 +- $(Q_CC)$(CXX) $(CFLAGS) -c $< -o $@ ++ $(Q_CC)$(CXX) $(CXXFLAGS) -c $< -o $@ + + $(OBJDIR)/%.o : %.c + @mkdir -p $(OBJDIR) >/dev/null 2>&1 +diff -uNr opal-3.10.8.orig/plugins/video/H.264/Makefile.in opal-3.10.8/plugins/video/H.264/Makefile.in +--- opal-3.10.8.orig/plugins/video/H.264/Makefile.in 2012-10-24 12:08:17.000000000 -0400 ++++ opal-3.10.8/plugins/video/H.264/Makefile.in 2012-10-24 12:04:29.000000000 -0400 +@@ -34,12 +34,12 @@ + $(SHAREDDIR)/x264wrap.cxx \ + $(COMMONDIR)/dyna.cxx \ + +-CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) -DLIB_DIR='"$(libdir)"' -DVC_PLUGIN_DIR='"@VC_PLUGIN_DIR@"' ++CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) -DLIB_DIR='"$(libdir)"' -DVC_PLUGIN_DIR='"@VC_PLUGIN_DIR@"' + LIBS += @DL_LIBS@ + + IS_H264_LICENSED:=@IS_H264_LICENSED@ + ifeq ($(IS_H264_LICENSED),yes) +- CFLAGS += @X264_CFLAGS@ -DX264_LICENSED ++ CXXFLAGS += @X264_CFLAGS@ -DX264_LICENSED + LIBS += @X264_LIBS@ + else + SUBDIRS := gpl +diff -uNr opal-3.10.8.orig/plugins/video/MPEG4-ffmpeg/Makefile.in opal-3.10.8/plugins/video/MPEG4-ffmpeg/Makefile.in +--- opal-3.10.8.orig/plugins/video/MPEG4-ffmpeg/Makefile.in 2012-10-24 12:08:36.000000000 -0400 ++++ opal-3.10.8/plugins/video/MPEG4-ffmpeg/Makefile.in 2012-10-24 12:04:45.000000000 -0400 +@@ -30,14 +30,14 @@ + SRCDIR := . + SRCS := mpeg4.cxx $(COMMONDIR)/dyna.cxx + +-CFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) ++CXXFLAGS += @LIBAVCODEC_CFLAGS@ -I$(COMMONDIR) + LIBS += @DL_LIBS@ + + # Add LIBAVCODEC_SOURCE_DIR to the include path so we can #include + # Also add libavutil, so ffmpeg headers can #include "log.h". + LIBAVCODEC_SOURCE_DIR := @LIBAVCODEC_SOURCE_DIR@ + ifneq (,$(LIBAVCODEC_SOURCE_DIR)) +-CFLAGS += -I$(LIBAVCODEC_SOURCE_DIR) -I$(LIBAVCODEC_SOURCE_DIR)/libavutil ++CXXFLAGS += -I$(LIBAVCODEC_SOURCE_DIR) -I$(LIBAVCODEC_SOURCE_DIR)/libavutil + endif + + vpath %.cxx $(COMMONDIR) +diff -uNr opal-3.10.8.orig/plugins/video/THEORA/Makefile.in opal-3.10.8/plugins/video/THEORA/Makefile.in +--- opal-3.10.8.orig/plugins/video/THEORA/Makefile.in 2012-10-24 12:08:47.000000000 -0400 ++++ opal-3.10.8/plugins/video/THEORA/Makefile.in 2012-10-24 12:05:00.000000000 -0400 +@@ -30,7 +30,7 @@ + SRCDIR := . + SRCS := theora_frame.cxx theora_plugin.cxx + +-CFLAGS += @THEORA_CFLAGS@ -I$(COMMONDIR) ++CXXFLAGS += @THEORA_CFLAGS@ -I$(COMMONDIR) + LIBS += @THEORA_LIBS@ + + INSTALL_DIR := @VC_PLUGIN_DIR@ diff --git a/net-libs/opal/files/opal-3.10.9-disable-h323-workaround.patch b/net-libs/opal/files/opal-3.10.9-disable-h323-workaround.patch new file mode 100644 index 0000000..3d17615 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.9-disable-h323-workaround.patch @@ -0,0 +1,13 @@ +# Sent to upstream on 2012-10-23 +# By Jesus Rivero +diff -uNr opal-3.10.8.orig/include/h323/h323.h opal-3.10.8/include/h323/h323.h +--- opal-3.10.8.orig/include/h323/h323.h 2012-10-22 07:50:37.000000000 -0400 ++++ opal-3.10.8/include/h323/h323.h 2012-10-23 14:10:37.000000000 -0400 +@@ -40,6 +40,7 @@ + #include + #include + #include ++#include + + PString OpalGetVersion(); + unsigned OpalGetMajorVersion(); diff --git a/net-libs/opal/files/opal-3.10.9-ffmpeg.patch b/net-libs/opal/files/opal-3.10.9-ffmpeg.patch new file mode 100644 index 0000000..1860865 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.9-ffmpeg.patch @@ -0,0 +1,189 @@ +Note: This is not optimal but is backported from what is in the 3.12 branch. + + +r28871 | rjongbloed | 2013-01-13 02:18:43 -0300 (Sun, 13 Jan 2013) | 2 lines + +Fixed compile against latest FFMPEG, specifically Mac OS-X "port" version. Have no idea what all the deprecated symbols are replaced by! + +Index: opal-3.10.9/plugins/video/H.263-1998/h263-1998.cxx +=================================================================== +--- opal-3.10.9.orig/plugins/video/H.263-1998/h263-1998.cxx ++++ opal-3.10.9/plugins/video/H.263-1998/h263-1998.cxx +@@ -312,6 +312,7 @@ void H263_Base_EncoderContext::SetOption + return; + } + ++#ifdef CODEC_FLAG_H263P_UMV + if (STRCMPI(option, H263_ANNEX_D) == 0) { + // Annex D: Unrestructed Motion Vectors + // Level 2+ +@@ -322,7 +323,9 @@ void H263_Base_EncoderContext::SetOption + m_context->flags &= ~CODEC_FLAG_H263P_UMV; + return; + } ++#endif + ++#ifdef CODEC_FLAG_OBMC + #if 0 // DO NOT ENABLE THIS FLAG. FFMPEG IS NOT THREAD_SAFE WHEN THIS FLAG IS SET + if (STRCMPI(option, H263_ANNEX_F) == 0) { + // Annex F: Advanced Prediction Mode +@@ -334,7 +337,9 @@ void H263_Base_EncoderContext::SetOption + return; + } + #endif ++#endif + ++#ifdef CODEC_FLAG_AC_PRED + if (STRCMPI(option, H263_ANNEX_I) == 0) { + // Annex I: Advanced Intra Coding + // Level 3+ +@@ -345,7 +350,9 @@ void H263_Base_EncoderContext::SetOption + m_context->flags &= ~CODEC_FLAG_AC_PRED; + return; + } ++#endif + ++#ifdef CODEC_FLAG_LOOP_FILTER + if (STRCMPI(option, H263_ANNEX_J) == 0) { + // Annex J: Deblocking Filter + // works with eyeBeam +@@ -355,7 +362,9 @@ void H263_Base_EncoderContext::SetOption + m_context->flags &= ~CODEC_FLAG_LOOP_FILTER; + return; + } ++#endif + ++#ifdef CODEC_FLAG_H263P_SLICE_STRUCT + if (STRCMPI(option, H263_ANNEX_K) == 0) { + // Annex K: Slice Structure + // does not work with eyeBeam +@@ -365,7 +374,9 @@ void H263_Base_EncoderContext::SetOption + 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 +386,7 @@ void H263_Base_EncoderContext::SetOption + m_context->flags &= ~CODEC_FLAG_H263P_AIV; + return; + } ++#endif + + if (STRCMPI(option, PLUGINCODEC_MEDIA_PACKETIZATION) == 0 || + STRCMPI(option, PLUGINCODEC_MEDIA_PACKETIZATIONS) == 0) { +@@ -452,12 +464,24 @@ bool H263_Base_EncoderContext::OpenCodec + + #define CODEC_TRACER_FLAG(tracer, flag) \ + PTRACE(4, m_prefix, #flag " is " << ((m_context->flags & flag) ? "enabled" : "disabled")); ++#ifdef CODEC_FLAG_H263P_UMV + CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_UMV); ++#endif ++#ifdef CODEC_FLAG_OBMC + CODEC_TRACER_FLAG(tracer, CODEC_FLAG_OBMC); ++#endif ++#ifdef CODEC_FLAG_AC_PRED + CODEC_TRACER_FLAG(tracer, CODEC_FLAG_AC_PRED); ++#endif ++#ifdef CODEC_FLAG_H263P_SLICE_STRUCT + CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_SLICE_STRUCT) ++#endif ++#ifdef CODEC_FLAG_LOOP_FILTER + CODEC_TRACER_FLAG(tracer, CODEC_FLAG_LOOP_FILTER); ++#endif ++#ifdef CODEC_FLAG_H263P_AIV + CODEC_TRACER_FLAG(tracer, CODEC_FLAG_H263P_AIV); ++#endif + + return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0; + } +@@ -521,7 +545,7 @@ bool H263_Base_EncoderContext::EncodeFra + + // 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 +627,21 @@ bool H263_RFC2190_EncoderContext::Init() + 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 ++#ifdef CODEC_FLAG_4MV + m_context->flags &= ~CODEC_FLAG_4MV; +-#if LIBAVCODEC_RTP_MODE ++#endif ++#if LIBAVCODEC_RTP_MODE && defined(CODEC_FLAG_H263P_AIC) + 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; + } +Index: opal-3.10.9/plugins/video/H.264/h264-x264.cxx +=================================================================== +--- opal-3.10.9.orig/plugins/video/H.264/h264-x264.cxx ++++ opal-3.10.9/plugins/video/H.264/h264-x264.cxx +@@ -1071,13 +1071,13 @@ class MyDecoder : public PluginCodecworkaround_bugs = FF_BUG_AUTODETECT; ++#ifdef FF_ER_AGGRESSIVE + m_context->error_recognition = FF_ER_AGGRESSIVE; ++#endif + 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; + +Index: opal-3.10.9/plugins/video/MPEG4-ffmpeg/mpeg4.cxx +=================================================================== +--- opal-3.10.9.orig/plugins/video/MPEG4-ffmpeg/mpeg4.cxx ++++ opal-3.10.9/plugins/video/MPEG4-ffmpeg/mpeg4.cxx +@@ -594,12 +594,10 @@ void MPEG4EncoderContext::SetStaticEncod + #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 + } +@@ -804,7 +802,7 @@ int MPEG4EncoderContext::EncodeFrames(co + // 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 +1323,6 @@ void MPEG4DecoderContext::SetFrameHeight + + 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 + } + diff --git a/net-libs/opal/files/opal-3.10.9-java-ruby-swig-fix.patch b/net-libs/opal/files/opal-3.10.9-java-ruby-swig-fix.patch new file mode 100644 index 0000000..6570863 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.9-java-ruby-swig-fix.patch @@ -0,0 +1,29 @@ +diff -uNr opal-3.10.9.orig/Makefile.in opal-3.10.9/Makefile.in +--- opal-3.10.9.orig/Makefile.in 2012-12-03 11:09:17.000000000 -0500 ++++ opal-3.10.9/Makefile.in 2012-12-03 11:09:35.000000000 -0500 +@@ -371,9 +371,9 @@ + ifeq ($(OPAL_JAVA), yes) + + JAVA_SRCDIR = $(OPAL_SRCDIR)/java +-JAVA_WRAPPER = $(JAVA_SRCDIR)/java_swig_wrapper.c ++JAVA_WRAPPER = $(JAVA_SRCDIR)/java_swig_wrapper.cxx + +-VPATH_C += $(JAVA_SRCDIR) ++VPATH_CXX += $(JAVA_SRCDIR) + SOURCES += $(JAVA_WRAPPER) + + endif +@@ -384,10 +384,10 @@ + + ifeq ($(OPAL_RUBY), yes) + +-RUBY_SRCDIR = $(OPAL_SRCDIR)/ruby +-RUBY_WRAPPER = $(JAVA_SRCDIR)/ruby_swig_wrapper.c ++RUBY_SRCDIR = $(OPAL_SRCDIR)/Ruby ++RUBY_WRAPPER = $(JAVA_SRCDIR)/ruby_swig_wrapper.cxx + +-VPATH_C += $(RUBY_SRCDIR) ++VPATH_CXX += $(RUBY_SRCDIR) + SOURCES += $(RUBY_WRAPPER) + + endif diff --git a/net-libs/opal/files/opal-3.10.9-labs_is_in_stdlib.patch b/net-libs/opal/files/opal-3.10.9-labs_is_in_stdlib.patch new file mode 100644 index 0000000..ac8a7ef --- /dev/null +++ b/net-libs/opal/files/opal-3.10.9-labs_is_in_stdlib.patch @@ -0,0 +1,11 @@ +diff -uNr opal-3.10.8.orig/plugins/audio/G.722.2/AMR-WB/dec_lpc.c opal-3.10.8/plugins/audio/G.722.2/AMR-WB/dec_lpc.c +--- opal-3.10.8.orig/plugins/audio/G.722.2/AMR-WB/dec_lpc.c 2012-10-22 07:50:37.000000000 -0400 ++++ opal-3.10.8/plugins/audio/G.722.2/AMR-WB/dec_lpc.c 2012-10-22 10:20:49.000000000 -0400 +@@ -3,6 +3,7 @@ + * 3GPP AMR Wideband Floating-point Speech Codec + *=================================================================== + */ ++#include + #include + #include "typedef.h" + #include "dec_util.h" diff --git a/net-libs/opal/files/opal-3.10.9-svn_revision_override.patch b/net-libs/opal/files/opal-3.10.9-svn_revision_override.patch new file mode 100644 index 0000000..c2a15b1 --- /dev/null +++ b/net-libs/opal/files/opal-3.10.9-svn_revision_override.patch @@ -0,0 +1,15 @@ +diff -uNr opal-3.10.8.orig/src/opal/manager.cxx opal-3.10.8/src/opal/manager.cxx +--- opal-3.10.8.orig/src/opal/manager.cxx 2012-10-22 07:50:36.000000000 -0400 ++++ opal-3.10.8/src/opal/manager.cxx 2012-10-22 08:30:45.000000000 -0400 +@@ -56,7 +56,10 @@ + #include + + #include "../../version.h" +-#include "../../revision.h" ++ ++# define SVN_REVISION 0 ++//#include "../../revision.h" ++ + + + static const char * const DefaultMediaFormatOrder[] = { diff --git a/net-libs/opal/metadata.xml b/net-libs/opal/metadata.xml new file mode 100644 index 0000000..c093932 --- /dev/null +++ b/net-libs/opal/metadata.xml @@ -0,0 +1,41 @@ + + + + + + Enable CAPI support + Enable CELT ultra-low delay audio codec + Enable DTMF encoding/decoding support + Enable T.38 FAX protocol + Enable H.224 real time control protocol + Enable H.281 Far-End Camera Control protocol + Enable H.323 protocol + Enable Inter-Asterisk eXchange protocol + Enable Interactive Voice Response + Enable iLBC (RFC 3951) speech codec + Enable xJack cards support + Enable Line Interface Device + Enable plugins support + Enable the Bluetooth low-complexity, SubBand Codec + + Enable Session Initiation Protocol + Enable SIP Instant Messages session + Enable Secure Real-time Transport Protocol + Enable statistic reporting + Use swig to generate bindings + Enable video support + Enable Voicetronics VPB card support + Enable VXML support + Enable WAVFILE support + Install x264 plugin statically linked with x264 + + + + + opalvoip + + diff --git a/net-libs/opal/opal-3.10.11.ebuild b/net-libs/opal/opal-3.10.11.ebuild new file mode 100644 index 0000000..59f9844 --- /dev/null +++ b/net-libs/opal/opal-3.10.11.ebuild @@ -0,0 +1,257 @@ +# Copyright 1999-2016 Gentoo Foundation +# Distributed under the terms of the GNU General Public License v2 + +EAPI=5 + +inherit eutils autotools toolchain-funcs java-pkg-opt-2 flag-o-matic + +DESCRIPTION="C++ class library normalising numerous telephony protocols" +HOMEPAGE="http://www.opalvoip.org/" +SRC_URI="mirror://sourceforge/opalvoip/${P}.tar.bz2 + doc? ( mirror://sourceforge/opalvoip/${P}-htmldoc.tar.bz2 )" + +LICENSE="MPL-1.0" +SLOT="0" +KEYWORDS="alpha amd64 ia64 ppc ppc64 sparc x86" +IUSE="capi celt debug doc +dtmf examples fax ffmpeg h224 h281 h323 iax ilbc +ipv6 ivr ixj java ldap lid +plugins sbc +sip +sipim +sound srtp ssl static-libs +stats swig theora +video vpb vxml +wav x264 x264-static +xml" + +REQUIRED_USE="x264-static? ( x264 ) + h281? ( h224 ) + sip? ( sipim )" + +RDEPEND=">=net-libs/ptlib-2.10.10:=[stun,debug=,dtmf,http,ipv6?,ldap?,sound?,ssl?,video?,vxml?,wav?,xml?] + >=media-libs/speex-1.2_beta + fax? ( net-libs/ptlib[asn] ) + h323? ( net-libs/ptlib[asn] ) + ivr? ( net-libs/ptlib[http,xml,vxml] ) + java? ( >=virtual/jre-1.4 ) + plugins? ( + media-sound/gsm + capi? ( net-dialup/capi4k-utils ) + celt? ( media-libs/celt ) + ffmpeg? ( virtual/ffmpeg[encode] ) + ixj? ( sys-kernel/linux-headers ) + ilbc? ( dev-libs/ilbc-rfc3951 ) + sbc? ( media-libs/libsamplerate ) + theora? ( media-libs/libtheora ) + x264? ( virtual/ffmpeg + media-libs/x264 ) ) + srtp? ( net-libs/libsrtp ) + vxml? ( net-libs/ptlib[http,vxml] )" +DEPEND="${RDEPEND} + virtual/pkgconfig + >=sys-devel/gcc-3 + java? ( swig? ( dev-lang/swig ) + >=virtual/jdk-1.4 )" + +# NOTES: +# ffmpeg[encode] is for h263 and mpeg4 +# ssl, xml, vxml, ipv6, ldap, sound, wav, and video are use flags +# herited from ptlib: feature is enabled if ptlib has enabled it +# however, disabling it if ptlib has it looks hard (coz of buildopts.h) +# forcing ptlib to disable it for opal is not a solution too +# atm, accepting the "auto-feature" looks like a good solution +# (asn is used for fax and config _only_ for examples) +# OPALDIR should not be used anymore but if a package still need it, create it + +pkg_setup() { + # workaround for bug 282838 + append-cxxflags "-fno-visibility-inlines-hidden" + append-cxxflags "-fno-strict-aliasing" + + # need >=gcc-3 + if [[ $(gcc-major-version) -lt 3 ]]; then + eerror "You need to use gcc-3 at least." + eerror "Please change gcc version with 'gcc-config'." + die "You need to use gcc-3 at least." + fi + + java-pkg-opt-2_pkg_setup +} + +src_prepare() { + # remove visual studio related files from samples/ + if use examples; then + rm -f samples/*/*.vcproj + rm -f samples/*/*.sln + rm -f samples/*/*.dsp + rm -f samples/*/*.dsw + fi + + # LFS ffmpeg2+ fixes. + epatch "${FILESDIR}"/opal-3.10.10-ffmpeg2-1.patch + + if ! use h323; then + # Without this patch, ekiga wont compile, even with + # USE=-h323. + epatch "${FILESDIR}/${PN}-3.10.9-disable-h323-workaround.patch" + fi + + epatch "${FILESDIR}/${PN}-3.10.9-java-ruby-swig-fix.patch" + + sed -i -e "s:\(.*HAS_H224.*\), \[OPAL_H323\]:\1:" configure.ac \ + || die "sed failed" + + # sed fixes for ffmpeg-3. + 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 || die "sed failed" + + eaclocal + eautoconf + + # in plugins + cd plugins/ + eaclocal + eautoconf + cd .. + + # disable celt if celt is not enabled (prevent auto magic dep) + # already in repository + if ! use celt; then + sed -i -e "s/HAVE_CELT=yes/HAVE_CELT=no/" plugins/configure \ + || die "sed failed" + fi + + # fix automatic swig detection, upstream bug 2712521 (upstream reject it) + if ! use swig; then + sed -i -e "/^SWIG=/d" configure || die "patching configure failed" + fi + + use ilbc || { rm -r plugins/audio/iLBC/ || die "removing iLBC failed"; } + + java-pkg-opt-2_src_prepare +} + +src_configure() { + local forcedconf="" + + # fix bug 277233, upstream bug 2820939 + if use fax; then + forcedconf="${forcedconf} --enable-statistics" + fi + + # --with-libavcodec-source-dir should _not_ be set, it's for trunk sources + # versioncheck: check for ptlib version + # shared: should always be enabled for a lib + # localspeex, localspeexdsp, localgsm, localilbc: never use bundled libs + # samples: only build some samples, useless + # libavcodec-stackalign-hack: prevent hack (default disable by upstream) + # default-to-full-capabilties: default enable by upstream + # aec: atm, only used when bundled speex, so it's painless for us + # zrtp doesn't depend on net-libs/libzrtpcpp but on libzrtp from + # http://zfoneproject.com/ wich is not in portage + # msrp: highly experimental + # spandsp: doesn't work with newest spandsp, upstream bug 2796047 + # g711plc: force enable + # rfc4103: not really used, upstream bug 2795831 + # t38, spandsp: merged in fax + # h450, h460, h501: merged in h323 (they are additional features of h323) + econf \ + --enable-versioncheck \ + --enable-shared \ + --disable-zrtp \ + --disable-localspeex \ + --disable-localspeexdsp \ + --disable-localgsm \ + --disable-localilbc \ + --disable-samples \ + --disable-libavcodec-stackalign-hack \ + --enable-default-to-full-capabilties \ + --enable-aec \ + --disable-msrp \ + --disable-spandsp \ + --enable-g711plc \ + --enable-rfc4103 \ + $(use_enable debug) \ + $(use_enable capi) \ + $(use_enable fax) \ + $(use_enable fax t38) \ + $(use_enable h224) \ + $(use_enable h281) \ + $(use_enable h323) \ + $(use_enable h323 h450) \ + $(use_enable h323 h460) \ + $(use_enable h323 h501) \ + $(use_enable iax) \ + $(use_enable ivr) \ + $(use_enable ixj) \ + $(use_enable java) \ + $(use_enable lid) \ + $(use_enable plugins) \ + $(use_enable sbc) \ + $(use_enable sip) \ + $(use_enable sipim) \ + $(use_enable stats statistics) \ + $(use_enable video) $(use_enable video rfc4175) \ + $(use_enable vpb) \ + $(use_enable x264 h264) \ + $(use_enable x264-static x264-link-static) \ + ${forcedconf} +} + +src_compile() { + local makeopts="" + + use debug && makeopts="debug" + + emake ${makeopts} || die "emake failed" +} + +src_install() { + emake DESTDIR="${D}" install || die "emake install failed" + + # Get rid of static libraries if not requested + # There seems to be no easy way to disable this in the build system + if ! use static-libs; then + rm -v "${D}"/usr/lib*/*.a || die + fi + + if use doc; then + dohtml -r "${WORKDIR}"/html/* docs/* || die "dohtml failed" + fi + + # ChangeLog is not standard and does not exist on 3.10.10 +# dodoc ChangeLog-${PN}-v${PV//./_}.txt || die "dodoc failed" + + if use examples; then + local exampledir="/usr/share/doc/${PF}/examples" + local basedir="samples" + local sampledirs="`ls ${basedir} --hide=configure* \ + --hide=opal_samples.mak.in`" + + # first, install files + insinto ${exampledir}/ + doins ${basedir}/{configure*,opal_samples*} \ + || die "doins failed" + + # now, all examples + for x in ${sampledirs}; do + insinto ${exampledir}/${x}/ + doins ${basedir}/${x}/* || die "doins failed" + done + + # some examples need version.h + insinto "/usr/share/doc/${PF}/" + doins version.h || die "doins failed" + fi +} + +pkg_postinst() { + if use examples; then + ewarn "All examples have been installed, some of them will not work on your system" + ewarn "it will depend of the enabled USE flags in ptlib and opal" + fi + + if ! use plugins || ! use sound || ! use video; then + ewarn "You have disabled sound, video or plugins USE flags." + ewarn "Most audio/video features or plugins have been disabled silently" + ewarn "even if enabled via USE flags." + ewarn "Having a feature enabled via USE flag but disabled can lead to issues." + fi +}