# HG changeset patch # User kabi # Date 1037007460 0 # Node ID c01c98206ee60984bd6d00f9493d08c021c7f807 # Parent a25aed263097e86e203e6149477c6f3d71a60400 * useless commit - ignore diff -r a25aed263097 -r c01c98206ee6 avcodec.c --- 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; }