matroskamux could write tags better
When matroskamux
writes tags, it does it in an element at the end of the file, but doesn't put an entry for the Tags element into the SeekHead. Without that entry, matroskademux
doesn't output any of the tags until it reads the Tags element right before EOS.
Alternate approaches for writing tags would be to:
-
Write the Tags element earlier in the file (before starting to write clusters), but overwrite it with a Void element if needed (if more tags arrive later) and write another Tags element later. Possibly this could be written with padding.
-
Write multiple Tags elements into the file if needed (Tags is listed in https://www.matroska.org/technical/elements.html as permitted-to-be a Multiple instance element)
-
Write the tags at the end of the file as currently done but add the entry to the SeekHead so the demuxer can find it sooner.
-
and 2. have the benefit that tags could potentially be emitted earlier in push mode, but for all 3 options it would be good to make the muxer add the Tags element to the SeekHead as the matroska specs recommend in https://www.matroska.org/technical/ordering.html