Skip to content

Commit edaf1f1

Browse files
authored
Keep command order (#62)
* Minor fixing for DNX HD. * Expose the actual command that was run to the templates, I was relying on the encode_arguments dictionary, but that is sadly not an ordered dict. * Making sure that the argument list goes into the yaml config in the same order as the list of args in the docs. * Template tweaks, I think I broke the paths, this hopefully fixes it once and for all. closes #40 --------- Signed-off-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org> Co-authored-by: Sam.Richards@taurich.org <Sam.Richards@taurich.org>
1 parent 7b0429a commit edaf1f1

7 files changed

Lines changed: 75 additions & 22 deletions

File tree

‎enctests/testframework/encoders/ffmpeg_encoder.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,6 +98,7 @@ def run_wedges(self) -> dict:
9898
test_meta['test_config_path'] = self.test_config.get(
9999
'test_config_path'
100100
)
101+
test_meta['command'] = cmd
101102
test_meta['encode_arguments'] = wedge
102103
test_meta['description'] = self.test_config.get('description')
103104

‎enctests/testframework/generatetests.py‎

Lines changed: 23 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import argparse
44
import yaml
55
import re
6+
import shlex
67
from pathlib import Path
78

89
try:
@@ -101,13 +102,29 @@ def main():
101102
wedge = {}
102103

103104
# Main args.
104-
for arg in ["-qp", "-x264-params", "-qscale:v", "-vf", '-color_range', '-colorspace', '-color_primaries', '-profile:v', '-compression_level', '-pred', '-color_trc', '-pix_fmt', '-preset', '-c:v', '-sws_flags']:
105-
match = re.search("\s%s\s(\S+)\s" % arg, template)
106-
if match:
107-
wedge[arg] = match.group(1)
108-
template = template.replace(match.group(0), ' ')
105+
templateargs = shlex.split(template)
106+
newtemplate = ""
107+
while templateargs:
108+
arg = templateargs.pop(0) # Grab first
109+
if arg in ["-y"]:
110+
newtemplate = newtemplate + arg + " "
111+
continue
112+
if arg in ["-i", "-vframes"]:
113+
# Assume its an argument followed by something.
114+
nextarg = templateargs.pop(0)
115+
newtemplate = f"{newtemplate}{arg} {nextarg} "
116+
continue
117+
if arg[0] == "-":
118+
# Assume its an argument followed by something.
119+
nextarg = templateargs.pop(0)
120+
if " " in nextarg:
121+
nextarg = f'"{nextarg}"' # Wrap quotes around it.
122+
wedge[arg] = nextarg
123+
else:
124+
newtemplate = newtemplate + arg + " "
109125

110126
#print("Wedge:", wedge)
127+
template = newtemplate
111128

112129

113130
print("Name:", testname)
@@ -137,7 +154,7 @@ def main():
137154
tests.append(reports)
138155

139156
with open(args.output_config_file, "w") as f:
140-
yaml.dump_all(tests, f)
157+
yaml.dump_all(tests, f, sort_keys=False)
141158

142159

143160
if __name__== '__main__':

‎enctests/testframework/templates/basic.html.jinja‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -48,8 +48,8 @@
4848
</TR>
4949
{% for enc_info in test.results %}
5050
<TR>
51-
<TH><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</a></TH>
52-
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}_tests.log">Test {{ enc_info.testresult}}</A> </TD>
51+
<TH><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</a></TH>
52+
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}_tests.log">Test {{ enc_info.testresult}}</A> </TD>
5353
<td align=right>{{ enc_info.encode_time}} </TD>
5454
<td align=right>{{ enc_info.filesize}} </TD>
5555
<TD align=right>{{enc_info.vmaf_harmonic_mean |e }}</TD>

‎enctests/testframework/templates/basicmovie.html.jinja‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -50,8 +50,8 @@
5050
</TR>
5151
{% for enc_info in test.results %}
5252
<TR>
53-
<TH><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</a></TH>
54-
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}_tests.log">Result - {{ enc_info.testresult }}</A> </TD>
53+
<TH><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</a></TH>
54+
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}_tests.log">Result - {{ enc_info.testresult }}</A> </TD>
5555
<td align=right>{{ enc_info.encode_time}} </TD>
5656
<td align=right>{{ enc_info.filesize}} </TD>
5757
<TD align=right>{{enc_info.vmaf_harmonic_mean |e }}</TD>

‎enctests/testframework/templates/colorweb.html.jinja‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,8 +47,8 @@
4747
</TR>
4848
{% for enc_info in test.results %}
4949
<TR>
50-
<TH><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</A></TH>
51-
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}_tests.log">{{ enc_info.testresult }}</A> </TD>
50+
<TH><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</A></TH>
51+
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}_tests.log">{{ enc_info.testresult }}</A> </TD>
5252
<td align=right>{{ enc_info.mean_error}} </TD>
5353
<td align=right>{{ enc_info.max_error}} </TD>
5454
<td align=right>{{ enc_info.encode_time}} </TD>

