Временно помещён исправленный ebuild opal-3.10.11

rasdark
parent d2a3a29c9f
commit f6f9a6ff5d

@ -0,0 +1,2 @@
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

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

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

@ -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();

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

@ -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
}
Loading…
Cancel
Save