diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-05-19 03:39:44 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2004-05-19 03:39:44 +0000 |
commit | a1e1f02117aa5a7319a7feaa9ee9a1efb0917090 (patch) | |
tree | c79f2640c223fcffed76d0a06ae6a7760c2bb700 /frame.c | |
parent | ceb6e4989146a3f0cc8b7f3c353885f9598fcf41 (diff) |
Allow multiple codecs to be printed in debug (bug #989)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@3011 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'frame.c')
-rwxr-xr-x | frame.c | 27 |
1 files changed, 27 insertions, 0 deletions
@@ -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")) |