[FFmpeg-devel] [PATCH] avformat/matroskaenc: Don't write elements with their default value

James Almer jamrial at gmail.com
Tue Apr 14 04:53:05 EEST 2020


On 4/13/2020 10:46 PM, Andreas Rheinhardt wrote:
> This has happened when writing chapters: Both editions as well as
> chapters are by default not hidden and given that we don't support
> writing hidden chapters at all, we don't need to write said elements at
> all. The same goes for ChapterFlagEnabled.

LGTM. I assume they were added because they are both listed as
Mandatory, despite having a default value, so it may have been confusing
and contradictory back then.

> 
> Signed-off-by: Andreas Rheinhardt <andreas.rheinhardt at gmail.com>
> ---
> This is supposed to get applied before the cosmetics patch.
> 
>  libavformat/matroskaenc.c | 5 -----
>  1 file changed, 5 deletions(-)
> 
> diff --git a/libavformat/matroskaenc.c b/libavformat/matroskaenc.c
> index d0a02c0f5d..d3256d8f5d 100644
> --- a/libavformat/matroskaenc.c
> +++ b/libavformat/matroskaenc.c
> @@ -1400,7 +1400,6 @@ static int mkv_write_chapters(AVFormatContext *s)
>      editionentry = start_ebml_master(dyn_cp, MATROSKA_ID_EDITIONENTRY, 0);
>      if (mkv->mode != MODE_WEBM) {
>          put_ebml_uint(dyn_cp, MATROSKA_ID_EDITIONFLAGDEFAULT, 1);
> -        put_ebml_uint(dyn_cp, MATROSKA_ID_EDITIONFLAGHIDDEN , 0);
>      }
>      for (i = 0; i < s->nb_chapters; i++) {
>          ebml_master chapteratom, chapterdisplay;
> @@ -1420,10 +1419,6 @@ static int mkv_write_chapters(AVFormatContext *s)
>                        (uint32_t)c->id + (uint64_t)mkv->chapter_id_offset);
>          put_ebml_uint(dyn_cp, MATROSKA_ID_CHAPTERTIMESTART, chapterstart);
>          put_ebml_uint(dyn_cp, MATROSKA_ID_CHAPTERTIMEEND, chapterend);
> -        if (mkv->mode != MODE_WEBM) {
> -            put_ebml_uint(dyn_cp, MATROSKA_ID_CHAPTERFLAGHIDDEN , 0);
> -            put_ebml_uint(dyn_cp, MATROSKA_ID_CHAPTERFLAGENABLED, 1);
> -        }
>          if ((t = av_dict_get(c->metadata, "title", NULL, 0))) {
>              chapterdisplay = start_ebml_master(dyn_cp, MATROSKA_ID_CHAPTERDISPLAY, 0);
>              put_ebml_string(dyn_cp, MATROSKA_ID_CHAPSTRING, t->value);
> 



More information about the ffmpeg-devel mailing list