Module Name: src Committed By: nat Date: Mon Jun 26 12:17:10 UTC 2017
Modified Files: src/sys/dev: mulaw.c Log Message: Better solution to mulaw/alaw conversion on big endian systems/sound devices. To generate a diff of this commit: cvs rdiff -u -r1.31 -r1.32 src/sys/dev/mulaw.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/dev/mulaw.c diff -u src/sys/dev/mulaw.c:1.31 src/sys/dev/mulaw.c:1.32 --- src/sys/dev/mulaw.c:1.31 Mon Jun 26 11:45:46 2017 +++ src/sys/dev/mulaw.c Mon Jun 26 12:17:09 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: mulaw.c,v 1.31 2017/06/26 11:45:46 nat Exp $ */ +/* $NetBSD: mulaw.c,v 1.32 2017/06/26 12:17:09 nat Exp $ */ /* * Copyright (c) 1991-1993 Regents of the University of California. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: mulaw.c,v 1.31 2017/06/26 11:45:46 nat Exp $"); +__KERNEL_RCSID(0, "$NetBSD: mulaw.c,v 1.32 2017/06/26 12:17:09 nat Exp $"); #include <sys/types.h> #include <sys/systm.h> @@ -321,10 +321,10 @@ DEFINE_FILTER(mulaw_to_linear##n_prec) break; \ case AUDIO_ENCODING_ULINEAR_BE: \ FILTER_LOOP_PROLOGUE(this->src, 1, dst, hw, m) { \ - j = hw - 2; \ + j = 2; \ d[0] = mulawtolin16[s[0]][0]; \ d[1] = mulawtolin16[s[0]][1]; \ - while (j > 0 && j < hw) \ + while (j < hw) \ d[j++] = 0; \ } FILTER_LOOP_EPILOGUE(this->src, dst); \ break; \ @@ -339,10 +339,10 @@ DEFINE_FILTER(mulaw_to_linear##n_prec) break; \ case AUDIO_ENCODING_SLINEAR_BE: \ FILTER_LOOP_PROLOGUE(this->src, 1, dst, hw, m) { \ - j = hw - 2; \ + j = 2; \ d[0] = mulawtolin16[s[0]][0] ^ 0x80; \ d[1] = mulawtolin16[s[0]][1]; \ - while (j > 0 && j < hw) \ + while (j < hw) \ d[j++] = 0; \ } FILTER_LOOP_EPILOGUE(this->src, dst); \ break; \ @@ -456,10 +456,10 @@ DEFINE_FILTER(alaw_to_linear##n_prec) break; \ case AUDIO_ENCODING_ULINEAR_BE: \ FILTER_LOOP_PROLOGUE(this->src, 1, dst, hw, m) { \ - j = hw - 2; \ + j = 2; \ d[0] = alawtolin16[s[0]][0]; \ d[1] = alawtolin16[s[0]][1]; \ - while (j > 0 && j < hw) \ + while (j < hw) \ d[j++] = 0; \ } FILTER_LOOP_EPILOGUE(this->src, dst); \ break; \ @@ -474,10 +474,10 @@ DEFINE_FILTER(alaw_to_linear##n_prec) break; \ case AUDIO_ENCODING_SLINEAR_BE: \ FILTER_LOOP_PROLOGUE(this->src, 1, dst, hw, m) { \ - j = hw - 2; \ + j = 2; \ d[0] = alawtolin16[s[0]][0] ^ 0x80; \ d[1] = alawtolin16[s[0]][1]; \ - while (j > 0 && j < hw) \ + while (j < hw) \ d[j++] = 0; \ } FILTER_LOOP_EPILOGUE(this->src, dst); \ break; \