Use AVOnce as a static variable consistently
authorHendrik Leppkes <h.leppkes@gmail.com>
Mon, 22 May 2017 10:00:23 +0000 (12:00 +0200)
committerHendrik Leppkes <h.leppkes@gmail.com>
Mon, 22 May 2017 10:36:32 +0000 (12:36 +0200)
Using AVOnce as a stack variable makes no sense as the state is lost
when the function exits.

This fixes repeated calls to av(filter/device)_register_all

libavdevice/alldevices.c
libavfilter/allfilters.c
libavformat/allformats.c

index 280a260..a8ed53a 100644 (file)
@@ -73,7 +73,7 @@ static void register_all(void)
 
 void avdevice_register_all(void)
 {
-    AVOnce control = AV_ONCE_INIT;
+    static AVOnce control = AV_ONCE_INIT;
 
     ff_thread_once(&control, register_all);
 }
index 2bcfce7..f8cd193 100644 (file)
@@ -390,7 +390,7 @@ static void register_all(void)
 
 void avfilter_register_all(void)
 {
-    AVOnce control = AV_ONCE_INIT;
+    static AVOnce control = AV_ONCE_INIT;
 
     ff_thread_once(&control, register_all);
 }
index 62661d1..b3ffe0f 100644 (file)
@@ -385,7 +385,7 @@ static void register_all(void)
 
 void av_register_all(void)
 {
-    AVOnce control = AV_ONCE_INIT;
+    static AVOnce control = AV_ONCE_INIT;
 
     ff_thread_once(&control, register_all);
 }