Przeczytałem (gdzieś, nie pamiętam i znajduję to już teraz - być może pytanie byłoby dla mnie przestarzałe, w przeciwnym razie), że niektóre funkcje FFmpeg nie są bezpieczne do wywoływania z wielu wątków w tym samym czasie.ffmpeg: które funkcje są wielowątkowe bezpieczne?
Sam FFmpeg nie jest wielowątkowy bezpieczny w tym sensie, że nie powinieneś nazywać się av_read_frame
lub avcodec_decode_audio4
w tym samym kontekście z różnych wątków w tym samym czasie - ale to jest w większości oczywiste.
Ale na przykład wygląda na to, że avformat_find_stream_info
nawet w różnych kontekstach nie można bezpiecznie wywoływać z różnych wątków w tym samym czasie. Aby to zapewnić, potrzebowałbyś globalnego muteksa.
Czy istnieje lista funkcji, które nie są bezpieczne?
wystarczy wspomnieć, że avformat_find_stream_info również nie jest bezpieczny dla wątków. –
Jeśli zbudujesz FFmpeg z '--enable-pthreads', FFmpeg automatycznie użyje własnej domyślnej implementacji menedżera blokad, więc nie ma potrzeby wywoływania' av_lockmgr_register() '. – smokris