@@ -500,7 +500,7 @@ void ff_thread_report_progress(ThreadFrame *f, int n, int field)
atomic_int *progress = f->progress ? (atomic_int*)f->progress->data : NULL;
if (!progress ||
- atomic_load_explicit(&progress[field], memory_order_acquire) >= n)
+ atomic_load_explicit(&progress[field], memory_order_relaxed) >= n)
return;
p = f->owner->internal->thread_ctx;
@@ -510,7 +510,7 @@ void ff_thread_report_progress(ThreadFrame *f, int n, int field)
pthread_mutex_lock(&p->progress_mutex);
- atomic_store(&progress[field], n);
+ atomic_store_explicit(&progress[field], n, memory_order_release);
pthread_cond_broadcast(&p->progress_cond);
pthread_mutex_unlock(&p->progress_mutex);
@@ -816,8 +816,8 @@ static int thread_get_buffer_internal(AVCodecContext *avctx, ThreadFrame *f, int
}
progress = (atomic_int*)f->progress->data;
- atomic_store(&progress[0], -1);
- atomic_store(&progress[1], -1);
+ atomic_init(&progress[0], -1);
+ atomic_init(&progress[1], -1);
}
pthread_mutex_lock(&p->parent->buffer_mutex);