vp9: fix frame-level threaded decode shutdown
Shutdown all threads before reclaiming any memory. The frame-level parallel decoder may access data from another worker. BUG=webm:1259 Change-Id: I26856ebd1f77cc4a4545331baa19bbf3e01c4ea4
This commit is contained in:
parent
18e53642b7
commit
f368f86df6
@ -64,11 +64,16 @@ static vpx_codec_err_t decoder_init(vpx_codec_ctx_t *ctx,
|
||||
static vpx_codec_err_t decoder_destroy(vpx_codec_alg_priv_t *ctx) {
|
||||
if (ctx->frame_workers != NULL) {
|
||||
int i;
|
||||
// Shutdown all threads before reclaiming any memory. The frame-level
|
||||
// parallel decoder may access data from another worker.
|
||||
for (i = 0; i < ctx->num_frame_workers; ++i) {
|
||||
VPxWorker *const worker = &ctx->frame_workers[i];
|
||||
vpx_get_worker_interface()->end(worker);
|
||||
}
|
||||
for (i = 0; i < ctx->num_frame_workers; ++i) {
|
||||
VPxWorker *const worker = &ctx->frame_workers[i];
|
||||
FrameWorkerData *const frame_worker_data =
|
||||
(FrameWorkerData *)worker->data1;
|
||||
vpx_get_worker_interface()->end(worker);
|
||||
vp9_remove_common(&frame_worker_data->pbi->common);
|
||||
#if CONFIG_VP9_POSTPROC
|
||||
vp9_free_postproc_buffers(&frame_worker_data->pbi->common);
|
||||
|
Loading…
x
Reference in New Issue
Block a user