summaryrefslogtreecommitdiff
path: root/codecs/codecs.c
diff options
context:
space:
mode:
Diffstat (limited to 'codecs/codecs.c')
-rw-r--r--codecs/codecs.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/codecs/codecs.c b/codecs/codecs.c
index f7921eade2..7f628a7043 100644
--- a/codecs/codecs.c
+++ b/codecs/codecs.c
@@ -169,6 +169,20 @@ register_codec(const char *name, codec_init_fn init_fn, codec_release_fn release
return TRUE;
}
+/* Deregister a codec by name. */
+gboolean
+deregister_codec(const char *name)
+{
+ gpointer key, value;
+
+ if (registered_codecs && g_hash_table_lookup_extended(registered_codecs, name, &key, &value)) {
+ g_hash_table_remove(registered_codecs, name);
+ g_free(value);
+ return TRUE;
+ }
+ return FALSE;
+}
+
void *codec_init(codec_handle_t codec)
{
if (!codec) return NULL;