On Mon, Dec 28, 2015 at 3:26 AM, Carl Eugen Hoyos <ceho...@ag.or.at> wrote:

> David Tsulaia <d_tsulaia@...> writes:
>
> > ffmpeg version N-75912-g624057d Copyright (c) 2000-2015
>
> Please test current FFmpeg git head before reporting
> issues.
>
> > No matter what I try call to avcodec_decode_video2
> > results in memory leak.
>
> valgrind output missing.
>
> Carl Eugen
> _______________________________________________
> Libav-user mailing list
> Libav-user@ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/libav-user
>


I feel ashamed for coming to mailing list so unprepared.
Must have been several nights no sleep and desperation.

Now, I used current git build and showed similar results,
but I researched more and found out what was the issue:
It wasn't memory leak that's why valgrind constantly showed
that all heaps were freed and no leaks were possible.
The problem was that av_decode_video2 and av_interleaved_write_frame
both buffer packets for processing/reordering. Thing is the stream is so
large
that both of these calls were not fast enough to deal with incoming packets
so memory usage kept climbing up.
I fixed this by using av_write_frame and provided already interleaved
stream.

So my bad for not noticing that.

I have another issue I would like to get some help if possible:

Could you please tell me how to correctly switch between files while
reading stream.
I am recording 1 hour long files from constant stream. Right now I am doing
following:

avio_open2(&ofmt_ctx->pb, fname, AVIO_FLAG_WRITE, NULL, NULL );
after 1 hour.
avio_close(ofmt_ctx->pb);
make new file name
avio_open2(&ofmt_ctx->pb, new_fname, AVIO_FLAG_WRITE, NULL, NULL );

Is this right? I though of freeing context and reallocating it again,
but wanted to avoid extra tasks in reading/writing loop.

P.S. Happy holidays everyone.
_______________________________________________
Libav-user mailing list
Libav-user@ffmpeg.org
http://ffmpeg.org/mailman/listinfo/libav-user

Reply via email to