Re: [FFmpeg-devel] avfilter_graph Question

2015-10-14 Thread Paul B Mahol
Dana 14. 10. 2015. 17:36 osoba "Grady Player" <
grady.pla...@verizondigitalmedia.com> napisala je:
>
> Currently using:
>
> commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58
> Author: Michael Niedermayer 
> 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


Re: [FFmpeg-devel] avfilter_graph Question

2015-10-14 Thread Grady Player
Yes, sorry this was omitted  - after I am done I call:
 
av_frame_free();

it seems to be something that is internally referenced by the graph...


On Oct 14, 2015, at 10:50 AM, Paul B Mahol  wrote:

> Dana 14. 10. 2015. 17:36 osoba "Grady Player" <
> grady.pla...@verizondigitalmedia.com> napisala je:
>> 
>> Currently using:
>> 
>> commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58
>> Author: Michael Niedermayer 
>> 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


Re: [FFmpeg-devel] avfilter_graph Question

2015-10-14 Thread Ganesh Ajjanagadde
On Wed, Oct 14, 2015 at 4:13 PM, Grady Player
 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 
>  wrote:
>
>> Yes, sorry this was omitted  - after I am done I call:
>>
>> av_frame_free();
>>
>> it seems to be something that is internally referenced by the graph...
>>
>>
>> On Oct 14, 2015, at 10:50 AM, Paul B Mahol  wrote:
>>
>>> Dana 14. 10. 2015. 17:36 osoba "Grady Player" <
>>> grady.pla...@verizondigitalmedia.com> napisala je:

 Currently using:

 commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58
 Author: Michael Niedermayer 
 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


Re: [FFmpeg-devel] avfilter_graph Question

2015-10-14 Thread Grady Player
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..

-Grady


On Oct 14, 2015, at 11:50 AM, Grady Player 
 wrote:

> Yes, sorry this was omitted  - after I am done I call:
>  
> av_frame_free();
> 
> it seems to be something that is internally referenced by the graph...
> 
> 
> On Oct 14, 2015, at 10:50 AM, Paul B Mahol  wrote:
> 
>> Dana 14. 10. 2015. 17:36 osoba "Grady Player" <
>> grady.pla...@verizondigitalmedia.com> napisala je:
>>> 
>>> Currently using:
>>> 
>>> commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58
>>> Author: Michael Niedermayer 
>>> 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


Re: [FFmpeg-devel] avfilter_graph Question

2015-10-14 Thread Grady Player
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  wrote:

> On Wed, Oct 14, 2015 at 4:13 PM, Grady Player
>  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 
>>  wrote:
>> 
>>> Yes, sorry this was omitted  - after I am done I call:
>>> 
>>> av_frame_free();
>>> 
>>> it seems to be something that is internally referenced by the graph...
>>> 
>>> 
>>> On Oct 14, 2015, at 10:50 AM, Paul B Mahol  wrote:
>>> 
 Dana 14. 10. 2015. 17:36 osoba "Grady Player" <
 grady.pla...@verizondigitalmedia.com> napisala je:
> 
> Currently using:
> 
> commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58
> Author: Michael Niedermayer 
> 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


Re: [FFmpeg-devel] avfilter_graph Question

2015-10-14 Thread Ganesh Ajjanagadde
On Wed, Oct 14, 2015 at 4:48 PM, Grady Player
 wrote:
> 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)

Must have been the av_warn_unused_result I added recently - no need to
worry about that: it is really for user's benefit so that they check
the return codes correctly (GCC should emit a -Wunused-result error
when the return code is not used/checked).

I will look into the docs soon: there is some difference, "add a
frame" and "add frame data" are IMO clearly different things. Any
concrete rewordings based on your experience are welcome.

>
> 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  wrote:
>
>> On Wed, Oct 14, 2015 at 4:13 PM, Grady Player
>>  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 
>>>  wrote:
>>>
 Yes, sorry this was omitted  - after I am done I call:

 av_frame_free();

 it seems to be something that is internally referenced by the graph...


 On Oct 14, 2015, at 10:50 AM, Paul B Mahol  wrote:

> Dana 14. 10. 2015. 17:36 osoba "Grady Player" <
> grady.pla...@verizondigitalmedia.com> napisala je:
>>
>> Currently using:
>>
>> commit af5917698bd44f136fd0ff00a9e5f8b5f92f2d58
>> Author: Michael Niedermayer 
>> 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
___
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/ffmpeg-devel