mirror of
https://github.com/ynput/ayon-core.git
synced 2025-12-24 12:54:40 +01:00
Merge branch 'develop' into enhancement/1297-product-base-types-creation-and-creator-plugins
This commit is contained in:
commit
90da1c9059
102 changed files with 5432 additions and 2197 deletions
158
tests/client/ayon_core/lib/test_transcoding.py
Normal file
158
tests/client/ayon_core/lib/test_transcoding.py
Normal file
|
|
@ -0,0 +1,158 @@
|
|||
import unittest
|
||||
|
||||
from ayon_core.lib.transcoding import (
|
||||
get_review_info_by_layer_name
|
||||
)
|
||||
|
||||
|
||||
class GetReviewInfoByLayerName(unittest.TestCase):
|
||||
"""Test responses from `get_review_info_by_layer_name`"""
|
||||
def test_rgba_channels(self):
|
||||
|
||||
# RGB is supported
|
||||
info = get_review_info_by_layer_name(["R", "G", "B"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "R",
|
||||
"G": "G",
|
||||
"B": "B",
|
||||
"A": None,
|
||||
}
|
||||
}])
|
||||
|
||||
# rgb is supported
|
||||
info = get_review_info_by_layer_name(["r", "g", "b"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "r",
|
||||
"G": "g",
|
||||
"B": "b",
|
||||
"A": None,
|
||||
}
|
||||
}])
|
||||
|
||||
# diffuse.[RGB] is supported
|
||||
info = get_review_info_by_layer_name(
|
||||
["diffuse.R", "diffuse.G", "diffuse.B"]
|
||||
)
|
||||
self.assertEqual(info, [{
|
||||
"name": "diffuse",
|
||||
"review_channels": {
|
||||
"R": "diffuse.R",
|
||||
"G": "diffuse.G",
|
||||
"B": "diffuse.B",
|
||||
"A": None,
|
||||
}
|
||||
}])
|
||||
|
||||
info = get_review_info_by_layer_name(["R", "G", "B", "A"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "R",
|
||||
"G": "G",
|
||||
"B": "B",
|
||||
"A": "A",
|
||||
}
|
||||
}])
|
||||
|
||||
def test_z_channel(self):
|
||||
|
||||
info = get_review_info_by_layer_name(["Z"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "Z",
|
||||
"G": "Z",
|
||||
"B": "Z",
|
||||
"A": None,
|
||||
}
|
||||
}])
|
||||
|
||||
info = get_review_info_by_layer_name(["Z", "A"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "Z",
|
||||
"G": "Z",
|
||||
"B": "Z",
|
||||
"A": "A",
|
||||
}
|
||||
}])
|
||||
|
||||
def test_ar_ag_ab_channels(self):
|
||||
|
||||
info = get_review_info_by_layer_name(["AR", "AG", "AB"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "AR",
|
||||
"G": "AG",
|
||||
"B": "AB",
|
||||
"A": None,
|
||||
}
|
||||
}])
|
||||
|
||||
info = get_review_info_by_layer_name(["AR", "AG", "AB", "A"])
|
||||
self.assertEqual(info, [{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "AR",
|
||||
"G": "AG",
|
||||
"B": "AB",
|
||||
"A": "A",
|
||||
}
|
||||
}])
|
||||
|
||||
def test_unknown_channels(self):
|
||||
info = get_review_info_by_layer_name(["hello", "world"])
|
||||
self.assertEqual(info, [])
|
||||
|
||||
def test_rgba_priority(self):
|
||||
"""Ensure main layer, and RGB channels are prioritized
|
||||
|
||||
If both Z and RGB channels are present for a layer name, then RGB
|
||||
should be prioritized and the Z channel should be ignored.
|
||||
|
||||
Also, the alpha channel from another "layer name" is not used. Note
|
||||
how the diffuse response does not take A channel from the main layer.
|
||||
|
||||
"""
|
||||
|
||||
info = get_review_info_by_layer_name([
|
||||
"Z",
|
||||
"diffuse.R", "diffuse.G", "diffuse.B",
|
||||
"R", "G", "B", "A",
|
||||
"specular.R", "specular.G", "specular.B", "specular.A",
|
||||
])
|
||||
self.assertEqual(info, [
|
||||
{
|
||||
"name": "",
|
||||
"review_channels": {
|
||||
"R": "R",
|
||||
"G": "G",
|
||||
"B": "B",
|
||||
"A": "A",
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "diffuse",
|
||||
"review_channels": {
|
||||
"R": "diffuse.R",
|
||||
"G": "diffuse.G",
|
||||
"B": "diffuse.B",
|
||||
"A": None,
|
||||
},
|
||||
},
|
||||
{
|
||||
"name": "specular",
|
||||
"review_channels": {
|
||||
"R": "specular.R",
|
||||
"G": "specular.G",
|
||||
"B": "specular.B",
|
||||
"A": "specular.A",
|
||||
},
|
||||
},
|
||||
])
|
||||
|
|
@ -246,75 +246,75 @@ def test_multiple_review_clips_no_gap():
|
|||
expected = [
|
||||
# 10 head black frames generated from gap (991-1000)
|
||||
'/path/to/ffmpeg -t 0.4 -r 25.0 -f lavfi'
|
||||
' -i color=c=black:s=1280x720 -tune '
|
||||
' -i color=c=black:s=1920x1080 -tune '
|
||||
'stillimage -start_number 991 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
# Alternance 25fps tiff sequence and 24fps exr sequence
|
||||
# for 100 frames each
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1001 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 24.0 -i '
|
||||
f'C:\\with_tc{os.sep}output.%04d.exr '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1102 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1198 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 24.0 -i '
|
||||
f'C:\\with_tc{os.sep}output.%04d.exr '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1299 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
# Repeated 25fps tiff sequence multiple times till the end
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1395 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1496 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1597 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1698 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1799 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1900 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 2001 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 2102 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 25.0 -i '
|
||||
f'C:\\no_tc{os.sep}output.%04d.tif '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 2203 -pix_fmt rgba C:/result/output.%04d.png'
|
||||
]
|
||||
|
||||
|
|
@ -348,12 +348,12 @@ def test_multiple_review_clips_with_gap():
|
|||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 24.0 -i '
|
||||
f'C:\\with_tc{os.sep}output.%04d.exr '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1003 -pix_fmt rgba C:/result/output.%04d.png',
|
||||
|
||||
'/path/to/ffmpeg -start_number 1000 -framerate 24.0 -i '
|
||||
f'C:\\with_tc{os.sep}output.%04d.exr '
|
||||
'-vf scale=1280:720:flags=lanczos -compression_level 5 '
|
||||
'-vf scale=1920:1080:flags=lanczos -compression_level 5 '
|
||||
'-start_number 1091 -pix_fmt rgba C:/result/output.%04d.png'
|
||||
]
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue