Merged revisions 89046 via svnmerge from
authorJason Parker <jparker@digium.com>
Tue, 6 Nov 2007 19:10:18 +0000 (19:10 +0000)
committerJason Parker <jparker@digium.com>
Tue, 6 Nov 2007 19:10:18 +0000 (19:10 +0000)
https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r89046 | qwell | 2007-11-06 13:09:30 -0600 (Tue, 06 Nov 2007) | 4 lines

Correctly set the total number of channels from a zaptel transcoder board.

SPD-49, patch by Matthew Nicholson.

........

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@89047 65c4cc65-6c06-0410-ace0-fbb531ad65f3

codecs/codec_zap.c

index 5802ff2..c38aa5a 100644 (file)
@@ -219,7 +219,6 @@ static void zap_destroy(struct ast_trans_pvt *pvt)
        if (ioctl(ztp->fd, ZT_TRANSCODE_OP, &x))
                ast_log(LOG_WARNING, "Failed to release transcoder channel: %s\n", strerror(errno));
 
-       ast_atomic_fetchadd_int(&channels.total, -1);
        switch (ztp->hdr->dstfmt) {
        case AST_FORMAT_G729A:
        case AST_FORMAT_G723_1:
@@ -281,7 +280,6 @@ static int zap_translate(struct ast_trans_pvt *pvt, int dest, int source)
        ztp->fd = fd;
        ztp->hdr = hdr;
 
-       ast_atomic_fetchadd_int(&channels.total, +1);
        switch (hdr->dstfmt) {
        case AST_FORMAT_G729A:
        case AST_FORMAT_G723_1:
@@ -438,6 +436,7 @@ static int find_transcoders(void)
        for (info.tcnum = 0; !(res = ioctl(fd, ZT_TRANSCODE_OP, &info)); info.tcnum++) {
                ast_verb(2, "Found transcoder '%s'.\n", info.name);
                build_translators(&map, info.dstfmts, info.srcfmts);
+               ast_atomic_fetchadd_int(&channels.total, info.numchannels / 2);
        }
        close(fd);