def run_test(self, input_source, timeout=15):
"""Start a test and give a TRUE or FALSE."""
command = [
"-frames:v",
"1",
"-frames:a",
"1",
]
# Run a short test with input
is_open = yield from self.open(
cmd=command, input_source=input_source, stderr_pipe=True,
output=None)
# error after open?
if not is_open:
return False
try:
with async_timeout.timeout(timeout, loop=self._loop):
out, error = yield from self._proc.communicate()
except (OSError, asyncio.TimeoutError, ValueError):
_LOGGER.warning("Timeout/Error reading test.")
self._proc.kill()
return False
# check error code
if self._proc.returncode == 0:
_LOGGER.debug("STD: %s / ERR: %s", out, error)
return True
# error state
_LOGGER.error("ReturnCode: %i / STD: %s / ERR: %s",
self._proc.returncode, out, error)
return False
评论列表
文章目录