pkgsrc-WIP-changes archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

baresip: update to baresip-0.4.20



Module Name:	pkgsrc-wip
Committed By:	Yorick Hardy <yorickhardy%gmail.com@localhost>
Pushed By:	yhardy
Date:		Tue Sep 6 10:13:31 2016 +0200
Changeset:	03dbd416bd3f2e93450e35057904fc1f88a4d36f

Modified Files:
	baresip/Makefile
	baresip/PLIST
	baresip/distinfo
Added Files:
	baresip/options.mk
	baresip/patches/patch-mk_modules.mk
	baresip/patches/patch-modules_ilbc_ilbc.c
	baresip/patches/patch-modules_v4l2_v4l2.c

Log Message:
baresip: update to baresip-0.4.20

Pkgsrc changes:

 * change the build procedure a bit to accommodate modules
 * use the options framework top optionally build a number of modules
 * install example configuration files

Notes:

 On my NetBSD machine the "oss" and "portaudio" modules do not work
 correctly. This is probably due to the fact that the module
 opens and initializes the device twice (once for reading and once
 for writing) but I was unable to diagnose the exact problem.

 A workaround is to use the jack plugin (or pulseaudio) by enabling
 the "jack.so" module in ~/.baresip/config.  The jack server can
 start automatically:

  echo "/usr/pkg/bin/jackd -T -r -d sun" > ~/.jackdrc
  export JACK_START_SERVER=yes

 The sndiod module currently does not build.

Changelog:

