[FFmpeg-devel] [PATCH 06/20] avformat/matroskaenc: Make output more deterministic
Andreas Rheinhardt
andreas.rheinhardt at gmail.com
Sun Apr 19 10:48:27 EEST 2020
Steve Lhomme:
> Not sure how FATE works but I suppose the pseudo-random becomes deterministic ? In that case the size should always be the same. And if not having a fixed size will make no difference.
>
> If FATE can skip random parts of a file (which your patch would solve) it will miss inconsitencies of UIDs that should be the same in two places of the file. So IMO it's not good. I suggest to have a flag in the muxer to force the seed to a fixed value when using FATE.
>
The output of FATE was always deterministic. Here is the relevant
snippet from patch #3:
+ if (s->flags & AVFMT_FLAG_BITEXACT) {
+ track->uid = i + 1;
+ } else {
+ track->uid = mkv_get_uid(mkv->tracks, i, &c);
+ }
The rest of the code does simply refer to track->uid and does not care
about whether these values have been set randomly or not.
Patch #6 has been made to address concerns [1] that adding random values
all over the place could inhibit catching bugs.
We can already check the UIDs for consistency: By muxing a file and then
checking whether the metadata is read correctly. I have recently applied
a patch [2] that allows to do exactly that and I intend to add more
tests using this capability.
- Andreas
[1]: https://ffmpeg.org/pipermail/ffmpeg-devel/2019-November/253377.html
[2]: https://ffmpeg.org/pipermail/ffmpeg-devel/2020-April/260592.html
More information about the ffmpeg-devel
mailing list