summaryrefslogtreecommitdiff
path: root/vp9/decoder/vp9_decoder.h
diff options
context:
space:
mode:
Diffstat (limited to 'vp9/decoder/vp9_decoder.h')
-rw-r--r--vp9/decoder/vp9_decoder.h3
1 files changed, 2 insertions, 1 deletions
diff --git a/vp9/decoder/vp9_decoder.h b/vp9/decoder/vp9_decoder.h
index 2040cee81..4b26c314d 100644
--- a/vp9/decoder/vp9_decoder.h
+++ b/vp9/decoder/vp9_decoder.h
@@ -117,9 +117,10 @@ static INLINE void decrease_ref_count(int idx, RefCntBuffer *const frame_bufs,
// But the private buffer is not set up until finish decoding header.
// So any error happens during decoding header, the frame_bufs will not
// have valid priv buffer.
- if (frame_bufs[idx].ref_count == 0 &&
+ if (!frame_bufs[idx].released && frame_bufs[idx].ref_count == 0 &&
frame_bufs[idx].raw_frame_buffer.priv) {
pool->release_fb_cb(pool->cb_priv, &frame_bufs[idx].raw_frame_buffer);
+ frame_bufs[idx].released = 1;
}
}
}