Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 14 Jun 2015 15:05:10 +0000 (UTC)
From:      Thomas Zander <riggs@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r389640 - in head/audio/jack: . files
Message-ID:  <201506141505.t5EF5A3k050205@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: riggs
Date: Sun Jun 14 15:05:09 2015
New Revision: 389640
URL: https://svnweb.freebsd.org/changeset/ports/389640

Log:
  Fix support for 24-bit and 32-bit resolution
  
  While on it:
  - Pet portlint
  
  PR:		199558
  Submitted by:	hselasky@FreeBSD.org

Added:
  head/audio/jack/files/patch-drivers_alsa_memops.c
     - copied, changed from r389625, head/audio/jack/files/patch-drivers-alsa_memops.c
Deleted:
  head/audio/jack/files/patch-drivers-alsa_memops.c
Modified:
  head/audio/jack/Makefile
  head/audio/jack/files/patch-configure
  head/audio/jack/files/patch-drivers-dummy-dummy_driver.c
  head/audio/jack/files/patch-drivers-dummy-dummy_driver.h
  head/audio/jack/files/patch-drivers-oss-oss_driver.c
  head/audio/jack/files/patch-jack.pc.in
  head/audio/jack/files/patch-jackd_engine.c
  head/audio/jack/files/patch-libjack-client.c

Modified: head/audio/jack/Makefile
==============================================================================
--- head/audio/jack/Makefile	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/Makefile	Sun Jun 14 15:05:09 2015	(r389640)
@@ -3,7 +3,7 @@
 
 PORTNAME=	jackit
 PORTVERSION=	0.124.1
-PORTREVISION=	3
+PORTREVISION=	4
 CATEGORIES=	audio
 MASTER_SITES=	http://jackaudio.org/downloads/
 DISTNAME=	jack-audio-connection-kit-${PORTVERSION}

Modified: head/audio/jack/files/patch-configure
==============================================================================
--- head/audio/jack/files/patch-configure	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-configure	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,6 +1,7 @@
---- configure	2014-01-22 15:23:47.000000000 -0500
-+++ configure	2014-11-30 13:05:39.000000000 -0500
-@@ -2608,48 +2608,4 @@
+--- configure.orig	2014-01-22 20:23:47 UTC
++++ configure
+@@ -2607,50 +2607,6 @@ ac_link='$CC -o conftest$ac_exeext $CFLA
+ ac_compiler_gnu=$ac_cv_c_compiler_gnu
  
  
 -
@@ -49,3 +50,4 @@
 -
  ac_aux_dir=
  for ac_dir in config "$srcdir"/config; do
+   for ac_t in install-sh install.sh shtool; do

Modified: head/audio/jack/files/patch-drivers-dummy-dummy_driver.c
==============================================================================
--- head/audio/jack/files/patch-drivers-dummy-dummy_driver.c	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-drivers-dummy-dummy_driver.c	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,6 +1,6 @@
---- drivers/dummy/dummy_driver.c.orig	2009-02-12 04:44:04.000000000 +0100
-+++ drivers/dummy/dummy_driver.c	2009-02-12 04:44:15.000000000 +0100
-@@ -73,7 +73,7 @@
+--- drivers/dummy/dummy_driver.c.orig	2013-10-04 00:45:25 UTC
++++ drivers/dummy/dummy_driver.c
+@@ -73,7 +73,7 @@ FakeVideoSync( dummy_driver_t *driver )
          }
  }
  

Modified: head/audio/jack/files/patch-drivers-dummy-dummy_driver.h
==============================================================================
--- head/audio/jack/files/patch-drivers-dummy-dummy_driver.h	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-drivers-dummy-dummy_driver.h	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,6 +1,6 @@
---- drivers/dummy/dummy_driver.h.orig	2009-02-12 05:04:38.000000000 +0100
-+++ drivers/dummy/dummy_driver.h	2009-02-12 05:04:44.000000000 +0100
-@@ -44,7 +44,7 @@
+--- drivers/dummy/dummy_driver.h.orig	2013-10-04 00:45:25 UTC
++++ drivers/dummy/dummy_driver.h
+@@ -44,7 +44,7 @@ struct _dummy_driver
      jack_nframes_t  period_size;
      unsigned long   wait_time;
  

