linux-bluetooth.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] tools/hcidump: Decode MPEG-1,2 Audio codec capabilities
@ 2014-05-28  8:50 Andrzej Kaczmarek
  2014-05-28 12:19 ` Luiz Augusto von Dentz
  0 siblings, 1 reply; 2+ messages in thread
From: Andrzej Kaczmarek @ 2014-05-28  8:50 UTC (permalink / raw)
  To: linux-bluetooth; +Cc: Andrzej Kaczmarek

---
 tools/parser/avdtp.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 58 insertions(+)

diff --git a/tools/parser/avdtp.c b/tools/parser/avdtp.c
index 14dc417..5969067 100644
--- a/tools/parser/avdtp.c
+++ b/tools/parser/avdtp.c
@@ -222,6 +222,7 @@ static void capabilities(int level, struct frame *frm)
 			uint8_t type, codec;
 			uint16_t tmp, freq, vndcodec = 0;
 			uint32_t bitrate, vendor = 0;
+			int i;
 
 			type  = get_u8(frm);
 			codec = get_u8(frm);
@@ -288,6 +289,63 @@ static void capabilities(int level, struct frame *frm)
 				p_indent(level + 1, frm);
 				printf("Bitpool Range %d-%d\n", tmp, get_u8(frm));
 				break;
+			case 1:
+				tmp = get_u8(frm);
+				p_indent(level + 1, frm);
+				printf("Layers: ");
+				if (tmp & 0x80)
+					printf("1 ");
+				if (tmp & 0x40)
+					printf("2 ");
+				if (tmp & 0x20)
+					printf("3 ");
+				printf("\n");
+				p_indent(level + 1, frm);
+				printf("CRC Protection: %s\n",
+						tmp & 0x10 ? "Yes" : "No");
+				p_indent(level + 1, frm);
+				if (tmp & 0x08)
+					printf("Mono ");
+				if (tmp & 0x04)
+					printf("DualChannel ");
+				if (tmp & 0x02)
+					printf("Stereo ");
+				if (tmp & 0x01)
+					printf("JointStereo ");
+				printf("\n");
+				tmp = get_u8(frm);
+				p_indent(level + 1, frm);
+				printf("Media Payload Format: RFC-2250 %s\n",
+						tmp & 0x40 ? "RFC-3119" : "");
+				p_indent(level + 1, frm);
+				if (tmp & 0x20)
+					printf("16kHz ");
+				if (tmp & 0x10)
+					printf("22.05kHz ");
+				if (tmp & 0x08)
+					printf("24kHz ");
+				if (tmp & 0x04)
+					printf("32kHz ");
+				if (tmp & 0x02)
+					printf("44.1kHz ");
+				if (tmp & 0x01)
+					printf("48kHz ");
+				printf("\n");
+				tmp = get_u16(frm);
+				p_indent(level + 1, frm);
+				printf("VBR: %s\n",
+						tmp & 0x8000 ? "Yes" : "No");
+				p_indent(level + 1, frm);
+				printf("Bit Rate Indexes: ");
+				if (tmp & 0x8000) {
+					printf("n/a");
+				} else {
+					for (i = 0; i < 15; i++, tmp >>= 1)
+						if (tmp & 0x0001)
+							printf("%d ", i);
+				}
+				printf("\n");
+				break;
 			case 2:
 				tmp = get_u8(frm);
 				p_indent(level + 1, frm);
-- 
1.9.3


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH] tools/hcidump: Decode MPEG-1,2 Audio codec capabilities
  2014-05-28  8:50 [PATCH] tools/hcidump: Decode MPEG-1,2 Audio codec capabilities Andrzej Kaczmarek
@ 2014-05-28 12:19 ` Luiz Augusto von Dentz
  0 siblings, 0 replies; 2+ messages in thread
From: Luiz Augusto von Dentz @ 2014-05-28 12:19 UTC (permalink / raw)
  To: Andrzej Kaczmarek; +Cc: linux-bluetooth@vger.kernel.org

