On Wed, Oct 14, 2015 at 4:13 PM, Grady Player <grady.pla...@verizondigitalmedia.com> wrote: > Figured it out, sharing (if anyone were to care)… > > I was using > av_buffersrc_add_frame > rather than: > av_buffersrc_write_frame > > which informs the buffer to retain an internal reference to the original > picture/frame..
Was the documentation confusing? Any suggestions for improving the docs? > > -Grady > > > On Oct 14, 2015, at 11:50 AM, Grady Player > <grady.pla...@verizondigitalmedia.com> wrote: > >> Yes, sorry this was omitted - after I am done I call: >> >> av_frame_free(&oframe); >> >> it seems to be something that is internally referenced by the graph... >> >> >> On Oct 14, 2015, at 10:50 AM, Paul B Mahol <one...@gmail.com> wrote: >> >>> Dana 14. 10. 2015. 17:36 osoba "Grady Player" < >>> grady.pla...@verizondigitalmedia.com> napisala je: >>>> >>>> Currently using: >>>> >>>> commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58 >>>> Author: Michael Niedermayer <michae...@gmx.at> >>>> Date: Sun May 17 01:34:35 2015 +0200 >>>> >>>> I am trying to set up a small filter graph in order to use the YADIF >>> implementation in libavfilter... >>>> >>>> I have set up an avfilter_graph with 3 filters… >>>> >>>> avfilter_register_all(); >>>> avfGraph = avfilter_graph_alloc(); >>>> >>>> AVFilter * bufferFilter, * yadifFilter, * bufferSink; >>>> >>>> bufferFilter = avfilter_get_by_name("buffer"); >>>> yadifFilter = avfilter_get_by_name("yadif"); >>>> bufferSink = avfilter_get_by_name("buffersink”); >>>> >>>> /* dynamic configuration here */ >>>> >>>> avfilter_graph_create_filter(/*done for each filter */); >>>> >>>> if (err >= 0) err = avfilter_link(buffer_ctx, 0, yadif_ctx, 0); >>>> if (err >= 0) err = avfilter_link(yadif_ctx, 0, sink_ctx, 0); >>>> >>>> if (err>=0) err = avfilter_graph_config(avfGraph, NULL); >>>> >>>> >>>> Then I feed frames into the graph with: >>>> >>>> err = av_buffersrc_add_frame(buffer_ctx, avf); >>>> >>>> and pull frames out of the graph with: >>>> >>>> AVFrame * oframe = av_frame_alloc(); >>>> err = av_buffersink_get_frame(sink_ctx, oframe); >>>> >>>> >>>> this all seems to work pretty well, except it is holding on to a lot of >>> memory that is released in avfilter_graph_free() >>>> >>>> I suspect it is something dumb, but is there something I need to be doing >>> to release internal references to some resource? >>>> >>>> >>>> >>> >>> Do you free frame you no longer need? >>> _______________________________________________ >>>> ffmpeg-devel mailing list >>>> ffmpeg-devel@ffmpeg.org >>>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >>> _______________________________________________ >>> ffmpeg-devel mailing list >>> ffmpeg-devel@ffmpeg.org >>> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel >> > > _______________________________________________ > ffmpeg-devel mailing list > ffmpeg-devel@ffmpeg.org > http://ffmpeg.org/mailman/listinfo/ffmpeg-devel _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel