Index: head/net/opal/Makefile =================================================================== --- head/net/opal/Makefile (revision 414949) +++ head/net/opal/Makefile (revision 414950) @@ -1,300 +1,300 @@ # Created by: Roger Hardiman # $FreeBSD$ PORTNAME= opal PORTVERSION= 3.10.10 -PORTREVISION= 9 +PORTREVISION= 10 CATEGORIES= net MASTER_SITES= GNOME MAINTAINER= gnome@FreeBSD.org COMMENT= VoIP abstraction library LICENSE= MPL LIB_DEPENDS= libpt.so:devel/ptlib USES= gmake pathfix pkgconfig tar:xz GNU_CONFIGURE= yes USE_LDCONFIG= yes CXXFLAGS+= -I${LOCALBASE}/include CPPFLAGS+= -I${LOCALBASE}/include LDFLAGS+= -L${LOCALBASE}/lib OPTIONS_DEFINE= JAVA CELT ILBC GSM SPEEX THEORA FFMPEG X264 SIP H323 IAX \ H224 H281 FAX MSRP SIPIM RTPTEXT H450 H460 H501 LID UVIDEO \ AEC DEBUG RUBY # ZRTP # MSRP = plist extra line vpd? # RTPTEXT disable == build fail, so make it default? OPTIONS_DEFAULT=CELT GSM SPEEX FFMPEG X264 SIP H224 H281 FAX MSRP SIPIM \ RTPTEXT LID AEC DEBUG_DESC= Install debug library ZRTP_DESC= ZRTP protocol support JAVA_DESC= Java JNI support RUBY_DESC= Ruby support CELT_DESC= Celt codec from ports ILBC_DESC= iLBC codec from ports GSM_DESC= GSM 06.10 codec from ports SPEEX_DESC= SPEEX codec from ports THEORA_DESC= Theora codec support FFMPEG_DESC= Ffmpeg codec support X264_DESC= x.264 codec support SIP_DESC= SIP protocol support H323_DESC= H.323 protocol support IAX_DESC= IAX2 protocol support H224_DESC= H.224 control protocol H281_DESC= H.281 (Far End Camera Control) protocol support FAX_DESC= Fax T.38 support MSRP_DESC= MSRP protocol SIPIM_DESC= SIP-IM protocol RTPTEXT_DESC= RFC4103 Text RTP payload support H450_DESC= H.450 H.323 subset H460_DESC= H.460 H.323 extension for NAT traversal H501_DESC= H.501 H323 mobility extensions LID_DESC= Light-Weight Identity (incl. xJack cards and voicetronix vpb) support UVIDEO_DESC= RFC4175 uncompressed video RTP payload AEC_DESC= Accoustic echo cancellation .include .ifdef OPALDIR .error OPALDIR is defined as an environment variable, or in the arguments \ to "make". Please unset it and restart the build. .endif PLIST_SUB+= VERSION=${PORTVERSION} \ PVERSION_MAJOR=${PVERSION_MAJOR} \ PVERSION_MINOR=${PVERSION_MINOR} PVERSION_MAJOR= ${PORTVERSION:C/.[0-9]+.[0-9]+$//g} PVERSION_MINOR= ${PORTVERSION:C/.[0-9]+$//g} .if ${PORT_OPTIONS:MDEBUG} ALL_TARGET= debug opt PLIST_SUB+= DEBUG="" .else ALL_TARGET= opt PLIST_SUB+= DEBUG="@comment " .endif # libzrtpcpp uses port ssl, which will conflict with this port since we use # base ssl. #.if ${PORT_OPTIONS:MZRTP} .if 0 .if !defined(SAFE_ZRTP) IGNORE= please build devel/libzrtpcpp WITHOUT ports SSL and re-run build with SAFE_ZRTP set .endif LIB_DEPENDS+= libzrtpcpp.so:devel/libzrtpcpp CONFIGURE_ARGS+= --enable-zrtp .else CONFIGURE_ARGS+= --disable-zrtp .endif .if ${PORT_OPTIONS:MGSM} LIB_DEPENDS+= libgsm.so:audio/gsm .else CONFIGURE_ARGS+= --enable-localgsm .endif .if ${PORT_OPTIONS:MSPEEX} LIB_DEPENDS+= libspeex.so:audio/speex .else CONFIGURE_ARGS+= --enable-localspeex .endif .if ${PORT_OPTIONS:MJAVA} CONFIGURE_ARGS+= --enable-java .else CONFIGURE_ARGS+= --disable-java .endif .if ${PORT_OPTIONS:MRUBY} CONFIGURE_ARGS+= --enable-ruby .else CONFIGURE_ARGS+= --disable-ruby .endif .if ${PORT_OPTIONS:MCELT} LIB_DEPENDS+= libcelt0.so:audio/celt CONFIGURE_ARGS+= --enable-celt PLIST_SUB+= CELT="" .else CONFIGURE_ARGS+= --disable-celt PLIST_SUB+= CELT="@comment " .endif .if ${PORT_OPTIONS:MILBC} LIB_DEPENDS+= libilbc.so:net/ilbc .else CONFIGURE_ARGS+= --enable-localilbc .endif .if ${PORT_OPTIONS:MTHEORA} LIB_DEPENDS+= libtheora.so:multimedia/libtheora CONFIGURE_ARGS+= --enable-theora PLIST_SUB+= THEORA="" WITH_VIDEO= yes .else CONFIGURE_ARGS+= --disable-theora PLIST_SUB+= THEORA="@comment " .endif .if ${PORT_OPTIONS:MX264} && ${PORT_OPTIONS:MFFMPEG} LIB_DEPENDS+= libx264.so:multimedia/libx264 CONFIGURE_ARGS+= --enable-x264 PLIST_SUB+= X264="" WITH_VIDEO= yes # work around some weirdness in plugins/configure where it looses the # cflags/libs of x264 CONFIGURE_ENV+= X264_CFLAGS="`pkg-config --cflags x264`" \ X264_LIBS="`pkg-config --libs x264`" .else CONFIGURE_ARGS+= --disable-x264 PLIST_SUB+= X264="@comment " .endif .if ${PORT_OPTIONS:MFFMPEG} BUILD_DEPENDS+= ffmpeg>=2:multimedia/ffmpeg RUN_DEPENDS+= ffmpeg>=2:multimedia/ffmpeg CONFIGURE_ARGS+= --enable-libavcodec PLIST_SUB+= FFMPEG="" WITH_VIDEO= yes .else CONFIGURE_ARGS+= --disable-libavcodec PLIST_SUB+= FFMPEG="@comment " .endif WITH_VIDEO=yes .if defined(WITH_VIDEO) CONFIGURE_ARGS+= --enable-video PLIST_SUB+= VIDEO="" .else CONFIGURE_ARGS+= --disable-video PLIST_SUB+= VIDEO="@comment " .endif .if ${PORT_OPTIONS:MSIP} CONFIGURE_ARGS+= --enable-sip .else CONFIGURE_ARGS+= --disable-sip .endif .if ${PORT_OPTIONS:MH323} CONFIGURE_ARGS+= --enable-h323 .else CONFIGURE_ARGS+= --disable-h323 .endif .if ${PORT_OPTIONS:MIAX} CONFIGURE_ARGS+= --enable-iax2 .else CONFIGURE_ARGS+= --disable-iax2 .endif .if ${PORT_OPTIONS:MH224} CONFIGURE_ARGS+= --enable-h224 .else CONFIGURE_ARGS+= --disable-h224 .endif .if ${PORT_OPTIONS:MH281} CONFIGURE_ARGS+= --enable-h281 .else CONFIGURE_ARGS+= --disable-h281 .endif .if ${PORT_OPTIONS:MFAX} LIB_DEPENDS+= libspandsp.so:comms/spandsp CONFIGURE_ARGS+= --enable-spandsp --enable-fax --enable-t38 PLIST_SUB+= FAX="" .else CONFIGURE_ARGS+= --disable-fax --disable-t38 --disable-spandsp PLIST_SUB+= FAX="@comment " .endif .if ${PORT_OPTIONS:MMSRP} CONFIGURE_ARGS+= --enable-msrp ##BROKEN= Does not compile .else CONFIGURE_ARGS+= --disable-msrp .endif .if ${PORT_OPTIONS:MSIPIM} CONFIGURE_ARGS+= --enable-sipim .else CONFIGURE_ARGS+= --disable-sipim .endif .if ${PORT_OPTIONS:MRTPTEXT} CONFIGURE_ARGS+= --enable-rfc4103 .else CONFIGURE_ARGS+= --disable-rfc4103 .endif .if ${PORT_OPTIONS:MH450} CONFIGURE_ARGS+= --enable-h450 .else CONFIGURE_ARGS+= --disable-h450 .endif .if ${PORT_OPTIONS:MH460} CONFIGURE_ARGS+= --enable-h460 .else CONFIGURE_ARGS+= --disable-h460 .endif .if ${PORT_OPTIONS:MH501} CONFIGURE_ARGS+= --enable-h501 .else CONFIGURE_ARGS+= --disable-h501 .endif .if ${PORT_OPTIONS:MLID} CONFIGURE_ARGS+= --enable-lid --enable-ixj --enable-vpb PLIST_SUB+= LID="" .else CONFIGURE_ARGS+= --disable-lid --disable-ixj --disable-vpb PLIST_SUB+= LID="@comment " .endif .if ${PORT_OPTIONS:MUVIDEO} CONFIGURE_ARGS+= --enable-rfc4175 .else CONFIGURE_ARGS+= --disable-rfc4175 .endif # xxxx .if ${PORT_OPTIONS:MXXXX} CONFIGURE_ARGS+= --enable-rfc2435 .else CONFIGURE_ARGS+= --disable-rfc2435 .endif .if ${PORT_OPTIONS:MAEC} CONFIGURE_ARGS+= --enable-aec .else CONFIGURE_ARGS+= --disable-aec .endif # ?? CONFIGURE_ARGS+= --disable-debug # configure flags not used CONFIGURE_ARGS+= --disable-gsmamr \ --disable-ruby post-install: ${LN} -sf libopal.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libopal.so.${PVERSION_MAJOR} ${LN} -sf libopal.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libopal.so.${PVERSION_MINOR} .if ${PORT_OPTIONS:MDEBUG} ${LN} -sf libopal_d.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libopal_d.so.${PVERSION_MAJOR} ${LN} -sf libopal_d.so.${PORTVERSION} ${STAGEDIR}${PREFIX}/lib/libopal_d.so.${PVERSION_MINOR} .endif @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libopal.so.${PORTVERSION} @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/opal-${PORTVERSION}/codecs/video/h264_video_pwplugin_helper @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/opal-${PORTVERSION}/*/*.so @${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/opal-${PORTVERSION}/*/*/*.so .include Index: head/net/opal/files/patch-ffmpeg3 =================================================================== --- head/net/opal/files/patch-ffmpeg3 (nonexistent) +++ head/net/opal/files/patch-ffmpeg3 (revision 414950) @@ -0,0 +1,247 @@ +Description: Replace deprecated FFmpeg API +Author: Andreas Cadhalpun +Last-Update: <2015-11-02> + +--- plugins/video/H.263-1998/h263-1998.cxx.orig ++++ plugins/video/H.263-1998/h263-1998.cxx +@@ -230,11 +230,10 @@ bool H263_Base_EncoderContext::Init(AVCo + + m_context->opaque = this; + +- m_context->flags = CODEC_FLAG_EMU_EDGE // don't draw edges +- | CODEC_FLAG_TRUNCATED // Possible missing packets ++ m_context->flags = CODEC_FLAG_TRUNCATED // Possible missing packets + ; + +- m_context->pix_fmt = PIX_FMT_YUV420P; ++ m_context->pix_fmt = AV_PIX_FMT_YUV420P; + m_context->gop_size = H263_KEY_FRAME_INTERVAL; + + // X-Lite does not like Custom Picture frequency clocks... stick to 29.97Hz +@@ -440,9 +439,6 @@ bool H263_Base_EncoderContext::OpenCodec + m_inputFrame->data[1] = m_inputFrame->data[0] + planeSize; + m_inputFrame->data[2] = m_inputFrame->data[1] + (planeSize / 4); + +- if (m_context->width > 352) +- m_context->flags &= ~CODEC_FLAG_EMU_EDGE; // Totally bizarre! FFMPEG crashes if on for CIF4 +- + // Dump info + PTRACE(5, m_prefix, "Size is " << m_context->width << "x" << m_context->height); + PTRACE(5, m_prefix, "GOP is " << m_context->gop_size); +@@ -456,7 +452,7 @@ bool H263_Base_EncoderContext::OpenCodec + PTRACE(5, m_prefix, "qmax set to " << m_context->qmax); + PTRACE(5, m_prefix, "payload size set to " << m_context->rtp_payload_size); + +- return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) == 0; ++ return FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec, NULL) == 0; + } + + void H263_Base_EncoderContext::CloseCodec() +@@ -707,7 +703,7 @@ bool H263_Base_DecoderContext::OpenCodec + return 0; + } + +- if (FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec) < 0) { ++ if (FFMPEGLibraryInstance.AvcodecOpen(m_context, m_codec, NULL) < 0) { + PTRACE(1, m_prefix, "Failed to open H.263 decoder"); + return false; + } +--- plugins/video/H.264/h264-x264.cxx.orig ++++ plugins/video/H.264/h264-x264.cxx +@@ -1074,7 +1074,6 @@ class MyDecoder : public PluginCodecworkaround_bugs = FF_BUG_AUTODETECT; + 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_DROP_FRAME_TIMECODE | + CODEC_FLAG2_SKIP_RD | + CODEC_FLAG2_CHUNKS; +@@ -1084,7 +1083,7 @@ class MyDecoder : public PluginCodecpix_fmt = PIX_FMT_YUV420P; ++ m_avcontext->pix_fmt = AV_PIX_FMT_YUV420P; + m_avcontext->mb_decision = FF_MB_DECISION_SIMPLE; // high quality off + m_avcontext->rtp_payload_size = 750; // ffh263 uses 750 + m_avcontext->rtp_callback = &MPEG4EncoderContext::RtpCallback; +@@ -595,7 +595,6 @@ void MPEG4EncoderContext::SetStaticEncod + m_avcontext->flags|=CODEC_FLAG_AC_PRED; + /*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; + #endif + m_avcontext->opaque = this; // for use in RTP callback +@@ -710,13 +709,15 @@ bool MPEG4EncoderContext::OpenCodec() + if (PTRACE_CHECK(4)) { + m_avcontext->debug |= FF_DEBUG_RC; + m_avcontext->debug |= FF_DEBUG_PICT_INFO; +- m_avcontext->debug |= FF_DEBUG_MV; ++// m_avcontext->debug |= FF_DEBUG_MV; + } + #endif + + SetStaticEncodingParams(); + SetDynamicEncodingParams(false); // don't force a restart, it's not open +- if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec) < 0) ++ AVDictionary *opts = NULL; ++ av_dict_set_int(&opts, "gmc", 1, 0); ++ if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec, &opts) < 0) + { + PTRACE(1, "MPEG4", "Encoder could not be opened"); + return false; +@@ -1411,7 +1412,7 @@ bool MPEG4DecoderContext::OpenCodec() + + SetStaticDecodingParams(); + SetDynamicDecodingParams(false); // don't force a restart, it's not open +- if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec) < 0) { ++ if (FFMPEGLibraryInstance.AvcodecOpen(m_avcontext, m_avcodec, NULL) < 0) { + PTRACE(1, "MPEG4", "Decoder failed to open"); + return false; + } +--- plugins/video/common/dyna.h.orig ++++ plugins/video/common/dyna.h +@@ -97,7 +97,7 @@ class FFMPEGLibrary + AVCodec *AvcodecFindDecoder(enum AVCodecID id); + AVCodecContext *AvcodecAllocContext(AVCodec*); + AVFrame *AvcodecAllocFrame(void); +- int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec); ++ int AvcodecOpen(AVCodecContext *ctx, AVCodec *codec, AVDictionary **options); + int AvcodecClose(AVCodecContext *ctx); + int AvcodecEncodeVideo(AVCodecContext *ctx, BYTE *buf, int buf_size, const AVFrame *pict); + int AvcodecDecodeVideo(AVCodecContext *ctx, AVFrame *pict, int *got_picture_ptr, BYTE *buf, int buf_size); +--- plugins/video/common/ffmpeg.h.orig ++++ plugins/video/common/ffmpeg.h +@@ -47,6 +47,7 @@ + + extern "C" { + #include "libavcodec/avcodec.h" ++#include "libavutil/imgutils.h" + // AVPacket was declared in avformat.h before April 2009 + #if LIBAVCODEC_VERSION_INT <= AV_VERSION_INT(52, 25, 0) + #include +--- plugins/video/H.263-1998/h263-1998.cxx.orig ++++ plugins/video/H.263-1998/h263-1998.cxx +@@ -98,7 +98,7 @@ + { CIF16_WIDTH, CIF16_HEIGHT, PLUGINCODEC_CIF16_MPI }, + }; + +-static FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H263P); ++static FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H263P); + + + ///////////////////////////////////////////////////////////////////////////// +@@ -583,7 +583,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 +@@ -620,7 +620,7 @@ + + bool H263_RFC2429_EncoderContext::Init() + { +- return H263_Base_EncoderContext::Init(CODEC_ID_H263P); ++ return H263_Base_EncoderContext::Init(AV_CODEC_ID_H263P); + } + + +@@ -644,7 +644,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/common/dyna.cxx.orig ++++ plugins/video/common/dyna.cxx +@@ -213,11 +213,11 @@ + 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; + } +@@ -374,7 +374,7 @@ + return Favcodec_alloc_frame(); + } + +-int FFMPEGLibrary::AvcodecOpen(AVCodecContext *ctx, AVCodec *codec) ++int FFMPEGLibrary::AvcodecOpen(AVCodecContext *ctx, AVCodec *codec, AVDictionary **options) + { + WaitAndSignal m(processLock); + +--- plugins/video/MPEG4-ffmpeg/mpeg4.cxx.orig ++++ plugins/video/MPEG4-ffmpeg/mpeg4.cxx +@@ -206,7 +206,7 @@ + { 0 } + }; + +-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_MPEG4); ++FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_MPEG4); + + + static bool mpeg4IsIframe (BYTE * frameBuffer, unsigned int frameLen ) +@@ -703,7 +703,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; + } +@@ -1396,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/H.264/h264-x264.cxx.orig ++++ plugins/video/H.264/h264-x264.cxx +@@ -107,7 +107,7 @@ + + /////////////////////////////////////////////////////////////////////////////// + +-FFMPEGLibrary FFMPEGLibraryInstance(CODEC_ID_H264); ++FFMPEGLibrary FFMPEGLibraryInstance(AV_CODEC_ID_H264); + + PLUGINCODEC_CONTROL_LOG_FUNCTION_DEF + +@@ -1067,7 +1067,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) Property changes on: head/net/opal/files/patch-ffmpeg3 ___________________________________________________________________ Added: fbsd:nokeywords ## -0,0 +1 ## +yes \ No newline at end of property Added: svn:eol-style ## -0,0 +1 ## +native \ No newline at end of property Added: svn:mime-type ## -0,0 +1 ## +text/plain \ No newline at end of property