History

avcodec/vp9: fix leaked cbs fragment AVBufferRef

When this function returns, the fragment is never reset, so current_frag->data_ref is never unref-ed, which ends up leaking it. We call ff_cbs_fragment_reset to release the reference on its buffer.

Leo Izen committed 1 year ago

Commit a8fdfdd1 parent 89849ca1 file · +2 −2Browse files

Unified · Split

libavcodec/vp9.c+2−2
@@ -1679,8 +1679,6 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame, · 1678 unmodified lines
16791679 &s->s.frames[CUR_FRAME] : &s->s.ref_frames[i]);
16801680 }
16811681
1682− ff_cbs_fragment_reset(&s->current_frag);
1683−
16841682 goto finish;
16851683 }
16861684
@@ -1805,6 +1803,8 @@ static int vp9_decode_frame(AVCodecContext *avctx, AVFrame *frame, · 118 unmodified lines
18051803 }
18061804
18071805 finish:
1806+ ff_cbs_fragment_reset(&s->current_frag);
1807+
18081808 ff_progress_frame_report(&s->s.frames[CUR_FRAME].tf, INT_MAX);
18091809 // ref frame setup
18101810 for (int i = 0; i < 8; i++)

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t