On Sun, 5 Jan 2020, Martin Storsjö wrote:

On Sun, 5 Jan 2020, Marton Balint wrote:

The IO context is flushed by libavformat/mux.c after writing the header by calling
avio_write_marker(s->pb, AV_NOPTS_VALUE, AVIO_DATA_MARKER_UNKNOWN), so this
change should have no effect at all.

Signed-off-by: Marton Balint <c...@passwd.hu>

If I read avio_write_marker correctly, it won't do an implicit flush on these calls unless the user actually has set the s->write_data_type function pointer - which only is set when used by direct API users.

So for normal cases, if I read it correctly, one can't assume avio_write_marker implies a flush in general.

Yes, you are right, I missed that too... I believe the patch is still correct if I fix the commit message:

avformat: remove avio_flush() calls from the end of write_header functions

To make it consistent with other muxers.

The user can still control the generic flushing behaviour after write_header (same way as after packets) using the -flush_packets option, the default typically means to flush unless a non-streamed file output is used.

Therefore this change should have no adverse effect on streaming, even if it is assumed that the first packet has a clean buffer, so small seekbacks within the output buffer work even when the IO context is not seekable.

Thanks,
Marton
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel

To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".

Reply via email to