Append more editorial tests for reverse speed.

This commit is contained in:
robin@ynput.io 2025-01-14 10:27:58 +01:00
parent b001a4cfa7
commit e90ca81ede
3 changed files with 484 additions and 0 deletions

View file

@ -0,0 +1,59 @@
{
"OTIO_SCHEMA": "Clip.2",
"metadata": {},
"name": "",
"source_range": {
"OTIO_SCHEMA": "TimeRange.1",
"duration": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 23.976,
"value": 32.0
},
"start_time": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 23.976,
"value": 947726.0
}
},
"effects": [
{
"OTIO_SCHEMA": "LinearTimeWarp.1",
"metadata": {},
"name": "",
"effect_name": "LinearTimeWarp",
"time_scalar": -1.0
}
],
"markers": [],
"enabled": true,
"media_references": {
"DEFAULT_MEDIA": {
"OTIO_SCHEMA": "ImageSequenceReference.1",
"metadata": {},
"name": "",
"available_range": {
"OTIO_SCHEMA": "TimeRange.1",
"duration": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 7607.0
},
"start_time": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 941478.0
}
},
"available_image_bounds": null,
"target_url_base": "/mnt/jobs/yahoo_theDog_1132/IN/FOOTAGE/SCANS_LINEAR/Panasonic Rec 709 to ACESCG/Panasonic P2 /A001_S001_S001_T012/",
"name_prefix": "A001_S001_S001_T012.",
"name_suffix": ".exr",
"start_frame": 941478,
"frame_step": 1,
"rate": 24.0,
"frame_zero_padding": 0,
"missing_frame_policy": "error"
}
},
"active_media_reference_key": "DEFAULT_MEDIA"
}

View file

