@ -192,8 +192,7 @@ void codec_handlers_update(struct call_media *receiver, struct call_media *sink,
const struct sdp_ng_flags * flags )
const struct sdp_ng_flags * flags )
{
{
if ( ! receiver - > codec_handlers )
if ( ! receiver - > codec_handlers )
receiver - > codec_handlers = g_hash_table_new_full ( g_int_hash , g_int_equal ,
NULL , __codec_handler_free ) ;
receiver - > codec_handlers = g_hash_table_new ( g_int_hash , g_int_equal ) ;
MEDIA_CLEAR ( receiver , TRANSCODE ) ;
MEDIA_CLEAR ( receiver , TRANSCODE ) ;
receiver - > rtcp_handler = NULL ;
receiver - > rtcp_handler = NULL ;
@ -351,6 +350,7 @@ void codec_handlers_update(struct call_media *receiver, struct call_media *sink,
handler = __handler_new ( pt ) ;
handler = __handler_new ( pt ) ;
g_hash_table_insert ( receiver - > codec_handlers , & handler - > source_pt . payload_type ,
g_hash_table_insert ( receiver - > codec_handlers , & handler - > source_pt . payload_type ,
handler ) ;
handler ) ;
g_queue_push_tail ( & receiver - > codec_handlers_store , handler ) ;
}
}
/ / check our own support for this codec
/ / check our own support for this codec
@ -513,6 +513,7 @@ void codec_handlers_free(struct call_media *m) {
g_hash_table_destroy ( m - > codec_handlers ) ;
g_hash_table_destroy ( m - > codec_handlers ) ;
m - > codec_handlers = NULL ;
m - > codec_handlers = NULL ;
m - > codec_handler_cache = NULL ;
m - > codec_handler_cache = NULL ;
g_queue_clear_full ( & m - > codec_handlers_store , __codec_handler_free ) ;
}
}