Hello community,

here is the log from the commit of package alsa-utils for openSUSE:Factory 
checked in at 2013-02-04 19:02:39
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/alsa-utils (Old)
 and      /work/SRC/openSUSE:Factory/.alsa-utils.new (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "alsa-utils", Maintainer is "ti...@suse.com"

Changes:
--------
--- /work/SRC/openSUSE:Factory/alsa-utils/alsa-utils.changes    2012-12-03 
09:28:22.000000000 +0100
+++ /work/SRC/openSUSE:Factory/.alsa-utils.new/alsa-utils.changes       
2013-02-04 19:02:43.000000000 +0100
@@ -1,0 +2,9 @@
+Fri Feb  1 08:04:39 CET 2013 - ti...@suse.de
+
+- Backport a few fix patches from upstream git tree:
+  0012-aplay-Add-the-support-for-big-endian-WAV-format-RIFX.patch
+  0013-configure-Fix-obsolete-AM_CONFIG_HEADER-macro.patch
+  0014-speaker-test-increase-the-maximum-supported-rate-to-.patch
+  0015-amixer-Fix-dB-value-outputs-in-amixer-contents.patch
+
+-------------------------------------------------------------------

New:
----
  0012-aplay-Add-the-support-for-big-endian-WAV-format-RIFX.patch
  0013-configure-Fix-obsolete-AM_CONFIG_HEADER-macro.patch
  0014-speaker-test-increase-the-maximum-supported-rate-to-.patch
  0015-amixer-Fix-dB-value-outputs-in-amixer-contents.patch

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ alsa-utils.spec ++++++
--- /var/tmp/diff_new_pack.l0dFBV/_old  2013-02-04 19:02:44.000000000 +0100
+++ /var/tmp/diff_new_pack.l0dFBV/_new  2013-02-04 19:02:44.000000000 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package alsa-utils
 #
-# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
+# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -68,6 +68,10 @@
 Patch9:         0009-amixer-Fix-parsing-container-TLV-entries.patch
 Patch10:        0010-alsaloop-Make-alsaloop-working-without-libsamplerate.patch
 Patch11:        0011-alsaloop-Fix-missing-endif.patch
+Patch12:        0012-aplay-Add-the-support-for-big-endian-WAV-format-RIFX.patch
+Patch13:        0013-configure-Fix-obsolete-AM_CONFIG_HEADER-macro.patch
+Patch14:        0014-speaker-test-increase-the-maximum-supported-rate-to-.patch
+Patch15:        0015-amixer-Fix-dB-value-outputs-in-amixer-contents.patch
 #
 Patch99:        alsa-utils-gettext-version-removal.diff
 Url:            http://www.alsa-project.org/
@@ -94,6 +98,10 @@
 %patch9 -p1
 %patch10 -p1
 %patch11 -p1
+%patch12 -p1
+%patch13 -p1
+%patch14 -p1
+%patch15 -p1
 %if %suse_version < 1020
 %patch99 -p1
 %endif

++++++ 0012-aplay-Add-the-support-for-big-endian-WAV-format-RIFX.patch ++++++
>From de61ec66fe303888bc5db49b5989e37bb1ddfca5 Mon Sep 17 00:00:00 2001
From: Takashi Iwai <ti...@suse.de>
Date: Thu, 13 Dec 2012 10:53:19 +0100
Subject: [PATCH 12/15] aplay: Add the support for big-endian WAV format (RIFX)

Signed-off-by: Takashi Iwai <ti...@suse.de>
---
 aplay/aplay.c   |   95 ++++++++++++++++++++++++++++++++++++++------------------
 aplay/formats.h |    7 ++++
 2 files changed, 73 insertions(+), 29 deletions(-)

--- a/aplay/aplay.c
+++ b/aplay/aplay.c
@@ -892,11 +892,20 @@ static ssize_t test_wavefile(int fd, u_c
        WaveFmtBody *f;
        WaveChunkHeader *c;
        u_int type, len;
+       unsigned short format, channels;
+       int big_endian, native_format;
 
        if (size < sizeof(WaveHeader))
                return -1;
-       if (h->magic != WAV_RIFF || h->type != WAV_WAVE)
+       if (h->magic == WAV_RIFF)
+               big_endian = 0;
+       else if (h->magic == WAV_RIFX)
+               big_endian = 1;
+       else
                return -1;
+       if (h->type != WAV_WAVE)
+               return -1;
+
        if (size > sizeof(WaveHeader)) {
                check_wavefile_space(buffer, size - sizeof(WaveHeader), blimit);
                memcpy(buffer, _buffer + sizeof(WaveHeader), size - 
sizeof(WaveHeader));
@@ -907,7 +916,7 @@ static ssize_t test_wavefile(int fd, u_c
                test_wavefile_read(fd, buffer, &size, sizeof(WaveChunkHeader), 
__LINE__);
                c = (WaveChunkHeader*)buffer;
                type = c->type;
-               len = LE_INT(c->length);
+               len = TO_CPU_INT(c->length, big_endian);
                len += len % 2;
                if (size > sizeof(WaveChunkHeader))
                        memmove(buffer, buffer + sizeof(WaveChunkHeader), size 
- sizeof(WaveChunkHeader));
@@ -929,7 +938,8 @@ static ssize_t test_wavefile(int fd, u_c
        check_wavefile_space(buffer, len, blimit);
        test_wavefile_read(fd, buffer, &size, len, __LINE__);
        f = (WaveFmtBody*) buffer;
-       if (LE_SHORT(f->format) == WAV_FMT_EXTENSIBLE) {
+       format = TO_CPU_SHORT(f->format, big_endian);
+       if (format == WAV_FMT_EXTENSIBLE) {
                WaveFmtExtensibleBody *fe = (WaveFmtExtensibleBody*)buffer;
                if (len < sizeof(WaveFmtExtensibleBody)) {
                        error(_("unknown length of extensible 'fmt ' chunk 
(read %u, should be %u at least)"),
@@ -940,19 +950,20 @@ static ssize_t test_wavefile(int fd, u_c
                        error(_("wrong format tag in extensible 'fmt ' chunk"));
                        prg_exit(EXIT_FAILURE);
                }
-               f->format = fe->guid_format;
+               format = TO_CPU_SHORT(fe->guid_format, big_endian);
        }
-        if (LE_SHORT(f->format) != WAV_FMT_PCM &&
-            LE_SHORT(f->format) != WAV_FMT_IEEE_FLOAT) {
-                error(_("can't play WAVE-file format 0x%04x which is not PCM 
or FLOAT encoded"), LE_SHORT(f->format));
+       if (format != WAV_FMT_PCM &&
+           format != WAV_FMT_IEEE_FLOAT) {
+                error(_("can't play WAVE-file format 0x%04x which is not PCM 
or FLOAT encoded"), format);
                prg_exit(EXIT_FAILURE);
        }
-       if (LE_SHORT(f->channels) < 1) {
-               error(_("can't play WAVE-files with %d tracks"), 
LE_SHORT(f->channels));
+       channels = TO_CPU_SHORT(f->channels, big_endian);
+       if (channels < 1) {
+               error(_("can't play WAVE-files with %d tracks"), channels);
                prg_exit(EXIT_FAILURE);
        }
-       hwparams.channels = LE_SHORT(f->channels);
-       switch (LE_SHORT(f->bit_p_spl)) {
+       hwparams.channels = channels;
+       switch (TO_CPU_SHORT(f->bit_p_spl, big_endian)) {
        case 8:
                if (hwparams.format != DEFAULT_FORMAT &&
                    hwparams.format != SND_PCM_FORMAT_U8)
@@ -960,43 +971,69 @@ static ssize_t test_wavefile(int fd, u_c
                hwparams.format = SND_PCM_FORMAT_U8;
                break;
        case 16:
+               if (big_endian)
+                       native_format = SND_PCM_FORMAT_S16_BE;
+               else
+                       native_format = SND_PCM_FORMAT_S16_LE;
                if (hwparams.format != DEFAULT_FORMAT &&
-                   hwparams.format != SND_PCM_FORMAT_S16_LE)
-                       fprintf(stderr, _("Warning: format is changed to 
S16_LE\n"));
-               hwparams.format = SND_PCM_FORMAT_S16_LE;
+                   hwparams.format != native_format)
+                       fprintf(stderr, _("Warning: format is changed to %s\n"),
+                               snd_pcm_format_name(native_format));
+               hwparams.format = native_format;
                break;
        case 24:
-               switch (LE_SHORT(f->byte_p_spl) / hwparams.channels) {
+               switch (TO_CPU_SHORT(f->byte_p_spl, big_endian) / 
hwparams.channels) {
                case 3:
+                       if (big_endian)
+                               native_format = SND_PCM_FORMAT_S24_3BE;
+                       else
+                               native_format = SND_PCM_FORMAT_S24_3LE;
                        if (hwparams.format != DEFAULT_FORMAT &&
-                           hwparams.format != SND_PCM_FORMAT_S24_3LE)
-                               fprintf(stderr, _("Warning: format is changed 
to S24_3LE\n"));
-                       hwparams.format = SND_PCM_FORMAT_S24_3LE;
+                           hwparams.format != native_format)
+                               fprintf(stderr, _("Warning: format is changed 
to %s\n"),
+                                       snd_pcm_format_name(native_format));
+                       hwparams.format = native_format;
                        break;
                case 4:
+                       if (big_endian)
+                               native_format = SND_PCM_FORMAT_S24_BE;
+                       else
+                               native_format = SND_PCM_FORMAT_S24_LE;
                        if (hwparams.format != DEFAULT_FORMAT &&
-                           hwparams.format != SND_PCM_FORMAT_S24_LE)
-                               fprintf(stderr, _("Warning: format is changed 
to S24_LE\n"));
-                       hwparams.format = SND_PCM_FORMAT_S24_LE;
+                           hwparams.format != native_format)
+                               fprintf(stderr, _("Warning: format is changed 
to %s\n"),
+                                       snd_pcm_format_name(native_format));
+                       hwparams.format = native_format;
                        break;
                default:
                        error(_(" can't play WAVE-files with sample %d bits in 
%d bytes wide (%d channels)"),
-                             LE_SHORT(f->bit_p_spl), LE_SHORT(f->byte_p_spl), 
hwparams.channels);
+                             TO_CPU_SHORT(f->bit_p_spl, big_endian),
+                             TO_CPU_SHORT(f->byte_p_spl, big_endian),
+                             hwparams.channels);
                        prg_exit(EXIT_FAILURE);
                }
                break;
        case 32:
-                if (LE_SHORT(f->format) == WAV_FMT_PCM)
-                        hwparams.format = SND_PCM_FORMAT_S32_LE;
-                else if (LE_SHORT(f->format) == WAV_FMT_IEEE_FLOAT)
-                        hwparams.format = SND_PCM_FORMAT_FLOAT_LE;
+               if (format == WAV_FMT_PCM) {
+                       if (big_endian)
+                               native_format = SND_PCM_FORMAT_S32_BE;
+                       else
+                               native_format = SND_PCM_FORMAT_S32_LE;
+                        hwparams.format = native_format;
+               } else if (format == WAV_FMT_IEEE_FLOAT) {
+                       if (big_endian)
+                               native_format = SND_PCM_FORMAT_FLOAT_BE;
+                       else
+                               native_format = SND_PCM_FORMAT_FLOAT_LE;
+                       hwparams.format = native_format;
+               }
                break;
        default:
                error(_(" can't play WAVE-files with sample %d bits wide"),
-                     LE_SHORT(f->bit_p_spl));
+                     TO_CPU_SHORT(f->bit_p_spl, big_endian));
                prg_exit(EXIT_FAILURE);
        }
-       hwparams.rate = LE_INT(f->sample_fq);
+       hwparams.rate = TO_CPU_INT(f->sample_fq, big_endian);
        
        if (size > len)
                memmove(buffer, buffer + len, size - len);
@@ -1009,7 +1046,7 @@ static ssize_t test_wavefile(int fd, u_c
                test_wavefile_read(fd, buffer, &size, sizeof(WaveChunkHeader), 
__LINE__);
                c = (WaveChunkHeader*)buffer;
                type = c->type;
-               len = LE_INT(c->length);
+               len = TO_CPU_INT(c->length, big_endian);
                if (size > sizeof(WaveChunkHeader))
                        memmove(buffer, buffer + sizeof(WaveChunkHeader), size 
- sizeof(WaveChunkHeader));
                size -= sizeof(WaveChunkHeader);
--- a/aplay/formats.h
+++ b/aplay/formats.h
@@ -60,7 +60,14 @@ typedef struct voc_ext_block {
 #error "Wrong endian"
 #endif
 
+/* Note: the following macros evaluate the parameter v twice */
+#define TO_CPU_SHORT(v, be) \
+       ((be) ? BE_SHORT(v) : LE_SHORT(v))
+#define TO_CPU_INT(v, be) \
+       ((be) ? BE_INT(v) : LE_INT(v))
+
 #define WAV_RIFF               COMPOSE_ID('R','I','F','F')
+#define WAV_RIFX               COMPOSE_ID('R','I','F','X')
 #define WAV_WAVE               COMPOSE_ID('W','A','V','E')
 #define WAV_FMT                        COMPOSE_ID('f','m','t',' ')
 #define WAV_DATA               COMPOSE_ID('d','a','t','a')
++++++ 0013-configure-Fix-obsolete-AM_CONFIG_HEADER-macro.patch ++++++
>From 66d1cf74866867773bf841293cc5a9a96484e4c6 Mon Sep 17 00:00:00 2001
From: Marko Lindqvist <cazf...@gmail.com>
Date: Wed, 16 Jan 2013 15:25:38 +0100
Subject: [PATCH 13/15] configure: Fix obsolete AM_CONFIG_HEADER macro

Automake-1.13 removed long obsolete AM_CONFIG_HEADER completely (
http://lists.gnu.org/archive/html/automake/2012-12/msg00038.html )
and errors out upon seeing it.

Attached patch replaces it with proper AC_CONFIG_HEADERS.

Signed-off-by: Marko Lindqvist <cazf...@gmail.com>
Signed-off-by: Takashi Iwai <ti...@suse.de>
---
 configure.in |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/configure.in
+++ b/configure.in
@@ -290,7 +290,7 @@ AC_ARG_WITH(testsound,
   TESTSOUND="$dir/test.wav")
 AC_SUBST(TESTSOUND)
 
-AM_CONFIG_HEADER(include/aconfig.h)
+AC_CONFIG_HEADERS(include/aconfig.h)
 
 dnl Checks for typedefs, structures, and compiler characteristics.
 AC_C_CONST
++++++ 0014-speaker-test-increase-the-maximum-supported-rate-to-.patch ++++++
>From cd39cfb480cd3ee6b771de33925094892b3be9fe Mon Sep 17 00:00:00 2001
From: Antonio Ospite <a...@amarulasolutions.com>
Date: Wed, 16 Jan 2013 17:06:04 +0100
Subject: [PATCH 14/15] speaker-test: increase the maximum supported rate to
 384000

There are some devices around supporting this sample rate so let's make
speaker-test capable to deal with them.

Signed-off-by: Antonio Ospite <a...@amarulasolutions.com>
Signed-off-by: Takashi Iwai <ti...@suse.de>
---
 speaker-test/speaker-test.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

--- a/speaker-test/speaker-test.c
+++ b/speaker-test/speaker-test.c
@@ -999,7 +999,7 @@ int main(int argc, char *argv[]) {
     case 'r':
       rate = atoi(optarg);
       rate = rate < 4000 ? 4000 : rate;
-      rate = rate > 196000 ? 196000 : rate;
+      rate = rate > 384000 ? 384000 : rate;
       break;
     case 'c':
       channels = atoi(optarg);
++++++ 0015-amixer-Fix-dB-value-outputs-in-amixer-contents.patch ++++++
>From bfcb26f9f7b893e24ebeeb76232c5cd0066d087e Mon Sep 17 00:00:00 2001
From: Takashi Iwai <ti...@suse.de>
Date: Thu, 31 Jan 2013 17:47:50 +0100
Subject: [PATCH 15/15] amixer: Fix dB value outputs in amixer contents

Add missing cast to signed int for DB_MINMAX* types.

Signed-off-by: Takashi Iwai <ti...@suse.de>
---
 amixer/amixer.c |    8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -560,9 +560,9 @@ static void decode_tlv(unsigned int spac
                        }
                } else {
                        printf("min=");
-                       print_dB(tlv[2]);
+                       print_dB((int)tlv[2]);
                        printf(",max=");
-                       print_dB(tlv[3]);
+                       print_dB((int)tlv[3]);
                }
                break;
 #endif
@@ -600,9 +600,9 @@ static void decode_tlv(unsigned int spac
                        }
                } else {
                        printf("min=");
-                       print_dB(tlv[2]);
+                       print_dB((int)tlv[2]);
                        printf(",max=");
-                       print_dB(tlv[3]);
+                       print_dB((int)tlv[3]);
                }
                break;
 #endif
-- 
To unsubscribe, e-mail: opensuse-commit+unsubscr...@opensuse.org
For additional commands, e-mail: opensuse-commit+h...@opensuse.org

Reply via email to