MaterialInstance
A Track can have multiple MaterialInstances. A MaterialInstance references an actual file on a disk.
A MaterialInstance has a zone, indicating the location of the setup the
MAI is stored on.
So, a single Track can have multiple MAI-s, with each of them being
in a different zone. However, it is also possible to have multiple MAI-s,
even within the same zone. This happens when the media format uses multiple
files to store a single media item (e.g., audio and video in different
files).
Some examples to make things clear:
A single file video on one location
Say you upload a simple .mp4 file. In this case, all the Tracks of the RAW MOI (both AUDIO and VIDEO) will point to the same MaterialInstance.
A single file video on multiple locations
Say you back up a simple .mp4 file with Edge. Then you ingest it into Limecraft Flow.
Limecraft Flow will now know of two MaterialInstances, each of them in a different
zone. The zone indicates the physical location.
A P2 video on one location
P2 stores AUDIO and VIDEO in different files.
Limecraft Flow will know 5 MaterialInstances for a P2 video with 4 audio channels.
Property Reference
Field Name | Required | Type | Description | Format |
---|---|---|---|---|
alternateBackupLocation |
✘ |
String |
||
alternateBackupMetadata |
✘ |
Object |
||
alternateBackupType |
✘ |
String |
||
archive1Location |
✘ |
String |
||
archive1Metadata |
✘ |
Object |
||
archive1Type |
✘ |
String |
||
archive2Location |
✘ |
String |
||
archive2Metadata |
✘ |
Object |
||
archive2Type |
✘ |
String |
||
archive3Location |
✘ |
String |
||
archive3Metadata |
✘ |
Object |
||
archive3Type |
✘ |
String |
||
backupCompleted |
✘ |
Date |
date-time |
|
backupStarted |
✘ |
Date |
date-time |
|
businessKey |
✘ |
String |
||
created |
✘ |
Date |
The time when this resource was created |
date-time |
createdBy |
✘ |
String |
The request or process that created this resource |
|
creatorId |
✘ |
Long |
The id of the user who created this resource |
int64 |
deleted |
✘ |
Boolean |
||
deletedTimestamp |
✘ |
Date |
date-time |
|
filename |
✘ |
String |
||
fingerprints |
✘ |
Set of string |
||
growing |
✘ |
Boolean |
||
id |
✔ |
Long |
The id of this resource |
int64 |
lastUpdated |
✘ |
Date |
The time when this resource was last updated |
date-time |
location |
✘ |
String |
||
locationMetadata |
✘ |
Object |
||
md5 |
✘ |
String |
||
md5Partials |
✘ |
String |
||
md5VerificationCompleted |
✘ |
Date |
date-time |
|
md5VerificationStatus |
✘ |
String |
Enum: NOT_VERIFIED, VERIFIED, REJECTED, |
|
mediaObjectId |
✘ |
Long |
int64 |
|
mediaObjectType |
✘ |
String |
Enum: IMAGE, DOCUMENT, PENDING, AUDIO, VIDEO, SNIPPET, PACKAGE, |
|
metadata |
✘ |
Boolean |
||
modifiedBy |
✔ |
String |
The request or process responsible for the last update of this resource |
|
moiType |
✘ |
String |
Enum: RAW, PROXY, EDL, SHOTSTITCH, STITCH, THUMB, THUMB_SHOT, THUMB_SIXTY, WAVEFORM, AUDIO_MONO, AUDIO_SPEECH, VOLDEMORT_XML, ATTACHMENT, HDR_PROXY, MEZZANINE_PROXY, |
|
mxfReport |
✘ |
Boolean |
||
objectType |
✘ |
String |
The data model type or class name of this resource |
|
onAlternateBackup |
✘ |
Boolean |
||
onAlternateBackupTimestamp |
✘ |
Date |
date-time |
|
onArchive1 |
✘ |
Boolean |
||
onArchive1Timestamp |
✘ |
Date |
date-time |
|
onArchive2 |
✘ |
Boolean |
||
onArchive2Timestamp |
✘ |
Date |
date-time |
|
onArchive3 |
✘ |
Boolean |
||
onArchive3Timestamp |
✘ |
Date |
date-time |
|
onBackup |
✘ |
Boolean |
||
onBackupTimestamp |
✘ |
Date |
date-time |
|
onFlow |
✘ |
Boolean |
||
onFlowTimestamp |
✘ |
Date |
date-time |
|
onsite |
✘ |
Boolean |
||
pathOnCard |
✘ |
String |
||
pattern |
✘ |
String |
||
productionId |
✘ |
Long |
int64 |
|
removeFromQuota |
✘ |
Boolean |
||
shouldBeOnAlternateBackup |
✘ |
Boolean |
||
shouldBeOnAlternateBackupTimestamp |
✘ |
Date |
date-time |
|
shouldBeOnBackup |
✘ |
Boolean |
||
shouldBeOnBackupTimestamp |
✘ |
Date |
date-time |
|
shouldBeOnFlow |
✘ |
Boolean |
||
shouldBeOnFlowTimestamp |
✘ |
Date |
date-time |
|
size |
✘ |
Long |
int64 |
|
tracks |
✘ |
Set of Track |
||
transferDetails |
✘ |
TransferDetails |
||
uid |
✘ |
String |
||
uploading |
✘ |
Boolean |
||
version |
✔ |
Long |
The version of this resource, used for Optimistic Locking |
int64 |
volumeLocations |
✘ |
List of VolumeLocation |
||
zone |
✘ |
String |
Limecraft Flow Location Flags
Material instances have the following location flags:
-
onFlow
: indicates whether a file is present on the internal storage or not. -
onBackup
: indicates the material has been backed up to S3. Internal Limecraft Flow functionality. -
onArchive1
,onArchive2
,onArchive3
: indicates whether a file is present on an archive location or not.
And the following indicators of availability:
-
shouldBeOnFlow
-
shouldBeOnBackup
These indicate if the file should be present, or not, on the respective system.
If the material is present on Limecraft Flow (onFlow=true
) but we set shouldBeOnFlow=false
, it states that even though the material is present on Limecraft Flow, we do not want it there, so it will be removed by the material service (after a certain cooldown period).
Setting shouldBeOnFlow=true
while onFlow is false is a state in which we expect the material to be present on Limecraft Flow, but it is not there. This means we might have to recover from some backup location, this behavior however is not (yet) supported completely.
onlineLocations
There is also the onlineLocations
setting. This accepts fields like archive1
, indicating the archive1
location is to be considered "online". Meaning the file is available for download, from that location.
onlineLocations
is usually set on account or production level (in the account/production settings) and must be set before any material is added to the production. Changing this setting will yield incorrect online flags and break functionality.
The online
flag is a property of MediaObjectInstance.materialInfo
If the media object instance materialInfo.online is set, the material is available for download through Limecraft Flow.