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.
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;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);| Parameter | Type | Role |
|---|---|---|
| buffer | OtioBuffer | input |
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);Returns the indentation upstream's Python bindings write by default.
size_t otio_default_indent(void);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);| Parameter | Type | Role |
|---|---|---|
| status | OtioStatus | input |
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;