I have a stream that has correct input pts/dts packet order. By 'correct' I mean all pts >= dts and dts is monotonically increasing. From some point I start to decode that stream from key_packet. And to validate result before muxing it again, I check pts/pkt_dts of AVFrame again.
It happens when at some point next packet didn't produce any frames without errors. And with next packet my next frame's "pts" can't keep up with "pkt_dts" while (ret >= 0) { AVFrame *frame = av_frame_alloc(); ret = avcodec_receive_frame(context_, frame); if (ret == AVERROR(EAGAIN) || ret == AVERROR_EOF) { break; } } And my pts became less than pkt_dts. Example: source pts/dts: 255600/255600 decoded pts/dts 252000 255600 type: P source pts/dts: 259200/259200 decoded pts/dts 255600 259200 type: P source pts/dts: 262800/262800 decoded pts/dts 259200 262800 type: P source pts/dts: 266400/266400 decoded pts/dts 262800 266400 type: P I drop this avframe because mixer won't consume it anyways as I checked. So why pts became bigger. What checks I really have to do to ensure correctness of frames? _______________________________________________ ffmpeg-user mailing list ffmpeg-user@ffmpeg.org https://ffmpeg.org/mailman/listinfo/ffmpeg-user To unsubscribe, visit link above, or email ffmpeg-user-requ...@ffmpeg.org with subject "unsubscribe".