libMXF++ is a C++ wrapper library for libMXF that supports reading and writing the SMPTE ST 377-1 MXF file format.
libMXF++ and libMXF are used in the bmx project.
libMXF++ was originally developed as part of the Ingex Project where it supported MXF transfer, playback and storage applications.
A number of examples can be found in the examples directory. These are not part of the core library and are not required to build bmx.
- D10MXFOP1AWriter: library code used in the Ingex Project for writing SMPTE ST 386 MXF D-10 (Sony MPEG IMX) files.
- OPAtomReader: library code used in the Ingex Project for recovering Avid MXF OP-Atom files after a system failure.
libMXF++ is developed on Ubuntu Linux but is supported on other Unix-like systems and Windows.
The cmake build system is used, with minimum version 3.12. The build requires the git
tool along with the C/C++ compilers.
The build process has been tested on Ubuntu, Debian, MacOS and Windows (Microsoft Visual C++ 2017 v15.9.51 and later versions).
The libMXF library is provided here alongside libMXF++.
A basic commandline process is described here for platforms that default to the Unix Makefiles or Visual Studio cmake generators. See build.md for more detailed build options.
Replace <build type>
in the commandlines below with Debug
or Release
. Note that the Visual Studio generator supports multiple build types for a configuration, which is why the build type is selected after configuration.
The default generator can be overridden using the cmake -G
option. The list of available generators is shown at the end of the output of cmake --help
.
Start by creating a build directory and change into it. The commandlines below use a out/build
build directory in the working tree, which follows the approach taken by Microsoft Visual Studio C++.
mkdir -p out/build
cd out/build
cmake ../../ -DCMAKE_BUILD_TYPE=<build type>
cmake --build .
make test
sudo make install
If not using macOS, run ldconfig
to update the runtime linker cache. This avoids library link errors similar to "error while loading shared libraries".
sudo /sbin/ldconfig
mkdir out\build
cd out\build
cmake ..\..\
cmake --build . --config <build type>
ctest -C <build type>
cmake --build . --config <build type> --target install
Source distributions, including dependencies for the Windows build, and Windows binaries are made available as in bmx.
The libMXF++ library is provided under the BSD 3-clause license. See the COPYING file provided with this library for more details.