From 34347418e3e1f328ec1bbe081aeae97019552a39 Mon Sep 17 00:00:00 2001 From: Mark Spencer Date: Wed, 19 May 2004 03:39:44 +0000 Subject: Allow multiple codecs to be printed in debug (bug #989) git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@3011 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- frame.c | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) (limited to 'frame.c') diff --git a/frame.c b/frame.c index c127ebcdd..1e80f0b0d 100755 --- a/frame.c +++ b/frame.c @@ -424,6 +424,33 @@ char* ast_getformatname(int format) return "UNKN"; } +char* ast_getformatname_multiple(char *buf, unsigned n, int format) { + unsigned u=1; + unsigned len; + char *b = buf; + char *start = buf; + if (!n) return buf; + snprintf(b,n,"0x%x(",format); + len = strlen(b); + b += len; + n -= len; + start = b; + while (u) { + if (u&format) { + snprintf(b,n,"%s|",ast_getformatname(u)); + len = strlen(b); + b += len; + n -= len; + } + u *= 2; + } + if (start==b) + snprintf(start,n,"EMPTY)"); + else if (n>1) + b[-1]=')'; + return buf; +} + int ast_getformatbyname(char *name) { if (!strcasecmp(name, "g723.1")) -- cgit v1.2.3