[FFmpeg-devel] default lock mechanism in libavcodec/utils.c

wm4 nfxjfg at googlemail.com
Wed Feb 19 12:16:43 CET 2014


On Wed, 19 Feb 2014 13:52:37 +0530
anshul <anshul.ffmpeg at gmail.com> wrote:

> I have done some doxygen kind of Documentation for function 
> av_cleanup_on_lib_unload()
> I have called ff_destroy_lock_avcodec inside av_cleanup_on_lib_unload, 
> since I am still looking for
> reference counting idea over there i would require function 
> ff_destroy_lock_avcodec.

Maybe I'm a bit too late to the party, but why would you want such a
av_cleanup_on_lib_unload()?

This will lead to horrible stuff like library A trying to "unload"
libavcodec, while library B is still using it. You can't generally use
this function correctly.

And apparently all it does is silencing valgrind output.

You can have this easier and instruct valgrind to ignore it:
http://valgrind.org/docs/manual/manual-core.html#manual-core.suppress

Besides, I think this lock manager stuff is horrible and shouldn't
exist at all. Instead, a statically initialized pthread lock should be
used. But this would require updating the w32pthread wrapper as well as
the OS/2 wrapper, which probably is not easy - but maybe worth it?

pthread_once is another pthread API function that could be used and
which might be easier to emulate than static mutex initializers.


More information about the ffmpeg-devel mailing list