[Bug 793708] msdk: dec: memleaks when flushing

GStreamer (GNOME Bugzilla) bugzilla at gnome.org
Fri Mar 2 05:03:56 UTC 2018


https://bugzilla.gnome.org/show_bug.cgi?id=793708

--- Comment #6 from Hyunjun Ko <zzoon at igalia.com> ---
(In reply to sreerenj from comment #5)
> (In reply to Hyunjun Ko from comment #4)
> > (In reply to sreerenj from comment #3)
> > > Review of attachment 368737 [details] [review] [review] [review]:
> > > 
> > > ::: sys/msdk/gstmsdkdec.c
> > > @@ +947,3 @@
> > >    for (i = 0; i < thiz->tasks->len; i++) {
> > >      task = &g_array_index (thiz->tasks, MsdkDecTask, thiz->next_task);
> > > +    gst_msdkdec_finish_task (thiz, task);
> > > 
> > > Why remove the return value checking?
> > > Assume that the finish_frame returns error due to flushing, in this case,
> > > you are not supposed to send a queued task/frame again. right?
> > 
> > The frame is not sent to downstream eventually in gst_msdkdec_finish_task.
> > And I think we have to call gst_msdkdec_finish_task for every task instead
> > of returning in the middle of drain, causing memleaks.
> > 
> > What do you think?
> 
>  gst_msdkdec_finish_task () will try to push each frame downstream using
> gst_video_decoder_finish_frame(). If the first task returns GST_FLOW_ERROR
> due to flushing and finish_task() trying to push few more pending frames may
> cause undefined behavior or Not, I am not sure??
> 
> You may ask Slomo or Tim :)

See here and the patch in the thread. :)
https://bugzilla.gnome.org/show_bug.cgi?id=790312#c18

-- 
You are receiving this mail because:
You are the QA Contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list