<div dir="ltr"><div dir="ltr">> are there any pointers available online that outline the basic approach,<br>> particularly with emphasis on retaining backward ABI compatibility?<br><br>You can use your own file types in your application without modifying TagLib, just implement a subclass of TagLib::File (with can provide its own subclass of TagLib::AudioProperties with audioProperties() and its own subclass of TagLib::Tag with tag()), and then you can register it using TagLib::FileRef::addFileTypeResolver(). So you just have to specialize given base classes, and you do not have to care about ABI compliance.<br><br>If you provide a pull request which changes TagLib classes, you have to maintain binary compatibility, KDE has some guidelines in <a href="https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B">https://community.kde.org/Policies/Binary_Compatibility_Issues_With_C%2B%2B</a>. I use abi-compliance-checker (is part of most Linux distributions) to check before making a release.<br></div></div>