[FFmpeg-cvslog] fftools/ffprobe: Switch to AVMutex
Andreas Rheinhardt
git at videolan.org
Mon Feb 24 16:20:40 EET 2025
ffmpeg | branch: master | Andreas Rheinhardt <andreas.rheinhardt at outlook.com> | Fri Feb 21 11:24:53 2025 +0100| [37348e1b2089c337f8ca7065b78e9ca8755e4943] | committer: Andreas Rheinhardt
fftools/ffprobe: Switch to AVMutex
This removes several #if checks. While just at it, also switch
to static mutex initialization.
This commit does not enable -show_log for builds without threads
though.
Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at outlook.com>
> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=37348e1b2089c337f8ca7065b78e9ca8755e4943
---
fftools/ffprobe.c | 40 +++++++++-------------------------------
1 file changed, 9 insertions(+), 31 deletions(-)
diff --git a/fftools/ffprobe.c b/fftools/ffprobe.c
index 0270878ead..7341731d2f 100644
--- a/fftools/ffprobe.c
+++ b/fftools/ffprobe.c
@@ -71,17 +71,6 @@
#include "libavutil/thread.h"
-#if !HAVE_THREADS
-# ifdef pthread_mutex_lock
-# undef pthread_mutex_lock
-# endif
-# define pthread_mutex_lock(a) do{}while(0)
-# ifdef pthread_mutex_unlock
-# undef pthread_mutex_unlock
-# endif
-# define pthread_mutex_unlock(a) do{}while(0)
-#endif
-
// attached as opaque_ref to packets/frames
typedef struct FrameData {
int64_t pkt_pos;
@@ -389,9 +378,8 @@ static int *selected_streams;
static int *streams_with_closed_captions;
static int *streams_with_film_grain;
-#if HAVE_THREADS
-pthread_mutex_t log_mutex;
-#endif
+static AVMutex log_mutex = AV_MUTEX_INITIALIZER;
+
typedef struct LogBuffer {
char *context_name;
int log_level;
@@ -418,7 +406,7 @@ static void log_callback(void *ptr, int level, const char *fmt, va_list vl)
va_end(vl2);
#if HAVE_THREADS
- pthread_mutex_lock(&log_mutex);
+ ff_mutex_lock(&log_mutex);
new_log_buffer = av_realloc_array(log_buffer, log_buffer_size + 1, sizeof(*log_buffer));
if (new_log_buffer) {
@@ -449,7 +437,7 @@ static void log_callback(void *ptr, int level, const char *fmt, va_list vl)
log_buffer_size ++;
}
- pthread_mutex_unlock(&log_mutex);
+ ff_mutex_unlock(&log_mutex);
#endif
}
@@ -2718,7 +2706,7 @@ static void clear_log(int need_lock)
int i;
if (need_lock)
- pthread_mutex_lock(&log_mutex);
+ ff_mutex_lock(&log_mutex);
for (i=0; i<log_buffer_size; i++) {
av_freep(&log_buffer[i].context_name);
av_freep(&log_buffer[i].parent_name);
@@ -2726,15 +2714,15 @@ static void clear_log(int need_lock)
}
log_buffer_size = 0;
if(need_lock)
- pthread_mutex_unlock(&log_mutex);
+ ff_mutex_unlock(&log_mutex);
}
static int show_log(WriterContext *w, int section_ids, int section_id, int log_level)
{
int i;
- pthread_mutex_lock(&log_mutex);
+ ff_mutex_lock(&log_mutex);
if (!log_buffer_size) {
- pthread_mutex_unlock(&log_mutex);
+ ff_mutex_unlock(&log_mutex);
return 0;
}
writer_print_section_header(w, NULL, section_ids);
@@ -2757,7 +2745,7 @@ static int show_log(WriterContext *w, int section_ids, int section_id, int log_l
}
}
clear_log(0);
- pthread_mutex_unlock(&log_mutex);
+ ff_mutex_unlock(&log_mutex);
writer_print_section_footer(w);
@@ -4663,12 +4651,6 @@ int main(int argc, char **argv)
init_dynload();
-#if HAVE_THREADS
- ret = pthread_mutex_init(&log_mutex, NULL);
- if (ret != 0) {
- goto end;
- }
-#endif
av_log_set_flags(AV_LOG_SKIP_REPEATED);
options = real_options;
@@ -4816,9 +4798,5 @@ end:
avformat_network_deinit();
-#if HAVE_THREADS
- pthread_mutex_destroy(&log_mutex);
-#endif
-
return ret < 0;
}
More information about the ffmpeg-cvslog
mailing list