@ -0,0 +1,369 @@
{
"OTIO_SCHEMA": "Clip.2",
"metadata": {
"Resolve_OTIO": {}
},
"name": "output.[1000-1099].tif",
"source_range": {
"OTIO_SCHEMA": "TimeRange.1",
"duration": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 41.0
},
"start_time": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 20.000000000000004
}
},
"effects": [
{
"OTIO_SCHEMA": "LinearTimeWarp.1",
"metadata": {},
"name": "",
"effect_name": "",
"time_scalar": -1.0
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Transform",
"Enabled": true,
"Name": "Transform",
"Parameters": [],
"Type": 2
}
},
"name": "",
"effect_name": "Resolve Effect"
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Cropping",
"Enabled": true,
"Name": "Cropping",
"Parameters": [],
"Type": 3
}
},
"name": "",
"effect_name": "Resolve Effect"
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Dynamic Zoom",
"Enabled": false,
"Name": "Dynamic Zoom",
"Parameters": [
{
"Default Parameter Value": [
0.0,
0.0
],
"Key Frames": {
"-39": {
"Value": [
0.0,
0.0
],
"Variant Type": "POINTF"
},
"961": {
"Value": [
0.0,
0.0
],
"Variant Type": "POINTF"
}
},
"Parameter ID": "dynamicZoomCenter",
"Parameter Value": [
0.0,
0.0
],
"Variant Type": "POINTF"
},
{
"Default Parameter Value": 1.0,
"Key Frames": {
"-39": {
"Value": 0.8,
"Variant Type": "Double"
},
"961": {
"Value": 1.0,
"Variant Type": "Double"
}
},
"Parameter ID": "dynamicZoomScale",
"Parameter Value": 1.0,
"Variant Type": "Double",
"maxValue": 100.0,
"minValue": 0.01
}
],
"Type": 59
}
},
"name": "",
"effect_name": "Resolve Effect"
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Composite",
"Enabled": true,
"Name": "Composite",
"Parameters": [],
"Type": 1
}
},
"name": "",
"effect_name": "Resolve Effect"
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Lens Correction",
"Enabled": true,
"Name": "Lens Correction",
"Parameters": [],
"Type": 43
}
},
"name": "",
"effect_name": "Resolve Effect"
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Retime and Scaling",
"Enabled": true,
"Name": "Retime and Scaling",
"Parameters": [],
"Type": 22
}
},
"name": "",
"effect_name": "Resolve Effect"
},
{
"OTIO_SCHEMA": "Effect.1",
"metadata": {
"Resolve_OTIO": {
"Effect Name": "Video Faders",
"Enabled": true,
"Name": "Video Faders",
"Parameters": [],
"Type": 36
}
},
"name": "",
"effect_name": "Resolve Effect"
}
],
"markers": [
{
"OTIO_SCHEMA": "Marker.2",
"metadata": {
"Resolve_OTIO": {
"Keywords": [],
"Note": "{\"resolve_sub_products\": {\"io.ayon.creators.resolve.shot\": {\"id\": \"pyblish.avalon.instance\", \"productType\": \"shot\", \"productName\": \"shotMain\", \"active\": true, \"creator_identifier\": \"io.ayon.creators.resolve.shot\", \"variant\": \"Main\", \"folderPath\": \"/shots/reverse_speed/sh010\", \"task\": null, \"clip_variant\": \"<track_name>\", \"clip_index\": \"2cb93726-2f27-41b0-b7f7-f48998327ce8\", \"clip_source_resolution\": {\"width\": \"1920\", \"height\": \"1080\", \"pixelAspect\": 1.0}, \"folder\": \"/shots/reverse_speed/sh010\", \"episode\": \"ep01\", \"sequence\": \"reverse_speed\", \"track\": \"{_track_}\", \"shot\": \"sh###\", \"hierarchy\": \"shots/reverse_speed\", \"sourceResolution\": false, \"workfileFrameStart\": 1001, \"handleStart\": 10, \"handleEnd\": 10, \"parents\": [{\"folder_type\": \"folder\", \"entity_name\": \"shots\"}, {\"folder_type\": \"sequence\", \"entity_name\": \"reverse_speed\"}], \"hierarchyData\": {\"folder\": \"shots\", \"episode\": \"ep01\", \"sequence\": \"reverse_speed\", \"track\": \"Video_1\", \"shot\": \"sh010\"}, \"heroTrack\": true, \"uuid\": \"d08c8422-29a9-46e9-9d6d-37e2dd9f9f8b\", \"reviewTrack\": null, \"label\": \"/shots/reverse_speed/sh010 shot\", \"has_promised_context\": true, \"newHierarchyIntegration\": true, \"newAssetPublishing\": true, \"instance_id\": \"087e8c66-3ce7-41bf-a27e-3e5f7abc12fb\", \"creator_attributes\": {\"workfileFrameStart\": 1001, \"handleStart\": 10, \"handleEnd\": 10, \"frameStart\": 1001, \"frameEnd\": 1042, \"clipIn\": 86400, \"clipOut\": 86441, \"clipDuration\": 41, \"sourceIn\": 39, \"sourceOut\": 80, \"fps\": \"from_selection\"}, \"publish_attributes\": {\"CollectSlackFamilies\": {\"additional_message\": \"\"}}}, \"io.ayon.creators.resolve.plate\": {\"id\": \"pyblish.avalon.instance\", \"productType\": \"plate\", \"productName\": \"plateVideo_1\", \"active\": true, \"creator_identifier\": \"io.ayon.creators.resolve.plate\", \"variant\": \"Video_1\", \"folderPath\": \"/shots/reverse_speed/sh010\", \"task\": null, \"clip_variant\": \"<track_name>\", \"clip_index\": \"2cb93726-2f27-41b0-b7f7-f48998327ce8\", \"clip_source_resolution\": {\"width\": \"1920\", \"height\": \"1080\", \"pixelAspect\": 1.0}, \"folder\": \"/shots/reverse_speed/sh010\", \"episode\": \"ep01\", \"sequence\": \"reverse_speed\", \"track\": \"{_track_}\", \"shot\": \"sh###\", \"hierarchy\": \"shots/reverse_speed\", \"sourceResolution\": false, \"workfileFrameStart\": 1001, \"handleStart\": 10, \"handleEnd\": 10, \"parents\": [{\"folder_type\": \"folder\", \"entity_name\": \"shots\"}, {\"folder_type\": \"sequence\", \"entity_name\": \"reverse_speed\"}], \"hierarchyData\": {\"folder\": \"shots\", \"episode\": \"ep01\", \"sequence\": \"reverse_speed\", \"track\": \"Video_1\", \"shot\": \"sh010\"}, \"heroTrack\": true, \"uuid\": \"d08c8422-29a9-46e9-9d6d-37e2dd9f9f8b\", \"reviewTrack\": null, \"parent_instance_id\": \"087e8c66-3ce7-41bf-a27e-3e5f7abc12fb\", \"label\": \"/shots/reverse_speed/sh010 plate\", \"has_promised_context\": true, \"newHierarchyIntegration\": true, \"newAssetPublishing\": true, \"instance_id\": \"63b97e7f-834f-490d-bba5-ae0e584f4a17\", \"creator_attributes\": {\"parentInstance\": \"/shots/reverse_speed/sh010 shot\", \"vSyncOn\": false, \"vSyncTrack\": \"Video 1\"}, \"publish_attributes\": {\"CollectSlackFamilies\": {\"additional_message\": \"\"}}}}, \"clip_index\": \"2cb93726-2f27-41b0-b7f7-f48998327ce8\", \"publish\": true}"
},
"clip_index": "2cb93726-2f27-41b0-b7f7-f48998327ce8",
"publish": true,
"resolve_sub_products": {
"io.ayon.creators.resolve.plate": {
"active": true,
"clip_index": "2cb93726-2f27-41b0-b7f7-f48998327ce8",
"clip_source_resolution": {
"height": "1080",
"pixelAspect": 1.0,
"width": "1920"
},
"clip_variant": "<track_name>",
"creator_attributes": {
"parentInstance": "/shots/reverse_speed/sh010 shot",
"vSyncOn": false,
"vSyncTrack": "Video 1"
},
"creator_identifier": "io.ayon.creators.resolve.plate",
"episode": "ep01",
"folder": "/shots/reverse_speed/sh010",
"folderPath": "/shots/reverse_speed/sh010",
"handleEnd": 10,
"handleStart": 10,
"has_promised_context": true,
"heroTrack": true,
"hierarchy": "shots/reverse_speed",
"hierarchyData": {
"episode": "ep01",
"folder": "shots",
"sequence": "reverse_speed",
"shot": "sh010",
"track": "Video_1"
},
"id": "pyblish.avalon.instance",
"instance_id": "63b97e7f-834f-490d-bba5-ae0e584f4a17",
"label": "/shots/reverse_speed/sh010 plate",
"newAssetPublishing": true,
"newHierarchyIntegration": true,
"parent_instance_id": "087e8c66-3ce7-41bf-a27e-3e5f7abc12fb",
"parents": [
{
"entity_name": "shots",
"folder_type": "folder"
},
{
"entity_name": "reverse_speed",
"folder_type": "sequence"
}
],
"productName": "plateVideo_1",
"productType": "plate",
"publish_attributes": {
"CollectSlackFamilies": {
"additional_message": ""
}
},
"reviewTrack": null,
"sequence": "reverse_speed",
"shot": "sh###",
"sourceResolution": false,
"task": null,
"track": "{_track_}",
"uuid": "d08c8422-29a9-46e9-9d6d-37e2dd9f9f8b",
"variant": "Video_1",
"workfileFrameStart": 1001
},
"io.ayon.creators.resolve.shot": {
"active": true,
"clip_index": "2cb93726-2f27-41b0-b7f7-f48998327ce8",
"clip_source_resolution": {
"height": "1080",
"pixelAspect": 1.0,
"width": "1920"
},
"clip_variant": "<track_name>",
"creator_attributes": {
"clipDuration": 41,
"clipIn": 86400,
"clipOut": 86441,
"fps": "from_selection",
"frameEnd": 1042,
"frameStart": 1001,
"handleEnd": 10,
"handleStart": 10,
"sourceIn": 39,
"sourceOut": 80,
"workfileFrameStart": 1001
},
"creator_identifier": "io.ayon.creators.resolve.shot",
"episode": "ep01",
"folder": "/shots/reverse_speed/sh010",
"folderPath": "/shots/reverse_speed/sh010",
"handleEnd": 10,
"handleStart": 10,
"has_promised_context": true,
"heroTrack": true,
"hierarchy": "shots/reverse_speed",
"hierarchyData": {
"episode": "ep01",
"folder": "shots",
"sequence": "reverse_speed",
"shot": "sh010",
"track": "Video_1"
},
"id": "pyblish.avalon.instance",
"instance_id": "087e8c66-3ce7-41bf-a27e-3e5f7abc12fb",
"label": "/shots/reverse_speed/sh010 shot",
"newAssetPublishing": true,
"newHierarchyIntegration": true,
"parents": [
{
"entity_name": "shots",
"folder_type": "folder"
},
{
"entity_name": "reverse_speed",
"folder_type": "sequence"
}
],
"productName": "shotMain",
"productType": "shot",
"publish_attributes": {
"CollectSlackFamilies": {
"additional_message": ""
}
},
"reviewTrack": null,
"sequence": "reverse_speed",
"shot": "sh###",
"sourceResolution": false,
"task": null,
"track": "{_track_}",
"uuid": "d08c8422-29a9-46e9-9d6d-37e2dd9f9f8b",
"variant": "Main",
"workfileFrameStart": 1001
}
}
},
"name": "AYONData",
"color": "GREEN",
"marked_range": {
"OTIO_SCHEMA": "TimeRange.1",
"duration": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 1.0
},
"start_time": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 59.0
}
},
"comment": ""
}
],
"enabled": true,
"media_references": {
"DEFAULT_MEDIA": {
"OTIO_SCHEMA": "ImageSequenceReference.1",
"metadata": {},
"name": "output.[1000-1099].tif",
"available_range": {
"OTIO_SCHEMA": "TimeRange.1",
"duration": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 100.0
},
"start_time": {
"OTIO_SCHEMA": "RationalTime.1",
"rate": 24.0,
"value": 0.0
}
},
"available_image_bounds": null,
"target_url_base": "C:\\Users\\robin\\OneDrive\\Bureau\\dev_ayon\\data\\img_sequence\\tif",
"name_prefix": "output.",
"name_suffix": ".tif",
"start_frame": 1000,
"frame_step": 1,
"rate": 24.0,
"frame_zero_padding": 4,
"missing_frame_policy": "error"
}
},
"active_media_reference_key": "DEFAULT_MEDIA"
}

