diff options
Diffstat (limited to 'codecs')
-rw-r--r-- | codecs/codec_zap.c | 35 |
1 files changed, 18 insertions, 17 deletions
diff --git a/codecs/codec_zap.c b/codecs/codec_zap.c index f04f11021..f4ea5886f 100644 --- a/codecs/codec_zap.c +++ b/codecs/codec_zap.c @@ -114,7 +114,6 @@ struct pvt { int lasttotalms; #endif struct zt_transcode_header *hdr; - struct ast_frame f; }; static int transcoder_show(int fd, int argc, char **argv) @@ -186,13 +185,14 @@ static struct ast_frame *zap_frameout(struct ast_trans_pvt *pvt) if (ztp->fake == 2) { ztp->fake = 1; - ztp->f.frametype = AST_FRAME_VOICE; - ztp->f.subclass = 0; - ztp->f.samples = 160; - ztp->f.data = NULL; - ztp->f.offset = 0; - ztp->f.datalen = 0; - ztp->f.mallocd = 0; + pvt->f.frametype = AST_FRAME_VOICE; + pvt->f.subclass = 0; + pvt->f.samples = 160; + pvt->f.data = NULL; + pvt->f.offset = 0; + pvt->f.datalen = 0; + pvt->f.mallocd = 0; + ast_set_flag(&pvt->f, AST_FRFLAG_FROM_TRANSLATOR); pvt->samples = 0; } else if (ztp->fake == 1) { return NULL; @@ -205,14 +205,15 @@ static struct ast_frame *zap_frameout(struct ast_trans_pvt *pvt) ztp->lasttotalms = ztp->totalms; } #endif - ztp->f.frametype = AST_FRAME_VOICE; - ztp->f.subclass = hdr->dstfmt; - ztp->f.samples = hdr->dstsamples; - ztp->f.data = hdr->dstdata + hdr->dstoffset; - ztp->f.offset = hdr->dstoffset; - ztp->f.datalen = hdr->dstlen; - ztp->f.mallocd = 0; - pvt->samples -= ztp->f.samples; + pvt->f.frametype = AST_FRAME_VOICE; + pvt->f.subclass = hdr->dstfmt; + pvt->f.samples = hdr->dstsamples; + pvt->f.data = hdr->dstdata + hdr->dstoffset; + pvt->f.offset = hdr->dstoffset; + pvt->f.datalen = hdr->dstlen; + pvt->f.mallocd = 0; + ast_set_flag(&pvt->f, AST_FRFLAG_FROM_TRANSLATOR); + pvt->samples -= pvt->f.samples; hdr->dstlen = 0; } else { @@ -226,7 +227,7 @@ static struct ast_frame *zap_frameout(struct ast_trans_pvt *pvt) } } - return &ztp->f; + return &pvt->f; } static void zap_destroy(struct ast_trans_pvt *pvt) |