-
Notifications
You must be signed in to change notification settings - Fork 282
BMFF Legals
There has been a very vigorous discussion in Team Exiv2 and with the Open Source Community about BMFF support and the possibility of patent enfrigement. Exiv2 does not accept legal responsibility for enabling and using BMFF support.
README.md contains the following section:
2.19 Support for BMFF files (CR3, HEIF, HEIC, and AVIF)
Attention is drawn to the possibility that bmff support may be the subject of patent rights. Exiv2 shall not be held responsible for identifying any or all such patent rights. Exiv2 shall not be held responsible for the legal consequences of the use of this code.
Access to the bmff code is guarded in two ways. Firstly, you have to build the library with the cmake option: -DEXIV2_ENABLE_BMFF=On
. Secondly, the application must enable bmff support at run-time by calling the following function.
EXIV2API bool enableBMFF(bool enable);
The return value from enableBMFF()
is true if the library has been build with bmff support (cmake option -DEXIV2_ANABLE_BMFF=On).
Applications may wish to provide a preference setting to enable bmff support and thereby place the responsibility for the use of this code with the user of the application.
Caution
The Exiv2::enableBMFF()
API for v1.00 (on branch 'main') is the same as 0.27.4 (and later), however the build default is -DEXIV2_ENABLE_BMFF=On
and revealed to the compiler by EXV_ENABLE_BMFF (in exv_conf.h). At run-time, library initialisation is equivalent to calling Exiv2::enableBMFF(true);
.
Summary
Applications can disable run-time BMFF support by calling Exiv2::enableBMFF(false);
for any version of Exiv2 (v0.27.4 and later).