]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
fix bv codecs
authorBrian West <brian@freeswitch.org>
Fri, 20 Nov 2009 02:15:49 +0000 (02:15 +0000)
committerBrian West <brian@freeswitch.org>
Fri, 20 Nov 2009 02:15:49 +0000 (02:15 +0000)
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@15564 d0543943-73ff-0310-b7d9-9358b9ac24b2

src/mod/codecs/mod_bv/mod_bv.c

index 70057379f3bac63108b12e81eec792614b802522..a3e3d9e239fd5d2657eed5fd4e2f042ebb304f2b 100644 (file)
@@ -54,11 +54,11 @@ static switch_status_t switch_bv16_init(switch_codec_t *codec, switch_codec_flag
        } 
 
        if (encoding) {
-               bv16_encode_init(context->encoder_object);
+               context->encoder_object = bv16_encode_init(NULL);
        }
        
        if (decoding) {
-               bv16_decode_init(context->decoder_object);
+               context->decoder_object = bv16_decode_init(NULL);
        }
        
        codec->private_info = context;
@@ -67,6 +67,16 @@ static switch_status_t switch_bv16_init(switch_codec_t *codec, switch_codec_flag
 
 static switch_status_t switch_bv16_destroy(switch_codec_t *codec)
 {
+       struct bv16_context *context = codec->private_info;
+       
+       if (context->encoder_object) {
+               bv16_encode_free(context->encoder_object);
+       }
+
+       if (context->decoder_object) {
+               bv16_decode_free(context->decoder_object);
+       }
+
        codec->private_info = NULL;
        return SWITCH_STATUS_SUCCESS;
 }
@@ -127,11 +137,11 @@ static switch_status_t switch_bv32_init(switch_codec_t *codec, switch_codec_flag
        } 
 
        if (encoding) {
-               bv32_encode_init(context->encoder_object);
+               context->encoder_object = bv32_encode_init(NULL);
        }
        
        if (decoding) {
-               bv32_decode_init(context->decoder_object);
+               context->decoder_object = bv32_decode_init(NULL);
        }
        
        codec->private_info = context;
@@ -140,7 +150,19 @@ static switch_status_t switch_bv32_init(switch_codec_t *codec, switch_codec_flag
 
 static switch_status_t switch_bv32_destroy(switch_codec_t *codec)
 {
+       struct bv32_context *context = codec->private_info;
+
+       if (context->encoder_object) {
+               bv32_encode_free(context->encoder_object);
+       }
+
+       if (context->decoder_object) {
+               bv32_decode_free(context->decoder_object);
+       }
+
        codec->private_info = NULL;
+
+
        return SWITCH_STATUS_SUCCESS;
 }