> On Dec 6, 2013, at 0:17, Eric Beuque <[email protected]> wrote:
> 
> 
>> On Thu, Dec 5, 2013 at 9:22 PM, Paul B Mahol <[email protected]> wrote:
>> On 12/5/13, Bruce Wheaton <[email protected]> wrote:
>> > On Dec 5, 2013, at 3:41 AM, Paul B Mahol <[email protected]> wrote:
>> >
>> >> On 12/5/13, Eric Beuque <[email protected]> wrote:
>> >>> How i can tell libavcodec that i want to become the owner of the data
>> >>> and
>> >>> be able to free it, to without codec context instance? I was thinking
>> >>> about
>> >>> using get/release_buffer functions, but i don't know how to compute size
>> >>> of
>> >>> the data.
>> >>>
>> >>> Is data memcpy the only way to do this?
>> >>>
>> >>> Note, that i also can't upgrade to new version of FFMPEG.
>> >>>
>> >>> Thanks for your help.
>> >>>
>> >>
>> >> Use reference counting system.
>> >> They you need to manually free frame once you will not need it
>> >> (otherwise you leak memory), so you do not need to do copy.
>> >
>> >
>> > In my recent experiments, it seemed that closing the codec actually frees
>> > all buffers, regardless of reference count. That makes sense - if the codec
>> > is gone, what would detect the decreased reference count?
>> 
>> That sound wrong to me, either when decoding or encoding frames should
>> not be freed if frame is still used.
> 
> I agree with Paul. I think this is the expected behavior for developers.

Let's say I agree with both of you. Nonetheless, a frame's ref count is a 
variable, not a function. After it gets decremented to mark you don't want it, 
something that runs (presumably that had been run by your code, such as a 
decode function) must then detect that and reuse the frame. 

I know that if you break down the whole chain (codecs and the format context) 
the frames get removed - deleting the frames triggers a signal on double free. 
I was speculating that the frame 'belong' to the codec, which generated them. 

So whatever we wish happened - you can't keep the frames you get from decoding 
indefinitely. You can probably keep something else alive just to keep them in 
play. 




>  
>> 
>> >
>> > Bruce
>> > _______________________________________________
>> > Libav-user mailing list
>> > [email protected]
>> > http://ffmpeg.org/mailman/listinfo/libav-user
>> >
>> _______________________________________________
>> Libav-user mailing list
>> [email protected]
>> http://ffmpeg.org/mailman/listinfo/libav-user
> 
> 
> 
> _______________________________________________
> Libav-user mailing list
> [email protected]
> http://ffmpeg.org/mailman/listinfo/libav-user
_______________________________________________
Libav-user mailing list
[email protected]
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to