Ticket #543: Updated PESQ test, sound device used only by one side to avoid contention
git-svn-id: https://svn.pjsip.org/repos/pjproject/trunk@2057 74dad513-b988-da41-8d7b-12977e46ad98
This commit is contained in:
parent
fd072893fe
commit
6ee166d43f
|
@ -67,6 +67,8 @@ class TestParam:
|
|||
title = ""
|
||||
# params is list containing InstanceParams objects
|
||||
inst_params = []
|
||||
# flag if this tes should be skipped
|
||||
skip = None
|
||||
# list of Expect instances, to be filled at run-time by
|
||||
# the test program
|
||||
process = []
|
||||
|
@ -77,11 +79,13 @@ class TestParam:
|
|||
def __init__( self,
|
||||
title, # Test title
|
||||
inst_params, # InstanceParam's as list
|
||||
skip=False,
|
||||
func=None,
|
||||
post_func=None,
|
||||
user_data=None):
|
||||
self.title = title
|
||||
self.inst_params = inst_params
|
||||
self.skip = skip
|
||||
self.test_func = func
|
||||
self.post_func = post_func
|
||||
self.user_data = user_data
|
||||
|
|
|
@ -25,7 +25,7 @@ cfg_file = imp.load_source("cfg_file", sys.argv[2])
|
|||
# PESQ configs
|
||||
# PESQ_THRESHOLD specifies the minimum acceptable PESQ MOS value, so test can be declared successful
|
||||
PESQ = "tools/pesq.exe"
|
||||
PESQ_THRESHOLD = 1.0
|
||||
PESQ_THRESHOLD = 3.0
|
||||
|
||||
# UserData
|
||||
class mod_pesq_user_data:
|
||||
|
@ -38,6 +38,10 @@ class mod_pesq_user_data:
|
|||
|
||||
# Test body function
|
||||
def test_func(t, user_data):
|
||||
|
||||
if len(t.process) == 0:
|
||||
return
|
||||
|
||||
ua1 = t.process[0]
|
||||
ua2 = t.process[1]
|
||||
|
||||
|
@ -93,16 +97,16 @@ def post_func(t, user_data):
|
|||
pesq_out = pesq_proc.communicate()
|
||||
|
||||
# Parse ouput
|
||||
mo_pesq_out = re.compile("Prediction\s+:\s+PESQ_MOS\s+=\s+(.+)\s*").search(pesq_out[0])
|
||||
mo_pesq_out = re.compile("Prediction[^=]+=\s+([\d\.]+)\s*").search(pesq_out[0])
|
||||
if (mo_pesq_out == None):
|
||||
raise TestError("Failed to fetch PESQ result")
|
||||
|
||||
# Evaluate the similarity value
|
||||
pesq_res = mo_pesq_out.group(1)
|
||||
if (float(pesq_res) >= PESQ_THRESHOLD):
|
||||
endpt.trace("Success, PESQ result=" + pesq_res)
|
||||
endpt.trace("Success, PESQ result = " + pesq_res)
|
||||
else:
|
||||
endpt.trace("Failed, PESQ result=" + pesq_res)
|
||||
endpt.trace("Failed, PESQ result = " + pesq_res)
|
||||
raise TestError("WAV seems to be degraded badly")
|
||||
|
||||
|
||||
|
|
|
@ -143,6 +143,10 @@ if script.test == None:
|
|||
print "Error: no test defined"
|
||||
sys.exit(1)
|
||||
|
||||
if script.test.skip:
|
||||
print "Test " + script.test.title + " is skipped"
|
||||
sys.exit(0)
|
||||
|
||||
if len(script.test.inst_params) == 0:
|
||||
print "Error: test doesn't contain pjsua run descriptions"
|
||||
sys.exit(1)
|
||||
|
|
|
@ -12,6 +12,6 @@ test_param = TestParam(
|
|||
"PESQ defaults pjsua settings",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --play-file wavs/input.16.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-audio --max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -0,0 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with default pjsua settings
|
||||
test_param = TestParam(
|
||||
"PESQ defaults pjsua settings (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --play-file wavs/input.16.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --rec-file wavs/tmp.16.wav --clock-rate 16000 --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
||||
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with PCMA codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec PCMA",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-audio --max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with PCMU codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec PCMU",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec pcmu --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with G722 codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec G722",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec g722 --clock-rate 16000 --play-file wavs/input.16.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with GSM codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec GSM",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec gsm --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with iLBC codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec iLBC",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec ilbc --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with Speex/16000 codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec Speex WB",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --play-file wavs/input.16.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-sound --max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -1,18 +1,17 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
from config_site import *
|
||||
|
||||
ADD_PARAM = ""
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
ADD_PARAM += "--null-audio"
|
||||
|
||||
# Simple call
|
||||
# Call with Speex/8000 codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec Speex NB",
|
||||
[
|
||||
InstanceParam("UA1", ADD_PARAM + " --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup"),
|
||||
InstanceParam("UA2", ADD_PARAM + " --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
InstanceParam("UA2", "--null-sound --max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with PCMA codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec PCMA (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --add-codec pcma --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --add-codec pcma --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with PCMU codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec PCMU (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --add-codec pcmu --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --add-codec pcmu --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with G722 codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec G722 (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --add-codec g722 --clock-rate 16000 --play-file wavs/input.16.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --add-codec g722 --clock-rate 16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with GSM codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec GSM (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --add-codec gsm --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --add-codec gsm --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with iLBC codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec iLBC (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --add-codec ilbc --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --add-codec ilbc --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with Speex/16000 codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec Speex WB (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --clock-rate 16000 --add-codec speex/16000 --play-file wavs/input.16.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --clock-rate 16000 --add-codec speex/16000 --rec-file wavs/tmp.16.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
|
@ -0,0 +1,15 @@
|
|||
# $Id$
|
||||
#
|
||||
from inc_cfg import *
|
||||
|
||||
# Call with Speex/8000 codec
|
||||
test_param = TestParam(
|
||||
"PESQ codec Speex NB (RX side uses snd dev)",
|
||||
[
|
||||
InstanceParam("UA1", "--max-calls=1 --add-codec speex/8000 --clock-rate 8000 --play-file wavs/input.8.wav --auto-play-hangup --null-audio"),
|
||||
InstanceParam("UA2", "--max-calls=1 --add-codec speex/8000 --clock-rate 8000 --rec-file wavs/tmp.8.wav --auto-answer 200 --auto-rec")
|
||||
]
|
||||
)
|
||||
|
||||
if (HAS_SND_DEV == 0):
|
||||
test_param.skip = True
|
Loading…
Reference in New Issue