View file

@ -235,3 +235,59 @@ def test_img_sequence_conform_from_24_to_23_976fps():
handle_end=0,
)
def test_img_sequence_reverse_speed_no_tc():
"""
Img sequence clip
available files = 0-100 24fps
source_range = 20-41 24fps
"""
expected_data = {
'mediaIn': 1020,
'mediaOut': 1060,
'handleStart': 0,
'handleEnd': 0,
'speed': -1.0,
'versionData': {
'retime': True,
'speed': -1.0,
'timewarps': [],
'handleStart': 0,
'handleEnd': 0
}
}
_check_expected_retimed_values(
"img_seq_reverse_speed_no_tc.json",
expected_data,
handle_start=0,
handle_end=0,
)
def test_img_sequence_reverse_speed_from_24_to_23_976fps():
"""
Img sequence clip
available files = 941478-949084 24fps
source_range = 947726-947757 23.976fps
"""
expected_data = {
'mediaIn': 948674,
'mediaOut': 948705,
'handleStart': 10,
'handleEnd': 10,
'speed': -1.0,
'versionData': {
'retime': True,
'speed': -1.0,
'timewarps': [],
'handleStart': 10,
'handleEnd': 10
}
}
_check_expected_retimed_values(
"img_seq_reverse_speed_24_to_23.976fps.json",
expected_data,
handle_start=10,
handle_end=10,
)