On 8/18/2014 5:22 PM, Patrick Dehne wrote:
Am 18.08.2014 um 23:10 schrieb wm4 <[email protected]>:
On Mon, 11 Aug 2014 12:39:02 +0200
Ole Andre Birkedal <[email protected]> wrote:
Hi.
I'm currently developing a multithreaded C++ program using std::thread.
Recently I have been having some crashing issues and it all seems to
related non-thread safety of some function in the FFmpeg API.
Does there exist an exhausting list of all the function that are not
thread safe?
All of them.
You may want to take a look at the documentation of av_lockmgr_register.
Certain ffmpeg open and close functions need to be serialized across all
threads.
These include avformat_open_input/avformat_close_input and
avcodec_open/avcodec_close.
By default ffmpeg assumes your app is single threaded and doesn't need
locking, so the underlying "locks" are no-ops. There is a function,
av_lockmgr_register, that allows the app to provide your locking mechanism.
The docs for avcodec_open/close and avformat_open/close_input do not
mention av_lockmgr_register. It wasn't until I looked through ffmpeg
source code and found the no-op locking mechanism that I found out about
av_lockmgr_register. That gave me something to google for, so I found
some discussions about it, like this one:
http://stackoverflow.com/questions/13888915/thread-safety-of-libav-ffmpeg
--Johno
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user