いくつかのFFmpeg関数は、同時に複数のスレッドから呼び出すのは安全ではないということを、私は読んだり(どこかで覚えておらず、今はもう見つからないかもしれません。ffmpeg:どの機能がマルチスレッドで安全ですか?
のFFmpeg自体は、あなたが同時に異なるスレッドから同じコンテキストにav_read_frame
またはavcodec_decode_audio4
を呼ぶべきではないという意味で安全なマルチスレッドされていない - それは、ほとんど明らかです。
しかし、たとえば、別のコンテキストでもavformat_find_stream_info
が異なるスレッドから同時に呼び出すのは安全でないようです。したがって、安全にするためには、グローバルミューテックスが必要です。
安全でない機能のリストはありますか?
avformat_find_stream_infoもスレッドセーフではないことを言いたいだけです。 –
FFmpegを '--enable-pthreads'でビルドすると、FFmpegは自動的に独自のデフォルトのロックマネージャ実装を使用しますので、' av_lockmgr_register() 'を呼び出す必要はありません。 – smokris