O
Sections
Every group

Library

The library itself: its version, and the defaults it uses.

Symbols in this group are spelled otio_abi_… or otio_buffer_… or otio_default_… or otio_status_… or otio_version_…. An SDK drops that prefix, which is why the name beside each call is the short one.

abi_version

free

Returns the version of the interface the library was built with, which a caller compares with the `OTIO_ABI_VERSION` its header states.

A library and a caller with different versions cannot be used together.

 * which this header defines, and `otio_abi_version()`, which the library
 * returns, are the version of the binary interface, for programs: a caller
 * checks at startup that the two agree, and refuses to go on if they do not.
 *
 * The ABI version changes only when a program built against one header could
 * not run against a library built from the next: a signature, the layout of a
 * struct without a `struct_size`, or the meaning of an enum value changing,
 * or an entry point going away. Adding entry points, enum values, or fields
 * at the end of a struct with a `struct_size` does not change it.
 *
 * Version 0, the current one, says the ABI has not yet been declared stable:
 * any release may change it, so a caller should also insist on the exact
 * `otio_version()` it was built for. Declaring it stable makes it 1.
 *
 * From version 1, a packaged release names the shared library for its ABI
 * version, so that two incompatible versions can be installed side by side:
 * `libotio.so.1` (with `libotio.so` as the link-time name) on Linux,
 * `libotio.1.dylib` on macOS, and `otio1.dll` on Windows.
 *
 *
 * A WHOLE SESSION
 *
 *     OtioDocument *document = NULL;

buffer_free

plumbing

Releases a buffer the library handed out.

Passing a buffer whose `data` is null does nothing. Passing the same buffer twice, or one this library did not produce, is undefined.

 *         otio_buffer_free(error);
ParameterTypeRole
bufferOtioBufferinput

default_epsilon_s

free

The tolerance, in seconds, that the range predicates use by default.

Upstream's C++ takes this as a default argument; C has none, so the value is a call rather than a constant in the header, which keeps the two from drifting apart.

double otio_default_epsilon_s(void);

default_indent

free

Returns the indentation upstream's Python bindings write by default.

size_t otio_default_indent(void);

status_name

plumbing

Returns the name of a status code, such as `"OTIO_STATUS_OK"`.

The string is static and needs no freeing.

const char *otio_status_name(OtioStatus status);
ParameterTypeRole
statusOtioStatusinput

version

free

Returns the library's version, as `"MAJOR.MINOR.PATCH"`.

The string is static and needs no freeing.

 * `otio_version()` is the library's release, for people. `OTIO_ABI_VERSION`,
 * which this header defines, and `otio_abi_version()`, which the library
 * returns, are the version of the binary interface, for programs: a caller
 * checks at startup that the two agree, and refuses to go on if they do not.
 *
 * The ABI version changes only when a program built against one header could
 * not run against a library built from the next: a signature, the layout of a
 * struct without a `struct_size`, or the meaning of an enum value changing,
 * or an entry point going away. Adding entry points, enum values, or fields
 * at the end of a struct with a `struct_size` does not change it.
 *
 * Version 0, the current one, says the ABI has not yet been declared stable:
 * any release may change it, so a caller should also insist on the exact
 * `otio_version()` it was built for. Declaring it stable makes it 1.
 *
 * From version 1, a packaged release names the shared library for its ABI
 * version, so that two incompatible versions can be installed side by side:
 * `libotio.so.1` (with `libotio.so` as the link-time name) on Linux,
 * `libotio.1.dylib` on macOS, and `otio1.dll` on Windows.
 *
 *
 * A WHOLE SESSION
 *
 *     OtioDocument *document = NULL;