mirror of
https://github.com/FFmpeg/FFmpeg.git
synced 2024-12-23 12:43:46 +02:00
lavc/pthread_slice: release entries
When calling ff_alloc_entries, a number of entries are created. They are never freed, as running fate with slice threading and several frames on e.g. fate-hevc-conformance-ENTP_A_Qualcomm_1 would show. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
parent
cc69ccb6d4
commit
e87e20613b
@ -112,14 +112,26 @@ void ff_slice_thread_free(AVCodecContext *avctx)
|
||||
pthread_mutex_lock(&c->current_job_lock);
|
||||
c->done = 1;
|
||||
pthread_cond_broadcast(&c->current_job_cond);
|
||||
for (i = 0; i < c->thread_count; i++)
|
||||
pthread_cond_broadcast(&c->progress_cond[i]);
|
||||
pthread_mutex_unlock(&c->current_job_lock);
|
||||
|
||||
for (i=0; i<avctx->thread_count; i++)
|
||||
pthread_join(c->workers[i], NULL);
|
||||
|
||||
for (i = 0; i < c->thread_count; i++) {
|
||||
pthread_mutex_destroy(&c->progress_mutex[i]);
|
||||
pthread_cond_destroy(&c->progress_cond[i]);
|
||||
}
|
||||
|
||||
pthread_mutex_destroy(&c->current_job_lock);
|
||||
pthread_cond_destroy(&c->current_job_cond);
|
||||
pthread_cond_destroy(&c->last_job_cond);
|
||||
|
||||
av_freep(&c->entries);
|
||||
av_freep(&c->progress_mutex);
|
||||
av_freep(&c->progress_cond);
|
||||
|
||||
av_freep(&c->workers);
|
||||
av_freep(&avctx->internal->thread_ctx);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user