the doxygen, docs dont really point to any difference… (the prototype for av_buffersrc_add_frame doesn’t match my header, not sure if that is a version issue)
int av_buffersrc_write_frame ( AVFilterContext * s, const AVFrame * frame ) Add a frame to the buffer source. int av_buffersrc_add_frame (AVFilterContext *buffer_src, const AVFrame *frame, int flags) Add frame data to buffer_src. On Oct 14, 2015, at 2:15 PM, Ganesh Ajjanagadde <gajja...@mit.edu> wrote: > 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 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel