mirror of https://git.ffmpeg.org/ffmpeg.git
avcodec/allcodecs: make avcodec_register_all thread safe
use ff_thread_once Suggested-by: wm4 <nfxjfg@googlemail.com> Signed-off-by: Muhammad Faiz <mfcc64@gmail.com>
This commit is contained in:
parent
a6b1180e39
commit
e85e840880
|
@ -25,6 +25,7 @@
|
|||
*/
|
||||
|
||||
#include "config.h"
|
||||
#include "libavutil/thread.h"
|
||||
#include "avcodec.h"
|
||||
#include "version.h"
|
||||
|
||||
|
@ -58,14 +59,8 @@
|
|||
av_register_codec_parser(&ff_##x##_parser); \
|
||||
}
|
||||
|
||||
void avcodec_register_all(void)
|
||||
static void register_all(void)
|
||||
{
|
||||
static int initialized;
|
||||
|
||||
if (initialized)
|
||||
return;
|
||||
initialized = 1;
|
||||
|
||||
/* hardware accelerators */
|
||||
REGISTER_HWACCEL(H263_VAAPI, h263_vaapi);
|
||||
REGISTER_HWACCEL(H263_VIDEOTOOLBOX, h263_videotoolbox);
|
||||
|
@ -718,3 +713,10 @@ void avcodec_register_all(void)
|
|||
REGISTER_PARSER(VP9, vp9);
|
||||
REGISTER_PARSER(XMA, xma);
|
||||
}
|
||||
|
||||
void avcodec_register_all(void)
|
||||
{
|
||||
static AVOnce control = AV_ONCE_INIT;
|
||||
|
||||
ff_thread_once(&control, register_all);
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue