aboutsummaryrefslogtreecommitdiffstats
path: root/codecs
diff options
context:
space:
mode:
Diffstat (limited to 'codecs')
-rw-r--r--codecs/codecs.c10
-rw-r--r--codecs/codecs.h2
2 files changed, 6 insertions, 6 deletions
diff --git a/codecs/codecs.c b/codecs/codecs.c
index abe3eaa714..1843ba36fd 100644
--- a/codecs/codecs.c
+++ b/codecs/codecs.c
@@ -119,19 +119,18 @@ find_codec(const char *name)
}
/* Register a codec by name. */
-void
+gboolean
register_codec(const char *name, codec_init_fn init_fn, codec_release_fn release_fn, codec_decode_fn decode_fn)
{
struct codec_handle *handle;
/* Create our hash table if it doesn't already exist */
- if (registered_codecs == NULL) {
+ if (registered_codecs == NULL)
registered_codecs = g_hash_table_new(g_str_hash, g_str_equal);
- g_assert(registered_codecs != NULL);
- }
/* Make sure the registration is unique */
- g_assert(g_hash_table_lookup(registered_codecs, name) == NULL);
+ if (g_hash_table_lookup(registered_codecs, name) != NULL)
+ return FALSE; /* report an error, or have our caller do it? */
handle = (struct codec_handle *)g_malloc(sizeof (struct codec_handle));
handle->name = name;
@@ -140,6 +139,7 @@ register_codec(const char *name, codec_init_fn init_fn, codec_release_fn release
handle->decode_fn = decode_fn;
g_hash_table_insert(registered_codecs, (gpointer)name, (gpointer) handle);
+ return TRUE;
}
void *codec_init(codec_handle_t codec)
diff --git a/codecs/codecs.h b/codecs/codecs.h
index f293e26f2d..6093b5559c 100644
--- a/codecs/codecs.h
+++ b/codecs/codecs.h
@@ -46,7 +46,7 @@ typedef void *(*codec_init_fn)(void);
typedef void (*codec_release_fn)(void *context);
typedef int (*codec_decode_fn)(void *context, const void *input, int inputSizeBytes, void *output, int *outputSizeBytes);
-extern void register_codec(const char *name, codec_init_fn init_fn, codec_release_fn release_fn, codec_decode_fn decode_fn);
+extern gboolean register_codec(const char *name, codec_init_fn init_fn, codec_release_fn release_fn, codec_decode_fn decode_fn);
extern codec_handle_t find_codec(const char *name);
extern void *codec_init(codec_handle_t codec);
extern void codec_release(codec_handle_t codec, void *context);