Cheng Sun <[email protected]> writes:

> Revised patch to fix a compile error on windows.
>
> ---
>  libavcodec/pthread.c |    4 +++-
>  1 files changed, 3 insertions(+), 1 deletions(-)
>
> diff --git a/libavcodec/pthread.c b/libavcodec/pthread.c
> index dae28e6..17fc5c3 100644
> --- a/libavcodec/pthread.c
> +++ b/libavcodec/pthread.c
> @@ -70,6 +70,7 @@ typedef struct PerThreadContext {
>      struct FrameThreadContext *parent;
>  
>      pthread_t      thread;
> +    int            thread_init;   
>      pthread_cond_t input_cond;      ///< Used to wait for a new packet
> from the main thread.
>      pthread_cond_t progress_cond;   ///< Used by child threads to wait
> for progress to change.
>      pthread_cond_t output_cond;     ///< Used by the main thread to
> wait for frames to finish.
> @@ -651,7 +652,7 @@ static void frame_thread_free(AVCodecContext *avctx,
> int thread_count)
>          pthread_cond_signal(&p->input_cond);
>          pthread_mutex_unlock(&p->mutex);
>  
> -        if (p->thread)
> +        if (p->thread_init)
>              pthread_join(p->thread, NULL);

Please fix indentation.

>          if (codec->close)
> @@ -757,6 +758,7 @@ static int frame_thread_init(AVCodecContext *avctx)
>          if (err) goto error;
>  
>          pthread_create(&p->thread, NULL, frame_worker_thread, p);
> +        p->thread_init = 1;

This should check for error in pthread_create().

-- 
Måns Rullgård
[email protected]
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to