Revision
15564
Author
brian
Date
2009-11-19 20:15:49 -0600 (Thu, 19 Nov 2009)

Log Message

fix bv codecs

Modified Paths

Diff

Modified: freeswitch/trunk/src/mod/codecs/mod_bv/mod_bv.c (15563 => 15564)


--- freeswitch/trunk/src/mod/codecs/mod_bv/mod_bv.c	2009-11-19 22:49:21 UTC (rev 15563)
+++ freeswitch/trunk/src/mod/codecs/mod_bv/mod_bv.c	2009-11-20 02:15:49 UTC (rev 15564)
@@ -54,11 +54,11 @@
 	} 
 
 	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_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 @@
 	} 
 
 	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_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;
 }