Mercurial > libavformat.hg
diff framehook.c @ 4:dcc03a32d1bb libavformat
Added support for a realease function to eliminate the context blocks used
by each hook.
| author | philipjsg |
|---|---|
| date | Sat, 30 Nov 2002 17:16:32 +0000 |
| parents | 05318cf2e886 |
| children | b0e0eb595e29 |
line wrap: on
line diff
--- a/framehook.c Fri Nov 29 19:19:47 2002 +0000 +++ b/framehook.c Sat Nov 30 17:16:32 2002 +0000 @@ -21,7 +21,7 @@ #include "framehook.h" #include "avformat.h" -#ifdef HAVE_VHOOK +#ifdef CONFIG_HAVE_DLFCN #include <dlfcn.h> #endif @@ -30,6 +30,7 @@ struct _FrameHookEntry *next; FrameHookConfigureFn Configure; FrameHookProcessFn Process; + FrameHookReleaseFn Release; void *ctx; } FrameHookEntry; @@ -59,6 +60,7 @@ fhe->Configure = dlsym(loaded, "Configure"); fhe->Process = dlsym(loaded, "Process"); + fhe->Release = dlsym(loaded, "Release"); /* Optional */ if (!fhe->Process) { fprintf(stderr, "Failed to find Process entrypoint in %s\n", argv[0]); @@ -100,3 +102,18 @@ } } } + +void frame_hook_release() +{ + FrameHookEntry *fhe; + FrameHookEntry *fhenext; + + for (fhe = first_hook; fhe; fhe = fhenext) { + fhenext = fhe->next; + if (fhe->Release) + fhe->Release(fhe->ctx); + av_free(fhe); + } + + first_hook = NULL; +}
