Added net-libs/opal.

This commit is contained in:
László Valkó 2017-04-24 16:40:42 +02:00
parent 7e23aca5b2
commit 20e9e405a1
11 changed files with 1356 additions and 0 deletions

12
net-libs/opal/Manifest Normal file
View file

@ -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

View file

@ -0,0 +1,396 @@
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
+++ 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 <libavutil/opt.h>
+}
#include <limits>
#include <iomanip>
#include <stdio.h>
@@ -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 <fstream>
#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-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;
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 <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-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-10-08 12:57:25.065873425 +0200
@@ -103,6 +103,7 @@
#else /* LIBAVCODEC_HAVE_SOURCE_DIR */
#include "../common/ffmpeg.h"
+#include <libavutil/opt.h>
#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
}

View file

@ -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 <stdio.h>
#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 <stdio.h>
+
#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 <libavcodec/...h>

View file

@ -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 <libavcodec/...h>
# 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@

View file

@ -0,0 +1,13 @@
# Sent to upstream on 2012-10-23
# By Jesus Rivero <neurogeek@gentoo.org>
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 <h323/h323con.h>
#include <h323/gkclient.h>
#include <opal/buildopts.h>
+#include <ptlib.h>
PString OpalGetVersion();
unsigned OpalGetMajorVersion();

View file

@ -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 PluginCodec<MY_
return false;
m_context->workaround_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
}

View file

@ -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

View file

@ -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 <stdlib.h>
#include <math.h>
#include "typedef.h"
#include "dec_util.h"

View file

@ -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 <ptclib/url.h>
#include "../../version.h"
-#include "../../revision.h"
+
+# define SVN_REVISION 0
+//#include "../../revision.h"
+
static const char * const DefaultMediaFormatOrder[] = {

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE pkgmetadata SYSTEM "http://www.gentoo.org/dtd/metadata.dtd">
<pkgmetadata>
<!-- maintainer-needed -->
<use>
<flag name="capi">Enable CAPI support</flag>
<flag name="celt">Enable CELT ultra-low delay audio codec</flag>
<flag name="dtmf">Enable DTMF encoding/decoding support</flag>
<flag name="fax">Enable T.38 FAX protocol</flag>
<flag name="h224">Enable H.224 real time control protocol</flag>
<flag name="h281">Enable H.281 Far-End Camera Control protocol</flag>
<flag name="h323">Enable H.323 protocol</flag>
<flag name="iax">Enable Inter-Asterisk eXchange protocol</flag>
<flag name="ivr">Enable Interactive Voice Response</flag>
<flag name="ilbc">Enable iLBC (RFC 3951) speech codec</flag>
<flag name="ixj">Enable xJack cards support</flag>
<flag name="lid">Enable Line Interface Device</flag>
<flag name="plugins">Enable plugins support</flag>
<flag name="sbc">Enable the Bluetooth low-complexity, SubBand Codec
</flag>
<flag name="sip">Enable Session Initiation Protocol</flag>
<flag name="sipim">Enable SIP Instant Messages session</flag>
<flag name="srtp">Enable Secure Real-time Transport Protocol</flag>
<flag name="stats">Enable statistic reporting</flag>
<flag name="swig">Use swig to generate bindings</flag>
<flag name="video">Enable video support</flag>
<flag name="vpb">Enable Voicetronics VPB card support</flag>
<flag name="vxml">Enable VXML support</flag>
<flag name="wav">Enable WAVFILE support</flag>
<flag name="x264-static">Install x264 plugin statically linked with x264
</flag>
<!-- unused atm
<flag name="g711plc">Enable G711 Packet Loss Concealment</flag>
<flag name="msrp">Enable Message Session Relay Protocol</flag>
<flag name="rfc4103">Enable RTP Payload for Text Conversation</flag>
-->
</use>
<upstream>
<remote-id type="sourceforge">opalvoip</remote-id>
</upstream>
</pkgmetadata>

View file

@ -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
}