* [FFmpeg-devel] [PATCH] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
@ 2023-08-18 16:06 James Almer
2023-08-18 16:14 ` [FFmpeg-devel] [PATCH v2] " James Almer
0 siblings, 1 reply; 7+ messages in thread
From: James Almer @ 2023-08-18 16:06 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/thread.h | 27 +++++++++++++++++++++++++++
1 file changed, 27 insertions(+)
diff --git a/libavutil/thread.h b/libavutil/thread.h
index 2f5e7e1cb5..1e456f1c29 100644
--- a/libavutil/thread.h
+++ b/libavutil/thread.h
@@ -155,6 +155,15 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
#include "compat/w32pthreads.h"
#endif
+#define AVCond pthread_cond_t
+
+#define ff_cond_init pthread_cond_init
+#define ff_cond_destroy pthread_cond_destroy
+#define ff_cond_signal pthread_cond_signal
+#define ff_cond_broadcast pthread_cond_broadcast
+#define ff_cond_wait pthread_cond_wait
+#define ff_cond_timedwait pthread_cond_timedwait
+
#define AVMutex pthread_mutex_t
#define AV_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
@@ -170,6 +179,16 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
#else
+#define AVCond char
+
+static inline int ff_cond_init(AVCond *cond, const void *attr){ return 0; }
+static inline int ff_cond_destroy(AVCond *cond){ return 0; }
+static inline int ff_cond_signal(AVCond *cond){ return 0; }
+static inline int ff_cond_broadcast(AVCond *cond){ return 0; }
+static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
+static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
+ const void *abstime){ return 0; }
+
#define AVMutex char
#define AV_MUTEX_INITIALIZER 0
@@ -190,6 +209,14 @@ static inline int ff_thread_once(char *control, void (*routine)(void))
return 0;
}
+typedef struct pthread_t {
+ void *dummy;
+} pthread_t;
+
+static inline int pthread_create(pthread_t *thread, const void *unused_attr,
+ void *(*start_routine)(void*), void *arg){ return 0; }
+static inline int pthread_join(pthread_t thread, void **value_ptr){ return 0; }
+
#endif
static inline int ff_thread_setname(const char *name)
--
2.41.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* [FFmpeg-devel] [PATCH v2] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
2023-08-18 16:06 [FFmpeg-devel] [PATCH] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions James Almer
@ 2023-08-18 16:14 ` James Almer
2023-08-18 20:16 ` Michael Niedermayer
0 siblings, 1 reply; 7+ messages in thread
From: James Almer @ 2023-08-18 16:14 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
Now not defining pthread_t when !HAVE_THREADS, like it's done with cond, mutex,
and once.
libavutil/thread.h | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/libavutil/thread.h b/libavutil/thread.h
index 2f5e7e1cb5..7dfa54c6a9 100644
--- a/libavutil/thread.h
+++ b/libavutil/thread.h
@@ -155,6 +155,15 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
#include "compat/w32pthreads.h"
#endif
+#define AVCond pthread_cond_t
+
+#define ff_cond_init pthread_cond_init
+#define ff_cond_destroy pthread_cond_destroy
+#define ff_cond_signal pthread_cond_signal
+#define ff_cond_broadcast pthread_cond_broadcast
+#define ff_cond_wait pthread_cond_wait
+#define ff_cond_timedwait pthread_cond_timedwait
+
#define AVMutex pthread_mutex_t
#define AV_MUTEX_INITIALIZER PTHREAD_MUTEX_INITIALIZER
@@ -168,8 +177,23 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
#define ff_thread_once(control, routine) pthread_once(control, routine)
+#define AVThread pthread_t
+
+#define ff_thread_create pthread_create
+#define ff_thread_join pthread_join
+
#else
+#define AVCond char
+
+static inline int ff_cond_init(AVCond *cond, const void *attr){ return 0; }
+static inline int ff_cond_destroy(AVCond *cond){ return 0; }
+static inline int ff_cond_signal(AVCond *cond){ return 0; }
+static inline int ff_cond_broadcast(AVCond *cond){ return 0; }
+static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
+static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
+ const void *abstime){ return 0; }
+
#define AVMutex char
#define AV_MUTEX_INITIALIZER 0
@@ -190,6 +214,12 @@ static inline int ff_thread_once(char *control, void (*routine)(void))
return 0;
}
+#define AVThread char
+
+static inline int ff_thread_create(AVThread *thread, const void *unused_attr,
+ void *(*start_routine)(void*), void *arg){ return 0; }
+static inline int ff_thread_join(AVThread thread, void **value_ptr){ return 0; }
+
#endif
static inline int ff_thread_setname(const char *name)
--
2.41.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH v2] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
2023-08-18 16:14 ` [FFmpeg-devel] [PATCH v2] " James Almer
@ 2023-08-18 20:16 ` Michael Niedermayer
2023-08-18 22:03 ` [FFmpeg-devel] [PATCH v3] " James Almer
2023-08-18 22:04 ` [FFmpeg-devel] [PATCH v2] " James Almer
0 siblings, 2 replies; 7+ messages in thread
From: Michael Niedermayer @ 2023-08-18 20:16 UTC (permalink / raw)
To: FFmpeg development discussions and patches
[-- Attachment #1.1: Type: text/plain, Size: 2261 bytes --]
On Fri, Aug 18, 2023 at 01:14:27PM -0300, James Almer wrote:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> Now not defining pthread_t when !HAVE_THREADS, like it's done with cond, mutex,
> and once.
>
> libavutil/thread.h | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
this seems not to build on ppc
AVMutex use before definition
make
AR libavdevice/libavdevice.a
CC libavfilter/dnn/dnn_backend_common.o
In file included from src/libavfilter/dnn/dnn_backend_common.h:29:0,
from src/libavfilter/dnn/dnn_backend_common.c:24:
src/libavutil/thread.h:193:46: error: unknown type name ‘AVMutex’; did you mean ‘AVFilter’?
static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
^~~~~~~
AVFilter
src/libavutil/thread.h:194:51: error: unknown type name ‘AVMutex’; did you mean ‘AVFilter’?
static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
^~~~~~~
AVFilter
src/libavfilter/dnn/dnn_backend_common.c: In function ‘ff_dnn_async_module_cleanup’:
src/libavfilter/dnn/dnn_backend_common.c:94:11: warning: unused variable ‘status’ [-Wunused-variable]
void *status = 0;
^~~~~~
src/libavfilter/dnn/dnn_backend_common.c: In function ‘ff_dnn_start_inference_async’:
src/libavfilter/dnn/dnn_backend_common.c:114:11: warning: unused variable ‘status’ [-Wunused-variable]
void *status = 0;
^~~~~~
At top level:
src/libavfilter/dnn/dnn_backend_common.c:80:14: warning: ‘async_thread_routine’ defined but not used [-Wunused-function]
static void *async_thread_routine(void *args)
^~~~~~~~~~~~~~~~~~~~
src/ffbuild/common.mak:81: recipe for target 'libavfilter/dnn/dnn_backend_common.o' failed
make: *** [libavfilter/dnn/dnn_backend_common.o] Error 1
[...]
--
Michael GnuPG fingerprint: 9FF2128B147EF6730BADF133611EC787040B0FAB
When you are offended at any man's fault, turn to yourself and study your
own failings. Then you will forget your anger. -- Epictetus
[-- Attachment #1.2: signature.asc --]
[-- Type: application/pgp-signature, Size: 195 bytes --]
[-- Attachment #2: Type: text/plain, Size: 251 bytes --]
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* [FFmpeg-devel] [PATCH v3] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
2023-08-18 20:16 ` Michael Niedermayer
@ 2023-08-18 22:03 ` James Almer
2023-08-19 11:55 ` Andreas Rheinhardt
2023-08-18 22:04 ` [FFmpeg-devel] [PATCH v2] " James Almer
1 sibling, 1 reply; 7+ messages in thread
From: James Almer @ 2023-08-18 22:03 UTC (permalink / raw)
To: ffmpeg-devel
Signed-off-by: James Almer <jamrial@gmail.com>
---
libavutil/thread.h | 30 ++++++++++++++++++++++++++++++
1 file changed, 30 insertions(+)
diff --git a/libavutil/thread.h b/libavutil/thread.h
index 2f5e7e1cb5..f67b0cdc44 100644
--- a/libavutil/thread.h
+++ b/libavutil/thread.h
@@ -163,11 +163,25 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
#define ff_mutex_unlock pthread_mutex_unlock
#define ff_mutex_destroy pthread_mutex_destroy
+#define AVCond pthread_cond_t
+
+#define ff_cond_init pthread_cond_init
+#define ff_cond_destroy pthread_cond_destroy
+#define ff_cond_signal pthread_cond_signal
+#define ff_cond_broadcast pthread_cond_broadcast
+#define ff_cond_wait pthread_cond_wait
+#define ff_cond_timedwait pthread_cond_timedwait
+
#define AVOnce pthread_once_t
#define AV_ONCE_INIT PTHREAD_ONCE_INIT
#define ff_thread_once(control, routine) pthread_once(control, routine)
+#define AVThread pthread_t
+
+#define ff_thread_create pthread_create
+#define ff_thread_join pthread_join
+
#else
#define AVMutex char
@@ -178,6 +192,16 @@ static inline int ff_mutex_lock(AVMutex *mutex){ return 0; }
static inline int ff_mutex_unlock(AVMutex *mutex){ return 0; }
static inline int ff_mutex_destroy(AVMutex *mutex){ return 0; }
+#define AVCond char
+
+static inline int ff_cond_init(AVCond *cond, const void *attr){ return 0; }
+static inline int ff_cond_destroy(AVCond *cond){ return 0; }
+static inline int ff_cond_signal(AVCond *cond){ return 0; }
+static inline int ff_cond_broadcast(AVCond *cond){ return 0; }
+static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
+static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
+ const void *abstime){ return 0; }
+
#define AVOnce char
#define AV_ONCE_INIT 0
@@ -190,6 +214,12 @@ static inline int ff_thread_once(char *control, void (*routine)(void))
return 0;
}
+#define AVThread char
+
+static inline int ff_thread_create(AVThread *thread, const void *unused_attr,
+ void *(*start_routine)(void*), void *arg){ return 0; }
+static inline int ff_thread_join(AVThread thread, void **value_ptr){ return 0; }
+
#endif
static inline int ff_thread_setname(const char *name)
--
2.41.0
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH v2] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
2023-08-18 20:16 ` Michael Niedermayer
2023-08-18 22:03 ` [FFmpeg-devel] [PATCH v3] " James Almer
@ 2023-08-18 22:04 ` James Almer
1 sibling, 0 replies; 7+ messages in thread
From: James Almer @ 2023-08-18 22:04 UTC (permalink / raw)
To: ffmpeg-devel
On 8/18/2023 5:16 PM, Michael Niedermayer wrote:
> On Fri, Aug 18, 2023 at 01:14:27PM -0300, James Almer wrote:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> Now not defining pthread_t when !HAVE_THREADS, like it's done with cond, mutex,
>> and once.
>>
>> libavutil/thread.h | 30 ++++++++++++++++++++++++++++++
>> 1 file changed, 30 insertions(+)
>
> this seems not to build on ppc
> AVMutex use before definition
>
> make
> AR libavdevice/libavdevice.a
> CC libavfilter/dnn/dnn_backend_common.o
> In file included from src/libavfilter/dnn/dnn_backend_common.h:29:0,
> from src/libavfilter/dnn/dnn_backend_common.c:24:
> src/libavutil/thread.h:193:46: error: unknown type name ‘AVMutex’; did you mean ‘AVFilter’?
> static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
> ^~~~~~~
> AVFilter
> src/libavutil/thread.h:194:51: error: unknown type name ‘AVMutex’; did you mean ‘AVFilter’?
> static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
> ^~~~~~~
> AVFilter
> src/libavfilter/dnn/dnn_backend_common.c: In function ‘ff_dnn_async_module_cleanup’:
> src/libavfilter/dnn/dnn_backend_common.c:94:11: warning: unused variable ‘status’ [-Wunused-variable]
> void *status = 0;
> ^~~~~~
> src/libavfilter/dnn/dnn_backend_common.c: In function ‘ff_dnn_start_inference_async’:
> src/libavfilter/dnn/dnn_backend_common.c:114:11: warning: unused variable ‘status’ [-Wunused-variable]
> void *status = 0;
> ^~~~~~
> At top level:
> src/libavfilter/dnn/dnn_backend_common.c:80:14: warning: ‘async_thread_routine’ defined but not used [-Wunused-function]
> static void *async_thread_routine(void *args)
> ^~~~~~~~~~~~~~~~~~~~
> src/ffbuild/common.mak:81: recipe for target 'libavfilter/dnn/dnn_backend_common.o' failed
> make: *** [libavfilter/dnn/dnn_backend_common.o] Error 1
Should be fixed in v3.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
2023-08-18 22:03 ` [FFmpeg-devel] [PATCH v3] " James Almer
@ 2023-08-19 11:55 ` Andreas Rheinhardt
2023-08-19 13:06 ` James Almer
0 siblings, 1 reply; 7+ messages in thread
From: Andreas Rheinhardt @ 2023-08-19 11:55 UTC (permalink / raw)
To: ffmpeg-devel
James Almer:
> Signed-off-by: James Almer <jamrial@gmail.com>
> ---
> libavutil/thread.h | 30 ++++++++++++++++++++++++++++++
> 1 file changed, 30 insertions(+)
>
> diff --git a/libavutil/thread.h b/libavutil/thread.h
> index 2f5e7e1cb5..f67b0cdc44 100644
> --- a/libavutil/thread.h
> +++ b/libavutil/thread.h
> @@ -163,11 +163,25 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
> #define ff_mutex_unlock pthread_mutex_unlock
> #define ff_mutex_destroy pthread_mutex_destroy
>
> +#define AVCond pthread_cond_t
> +
> +#define ff_cond_init pthread_cond_init
> +#define ff_cond_destroy pthread_cond_destroy
> +#define ff_cond_signal pthread_cond_signal
> +#define ff_cond_broadcast pthread_cond_broadcast
> +#define ff_cond_wait pthread_cond_wait
> +#define ff_cond_timedwait pthread_cond_timedwait
> +
> #define AVOnce pthread_once_t
> #define AV_ONCE_INIT PTHREAD_ONCE_INIT
>
> #define ff_thread_once(control, routine) pthread_once(control, routine)
>
> +#define AVThread pthread_t
> +
> +#define ff_thread_create pthread_create
> +#define ff_thread_join pthread_join
> +
> #else
>
> #define AVMutex char
> @@ -178,6 +192,16 @@ static inline int ff_mutex_lock(AVMutex *mutex){ return 0; }
> static inline int ff_mutex_unlock(AVMutex *mutex){ return 0; }
> static inline int ff_mutex_destroy(AVMutex *mutex){ return 0; }
>
> +#define AVCond char
> +
> +static inline int ff_cond_init(AVCond *cond, const void *attr){ return 0; }
> +static inline int ff_cond_destroy(AVCond *cond){ return 0; }
> +static inline int ff_cond_signal(AVCond *cond){ return 0; }
> +static inline int ff_cond_broadcast(AVCond *cond){ return 0; }
> +static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
> +static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
> + const void *abstime){ return 0; }
> +
> #define AVOnce char
> #define AV_ONCE_INIT 0
>
> @@ -190,6 +214,12 @@ static inline int ff_thread_once(char *control, void (*routine)(void))
> return 0;
> }
>
> +#define AVThread char
> +
> +static inline int ff_thread_create(AVThread *thread, const void *unused_attr,
> + void *(*start_routine)(void*), void *arg){ return 0; }
> +static inline int ff_thread_join(AVThread thread, void **value_ptr){ return 0; }
> +
> #endif
>
> static inline int ff_thread_setname(const char *name)
The commit message should explain what the gain of this is; after all,
we managed to make it without these wrappers until now.
- Andreas
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [FFmpeg-devel] [PATCH v3] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions
2023-08-19 11:55 ` Andreas Rheinhardt
@ 2023-08-19 13:06 ` James Almer
0 siblings, 0 replies; 7+ messages in thread
From: James Almer @ 2023-08-19 13:06 UTC (permalink / raw)
To: ffmpeg-devel
On 8/19/2023 8:55 AM, Andreas Rheinhardt wrote:
> James Almer:
>> Signed-off-by: James Almer <jamrial@gmail.com>
>> ---
>> libavutil/thread.h | 30 ++++++++++++++++++++++++++++++
>> 1 file changed, 30 insertions(+)
>>
>> diff --git a/libavutil/thread.h b/libavutil/thread.h
>> index 2f5e7e1cb5..f67b0cdc44 100644
>> --- a/libavutil/thread.h
>> +++ b/libavutil/thread.h
>> @@ -163,11 +163,25 @@ static inline int strict_pthread_once(pthread_once_t *once_control, void (*init_
>> #define ff_mutex_unlock pthread_mutex_unlock
>> #define ff_mutex_destroy pthread_mutex_destroy
>>
>> +#define AVCond pthread_cond_t
>> +
>> +#define ff_cond_init pthread_cond_init
>> +#define ff_cond_destroy pthread_cond_destroy
>> +#define ff_cond_signal pthread_cond_signal
>> +#define ff_cond_broadcast pthread_cond_broadcast
>> +#define ff_cond_wait pthread_cond_wait
>> +#define ff_cond_timedwait pthread_cond_timedwait
>> +
>> #define AVOnce pthread_once_t
>> #define AV_ONCE_INIT PTHREAD_ONCE_INIT
>>
>> #define ff_thread_once(control, routine) pthread_once(control, routine)
>>
>> +#define AVThread pthread_t
>> +
>> +#define ff_thread_create pthread_create
>> +#define ff_thread_join pthread_join
>> +
>> #else
>>
>> #define AVMutex char
>> @@ -178,6 +192,16 @@ static inline int ff_mutex_lock(AVMutex *mutex){ return 0; }
>> static inline int ff_mutex_unlock(AVMutex *mutex){ return 0; }
>> static inline int ff_mutex_destroy(AVMutex *mutex){ return 0; }
>>
>> +#define AVCond char
>> +
>> +static inline int ff_cond_init(AVCond *cond, const void *attr){ return 0; }
>> +static inline int ff_cond_destroy(AVCond *cond){ return 0; }
>> +static inline int ff_cond_signal(AVCond *cond){ return 0; }
>> +static inline int ff_cond_broadcast(AVCond *cond){ return 0; }
>> +static inline int ff_cond_wait(AVCond *cond, AVMutex *mutex){ return 0; }
>> +static inline int ff_cond_timedwait(AVCond *cond, AVMutex *mutex,
>> + const void *abstime){ return 0; }
>> +
>> #define AVOnce char
>> #define AV_ONCE_INIT 0
>>
>> @@ -190,6 +214,12 @@ static inline int ff_thread_once(char *control, void (*routine)(void))
>> return 0;
>> }
>>
>> +#define AVThread char
>> +
>> +static inline int ff_thread_create(AVThread *thread, const void *unused_attr,
>> + void *(*start_routine)(void*), void *arg){ return 0; }
>> +static inline int ff_thread_join(AVThread thread, void **value_ptr){ return 0; }
>> +
>> #endif
>>
>> static inline int ff_thread_setname(const char *name)
>
> The commit message should explain what the gain of this is; after all,
> we managed to make it without these wrappers until now.
Removed the pthread_create/join wrappers as those should probably not be
handled like the mutex/cond/once functions, added a comment about this
being useful for the upcoming threaded executor API, and pushed.
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-request@ffmpeg.org with subject "unsubscribe".
^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2023-08-19 13:06 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-08-18 16:06 [FFmpeg-devel] [PATCH] avutil/thread: add wrappers for pthread_cond_t and pthread_t functions James Almer
2023-08-18 16:14 ` [FFmpeg-devel] [PATCH v2] " James Almer
2023-08-18 20:16 ` Michael Niedermayer
2023-08-18 22:03 ` [FFmpeg-devel] [PATCH v3] " James Almer
2023-08-19 11:55 ` Andreas Rheinhardt
2023-08-19 13:06 ` James Almer
2023-08-18 22:04 ` [FFmpeg-devel] [PATCH v2] " James Almer
Git Inbox Mirror of the ffmpeg-devel mailing list - see https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
This inbox may be cloned and mirrored by anyone:
git clone --mirror https://master.gitmailbox.com/ffmpegdev/0 ffmpegdev/git/0.git
# If you have public-inbox 1.1+ installed, you may
# initialize and index your mirror using the following commands:
public-inbox-init -V2 ffmpegdev ffmpegdev/ https://master.gitmailbox.com/ffmpegdev \
ffmpegdev@gitmailbox.com
public-inbox-index ffmpegdev
Example config snippet for mirrors.
AGPL code for this site: git clone https://public-inbox.org/public-inbox.git