[Libav-user] Reuse of format context after free and reallocate?

william keeling williamkeeling at hotmail.com
Wed Mar 3 06:22:36 EET 2021

 I did some digging and found the error is coming from this code in flvenv.c line 921.

  if (pkt->dts < -flv->delay) {
        av_log(s, AV_LOG_WARNING,
               "Packets are not in the proper order with respect to DTS\n");
        return AVERROR(EINVAL);

flv is a pointer to  FLVContext from AVFormatContext->priv_data.

Looks like the avformat_write_header()/avformat_init_output uses the state of the muxer at the last run even if the AVFormatContext has been freed and reallocated.
So how do I get the FLVContext to be initlized as if a fresh run. Or how do I free the old FLVContext so when avformat_write_header() initlizes the priv_data it is fresh.
From: Libav-user <libav-user-bounces at ffmpeg.org> on behalf of william keeling <WilliamKeeling at hotmail.com>
Sent: Monday, March 1, 2021 2:32 PM
To: libav-user at ffmpeg.org <libav-user at ffmpeg.org>
Subject: [Libav-user] Reuse of format context after free and reallocate?

I have a program the creates flash format stream and is work the first time thru but when I process the second stream, I get DTS/PTS non monotonically errors.

After each stream I free and reallocate all contexts:

avcodec_free_context() of all streams video and audio



What am I missing so the format context can be reallocate and used?

Thanks William
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://ffmpeg.org/pipermail/libav-user/attachments/20210303/98706356/attachment.html>

More information about the Libav-user mailing list