[autotest] add autorepeats

:Release Notes:
-

:Detailed Notes:
-

:Testing Performed:
-

:QA Notes:
-

:Issues Addressed:
-
This commit is contained in:
Artur Mukhamadiev 2025-10-11 18:13:37 +03:00
parent b799d39427
commit dd6da41b0d

View File

@ -52,6 +52,8 @@ psnr_check = {
with_docker = [ "nvv4l2h264enc" ] with_docker = [ "nvv4l2h264enc" ]
repeats = 3
formats = { formats = {
"x264enc": "I420", "x264enc": "I420",
"nvh264enc": "NV12", "nvh264enc": "NV12",
@ -239,43 +241,44 @@ def run_autotest():
for params in combinations: for params in combinations:
for profile in profiles: for profile in profiles:
for videoName, videoPath in videos.items(): for videoName, videoPath in videos.items():
filename = "autotest-" + encoder + "-" + profile + "-test-" + videoName + ".mp4" for _ in range(repeats):
pipeline = Pipeline() filename = "autotest-" + encoder + "-" + profile + "-test-" + videoName + ".mp4"
pipeline = ( pipeline = Pipeline()
pipeline.add_tracing() pipeline = (
.add_source(makeVideoSrc(videoName)) pipeline.add_tracing()
.add_encoder(encoder, params.split(" ")) .add_source(makeVideoSrc(videoName))
.add_profile(profile) .add_encoder(encoder, params.split(" "))
.to_file(filename) .add_profile(profile)
) .to_file(filename)
print(pipeline.pipeline) )
try: print(pipeline.pipeline)
run_pipeline(pipeline.pipeline) try:
except Exception as e: run_pipeline(pipeline.pipeline)
print(f"Error occurred: {e}") except Exception as e:
continue print(f"Error occurred: {e}")
psnr_metrics, ssim_metrics = qa.run_quality_check( continue
videoPath, psnr_metrics, ssim_metrics = qa.run_quality_check(
filename, videoPath,
video_info[videoName] + " " + psnr_check[encoder] filename,
) video_info[videoName] + " " + psnr_check[encoder]
dfPsnr = qa.parse_quality_report(psnr_metrics, ssim_metrics) )
print("-----") dfPsnr = qa.parse_quality_report(psnr_metrics, ssim_metrics)
dfLatency = getLatencyTable(latency_filename) print("-----")
columnsQ = pd.MultiIndex.from_tuples( dfLatency = getLatencyTable(latency_filename)
[(encoder, profile, videoName, params, col) for col in dfPsnr.columns] columnsQ = pd.MultiIndex.from_tuples(
) [(encoder, profile, videoName, params, col) for col in dfPsnr.columns]
columnsLatency = pd.MultiIndex.from_tuples( )
[(encoder, profile, videoName, params, col) for col in dfLatency.columns] columnsLatency = pd.MultiIndex.from_tuples(
) [(encoder, profile, videoName, params, col) for col in dfLatency.columns]
dfPsnr.columns = columnsQ )
dfLatency.columns = columnsLatency dfPsnr.columns = columnsQ
qualityDataframe = pd.concat([qualityDataframe, dfPsnr], axis=1) dfLatency.columns = columnsLatency
latencyDataframe = pd.concat([latencyDataframe, dfLatency], axis=1) qualityDataframe = pd.concat([qualityDataframe, dfPsnr], axis=1)
print("=====") latencyDataframe = pd.concat([latencyDataframe, dfLatency], axis=1)
print("Current results:") print("=====")
print(dfPsnr) print("Current results:")
print(dfLatency) print(dfPsnr)
print(dfLatency)
qualityDataframe.to_csv(f"qualityResults{encoder}.csv") qualityDataframe.to_csv(f"qualityResults{encoder}.csv")
latencyDataframe.to_csv(f"latencyDataframe{encoder}.csv") latencyDataframe.to_csv(f"latencyDataframe{encoder}.csv")