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".

Reply via email to