This should allow the use of w32pthreads compat layer to be used for UDP. For windows this would mean not needing to change the underlying threading impl.
On Mon, 2 Mar 2020 at 12:53, phunkyfish <phunkyf...@gmail.com> wrote: > --- > compat/w32pthreads.h | 8 ++++++++ > libavformat/udp.c | 8 +++++++- > 2 files changed, 15 insertions(+), 1 deletion(-) > > diff --git a/compat/w32pthreads.h b/compat/w32pthreads.h > index 7df33b7da4..6405e72b64 100644 > --- a/compat/w32pthreads.h > +++ b/compat/w32pthreads.h > @@ -63,6 +63,9 @@ typedef CONDITION_VARIABLE pthread_cond_t; > #define InitializeCriticalSection(x) InitializeCriticalSectionEx(x, 0, 0) > #define WaitForSingleObject(a, b) WaitForSingleObjectEx(a, b, FALSE) > > +#define PTHREAD_CANCEL_ENABLE 1 > +#define PTHREAD_CANCEL_DISABLE 0 > + > static av_unused unsigned __stdcall attribute_align_arg > win32thread_worker(void *arg) > { > pthread_t *h = (pthread_t*)arg; > @@ -180,4 +183,9 @@ static inline int pthread_cond_signal(pthread_cond_t > *cond) > return 0; > } > > +static inline int pthread_setcancelstate(int state, int *oldstate) > +{ > + return 0; > +} > + > #endif /* COMPAT_W32PTHREADS_H */ > diff --git a/libavformat/udp.c b/libavformat/udp.c > index 23c3773c64..4f42b026cd 100644 > --- a/libavformat/udp.c > +++ b/libavformat/udp.c > @@ -61,10 +61,16 @@ > #define IPPROTO_UDPLITE 136 > #endif > > -#if HAVE_PTHREAD_CANCEL > +#if HAVE_PTHREAD_CANCEL && !defined(HAVE_W32THREADS) > #include <pthread.h> > #endif > > +#if HAVE_W32THREADS > +#include "compat/w32pthreads.h" > +#undef HAVE_PTHREAD_CANCEL > +#define HAVE_PTHREAD_CANCEL 1 > +#endif > + > #ifndef IPV6_ADD_MEMBERSHIP > #define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP > #define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP > -- > 2.20.1 (Apple Git-117) > > _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-devel To unsubscribe, visit link above, or email ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".