Modified: head/audio/jack/files/patch-drivers-oss-oss_driver.c
==============================================================================
--- head/audio/jack/files/patch-drivers-oss-oss_driver.c	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-drivers-oss-oss_driver.c	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,4 +1,4 @@
---- drivers/oss/oss_driver.c.orig
+--- drivers/oss/oss_driver.c.orig	2013-10-04 00:45:25 UTC
 +++ drivers/oss/oss_driver.c
 @@ -23,6 +23,7 @@
  
@@ -8,7 +8,7 @@
  #ifdef USE_BARRIER
  /*
   * POSIX conformance level should be globally defined somewhere, possibly
-@@ -181,7 +182,9 @@ static void set_period_size (oss_driver_
+@@ -183,7 +184,9 @@ static void set_period_size (oss_driver_
  		((double) driver->period_size /
  		(double) driver->sample_rate) * 1e6;
  	driver->last_wait_ust = 0;
@@ -19,7 +19,7 @@
  	driver->next_periodtime = 0;
  	driver->iodelay = 0.0F;
  }
-@@ -189,7 +192,9 @@ static void set_period_size (oss_driver_
+@@ -191,7 +194,9 @@ static void set_period_size (oss_driver_
  
  static inline void update_times (oss_driver_t *driver)
  {
@@ -30,7 +30,85 @@
  	if (driver->next_periodtime > 0)
  	{
  		driver->iodelay = (float)
-@@ -759,7 +764,9 @@ static int oss_driver_start (oss_driver_
+@@ -224,6 +229,7 @@ static void copy_and_convert_in (jack_sa
+ 	int dstidx;
+ 	signed short *s16src = (signed short *) src;
+ 	signed int *s32src = (signed int *) src;
++	unsigned char *s24src = (unsigned char *) src;
+ 	double *f64src = (double *) src;
+ 	jack_sample_t scale;
+ 
+@@ -240,11 +246,14 @@ static void copy_and_convert_in (jack_sa
+ 			}
+ 			break;
+ 		case 24:
+-			scale = 1.0f / 0x7fffff;
++			scale = 1.0f / 0x7fffffff;
+ 			for (dstidx = 0; dstidx < nframes; dstidx++)
+ 			{
+ 				dst[dstidx] = (jack_sample_t)
+-					s32src[srcidx] * scale;
++				    ((signed int)(
++				    (s24src[3 * srcidx + 2] << 24) |
++				    (s24src[3 * srcidx + 1] << 16) |
++				    (s24src[3 * srcidx + 0] << 8))) * scale;
+ 				srcidx += chcount;
+ 			}
+ 			break;
+@@ -274,6 +283,7 @@ static void copy_and_convert_out (void *
+ 	int srcidx;
+ 	int dstidx;
+ 	signed short *s16dst = (signed short *) dst;
++	unsigned char *s24dst = (unsigned char *) dst;
+ 	signed int *s32dst = (signed int *) dst;
+ 	double *f64dst = (double *) dst;
+ 	jack_sample_t scale;
+@@ -293,13 +303,17 @@ static void copy_and_convert_out (void *
+ 			}
+ 			break;
+ 		case 24:
+-			scale = 0x7fffff;
++			scale = 0x7fffffff;
+ 			for (srcidx = 0; srcidx < nframes; srcidx++)
+ 			{
+-				s32dst[dstidx] = (signed int)
+-					(src[srcidx] >= 0.0f) ?
+-					(src[srcidx] * scale + 0.5f) :
+-					(src[srcidx] * scale - 0.5f);
++				signed int sample =
++				    (src[srcidx] >= 0.0f) ?
++				    (src[srcidx] * scale + 0.5f) :
++				    (src[srcidx] * scale - 0.5f) ;
++
++				s24dst[3*dstidx + 2] = sample >> 24;
++				s24dst[3*dstidx + 1] = sample >> 16;
++				s24dst[3*dstidx + 0] = sample >> 8;
+ 				dstidx += chcount;
+ 			}
+ 			break;
+@@ -471,20 +485,7 @@ static int oss_driver_start (oss_driver_
+ 	const char *indev = driver->indev;
+ 	const char *outdev = driver->outdev;
+ 
+-	switch (driver->bits)
+-	{
+-		case 24:
+-		case 32:
+-			samplesize = sizeof(int);
+-			break;
+-		case 64:
+-			samplesize = sizeof(double);
+-			break;
+-		case 16:
+-		default:
+-			samplesize = sizeof(short);
+-			break;
+-	}
++	samplesize = driver->bits / 8;
+ 	driver->trigger = 0;
+ 	if (strcmp(indev, outdev) != 0)
+ 	{
+@@ -762,7 +763,9 @@ static int oss_driver_start (oss_driver_
  	if (driver->threads & 1) sem_post(&driver->sem_start);
  	if (driver->threads & 2) sem_post(&driver->sem_start);
  
@@ -41,3 +119,89 @@
  	driver->next_periodtime = 0;
  	driver->iodelay = 0.0F;
  
+@@ -1235,7 +1238,24 @@ jack_driver_t * driver_initialize (jack_
+ 		}
+ 		pnode = jack_slist_next(pnode);
+ 	}
+-	
++
++	switch (bits)
++	{
++	case 16:	/* native-endian 16-bit integer */
++		driver->format = AFMT_S16_NE;
++		break;
++	case 24:	/* little-endian 24-bit integer */
++		driver->format = AFMT_S24_LE;
++		break;
++	case 32:	/* native-endian 32-bit integer */
++		driver->format = AFMT_S32_NE;
++		break;
++	default:
++		free(driver);
++		jack_error("OSS: invalid number of bits: %d",
++			__FILE__, __LINE__, bits);
++		return NULL;
++	}
+ 	driver->sample_rate = sample_rate;
+ 	driver->period_size = period_size;
+ 	driver->nperiods = nperiods;
+@@ -1254,59 +1274,6 @@ jack_driver_t * driver_initialize (jack_
+ 		driver->outdev = strdup(OSS_DRIVER_DEF_DEV);
+ 	driver->infd = -1;
+ 	driver->outfd = -1;
+-	switch (driver->bits)
+-	{
+-#		ifndef OSS_ENDIAN
+-#		ifdef __GNUC__
+-#		if (defined(__i386__) || defined(__alpha__) || defined(__arm__) || defined(__x86_64__) || (defined(__sh__) && !defined(__LITTLE_ENDIAN__)))
+-#		define OSS_LITTLE_ENDIAN 1234
+-#		define OSS_ENDIAN OSS_LITTLE_ENDIAN
+-#		else
+-#		define OSS_BIG_ENDIAN 4321
+-#		define OSS_ENDIAN OSS_BIG_ENDIAN
+-#		endif
+-#		else /* __GNUC__ */
+-#		if (defined(_AIX) || defined(AIX) || defined(sparc) || defined(__hppa) || defined(PPC) || defined(__powerpc__) && !defined(i386) && !defined(__i386) && !defined(__i386__))
+-#		define OSS_BIG_ENDIAN 4321
+-#		define OSS_ENDIAN OSS_BIG_ENDIAN
+-#		else
+-#		define OSS_LITTLE_ENDIAN 1234
+-#		define OSS_ENDIAN OSS_LITTLE_ENDIAN
+-#		endif
+-#		endif /* __GNUC__ */
+-#		endif /* OSS_ENDIAN */
+-#		if (OSS_ENDIAN == 1234)
+-		/* little-endian architectures */
+-		case 24:	/* little-endian LSB aligned 24-bits in 32-bits  integer */
+-			driver->format = 0x00008000;
+-			break;
+-		case 32:	/* little-endian 32-bit integer */
+-			driver->format = 0x00001000;
+-			break;
+-		case 64:	/* native-endian 64-bit float */
+-			driver->format = 0x00004000;
+-			break;
+-		case 16:	/* little-endian 16-bit integer */
+-		default:
+-			driver->format = 0x00000010;
+-			break;
+-		/* big-endian architectures */
+-#		else
+-		case 24:	/* big-endian LSB aligned 24-bits in 32-bits integer */
+-			break;
+-			driver->format = 0x00010000;
+-		case 32:	/* big-endian 32-bit integer */
+-			driver->format = 0x00002000;
+-			break;
+-		case 64:	/* native-endian 64-bit float */
+-			driver->format = 0x00004000;
+-			break;
+-		case 16:	/* big-endian 16-bit integer */
+-		default:
+-			driver->format = 0x00000020;
+-#		endif
+-	}
+-
+ 	driver->indevbuf = driver->outdevbuf = NULL;
+ 
+ 	driver->capture_ports = NULL;

Copied and modified: head/audio/jack/files/patch-drivers_alsa_memops.c (from r389625, head/audio/jack/files/patch-drivers-alsa_memops.c)
==============================================================================
--- head/audio/jack/files/patch-drivers-alsa_memops.c	Sun Jun 14 10:38:39 2015	(r389625, copy source)
+++ head/audio/jack/files/patch-drivers_alsa_memops.c	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,5 +1,5 @@
---- drivers/alsa/memops.c.orig	2010-05-08 20:23:13.000000000 -0300
-+++ drivers/alsa/memops.c	2010-05-08 20:23:24.000000000 -0300
+--- drivers/alsa/memops.c.orig	2013-10-04 00:45:25 UTC
++++ drivers/alsa/memops.c
 @@ -30,7 +30,7 @@
  #include <stdlib.h>
  #include <stdint.h>
@@ -7,5 +7,5 @@
 -#include <endian.h>
 +#include <sys/endian.h>
  
- #include <jack/memops.h>
+ #include "memops.h"
  

Modified: head/audio/jack/files/patch-jack.pc.in
==============================================================================
--- head/audio/jack/files/patch-jack.pc.in	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-jack.pc.in	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,9 +1,9 @@
---- jack.pc.in.orig	Thu Jun  5 03:21:36 2003
-+++ jack.pc.in	Sun Mar 14 22:49:44 2004
-@@ -6,5 +6,5 @@
+--- jack.pc.in.orig	2013-10-04 00:45:25 UTC
++++ jack.pc.in
+@@ -6,5 +6,5 @@ includedir=@includedir@
  Name: jack
  Description: the Jack Audio Connection Kit: a low-latency synchronous callback-based media server
  Version: @JACK_VERSION@
--Libs: -L${libdir} -ljack -lpthread -ldl -lrt
+-Libs: -L${libdir} -ljack -lpthread @OS_LDFLAGS@
 +Libs: -L${libdir} -ljack -lpthread
  Cflags: -I${includedir}

Modified: head/audio/jack/files/patch-jackd_engine.c
==============================================================================
--- head/audio/jack/files/patch-jackd_engine.c	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-jackd_engine.c	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,6 +1,6 @@
---- jackd/engine.c.orig	2008-12-02 17:29:23.000000000 +0100
-+++ jackd/engine.c	2009-02-11 20:38:52.000000000 +0100
-@@ -1383,7 +1383,7 @@
+--- jackd/engine.c.orig	2013-11-30 17:04:00 UTC
++++ jackd/engine.c
+@@ -1415,7 +1415,7 @@ handle_external_client_request (jack_eng
  	if ((r = read (client->request_fd, &req, sizeof (req)))
  	    < (ssize_t) sizeof (req)) {
  		if (r == 0) {
@@ -9,7 +9,7 @@
  			/* poll is implemented using
  			   select (see the macosx/fakepoll
  			   code). When the socket is closed
-@@ -1396,7 +1396,7 @@
+@@ -1428,7 +1428,7 @@ handle_external_client_request (jack_eng
  			   and remove the client.
  			*/
  			jack_mark_client_socket_error (engine, fd);

Modified: head/audio/jack/files/patch-libjack-client.c
==============================================================================
--- head/audio/jack/files/patch-libjack-client.c	Sun Jun 14 14:33:46 2015	(r389639)
+++ head/audio/jack/files/patch-libjack-client.c	Sun Jun 14 15:05:09 2015	(r389640)
@@ -1,6 +1,6 @@
---- libjack/client.c.orig	2014-10-23 09:09:09.000000000 +0200
-+++ libjack/client.c	2014-10-23 09:20:15.000000000 +0200
-@@ -116,6 +116,30 @@
+--- libjack/client.c.orig	2014-01-21 22:48:10 UTC
++++ libjack/client.c
+@@ -116,6 +116,30 @@ init_cpu ()
  
  char *jack_tmpdir = DEFAULT_TMP_DIR;
  
@@ -31,7 +31,7 @@
  static int
  jack_get_tmpdir ()
  {
-@@ -248,7 +272,7 @@
+@@ -248,7 +272,7 @@ oop_client_deliver_request (void *ptr, j
  	int wok, rok;
  	jack_client_t *client = (jack_client_t*) ptr;
  
@@ -40,7 +40,7 @@
  	       == sizeof (*req));
  
          /* if necessary, add variable length key data after a PropertyChange request
-@@ -256,7 +280,7 @@
+@@ -256,7 +280,7 @@ oop_client_deliver_request (void *ptr, j
          
          if (req->type == PropertyChangeNotify) {
                  if (req->x.property.keylen) {
@@ -49,7 +49,7 @@
                                  jack_error ("cannot send property key of length %d to server",
                                              req->x.property.keylen);
                                  req->status = -1;
-@@ -265,7 +289,7 @@
+@@ -265,7 +289,7 @@ oop_client_deliver_request (void *ptr, j
                  }
          }
  
@@ -58,7 +58,7 @@
  	       == sizeof (*req));
  
  	if (wok && rok) {		/* everything OK? */
-@@ -822,14 +846,14 @@
+@@ -822,14 +846,14 @@ server_event_connect (jack_client_t *cli
  
  	jack_uuid_copy (&req.client_id, client->control->uuid);
  
@@ -75,7 +75,7 @@
  		jack_error ("cannot read event connect result from server (%s)",
  			    strerror (errno));
  		close (fd);
-@@ -1070,14 +1094,14 @@
+@@ -1070,14 +1094,14 @@ jack_request_client (ClientType type,
  	snprintf (req.object_data, sizeof (req.object_data),
  		  "%s", va->load_init);
  
@@ -92,7 +92,7 @@
  
  		if (errno == 0) {
  			/* server shut the socket */
-@@ -1456,7 +1480,7 @@
+@@ -1456,7 +1480,7 @@ jack_internal_client_close (const char *
  		return;
  	}
  
@@ -101,7 +101,7 @@
  		jack_error ("cannot deliver ClientUnload request to JACK "
  			    "server.");
  	}
-@@ -1582,7 +1606,7 @@
+@@ -1582,7 +1606,7 @@ jack_session_notify (jack_client_t* clie
  
  	request.x.session.type = code;
  	
@@ -110,7 +110,7 @@
  	       != sizeof (request)) ) {
  		jack_error ("cannot send request type %d to server",
  				    request.type);
-@@ -1592,7 +1616,7 @@
+@@ -1592,7 +1616,7 @@ jack_session_notify (jack_client_t* clie
  	while( 1 ) {
  		jack_uuid_t uid;
  
@@ -119,7 +119,7 @@
  			jack_error ("cannot read result for request type %d from"
  					" server (%s)", request.type, strerror (errno));
  			goto out;
-@@ -1613,19 +1637,19 @@
+@@ -1613,19 +1637,19 @@ jack_session_notify (jack_client_t* clie
  			break;
                  }
  
@@ -142,7 +142,7 @@
  			       	!= sizeof(retval[num_replies-1].flags) ) {
  			jack_error ("cannot read result for request type %d from"
  					" server (%s)", request.type, strerror (errno));
-@@ -1742,7 +1766,7 @@
+@@ -1742,7 +1766,7 @@ jack_client_process_events (jack_client_
  		/* server has sent us an event. process the
  		 * event and reply */
  		
@@ -151,7 +151,7 @@
  		    != sizeof (event)) {
  			jack_error ("cannot read server event (%s)",
  				    strerror (errno));
-@@ -1751,7 +1775,7 @@
+@@ -1751,7 +1775,7 @@ jack_client_process_events (jack_client_
  
                  if (event.type == PropertyChange) {
                          key = (char *) malloc (event.y.key_size);
@@ -160,7 +160,7 @@
                              event.y.key_size) {
                                  jack_error ("cannot read property change key (%s)",
                                              strerror (errno));
-@@ -1868,7 +1892,7 @@
+@@ -1868,7 +1892,7 @@ jack_client_process_events (jack_client_
  		DEBUG ("client has dealt with the event, writing "
  		       "response on event fd");
  		
@@ -169,7 +169,7 @@
  		    != sizeof (status)) {
  			jack_error ("cannot send event response to "
  				    "engine (%s)", strerror (errno));
-@@ -1888,7 +1912,7 @@
+@@ -1888,7 +1912,7 @@ jack_wake_next_client (jack_client_t* cl
  	int pret = 0;
  	char c = 0;
  
@@ -178,7 +178,7 @@
  	    != sizeof (c)) {
  		DEBUG("cannot write byte to fd %d", client->graph_next_fd);
  		jack_error ("cannot continue execution of the "
-@@ -1916,7 +1940,7 @@
+@@ -1916,7 +1940,7 @@ jack_wake_next_client (jack_client_t* cl
  	}
  
  	if (pret > 0 && (pfds[0].revents & POLLIN)) {



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201506141505.t5EF5A3k050205>