mirror of
https://git.ffmpeg.org/ffmpeg.git
synced 2024-10-20 07:05:07 +00:00
avcodec/vp9: Replace atomic_store() by atomic_init()
This part of the code is not slice-threaded and they are semantically an initialization, so use atomic_init() instead of the potentially expensive atomic_store() (which uses sequentially consistent memory ordering). Also remove the initial initialization directly after allocating this array. Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt@outlook.com>
This commit is contained in:
parent
259234b46f
commit
267a763a55
@ -55,7 +55,6 @@ DEFINE_OFFSET_ARRAY(VP9Context, vp9_context, pthread_init_cnt,
|
||||
|
||||
static int vp9_alloc_entries(AVCodecContext *avctx, int n) {
|
||||
VP9Context *s = avctx->priv_data;
|
||||
int i;
|
||||
|
||||
if (avctx->active_thread_type & FF_THREAD_SLICE) {
|
||||
if (s->entries)
|
||||
@ -64,9 +63,6 @@ static int vp9_alloc_entries(AVCodecContext *avctx, int n) {
|
||||
s->entries = av_malloc_array(n, sizeof(atomic_int));
|
||||
if (!s->entries)
|
||||
return AVERROR(ENOMEM);
|
||||
|
||||
for (i = 0; i < n; i++)
|
||||
atomic_init(&s->entries[i], 0);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@ -1661,7 +1657,7 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame,
|
||||
#if HAVE_THREADS
|
||||
if (avctx->active_thread_type & FF_THREAD_SLICE) {
|
||||
for (i = 0; i < s->sb_rows; i++)
|
||||
atomic_store(&s->entries[i], 0);
|
||||
atomic_init(&s->entries[i], 0);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user