changeset 852:c01c98206ee6 libavcodec

* useless commit - ignore
author kabi
date Mon, 11 Nov 2002 09:37:40 +0000
parents a25aed263097
children eacc2dd8fd9d
files avcodec.c
diffstat 1 files changed, 20 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/avcodec.c	Mon Nov 11 09:31:17 2002 +0000
+++ b/avcodec.c	Mon Nov 11 09:37:40 2002 +0000
@@ -8,12 +8,16 @@
 // private structure used to hide all internal memory allocations
 // and structures used for de/encoding - end user should
 // never see any complicated structure
-typedef struct
+typedef struct private_handle
 {
     AVCodec* avcodec;
     AVCodecContext avcontext;
+    struct private_handle* next;
+    struct private_handle* prev;
 } private_handle_t;
 
+static private_handle_t* handle_first = 0;
+
 static AVCodec* avcodec_find_by_fcc(uint32_t fcc)
 {
     // translation table
@@ -23,7 +27,7 @@
     } lc[] = {
 	{ CODEC_ID_H263, { MKTAG('U', '2', '6', '3'), 0 } },
 	{ CODEC_ID_H263I, { MKTAG('I', '2', '6', '3'), 0 } },
-	{ CODEC_ID_MSMPEG4, { MKTAG('D', 'I', 'V', '3'), 0 } },
+	{ CODEC_ID_MSMPEG4V3, { MKTAG('D', 'I', 'V', '3'), 0 } },
 	{ CODEC_ID_MPEG4, { MKTAG('D', 'I', 'V', 'X'),  MKTAG('D', 'X', '5', '0'), 0 } },
 	{ CODEC_ID_MSMPEG4V2, { MKTAG('M', 'P', '4', '2'), 0 } },
 	{ CODEC_ID_MJPEG, { MKTAG('M', 'J', 'P', 'G'), 0 } },
@@ -51,10 +55,22 @@
     private_handle_t* t = malloc(sizeof(private_handle_t));
     if (!t)
 	return NULL;
+    memset(t, 0, sizeof(*t));
 
     // register and fill
-    avcodec_init();
-    avcodec_register_all();
+    if (!handle_first)
+    {
+	avcodec_init();
+	avcodec_register_all();
+        handle_first = t;
+    }
+    else
+    {
+        t->prev = handle_first->next;
+	handle_first->next = t;
+	t->next = handle_first;
+    }
+
     return t;
 }