[FFmpeg-devel] [PATCH] libavformat/matroskaenc.c: Check if we can seek before writing the end of the ebml of the segment.

Andreas Rheinhardt andreas.rheinhardt at gmail.com
Wed Mar 11 18:44:14 EET 2020


Thierry Foucu:
> ---
>  libavformat/matroskaenc.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> 
> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> index 42f21eae8b..cf436f9e3e 100644
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -2630,7 +2630,7 @@ static int mkv_write_trailer(AVFormatContext *s)
>          avio_seek(pb, currentpos, SEEK_SET);
>      }
>  
> -    if (!mkv->is_live) {
> +    if ((pb->seekable & AVIO_SEEKABLE_NORMAL) && !mkv->is_live) {
>          end_ebml_master(pb, mkv->segment);
>      }
>  
> 
Why? Even if the output is unseekable, the seek to the beginning might
succeed if it happens in the output buffer (unlikely but possible). Or
do you have a specific usecase in mind where the segment should be
unknown-length?

- Andreas


More information about the ffmpeg-devel mailing list