$.pipelineTools.MetadataController.prototype.setMediaStartTimecode = function(timecode) {
var path = "Column.Intrinsic.MediaStart"
// Testing
val = this.xmpMetadata.setStructField(
XMPConst.NS_DM,
"startTimecode",
XMPConst.NS_DM,
"timeValue",
"00:00:00:00"
)
this.xmpMetaChanges.push(path)
// "http://ns.adobe.com/xmp/1.0/DynamicMedia/"
var val = this.xmpMetadata.setStructField(
XMPConst.NS_DM,
"altTimecode",
XMPConst.NS_DM,
"timeValue",
timecode
)
this.xmpMetaChanges.push(path)
}
It's always reporting in ESTK the correct timecode, but isn't always setting the same value.
As you can see in ESTK:
![]()
However, random clips are getting set to 00:00:00:00
Is there a logic to how the metadata is pulled? I've tried ensuring that there is a startTimecode field first (because sometimes that field just completely doesn't exist in some cases and needs to be created), but this doesn't do anything. Alttimecode is the one we want to use because it's the offset we're using for the potential of having extra frames being brought in at a future point.
![]()
The above is a clip that was supposed to have MediaStart set to 00:00:04:05 and this is a clip that had the value correctly set:
![]()
Both using the same code, same calculation, same session.
Seems to be inconsistent and dumping the XMP on the files results in this:
grw020(successful):
<xmpDM:startTimecode rdf:parseType="Resource">
<xmpDM:timeFormat>24Timecode</xmpDM:timeFormat>
<xmpDM:timeValue>00:00:00:00</xmpDM:timeValue>
</xmpDM:startTimecode>
<xmpDM:altTimecode rdf:parseType="Resource">
<xmpDM:timeValue>00:00:04:05</xmpDM:timeValue>
<xmpDM:timeFormat>24Timecode</xmpDM:timeFormat>
</xmpDM:altTimecode>
soc020(unsuccessful):
<xmpDM:altTimecode rdf:parseType="Resource">
<xmpDM:timeValue>00:00:04:05</xmpDM:timeValue>
</xmpDM:altTimecode>
<xmpDM:startTimecode rdf:parseType="Resource">
<xmpDM:timeValue>00:00:00:00</xmpDM:timeValue>
</xmpDM:startTimecode>
As you can see, grw020 somehow magically gets the timeFormat string and using the same code in the same session, soc020 does not get the timeFormat value.
Now I'm curious as to how the successful clip is getting the stray value, and secondly - why it's populating incorrectly? This is in a sequence that is at 23.976 and It's populating with 24Timecode - when it should be populating with 23976Timecode like I've seen in other clips.
Overall, this seems to be a very inconsistent setting of data.
Thanks.