2016-07-22 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.20

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT tag: v0.4.20
	* NOTE: Requires libre v0.4.17 or later
	        Requires librem v0.4.7 or later

	* new modules:
	  - pulse      Pulseaudio driver
	  - vp9        VP9 video codec

	* config:
	  - audio_path          Path to audio files
	  - call_local_timeout  Timeout for incoming calls
	  - redial_attempts     Number of redial attempts
	  - redial_delay        Redial delay in seconds

	* baresip-core:
	  - baresip: added a global baresip instance (WIP)
	  - call: add RTP timeout (thanks to Sveriges Radio)
	  - config: added call_local_timeout for incoming call timeout
	  - config: added compile-time configureable CONFIG_PATH
	  - config: added 'audio_path' config variable (thanks Juha Heinanen)
	  - net: made it re-entrant with struct network
	  - ua: added uag_set_exit_handler
	  - ua: fix bug with reg_uri limited to 64-chars
	  - video: vidfilters should not modify decoded image

	* selftest:
	  - add test for network
	  - add test for sending SIP OPTIONS
	  - add test for RTP timeout

	* Modules:

	* avcodec: fix usage of deprecated API

	* avformat: remove support for scaling
		    fix usage of deprecated API

	* cons: relay log-messages to active UDP/TCP connections
		https://github.com/alfredh/baresip/issues/144

	* h265: fix usage of deprecated API

	* menu: added support for re-dial on failure
		(thanks to Sveriges Radio)

	* mpa: Bug with reinit of codec structs (thanks Christian Hoene)

	* natpmp: added support for RTCP

	* presence: use correct struct in deref handler

	* pulse: new module for Pulseaudio driver
		 (thanks to Matthias Apitz for testing)

	* vidloop: vidfilters should not modify decoded image

	* vp8: module renamed from vpx.so to vp8.so

	* vp9: new module implementing VP9 video codec

	* wincons: use ReadConsoleInput, thanks to GGGO (fixes #139)
		   https://github.com/alfredh/baresip/issues/139

2016-05-20 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.19

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT tag: v0.4.19
	* NOTE: Requires libre v0.4.14 or later
	        Requires librem v0.4.7 or later

	* new modules:
	  - mpa        MPA Speech and Audio Codec (thanks Christian Hoene)

	* baresip-core:
	  - audio: remove is_g722 exception
		   use aucodec's rtp clockrate for calculating RTP timestamp
		   plc: make sure sampc is exactly one ptime frame
	  - aucodec: split srate into DSP srate and RTP clockrate
		     (these are different for e.g. G.722 and MDA)
	  - mos: add mos_calculate() (thanks Lorenzo Mangani)
	  - net: use configured dns servers only, if specified
	  - ua: fix potential NULL-pointer crash for uag.cfg

	* selftest:
	  - add test for SIP registration with DNS
	  - add test for SIP registration with authentication
	  - add test for MOS calculations
	  - added a mock DNS Server
	  - added a mock SIP Server

	* Modules:

	* aucodec: add support for NV12 and YUVJ420P pixel formats

	* daala: update to libdaala version 0.0-1564-g79787c7

	* gtk: fix autodetection of libgtk+ 2.0 (thanks Charles Lehner)

	* h265: remove call to x265_cleanup, caused crash on OpenBSD

	* mpa: new module that implements MPA Speech and Audio Codec
	       (this module was contributed by Christian Hoene)

	* opus: added new configuration parameters:
		opus_cbr        {yes,no}   # Constant Bitrate (inverse of VBR)
		opus_inbandfec  {yes,no}   # Enable inband FEC
		opus_dtx        {yes,no}   # Enable DTX

	* presence: improved interoperability, allow white space before
		    xml element closing tags (thanks Juha Heinanen)

	* x11: added borderless window (thanks Doug Blewett)

2016-03-12 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.18

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT tag: v0.4.18
	* NOTE: Requires libre v0.4.14 or later
	        Requires librem v0.4.7 or later

	* baresip-core:
	  - call: fix SIP INFO with dtmf-relay (thanks Gary Metalle)
	  - ua: add event UA_EVENT_CALL_CLOSED for ua_hangup()

	* selftest:
	  - add tests for answer a call and hangup

	* Modules:

	* alsa: fix potential crash (thanks Gary Metalle)

	* audiounit: fix compilation for iOS (issue #91)

	* avcodec: fix compilation for FFmpeg 3.0

	* avformat: fix compilation for FFmpeg 3.0

	* gtk: always handle incoming calls (thanks Charles Lehner)

	* h265: fix compilation for FFmpeg 3.0

	* menu: add config 'menu_bell  off/on' to enable Bell alert
		add command 'A' for switch audio device (thanks AlexMarlo)

	* v4l2_codec: add list of encoders (fixes #99)

2016-01-17 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.17

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT tag: v0.4.17
	* NOTE: Requires libre v0.4.14 or later
	        Requires librem v0.4.7 or later

	* new modules:
	  - echo        Echo server module
	  - jack        JACK Audio Connection Kit audio-driver

	* baresip-core:
	  - config: keep config object in memory
	  - ua: moved playing of ringtones out of core, to "menu" module
		(let's keep the core nice and slim..)
	  - ui: added ui_password_prompt()

	* selftest:
	  - silence debug/info log by default, only print warnings
	    (use -v to see verbose logging)

	* Modules:

	* alsa: added config option to specify the sample format
		"alsa_sample_format    {s16,float,s24_3le}"
		thanks to Ola Palm for valuable feedback

	* audiounit: fix recording on OSX (thanks Sebastian Reimers)
		     print hardware samplerate in debug mode

	* auloop: add support for 44100 Hz samplerate

	* daala: update to latest libdaala API (thanks Dmitrij D. Czarkoff)

	* echo: new module which implements a simple Echo-server, to
		be used in combination with the aubridge.so module.
		contributed by Sebastian Reimers

	* gtk: fixes to support C89 compiler (thanks Dmitrij D. Czarkoff)

	* jack: new module which implements audio-driver for JACK

	* menu: playing of ringtones moved here, from ua.c

	* sndio: fix crash when device open fails (thanks Dmitrij D. Czarkoff)

2015-12-01 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.16

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT commit bed2241da3261e472f09b21958f0cc1324a94f27
	* GIT tag: v0.4.16
	* NOTE: Requires libre v0.4.14 or later

	* new modules:
	  - v4l2_codec  Video4Linux2 video codec (H264 hardware encoding)
	  - vidinfo     Video info overlay module

	* baresip-core:
	  - audio: add audio_set_source() and audio_set_player()
	  - audio: flush tx-buffer for all modes (thanks Thibault Gueslin)
	  - call: add call_is_outgoing()
	  - call: check address-family of incoming SDP offer (thanks Olle)
	  - h264: move H.264 packetization code to core
	  - main: add -u option to append extra global UA parameters
	  - main: pre-load modules after all arguments are parsed
	  - ua: add events UA_EVENT_SHUTDOWN,UA_EXIT
	  - ua: add ua_hold_answer()
	  - ua: add ua_set_media_af()
	  - ua: delay mod-unloading if mods has a ref to struct ua

	* build:
	  - add verbose build with V=1 (thanks Dmitrij D. Czarkoff)
	  - add pkg-config file (thanks William King)
	  - add travis.yml file for Github build-system

	* Modules:

	* alsa: fix memory leaks

	* avcodec: move common H.264 packetization code to core

	* cairo: use pkg-config in makefile

	* daala: update to latest libdaala (thanks Dmitrij D. Czarkoff)

	* gst_video: use H.264 packetization API from core

	* gst_video1: use H.264 packetization API from core

	* gtk: fix segmentation fault on window close

	* mwi: add 500ms delay after closing subscription

	* oss: use pthread for ausrc instead of fd_listen (fixes FreeBSD)

	* presence: use sipevent_sock instance from UA core
		    add 500ms delay after closing subscription

	* v4l2_codec: new module

	* vidinfo: new module

	* zrtp: fix ZRTP over TURN by moving helper to layer 10
		fix ZID verification (thanks Ingo Feinerer)

2015-09-26 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.15

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT commit 86262a6fc17e19e2be82eb8a2a05ec0f884d3d38
	* GIT tag: v0.4.15
	* NOTE: Requires libre v0.4.13 or later

	* added selftest binary

	* baresip-core:
	  - audio: fix televent when pt != 101 (reported by AndyJRobinson)
	  - magic: use __func__ for C99 or later
	  - sip: make sip_req_send() public
	  - ua: add UA_EVENT_CALL_DTMF_START/END, thanks Gary Metalle

	* Modules:

	* alsa: added extra logging

	* gtk: add support for libnotify (thanks Charles Lehner)

	* video: fix potential null deref (thanks Tomasz Ostrowski)

	* zrtp: added 36-bytes preamble for TURN-header

2015-08-08 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.14

	* GIT URL: https://github.com/alfredh/baresip.git
	* GIT commit ebac23b0692de71ee4c3a436f0372013150c937f
	* GIT tag: v0.4.14
	* NOTE: Requires libre v0.4.13 or later

	* new modules:
	  - gtk		GTK+ 2.0 UI (thanks Charles E. Lehner)
	  - gst1	Gstreamer 1.0 audio module
	  - gst_video1	Gstreamer 1.0 video module (thanks Thomas Strobel)
	  - daala	Experimental video-codec using Daala

	* baresip-core:
	  - baresip: added -m argument to pre-load modules
	  - config: add kqueue to sample config (thanks Dmitrij D. Czarkoff)
	  - log: make code C89 compliant (thanks Victor Sergienko)
	  - module: added module_preload()
	  - ua: add CALL_EVENT_TRANSFER_FAILED
	  - ua: skip initial white space from uri (thanks Juha Heinanen)
	  - ua: ua_prev_call()
	  - videnc: move videnc_packet_h to update-handler

	* build:
	  - added optional $(MOD)_CFLAGS for local module CFLAGS
	  - added project file for Visual C++ Express 2010
	  - freebsd: add include path to $(SYSROOT)/local/include
	    (thanks Hellmuth Michaelis)

	* Modules:

	* avcodec: make code C89 compliant (thanks Victor Sergienko)

	* cons: make code C89 compliant (thanks Victor Sergienko)

	* daala: new module

	* dshow: updates for VC2010 (thanks Victor Sergienko)

	* gst1: new module

	* gst_video1: new module

	* gtk: new module

	* menu: fix crash when 0 UAs (thanks Hans Petter Selasky)
		added command 'H' to hold previous call (thanks xanm)

	* wincons: make code C89 compliant (thanks ggcoding)

2015-06-20 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.13

	* GIT commit 2e3e825ef5532dfde5a8b52de9ebaac51aa20a9c
	* NOTE: Requires libre v0.4.12 or later

	* new modules:
	  - aufile      Audio module for using a WAV-file as audio input
	  - b2bua       Back-to-Back User-Agent (B2BUA) module
	  - codec2      CODEC2 audio codec
	  - gst_video   Gstreamer video codec
	  - h265        H.265 (HEVC) video codec

	* baresip-core:
	  - contact: add support for access-control (thanks Doug Blewett)
	  - ausrc: change base-class to a const pointer
	  - auplay: change base-class to a const pointer
	  - vidsrc: change base-class to a const pointer
	  - vidisp: change base-class to a const pointer
	  - video: smooth sending of video packets

	* Modules:

	* amr: added support for octet-align mode (thanks to Stefan Sayer)

	* aubridge: copy audio-samples if resampler not needed

	* aufile: new module for using a WAV-file as audio source

	* avcapture: only register 1 video source

	* avformat: fix segfault on recent versions of libav

	* b2bua: new experimental module

	* codec2: new module for CODEC2 audio codec

	* dtls_srtp: uppercase fingerprint, interop (thanks Juha Heinanen)
		     alternative SDP protocols for interop

	* dtmfio: unregister event handler on close (thanks Hellmuth Michaelis)

	* gst_video: new module using Gstreamer as a video codec
		     (Thanks to Victor Sergienko and Fadeev Alexander)

	* h265: new module for H.265 video codec

	* httpd: added raw mode (thanks Lorenzo Mangani)

	* menu: create user-agent with a command 'R' (thanks Lorenzo Mangani)

	* opus: add configuration of "opus_bitrate"
		(thanks to Juha Heinanen)

	* speex: add configuration of "speex_mode_nb" and "speex_mode_wb"
		 (thanks to Dmitrij D. Czarkoff and Juha Heinanen)

	* vidloop: add VIDLOOP_INTERNAL_FMT and split encoder/decoder

	* x11: catch Window delete (thanks to Doug Blewett)

	* zrtp: initialize remote_zid (thanks to Ingo Feinerer)

2014-12-24 Alfred E. Heggestad <aeh%db.org@localhost>

	* Version 0.4.12

	* GIT commit 67993e35d980375458348b264c4a35a944bb5180
	* NOTE: Requires libre v0.4.11 or later

	* baresip:
	  - account: add regint and pubint
	  - audio: fix checking of sample-rate range
	  - config: remove the "input" block
	  - config: added support for quoted device parameters
	  - config: fix conversion of bandwidth to kbit/s
	  - config: generate more relevant config for FreeBSD and OpenBSD
		    (thanks Dmitrij D. Czarkoff)
	  - reg: add support for extracting GRUU parameter
	  - main: add -p option to set path to audio files
	  - sipreq: make response-handler optional
	  - ua: add support for GRUU (RFC 5627)
	    (many thanks to Juha Heinanen for starting this work and
	     helping out with the testing)
	  - ua: moved presence-status to each struct ua instance
	  - ua: add presence status to each User-Agent instance
	  - ua: use public-GRUU if set, otherwise local cuser
	  - ui: make UI single instance
	  - video: add VIDENC_INTERNAL_FMT (suggested by Victor Sergienko)

	* docs: added sample configuration files

	* account: added pubint for Publishing Interval

	* avcodec: upgrade to recent ffmpeg/libav APIs
		   either FFmpeg or libav can be used

	* celt: deleted module (replaced by opus)

	* cons: update usage of struct ui, added output handler
		added config: cons_listen    0.0.0.0:5555

	* evdev: update usage of struct ui, added output handler
		 added config: evdev_device    /dev/input/event0

	* httpd: added ui output handler

	* menu: added command 'o' for sending OPTION request
		(thanks to Juha Heinanen)

		added command 'D' for accepting incoming calls

	* mwi: subscribe to MWI after Registration succeeded
	       (thanks to Juha Heinanen)

	* opensles: add double-buffering and some tuning
		    (thanks to Francesco Bradascio)

	* opus: added config "opus_bitrate" (thanks to Sebastian Reimers)

	* presence: added support for PUBLISH (thanks to Juha Heinanen)
		    interop fixes and tuning

	* stdio: update usage of struct ui, added output handler

	* uuid: use internal version of generating UUID

	* v4l2: use memory mapped mode only

	* vumeter: dont call tmr_start from non-RE thread

	* wincons: update usage of struct ui, added output handler

	* winwave: fix bug when closing player device
		   (thanks to Tomasz Ostrowski)
		   add support for mapping device name to index

	* zrtp: add support for verify SAS (thanks to Ingo Feinerer)

To see a diff of this commit:
https://wip.pkgsrc.org/cgi-bin/gitweb.cgi?p=pkgsrc-wip.git;a=commitdiff;h=03dbd416bd3f2e93450e35057904fc1f88a4d36f

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

diffstat:
 baresip/Makefile                          |  46 +++++-
 baresip/PLIST                             |  41 ++++-
 baresip/distinfo                          |  10 +-
 baresip/options.mk                        | 265 ++++++++++++++++++++++++++++++
 baresip/patches/patch-mk_modules.mk       |  39 +++++
 baresip/patches/patch-modules_ilbc_ilbc.c |  23 +++
 baresip/patches/patch-modules_v4l2_v4l2.c |  18 ++
 7 files changed, 431 insertions(+), 11 deletions(-)

diffs:
diff --git a/baresip/Makefile b/baresip/Makefile
index ce12378..e745d98 100644
--- a/baresip/Makefile
+++ b/baresip/Makefile
@@ -1,6 +1,6 @@
 # $NetBSD: Makefile,v 1.2 2014/09/05 08:06:00 thomasklausner Exp $
 
-DISTNAME=	baresip-0.4.11
+DISTNAME=	baresip-0.4.20
 CATEGORIES=	net audio
 MASTER_SITES=	http://www.creytiv.com/pub/
 
@@ -10,12 +10,8 @@ COMMENT=	SIP User-Agent with audio and video support
 LICENSE=	modified-bsd
 
 USE_LANGUAGES=	c c++
-USE_TOOLS+=	gmake
+USE_TOOLS+=	gmake pkg-config
 NO_CONFIGURE=	yes
-MAKE_FLAGS+=	LFLAGS=${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.libre}/lib
-MAKE_FLAGS+=	PREFIX=${PREFIX}
-MAKE_FLAGS+=	SYSROOT=${BUILDLINK_PREFIX.libre}
-MAKE_FLAGS+=	USE_STDIO=1 USE_OSS=1
 
 SUBST_CLASSES+=		prefix
 SUBST_FILES.prefix=	Makefile
@@ -23,6 +19,44 @@ SUBST_MESSAGE.prefix=	Fixing PREFIX path.
 SUBST_SED.prefix=	-e "s|/usr/local|${PREFIX}|1"
 SUBST_STAGE.prefix=	post-patch
 
+INSTALLATION_DIRS=	share/examples/baresip
+
+post-install:
+	${INSTALL_DATA} ${WRKSRC}/docs/examples/accounts ${DESTDIR}${PREFIX}/share/examples/baresip
+	${INSTALL_DATA} ${WRKSRC}/docs/examples/config ${DESTDIR}${PREFIX}/share/examples/baresip
+	${INSTALL_DATA} ${WRKSRC}/docs/examples/contacts ${DESTDIR}${PREFIX}/share/examples/baresip
+
+CFLAGS+=	-DHAVE_GETOPT=1 -DHAVE_UNISTD_H=1
+CFLAGS+=	${BUILDLINK_CFLAGS.pthread}
+CFLAGS+=	${BUILDLINK_LIBS.pthread}
+CFLAGS+=	${BUILDLINK_LDFLAGS.pthread}
+CFLAGS+=	-D__ssize_t_defined
+
+LFLAGS+=	${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.libre}/lib
+
+MAKE_FLAGS+=	HAVE_PTHREAD=yes
+MAKE_FLAGS+=	MOD_AUTODETECT=
+MAKE_FLAGS+=	PREFIX=${PREFIX}
+MAKE_FLAGS+=	SYSROOT=${BUILDLINK_PREFIX.libre}
+
+MAKE_FLAGS+=	USE_CONS=yes
+MAKE_FLAGS+=	USE_G711=yes
+MAKE_FLAGS+=	USE_G722=yes
+MAKE_FLAGS+=	USE_G722_1=
+MAKE_FLAGS+=	USE_G726=yes
+MAKE_FLAGS+=	USE_GSM=yes
+MAKE_FLAGS+=	USE_L16=yes
+MAKE_FLAGS+=	USE_PLC=yes
+MAKE_FLAGS+=	USE_SRTP=yes
+MAKE_FLAGS+=	USE_STDIO=yes
+
+.include "options.mk"
+
+MAKE_FLAGS+=	LFLAGS="${LFLAGS}"
+
+.include "../../audio/gsm/buildlink3.mk"
+.include "../../comms/spandsp/buildlink3.mk"
 .include "../../wip/libre/buildlink3.mk"
 .include "../../wip/librem/buildlink3.mk"
+.include "../../mk/pthread.buildlink3.mk"
 .include "../../mk/bsd.pkg.mk"
diff --git a/baresip/PLIST b/baresip/PLIST
index 3b3ae90..402c3bd 100644
--- a/baresip/PLIST
+++ b/baresip/PLIST
@@ -1,28 +1,62 @@
 @comment $NetBSD: PLIST,v 1.2 2014/09/05 08:06:00 thomasklausner Exp $
 bin/baresip
 lib/baresip/modules/account.so
+${PLIST.alsa}lib/baresip/modules/alsa.so
+${PLIST.opencore-amr}lib/baresip/modules/amr.so
+lib/baresip/modules/aubridge.so
+lib/baresip/modules/aufile.so
 lib/baresip/modules/auloop.so
+${PLIST.ffmpeg}lib/baresip/modules/avcodec.so
+${PLIST.ffmpeg}lib/baresip/modules/avformat.so
+${PLIST.cairo}lib/baresip/modules/cairo.so
 lib/baresip/modules/cons.so
 lib/baresip/modules/contact.so
+lib/baresip/modules/fakevideo.so
 lib/baresip/modules/g711.so
+lib/baresip/modules/g722.so
+lib/baresip/modules/g726.so
+lib/baresip/modules/gsm.so
+${PLIST.gstreamer}lib/baresip/modules/gst_video1.so
+${PLIST.gstreamer}lib/baresip/modules/gst1.so
+${PLIST.gtk}lib/baresip/modules/gtk.so
+${PLIST.x265}lib/baresip/modules/h265.so
 lib/baresip/modules/httpd.so
 lib/baresip/modules/ice.so
+${PLIST.ilbc}lib/baresip/modules/ilbc.so
+${PLIST.jack}lib/baresip/modules/jack.so
 lib/baresip/modules/l16.so
 lib/baresip/modules/menu.so
 lib/baresip/modules/mwi.so
 lib/baresip/modules/natbd.so
 lib/baresip/modules/natpmp.so
-lib/baresip/modules/oss.so
+${PLIST.opus}lib/baresip/modules/opus.so
+${PLIST.oss}lib/baresip/modules/oss.so
+lib/baresip/modules/plc.so
+${PLIST.portaudio}lib/baresip/modules/portaudio.so
 lib/baresip/modules/presence.so
-lib/baresip/modules/selftest.so
+${PLIST.pulseaudio}lib/baresip/modules/pulse.so
+${PLIST.sdl}lib/baresip/modules/sdl.so
+${PLIST.sdl2}lib/baresip/modules/sdl2.so
 lib/baresip/modules/selfview.so
+${PLIST.sndfile}lib/baresip/modules/sndfile.so
+${PLIST.speex}lib/baresip/modules/speex.so
+${PLIST.speex}lib/baresip/modules/speex_aec.so
+${PLIST.speex}lib/baresip/modules/speex_pp.so
 lib/baresip/modules/srtp.so
 lib/baresip/modules/stdio.so
 lib/baresip/modules/stun.so
 lib/baresip/modules/turn.so
+lib/baresip/modules/uuid.so
+${PLIST.v4l2}lib/baresip/modules/v4l2.so
+${PLIST.v4l2}lib/baresip/modules/v4l2_codec.so
 lib/baresip/modules/vidbridge.so
+${PLIST.cairo}lib/baresip/modules/vidinfo.so
 lib/baresip/modules/vidloop.so
+${PLIST.libvpx}lib/baresip/modules/vp8.so
+${PLIST.libvpx}lib/baresip/modules/vp9.so
 lib/baresip/modules/vumeter.so
+${PLIST.x11}lib/baresip/modules/x11.so
+${PLIST.x11}lib/baresip/modules/x11grab.so
 share/baresip/busy.wav
 share/baresip/callwaiting.wav
 share/baresip/error.wav
@@ -30,3 +64,6 @@ share/baresip/message.wav
 share/baresip/notfound.wav
 share/baresip/ring.wav
 share/baresip/ringback.wav
+share/examples/baresip/accounts
+share/examples/baresip/config
+share/examples/baresip/contacts
diff --git a/baresip/distinfo b/baresip/distinfo
index 4089d18..dc8e5fd 100644
--- a/baresip/distinfo
+++ b/baresip/distinfo
@@ -1,5 +1,9 @@
 $NetBSD: distinfo,v 1.1 2014/08/10 00:26:01 thomasklausner Exp $
 
-SHA1 (baresip-0.4.11.tar.gz) = 0f2212e065f3d44addea6c5b80a25a0a849b011b
-RMD160 (baresip-0.4.11.tar.gz) = e2c880fa8983093f8c0fa5edecccd927445836ae
-Size (baresip-0.4.11.tar.gz) = 366207 bytes
+SHA1 (baresip-0.4.20.tar.gz) = 297bec4d2fae112e2866e31e2e951947684c6285
+RMD160 (baresip-0.4.20.tar.gz) = 7662ef49b43b868b1768a65d13f1d33e9370d79a
+SHA512 (baresip-0.4.20.tar.gz) = ee6451a738da2b3ec73cd7d22c596d54062aabbb406c74ef04046f6cd0bcda7a52fe80ff61b8b788865d9cebadbab43cbd2dec3ebe9d2cb7ce0c711b5b87d1ee
+Size (baresip-0.4.20.tar.gz) = 459000 bytes
+SHA1 (patch-mk_modules.mk) = dacb14e7962ebaa3964943fdcfb4db1289fc6e87
+SHA1 (patch-modules_ilbc_ilbc.c) = b19d181f41d84ad5cdc2a6e93c5004dab25e6c32
+SHA1 (patch-modules_v4l2_v4l2.c) = 71ba2d1e5c8ba61eb011bd2b6b9e0d9cdaec5797
diff --git a/baresip/options.mk b/baresip/options.mk
new file mode 100644
index 0000000..654d490
--- /dev/null
+++ b/baresip/options.mk
@@ -0,0 +1,265 @@
+# $NetBSD$
+
+PKG_OPTIONS_VAR=		PKG_OPTIONS.baresip
+PKG_SUPPORTED_OPTIONS=		alsa cairo ffmpeg gstreamer gtk x265 ilbc jack
+PKG_SUPPORTED_OPTIONS+=		libvpx oss opencore-amr opus portaudio
+PKG_SUPPORTED_OPTIONS+=		pulseaudio sdl sdl2 sndfile sndio speex v4l2
+PKG_SUPPORTED_OPTIONS+=		x11
+PKG_SUGGESTED_OPTIONS=		oss ilbc speex
+
+.include "../../mk/bsd.prefs.mk"
+.include "../../mk/bsd.options.mk"
+
+PLIST_VARS+=			${PKG_SUPPORTED_OPTIONS}
+
+###
+### ALSA support (audio output)
+###
+.if !empty(PKG_OPTIONS:Malsa)
+PLIST.alsa=	yes
+MAKE_FLAGS+=	USE_ALSA=yes
+.include "../../audio/alsa-lib/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_ALSA=
+.endif
+
+###
+### cairo support (video input)
+###
+.if !empty(PKG_OPTIONS:Mcairo)
+PLIST.cairo=	yes
+MAKE_FLAGS+=	USE_CAIRO=yes
+.include "../../graphics/cairo/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_CAIRO=
+.endif
+
+###
+### Gstreamer1 support (video codecs)
+###
+.if !empty(PKG_OPTIONS:Mgstreamer)
+PLIST.gstreamer=	yes
+MAKE_FLAGS+=	USE_GST1=yes
+MAKE_FLAGS+=	USE_GST_VIDEO1=yes
+.include "../../multimedia/gstreamer1/buildlink3.mk"
+.include "../../multimedia/gst-plugins1-base/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_GST1=
+MAKE_FLAGS+=	USE_GST_VIDEO1=
+.endif
+
+###
+### GTK gui support
+###
+.if !empty(PKG_OPTIONS:Mgtk)
+PLIST.gtk=	yes
+MAKE_FLAGS+=	USE_GTK=yes
+.include "../../x11/gtk2/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_GTK=
+.endif
+
+###
+### H265 support (video codec)
+###
+.if !empty(PKG_OPTIONS:Mx265)
+PLIST.x265=	yes
+MAKE_FLAGS+=	USE_H265=yes
+LFLAGS+=	${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.ffmpeg3}/${BUILDLINK_LIBDIRS.ffmpeg3}
+LFLAGS+=	-L${BUILDLINK_PREFIX.ffmpeg3}/${BUILDLINK_LIBDIRS.ffmpeg3}
+.include "../../multimedia/ffmpeg3/buildlink3.mk"
+.include "../../multimedia/x265/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_H265=
+.endif
+
+###
+### ffmpeg support (video input)
+###
+.if !empty(PKG_OPTIONS:Mffmpeg)
+PLIST.ffmpeg=	yes
+MAKE_FLAGS+=	USE_AVCODEC=yes
+MAKE_FLAGS+=	USE_AVFORMAT=yes
+LFLAGS+=	${COMPILER_RPATH_FLAG}${BUILDLINK_PREFIX.ffmpeg3}/${BUILDLINK_LIBDIRS.ffmpeg3}
+LFLAGS+=	-L${BUILDLINK_PREFIX.ffmpeg3}/${BUILDLINK_LIBDIRS.ffmpeg3}
+.include "../../multimedia/ffmpeg3/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_AVCODEC=
+MAKE_FLAGS+=	USE_AVFORMAT=
+.endif
+
+###
+### ILBC support (audio codec)
+###
+.if !empty(PKG_OPTIONS:Milbc)
+PLIST.ilbc=	yes
+MAKE_FLAGS+=	USE_ILBC=yes
+#.include "../../wip/ilbc-rfc3951/buildlink3.mk"
+.include "../../wip/libilbc/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_ILBC=
+.endif
+
+###
+### Jack Audio Connection Kit support (audio output)
+###
+.if !empty(PKG_OPTIONS:Mjack)
+PLIST.jack=	yes
+MAKE_FLAGS+=	USE_JACK=yes
+.include "../../audio/jack/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_JACK=
+.endif
+
+###
+### vp8 and vp9 support (video codec)
+###
+.if !empty(PKG_OPTIONS:Mlibvpx)
+PLIST.libvpx=	yes
+MAKE_FLAGS+=	USE_VPX=yes
+.include "../../multimedia/libvpx/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_VPX=
+.endif
+
+###
+### OSS support (audio output)
+###
+.if !empty(PKG_OPTIONS:Moss)
+PLIST.oss=	yes
+MAKE_FLAGS+=	USE_OSS=yes    # full-duplex issues
+.else
+MAKE_FLAGS+=	USE_OSS=
+.endif
+
+###
+### opencore-amr support (audio codec)
+###
+.if !empty(PKG_OPTIONS:Mopencore-amr)
+PLIST.opencore-amr=	yes
+MAKE_FLAGS+=	USE_AMR=yes
+.include "../../audio/opencore-amr/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_AMR=
+.endif
+
+###
+### opus support (audio codec)
+###
+.if !empty(PKG_OPTIONS:Mopus)
+PLIST.opus=	yes
+MAKE_FLAGS+=	USE_OPUS=yes
+.include "../../audio/libopus/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_OPUS=
+.endif
+
+###
+### Portaudio support (audio output)
+###
+.if !empty(PKG_OPTIONS:Mportaudio)
+PLIST.portaudio=	yes
+MAKE_FLAGS+=	USE_PORTAUDIO=yes
+.include "../../audio/portaudio/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_PORTAUDIO=
+.endif
+
+###
+### Pulseaudio support (audio output)
+###
+.if !empty(PKG_OPTIONS:Mpulseaudio)
+PLIST.pulseaudio=	yes
+MAKE_FLAGS+=	USE_PULSE=yes
+.include "../../audio/pulseaudio/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_PULSE=
+.endif
+
+###
+### SDL support (video output)
+###
+.if !empty(PKG_OPTIONS:Msdl)
+PLIST.sdl=	yes
+MAKE_FLAGS+=	USE_SDL=yes
+.include "../../devel/SDL/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_SDL=
+.endif
+
+###
+### SDL2 support (video output)
+###
+.if !empty(PKG_OPTIONS:Msdl2)
+PLIST.sdl2=	yes
+MAKE_FLAGS+=	USE_SDL2=yes
+.include "../../devel/SDL2/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_SDL2=
+.endif
+
+###
+### sndfile support (audio input)
+###
+.if !empty(PKG_OPTIONS:Msndfile)
+PLIST.sndfile=	yes
+MAKE_FLAGS+=	USE_SNDFILE=yes
+.include "../../audio/libsndfile/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_SNDFILE=
+.endif
+
+###
+### sndio support (audio output)
+###
+.if !empty(PKG_OPTIONS:Msndio)
+PLIST.sndio=	yes
+MAKE_FLAGS+=	USE_SNDIO=yes
+# XXX this needs a buildlink3.mk ?
+DEPENDS+=	sndio-[0-9]*:../../wip/sndio
+.else
+MAKE_FLAGS+=	USE_SNDIO=
+.endif
+
+###
+### speex support (audio codec)
+###
+.if !empty(PKG_OPTIONS:Mspeex)
+PLIST.speex=	yes
+MAKE_FLAGS+=	HAVE_SPEEXDSP=yes
+MAKE_FLAGS+=	USE_SPEEX=yes
+MAKE_FLAGS+=	USE_SPEEX_AEC=yes
+MAKE_FLAGS+=	USE_SPEEX_PP=yes
+.include "../../audio/speex/buildlink3.mk"
+.include "../../audio/speexdsp/buildlink3.mk"
+.else
+MAKE_FLAGS+=	HAVE_SPEEXDSP=
+MAKE_FLAGS+=	USE_SPEEX=
+MAKE_FLAGS+=	USE_SPEEX_AEC=
+MAKE_FLAGS+=	USE_SPEEX_PP=
+.endif
+
+###
+### Video4Linux2 support (video input)
+###
+.if !empty(PKG_OPTIONS:Mv4l2)
+PLIST.v4l2=	yes
+MAKE_FLAGS+=	HAVE_LIBV4L2=yes
+MAKE_FLAGS+=	USE_V4L2=yes
+.include "../../graphics/libv4l/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_V4L2=
+.endif
+
+###
+### x11 support (video output)
+###
+.if !empty(PKG_OPTIONS:Mx11)
+PLIST.x11=	yes
+LFLAGS+=	${X11_LDFLAGS}
+MAKE_FLAGS+=	USE_X11=yes
+.include "../../x11/libX11/buildlink3.mk"
+.include "../../x11/libXext/buildlink3.mk"
+.else
+MAKE_FLAGS+=	USE_X11=
+.endif
diff --git a/baresip/patches/patch-mk_modules.mk b/baresip/patches/patch-mk_modules.mk
new file mode 100644
index 0000000..13704d1
--- /dev/null
+++ b/baresip/patches/patch-mk_modules.mk
@@ -0,0 +1,39 @@
+$NetBSD$
+
+Enable the experimental jack module. This provides an alternative for
+audio on systems where the full duplex oss/portaudio (opened separately
+for read and write) gives problems.
+
+Make sndio available for non-OpenBSD.
+
+--- mk/modules.mk.orig	2016-07-22 19:17:45.000000000 +0000
++++ mk/modules.mk
+@@ -241,7 +241,7 @@ USE_WINWAVE := yes
+ MODULES   += wincons
+ endif
+ ifeq ($(OS),openbsd)
+-MODULES   += sndio
++USE_SNDIO := yes
+ endif
+ ifeq ($(OS),freebsd)
+ MODULES   += dtmfio
+@@ -355,6 +355,9 @@ endif
+ ifneq ($(USE_ISAC),)
+ MODULES   += isac
+ endif
++ifneq ($(USE_JACK),)
++MODULES   += jack
++endif
+ ifneq ($(USE_L16),)
+ MODULES   += l16
+ endif
+@@ -394,6 +397,9 @@ endif
+ ifneq ($(USE_SNDFILE),)
+ MODULES   += sndfile
+ endif
++ifneq ($(USE_SNDIO),)
++MODULES   += sndio
++endif
+ ifneq ($(USE_SPEEX),)
+ MODULES   += speex
+ endif
diff --git a/baresip/patches/patch-modules_ilbc_ilbc.c b/baresip/patches/patch-modules_ilbc_ilbc.c
new file mode 100644
index 0000000..a47dc6a
--- /dev/null
+++ b/baresip/patches/patch-modules_ilbc_ilbc.c
@@ -0,0 +1,23 @@
+$NetBSD$
+
+Use libilbc. Almost no changes.
+
+--- modules/ilbc/ilbc.c.orig	2016-07-22 19:17:45.000000000 +0000
++++ modules/ilbc/ilbc.c
+@@ -5,10 +5,13 @@
+  */
+ #include <re.h>
+ #include <baresip.h>
+-#include <iLBC_define.h>
+-#include <iLBC_decode.h>
+-#include <iLBC_encode.h>
++#include <ilbc.h>
++#include <string.h>
+ 
++#define NO_OF_BYTES_20MS	38
++#define NO_OF_BYTES_30MS	50
++#define NO_OF_WORDS_20MS	19
++#define NO_OF_WORDS_30MS	25
+ 
+ /**
+  * @defgroup ilbc ilbc
diff --git a/baresip/patches/patch-modules_v4l2_v4l2.c b/baresip/patches/patch-modules_v4l2_v4l2.c
new file mode 100644
index 0000000..d15ef98
--- /dev/null
+++ b/baresip/patches/patch-modules_v4l2_v4l2.c
@@ -0,0 +1,18 @@
+$NetBSD$
+
+V4L2_FMT_FLAG_EMULATED is undefined on NetBSD-7. This define
+effectively says that no device is emulated (if the underlying
+v4l2 does not know about emulated devices).
+
+--- modules/v4l2/v4l2.c.orig	2016-07-22 19:17:45.000000000 +0000
++++ modules/v4l2/v4l2.c
+@@ -36,6 +36,9 @@
+ #define v4l2_close close
+ #endif
+ 
++#ifndef V4L2_FMT_FLAG_EMULATED
++#define V4L2_FMT_FLAG_EMULATED 0
++#endif
+ 
+ /**
+  * @defgroup v4l2 v4l2


Home | Main Index | Thread Index | Old Index