3 mkvalidator WRN0D0 void data
Moritz Bunkus edited this page 2019-06-16 22:39:01 +02:00

mkvalidator warning WRN0D0 "void data"

The problem

When running mkvalidator on a file generated by mkvmerge it issues the following warning:

WRN0D0: There are 5146 bytes of void data

What does it mean?

Can this be a problem during playback?

No, it cannot. In fact the presence of such space is perfectly fine and has never caused an issue for players.

The answer

mkvmerge writes files that do occupy more space than strictly needed. It reserves some space in certain places by writing "EBMLVoid" elements. This is what mkvalidator complains about: that space could be removed in order to produce a slightly smaller file.

However, leaving space in certain places is intentional. This is done so that later uses of e.g. MKVToolNix GUI's header editor or mkvpropedit have a chance to write their changes back to the file in a way that is the most portable amongst the players.

A Matroska file consists of several elements and a meta index (called "seek heads" in Matroska terms) that refers to the most important of them (e.g. the track headers, the tags, the chapters etc). When mkvpropedit is asked to add a title to a track it has to re-write the track headers in which said title is stored. That might make the track headers larger than they were before. If there is not enough space left to write the track headers in the same place they were before then mkvpropedit can also use the space left by "EBMLVoid" elements.

If no such elements are present mkvpropedit has to move the whole track headers to the end of the file and adjust the meta index (the "seek heads") to the new location of the track headers. While this is perfectly valid according to the Matroska specs it also poses certain problems with players that have buggy/unflexible implementations for their Matroska demuxer.

Leaving said space is also perfectly valid and much more portable amogst players.

Categories: mkvalidator