aboutsummaryrefslogtreecommitdiffstats
path: root/frame.c
diff options
context:
space:
mode:
authormarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-19 03:39:44 +0000
committermarkster <markster@f38db490-d61c-443f-a65b-d21fe96a405b>2004-05-19 03:39:44 +0000
commita1e1f02117aa5a7319a7feaa9ee9a1efb0917090 (patch)
treec79f2640c223fcffed76d0a06ae6a7760c2bb700 /frame.c
parentceb6e4989146a3f0cc8b7f3c353885f9598fcf41 (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-xframe.c27
1 files changed, 27 insertions, 0 deletions
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"))