[FFmpeg-devel] [PATCH 05/10] lavf/dashenc: don't call flush_init_segment before avformat_write_header

Jeyapal, Karthick kjeyapal at akamai.com
Sun Mar 18 09:16:00 EET 2018



On 3/14/18 11:54 AM, Rodger Combs wrote:
> Fixes crash when muxing MKV-in-DASH
> ---
>  libavformat/dashenc.c | 10 +++-------
>  1 file changed, 3 insertions(+), 7 deletions(-)
>
> diff --git a/libavformat/dashenc.c b/libavformat/dashenc.c
> index 5689aef811..63ff827583 100644
> --- a/libavformat/dashenc.c
> +++ b/libavformat/dashenc.c
> @@ -985,13 +985,6 @@ static int dash_init(AVFormatContext *s)
>  
>          av_log(s, AV_LOG_VERBOSE, "Representation %d init segment will be written to: %s\n", i, filename);
>  
> -        // Flush init segment
> -        // except for mp4, since delay_moov is set and the init segment
> -        // is then flushed after the first packets
> -        if (strcmp(os->format_name, "mp4")) {
> -            flush_init_segment(s, os);
> -        }
> -
>          s->streams[i]->time_base = st->time_base;
>          // If the muxer wants to shift timestamps, request to have them shifted
>          // already before being handed to this muxer, so we don't have mismatches
> @@ -1032,6 +1025,9 @@ static int dash_write_header(AVFormatContext *s)
>          OutputStream *os = &c->streams[i];
>          if ((ret = avformat_write_header(os->ctx, NULL)) < 0)
>              return ret;
> +
> +        if ((ret = flush_init_segment(s, os)) < 0)
> +            return ret;
I am fine with moving this here. But you have removed the strcmp for mp4 files.
Have you analyzed the impact of this change for mp4 files. Looks like something might break for mp4 files.
I would be more comfortable, if the strcmp and its related comment is also moved here.
>      }
>      ret = write_manifest(s, 0);
>      if (!ret)





More information about the ffmpeg-devel mailing list