Menu

Tree [e5b952] master /
 History

HTTPS access


File Date Author Commit
 examples 2021-11-19 Philip de Nier Philip de Nier [43e521] Replace auto_ptr with unique_ptr
 libMXF++ 2022-07-01 Philip de Nier Philip de Nier [952fb6] Add IMF generic picture & sound properties
 m4 2013-11-29 Andrew Bonney Andrew Bonney [564ebd] configure: use macros for cflag and ldflag supp...
 msvc_build 2020-05-22 Philip de Nier Philip de Nier [cfe3be] Add JPEG2000SubDescriptor class
 test 2021-11-19 Philip de Nier Philip de Nier [43e521] Replace auto_ptr with unique_ptr
 tools 2021-11-19 Philip de Nier Philip de Nier [43e521] Replace auto_ptr with unique_ptr
 .gitignore 2013-11-29 Andrew Bonney Andrew Bonney [564ebd] configure: use macros for cflag and ldflag supp...
 COPYING 2014-04-16 Philip de Nier Philip de Nier [7ea371] change copyright to 2014
 Makefile.am 2013-04-05 Philip de Nier Philip de Nier [c34c26] build: improve scm version header file generation
 README.md 2022-09-02 Philip de Nier Philip de Nier [e5b952] readme: markdown linter updates
 autogen.sh 2016-04-14 Andrew Bonney Andrew Bonney [cc528f] autogen: resolve issues caused by conflicting v...
 configure.ac 2022-03-01 Philip de Nier Philip de Nier [7ca5f0] configure: swap lib order in LIBMXFPP_LDADDLIBS
 gen_scm_version.sh 2013-04-05 Philip de Nier Philip de Nier [c34c26] build: improve scm version header file generation
 libMXF++.pc.in 2011-10-18 Philip de Nier Philip de Nier [7823e8] initial commit

Read Me

libMXF++

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.

Examples

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.

Build and Installation

libMXF++ is developed on Ubuntu Linux but is supported on other Unix-like systems using the autotools build system. A set of Microsoft Visual C++ project files are provided for Windows.

Dependencies

The following libraries must be installed to build libMXF++.

  • libMXF

Unix-like Systems Build

Install the development versions of the dependency libraries. The libMXF++ library and example applications can then be built from source using autotools as follows,

./autogen.sh
./configure
make

Run

./configure -h

to see a list of build configuration options.

A number of --disable-* options are provided for disabling all examples (--disable-examples) or specific ones (e.g. --disable-opatom-reader). The --disable-examples option can be combined with --enable-* options to enable specific examples. The bmx project does not require the examples and therefore libMXF++ can be configured using --disable-examples.

If you get library link errors similar to "error while loading shared libraries" then run

sudo /sbin/ldconfig

to update the runtime linker cache. E.g. the libMXF library was built and installed previously and the linker cache needs to be updated with the result.

There are a number of core library and example regression tests that can be run using

make check

Finally, the core library and examples can be installed using

sudo make install

To avoid library link errors similar to "error while loading shared libraries" when building bmx run

sudo /sbin/ldconfig

to update the runtime linker cache after installation.

Microsoft Visual Studio C++ Build

The Visual Studio 2010 build solution and project files can be found in the msvc_build/vs10 directory. These files can be upgraded to any more recent version when importing into the IDE.

The build solution file is libMXF++.sln. It is used to build the library and D10MXFOP1AWriter example. The build solution assumes that the libMXF/ project is present at the same directory level as libMXF++. The build solution file will build the libMXF library.

The build depends on the mxfpp_scm_version.h header file in the root directory to provide the most recent git commit identifier. This file is generated automatically using the gen_scm_version.sh script when building using autotools and is included in the source distribution package. You are likely missing this file if you are using the source code directly from the git repository and will need to create it manually.

Source and Binary Distributions

Source distributions and Windows binaries are made available on SourceForge.

License

The libMXF++ library is provided under the BSD 3-clause license. See the COPYING file provided with this library for more details.