davinci-resolve-mcp 2.95.2 → 2.96.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1057,9 +1057,39 @@ API_TRUTH: List[Dict[str, Any]] = [
1057
1057
  "source span EQUALS the record span even under M2; the "
1058
1058
  "`M2 <reel> <rate> <srcInTC>` line carries the play rate in "
1059
1059
  "fps (048.0 = 200% at 24); `* FROM CLIP NAME:` comments drive "
1060
- "pool linking. UNTESTED as import routes: reverse (negative "
1061
- "time_scalar / reverse M2) and varying-speed maps — do not "
1062
- "extrapolate the constant-speed result to them.",
1060
+ "pool linking. REVERSE AND VARYING-SPEED RAMPS ARE NOW "
1061
+ "MEASURED TOO (2026-08-12, Studio 21.0.4.5) — this entry "
1062
+ "previously warned they were UNTESTED; that warning is "
1063
+ "closed and both work. REVERSE lands through BOTH import "
1064
+ "routes: OTIO with a negative time_scalar (-1) placed a clip "
1065
+ "reading GetSourceStartFrame 95 -> GetSourceEndFrame 46, and "
1066
+ "EDL with a negative M2 rate (-24.0 at 24fps) read 48 -> 0. "
1067
+ "So THE API DOES EXPOSE DIRECTION, which is worth knowing: a "
1068
+ "reversed clip reports GetSourceStartFrame GREATER THAN "
1069
+ "GetSourceEndFrame (a negative span). VARYING-SPEED RAMPS "
1070
+ "cannot be expressed in OTIO (LinearTimeWarp is a single "
1071
+ "time_scalar — constant by construction) but CAN be authored "
1072
+ "offline and survive Resolve intact: a Sm2TimeMap built with "
1073
+ "media-timemap.buildTimemap carrying two segments (0-2s "
1074
+ "record at 0.5x, 2-4s at 2.0x) was patched into a clip's "
1075
+ "MediaTimemapBA, imported, and re-exported by Resolve with "
1076
+ "the segments UNCHANGED. Independent confirmation from the "
1077
+ "API side: the placed clip read GetSourceStart/EndFrame 0..120 "
1078
+ "over a 96-frame record, and 2s at 0.5x (24 source frames) + "
1079
+ "2s at 2.0x (96) is exactly 120. TWO TRAPS worth naming. "
1080
+ "(1) buildTimemap returns a BUFFER; writing it into the XML "
1081
+ "without .toString('hex') embeds mojibake, and the failure is "
1082
+ "SILENT — the clip imports fine and reads 0..0, which is "
1083
+ "indistinguishable from the degenerate-map signature this "
1084
+ "entry describes for xmeml imports, so it reads as 'Resolve "
1085
+ "rejected the retime' when it is really a caller bug. "
1086
+ "(2) a REVERSED map does not start at (0,0): Resolve encodes "
1087
+ "the starting source offset as a TOP-LEVEL protobuf field 2 "
1088
+ "double, and each keyframe point omits whichever of "
1089
+ "record/source is zero (protobuf default-omission). Anything "
1090
+ "reading fixed offsets or assuming a (0,0) origin decodes a "
1091
+ "reverse as SPEED 0 rather than -1. drp-format's own decoder "
1092
+ "had both bugs and is fixed.",
1063
1093
  "recommended": "Set clip speed/retime in the Resolve UI, or BUILD it by "
1064
1094
  "import: OTIO LinearTimeWarp and EDL M2 both construct "
1065
1095
  "constant retimes through ImportTimelineFromFile (measured "