SHA256
1
0
forked from pool/alsa-utils
alsa-utils/0005-amixer-actually-print-all-TLVs-in-a-container-TLV.patch
Cristian Rodríguez d9dc7f88fe Accepting request 201581 from home:tiwai:branches:multimedia:libs
- Upstream fixes: addition of -z option to alsaloop, and a fix for
  amixer TLV parser
  0004-alsaloop-add-z-syslog-option-to-use-syslog-for-error.patch
  0005-amixer-actually-print-all-TLVs-in-a-container-TLV.patch

OBS-URL: https://build.opensuse.org/request/show/201581
OBS-URL: https://build.opensuse.org/package/show/multimedia:libs/alsa-utils?expand=0&rev=92
2013-10-02 21:43:29 +00:00

37 lines
1.2 KiB
Diff

From 180283e2307b07bbd3958d24382aab8271dd4c1d Mon Sep 17 00:00:00 2001
From: Anssi Hannula <anssi.hannula@iki.fi>
Date: Mon, 30 Sep 2013 23:46:50 +0300
Subject: [PATCH] amixer: actually print all TLVs in a container TLV
Due to a wrong indexing of tlv[] decode_tlv() always skips to the end of
the container TLV since the used tlv[1] contains the container TLV size
instead of the intended element size.
This causes, for example, only the first HDMI channel map TLV to be
shown.
Fix the indexing to actually use the element size.
Signed-off-by: Anssi Hannula <anssi.hannula@iki.fi>
Signed-off-by: Takashi Iwai <tiwai@suse.de>
---
amixer/amixer.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/amixer/amixer.c b/amixer/amixer.c
index 7727943..b83b0c3 100644
--- a/amixer/amixer.c
+++ b/amixer/amixer.c
@@ -468,7 +468,7 @@ static void decode_tlv(unsigned int spaces, unsigned int *tlv, unsigned int tlv_
return;
}
decode_tlv(spaces + 2, tlv + idx, tlv[idx+1] + 8);
- idx += 2 + (tlv[1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
+ idx += 2 + (tlv[idx+1] + sizeof(unsigned int) - 1) / sizeof(unsigned int);
}
break;
case SND_CTL_TLVT_DB_SCALE:
--
1.8.4