‎enctests/testframework/templates/doctests.html.jinja‎

Lines changed: 44 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -38,28 +38,62 @@
3838
<TH>Max Error</TH>
3939
<TH>Encode Duration</TH>
4040
<TH>File Size</TH>
41-
<TH>PSNR-Y</TH>
42-
<TH>PSNR-CR</TH>
43-
<TH>PSNR-CB</TH>
4441
<TH>Encode Arguments</TH>
4542
<TH>Test Description</TH>
4643
</TR>
4744
{% for enc_info in test.results %}
4845
<TR>
49-
<TH><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</A></TH>
50-
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}_tests.log">{{ enc_info.testresult}}</A> </TD>
46+
<TH><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</A></TH>
47+
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}_tests.log">{{ enc_info.testresult}}</A> </TD>
5148
<td align=right>{{ enc_info.mean_error}} </TD>
52-
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}.-{{ enc_info.name|e }}-x20diff.png">{{ enc_info.max_error}} </A></TD>
49+
<td align=right><A target="_blank" HREF="{{ test.default_media.basename }}-{{ enc_info.name|e }}-x20diff.png">{{ enc_info.max_error}} </A></TD>
5350
<td align=right>{{ enc_info.encode_time}} </TD>
5451
<td align=right>{{ enc_info.filesize}} </TD>
55-
<TD align=right>{{enc_info.psnr_y.harmonic_mean |e }}</TD>
56-
<TD align=right>{{enc_info.psnr_cr.harmonic_mean |e }}</TD>
57-
<TD align=right>{{enc_info.psnr_cb.harmonic_mean |e }}</TD>
58-
<TD>{{enc_info.encode_arguments | e}}</TD>
52+
<TD>{{enc_info.command | e}}</TD>
5953
<TD>{{enc_info.test_description | e}}</TD>
6054
</TR>
6155
{% endfor %}
6256
</TABLE>
6357
{% endfor %}
58+
59+
<H2> Pictures </H2>
60+
{% for media_name, test in tests.items() %}
61+
<h1>{{ media_name }} Results</h1>
62+
<table>
63+
<TR>
64+
<TD ALIGN=RIGHT>File Path</TD><TD>{{test.source_info.path}}</TD>
65+
</TR>
66+
<TR>
67+
<TD ALIGN=RIGHT>Resolution</TD><TD>{{test.source_info.width}} x {{test.source_info.height}}</TD>
68+
</TR>
69+
<TR>
70+
<TD ALIGN=RIGHT>Source Frame Rate</TD><TD>{{test.source_info.rate}}</TD>
71+
</TR>
72+
<TR>
73+
<TD ALIGN=RIGHT>Frame Range</TD><TD>{{test.source_info.in}} - {{test.source_info.in + test.source_info.duration}}</TD>
74+
</TR>
75+
</table>
76+
<table border=1>
77+
<TR>
78+
<TH>Test Name</TH>
79+
<TH>Test Results</TH>
80+
<TH>PNG</TH>
81+
<TH>movie</TH>
82+
<TH>Diff</TH>
83+
<TH>Encode Arguments</TH>
84+
</TR>
85+
{% for enc_info in test.results %}
86+
<TR>
87+
<TH><A target="_blank" HREF="{{ test.default_media.name.split(".") | first }}-{{ enc_info.name|e }}.log">{{ enc_info.name|e }}</A></TH>
88+
<td align=right><A target="_blank" HREF="{{ test.default_media.name.split(".") | first }}-{{ enc_info.name|e }}_tests.log">{{ enc_info.testresult}}</A> </TD>
89+
<td align=right><A target="_blank" HREF="{{ test.default_media.name.split(".") | first }}-{{ enc_info.name|e }}.png"><img max-width="400px" width="400px" src="{{ test.default_media.name.split(".") | first }}-{{ enc_info.name|e }}.png"/></A></TD>
90+
<td align=right><video width="400px" controls <source type='video/mp4' src="{{ enc_info.output_media | e }}"/> </video></TD>
91+
<td align=right><a target="_blank" HREF="{{ test.default_media.name.split(".") | first }}-{{ enc_info.name|e }}-x20diff.png"><img max-width="400px" width="400px" src="{{ test.default_media.name.split(".") | first }}-{{ enc_info.name|e }}-x20diff.png"/></A></TD>
92+
<TD>{{enc_info.command | e}}</TD>
93+
</TR>
94+
{% endfor %}
95+
</TABLE>
96+
{% endfor %}
97+
6498
</body>
6599
</html>

‎enctests/testframework/utils/outputTemplate.py‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,7 @@ def processTemplate(test_configs, otio_info):
101101
args.extend([k,str(v)])
102102
merge_test_info[k] = v
103103
merge_test_info['encode_arguments'] = " ".join(args)
104+
merge_test_info["command"] = test_info.metadata['aswf_enctests']['command']
104105
alltests.append(merge_test_info)
105106
if track.name in tests:
106107
tests[track.name]['results'].extend(results)

0 commit comments

Comments
 (0)