[FFmpeg-devel] [PATCH] lavf/matroskadec: stop mapping text/plain attachments to AV_CODEC_ID_TEXT

Anton Khirnov anton at khirnov.net
Wed Jun 8 15:16:39 EEST 2022


Quoting Soft Works (2022-06-08 10:34:05)
> > > I don't think it's absurd, neither hypothetical to ask whether somebody,
> > > would object a certain change --- BEFORE working spending time on it.
> > 
> > It does makes sense to consider it, but at some point you have to accept
> > that ANY change you make can possibly break somebody's use case. So
> > being overly considerate means no useful development gets done.
> 
> I very much agree to this. But I'm wondering how this can go together 
> with versioning the code by 24 different numbers (8 libs * 3 integers).
> Even when you make a change that is undoubtedly correct and justified and 
> right - when it changes behavior it breaks compatibility, even when the
> previous behavior was totally bad and wrong.
> 
> Once you leave that path and replace it by some "custom" judgement with regards
> to what's compatible and what's breaking and consider a change to be non-breaking 
> because it changes only "illegitimate" behavior, it's still a breaking and 
> incompatible change. 
> When it's not possible to rely on a precise and strict compatibility based 
> on these version numbers with major, minor and micro for every single lib,
> and you say - nevermind, every change will break something, what are all
> those numbers for? They would be pointless, wouldn't they?

Those numbers are not "code version", they are "API version". They do
not provide guarantees on specific code behavior, they provide
guarantees on what APIs are available and their semantics.

> > When we add a new codec ID, what was previously "none" changes to an
> > actual codec name. Users for whom any change at all is a problem should
> > simply not update their binaries.
> 
> How should those users know when the library version numbering doesn't 
> indicate that breaking change?

Tests. Lots of tests.
If any change in behaviour is a breaking change for you, then git commit
hash is the library version you should use.

-- 
Anton Khirnov


More information about the ffmpeg-devel mailing list