Hi Andrzej,

On Wed, May 28, 2014 at 11:50 AM, Andrzej Kaczmarek
<andrzej.kaczmarek@tieto.com> wrote:
> ---
>  tools/parser/avdtp.c | 58 ++++++++++++++++++++++++++++++++++++++++++++++++++++
>  1 file changed, 58 insertions(+)
>
> diff --git a/tools/parser/avdtp.c b/tools/parser/avdtp.c
> index 14dc417..5969067 100644
> --- a/tools/parser/avdtp.c
> +++ b/tools/parser/avdtp.c
> @@ -222,6 +222,7 @@ static void capabilities(int level, struct frame *frm)
>                         uint8_t type, codec;
>                         uint16_t tmp, freq, vndcodec = 0;
>                         uint32_t bitrate, vendor = 0;
> +                       int i;
>
>                         type  = get_u8(frm);
>                         codec = get_u8(frm);
> @@ -288,6 +289,63 @@ static void capabilities(int level, struct frame *frm)
>                                 p_indent(level + 1, frm);
>                                 printf("Bitpool Range %d-%d\n", tmp, get_u8(frm));
>                                 break;
> +                       case 1:
> +                               tmp = get_u8(frm);
> +                               p_indent(level + 1, frm);
> +                               printf("Layers: ");
> +                               if (tmp & 0x80)
> +                                       printf("1 ");
> +                               if (tmp & 0x40)
> +                                       printf("2 ");
> +                               if (tmp & 0x20)
> +                                       printf("3 ");
> +                               printf("\n");
> +                               p_indent(level + 1, frm);
> +                               printf("CRC Protection: %s\n",
> +                                               tmp & 0x10 ? "Yes" : "No");
> +                               p_indent(level + 1, frm);
> +                               if (tmp & 0x08)
> +                                       printf("Mono ");
> +                               if (tmp & 0x04)
> +                                       printf("DualChannel ");
> +                               if (tmp & 0x02)
> +                                       printf("Stereo ");
> +                               if (tmp & 0x01)
> +                                       printf("JointStereo ");
> +                               printf("\n");
> +                               tmp = get_u8(frm);
> +                               p_indent(level + 1, frm);
> +                               printf("Media Payload Format: RFC-2250 %s\n",
> +                                               tmp & 0x40 ? "RFC-3119" : "");
> +                               p_indent(level + 1, frm);
> +                               if (tmp & 0x20)
> +                                       printf("16kHz ");
> +                               if (tmp & 0x10)
> +                                       printf("22.05kHz ");
> +                               if (tmp & 0x08)
> +                                       printf("24kHz ");
> +                               if (tmp & 0x04)
> +                                       printf("32kHz ");
> +                               if (tmp & 0x02)
> +                                       printf("44.1kHz ");
> +                               if (tmp & 0x01)
> +                                       printf("48kHz ");
> +                               printf("\n");
> +                               tmp = get_u16(frm);
> +                               p_indent(level + 1, frm);
> +                               printf("VBR: %s\n",
> +                                               tmp & 0x8000 ? "Yes" : "No");
> +                               p_indent(level + 1, frm);
> +                               printf("Bit Rate Indexes: ");
> +                               if (tmp & 0x8000) {
> +                                       printf("n/a");
> +                               } else {
> +                                       for (i = 0; i < 15; i++, tmp >>= 1)
> +                                               if (tmp & 0x0001)
> +                                                       printf("%d ", i);
> +                               }
> +                               printf("\n");
> +                               break;
>                         case 2:
>                                 tmp = get_u8(frm);
>                                 p_indent(level + 1, frm);
> --
> 1.9.3

Pushed, thanks.


-- 
Luiz Augusto von Dentz

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2014-05-28 12:19 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-05-28  8:50 [PATCH] tools/hcidump: Decode MPEG-1,2 Audio codec capabilities Andrzej Kaczmarek
2014-05-28 12:19 ` Luiz Augusto von Dentz

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).