mirror of
https://gitlab.freedesktop.org/gstreamer/gstreamer.git
synced 2024-11-22 09:41:07 +00:00
812 lines
29 KiB
Python
812 lines
29 KiB
Python
# -*- Mode: Python -*- vi:si:et:sw=4:sts=4:ts=4:syntax=python
|
|
#
|
|
# Copyright (c) 2015,Thibault Saunier <thibault.saunier@collabora.com>
|
|
# 2015,Vineeth T M <vineeth.tm@samsung.com>
|
|
#
|
|
# This program is free software; you can redistribute it and/or
|
|
# modify it under the terms of the GNU Lesser General Public
|
|
# License as published by the Free Software Foundation; either
|
|
# version 2.1 of the License, or (at your option) any later version.
|
|
#
|
|
# This program is distributed in the hope that it will be useful,
|
|
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
# Lesser General Public License for more details.
|
|
#
|
|
# You should have received a copy of the GNU Lesser General Public
|
|
# License along with this program; if not, write to the
|
|
# Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
|
|
# Boston, MA 02110-1301, USA.
|
|
|
|
"""
|
|
The GstValidate default testsuite
|
|
"""
|
|
|
|
import gi
|
|
|
|
gi.require_version("Gst", "1.0")
|
|
|
|
from gi.repository import Gst # noqa
|
|
from gi.repository import GObject # noqa
|
|
|
|
TEST_MANAGER = "validate"
|
|
|
|
KNOWN_ISSUES = {
|
|
"validateelements.launch_pipeline.videocropbottom=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.videocropbottom=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0",
|
|
"sometimes": False,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.videocropleft=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.videocropleft=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0",
|
|
"sometimes": False,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.videocropright=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.videocropright=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0",
|
|
"sometimes": False,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.videocroptop=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.videocroptop=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0",
|
|
"sometimes": False,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.avwaitrecording=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.avwaitrecording=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.avwaitrecording=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.avwaitrecording=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.avwaittarget-running-time=0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.avwaittarget-running-time=0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.avwaittarget-running-time=18446744073709551615.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.avwaittarget-running-time=18446744073709551615.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.cvsmoothkernel-height=2147483647.play_15s issues": {
|
|
"tests": ["validateelements.launch_pipeline.cvsmoothkernel-height=2147483647.play_15s issues"],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.cvsmoothkernel-width=2147483647.play_15s issues": {
|
|
"tests": ["validateelements.launch_pipeline.cvsmoothkernel-width=2147483647.play_15s issues"],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.rawaudioparsenum-channels=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.rawaudioparsenum-channels=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "g-log::critical",
|
|
"summary": "We got a g_log critical issue",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
},
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.rawvideoparseframe-size=4294967295.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.rawvideoparseframe-size=4294967295.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.rawvideoparseheight=0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.rawvideoparseheight=0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
},
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.rawvideoparseheight=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.rawvideoparseheight=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
},
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.rawvideoparsewidth=0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.rawvideoparsewidth=0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
},
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.rawvideoparsewidth=2147483647.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.rawvideoparsewidth=2147483647.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::not-negotiated",
|
|
"summary": "a NOT NEGOTIATED message has been posted on the bus.",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
},
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.shapewipeborder=0.0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.shapewipeborder=0.0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.shapewipeborder=1.0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.shapewipeborder=1.0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.shapewipeposition=0.0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.shapewipeposition=0.0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.shapewipeposition=1.0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.shapewipeposition=1.0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.videoraterate=0.0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.videoraterate=0.0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"timeout": True,
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspcompression-gain-db=0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspcompression-gain-db=0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspcompression-gain-db=9.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspcompression-gain-db=9.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspcompression-gain-db=90.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspcompression-gain-db=90.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspdelay-agnostic=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspdelay-agnostic=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspdelay-agnostic=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspdelay-agnostic=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspecho-cancel=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspecho-cancel=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspexperimental-agc=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspexperimental-agc=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspexperimental-agc=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspexperimental-agc=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspextended-filter=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspextended-filter=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspextended-filter=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspextended-filter=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspgain-control=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspgain-control=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspgain-control=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspgain-control=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsphigh-pass-filter=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsphigh-pass-filter=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsphigh-pass-filter=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsphigh-pass-filter=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsplimiter=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsplimiter=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsplimiter=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsplimiter=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspnoise-suppression=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspnoise-suppression=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspnoise-suppression=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspnoise-suppression=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspstartup-min-volume=12.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspstartup-min-volume=12.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspstartup-min-volume=255.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspstartup-min-volume=255.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsptarget-level-dbfs=0.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsptarget-level-dbfs=0.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsptarget-level-dbfs=3.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsptarget-level-dbfs=3.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdsptarget-level-dbfs=31.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdsptarget-level-dbfs=31.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection-frame-size-ms=10.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection-frame-size-ms=10.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection-frame-size-ms=30.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection-frame-size-ms=30.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection=False.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection=False.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection=True.play_15s issues": {
|
|
"tests": [
|
|
"validateelements.launch_pipeline.webrtcdspvoice-detection=True.play_15s"
|
|
],
|
|
"issues": [
|
|
{
|
|
"issue-id": "runtime::error-on-bus",
|
|
"summary": "We got an ERROR message on the bus",
|
|
"level": "critical",
|
|
"detected-on": "pipeline0"
|
|
}
|
|
]
|
|
},
|
|
"validateelements.launch_pipeline.cameracalibratedelay=2147483647.play_15s issues": {
|
|
"tests": ["validateelements.launch_pipeline.cameracalibratedelay=2147483647.play_15s issues"],
|
|
"issues": [
|
|
{
|
|
"signame": "SIGIOT",
|
|
"sometimes": True,
|
|
}
|
|
]
|
|
}
|
|
}
|
|
|
|
|
|
def pspec_is_numeric(prop):
|
|
return prop.value_type in [GObject.TYPE_INT, GObject.TYPE_INT64,
|
|
GObject.TYPE_UINT, GObject.TYPE_UINT64,
|
|
GObject.TYPE_LONG, GObject.TYPE_ULONG,
|
|
GObject.TYPE_DOUBLE,
|
|
GObject.TYPE_FLOAT]
|
|
|
|
|
|
def get_pipe_and_populate(test_manager, klass, fname, prop, loop):
|
|
prop_value = Gst.ElementFactory.make(fname, None).get_property(prop.name)
|
|
|
|
if prop.value_type == GObject.TYPE_BOOLEAN:
|
|
if loop is 1:
|
|
bool_value = False
|
|
else:
|
|
bool_value = True
|
|
cname = fname + " %s=%s" % (prop.name, bool_value)
|
|
tname = fname + "%s=%s" % (prop.name, bool_value)
|
|
elif pspec_is_numeric(prop):
|
|
if loop is 2:
|
|
int_value = prop.default_value
|
|
elif loop is 1:
|
|
int_value = prop.minimum
|
|
else:
|
|
int_value = prop.maximum
|
|
cname = fname + " %s=%s" % (prop.name, int_value)
|
|
tname = fname + "%s=%s" % (prop.name, int_value)
|
|
else:
|
|
cname = fname + " %s=%s" % (prop.name, prop_value)
|
|
tname = fname + "%s=%s" % (prop.name, prop_value)
|
|
|
|
if "Audio" in klass:
|
|
cpipe = "audiotestsrc num-buffers=20 ! %s " % (cname)
|
|
sink = "! audioconvert ! %(audiosink)s"
|
|
elif "Video" in klass:
|
|
if "gl" in fname:
|
|
cname = "glfilterbin filter = %s" % (cname)
|
|
cpipe = "videotestsrc num-buffers=20 ! %s " % (cname)
|
|
sink = "! videoconvert ! %(videosink)s"
|
|
else:
|
|
return None
|
|
|
|
if test_manager.options.mute:
|
|
cpipe += "! fakesink"
|
|
else:
|
|
cpipe += "%s" % (sink)
|
|
|
|
return (tname, cpipe)
|
|
|
|
|
|
def setup_tests(test_manager, options):
|
|
print("Setting up tests to validate all elements")
|
|
pipelines_descriptions = []
|
|
test_manager.add_expected_issues(KNOWN_ISSUES)
|
|
test_manager.set_default_blacklist([
|
|
("validateelements.launch_pipeline.videobox*",
|
|
"Those are broken pipelines."),
|
|
("validateelements.launch_pipeline.frei0r*",
|
|
"video filter plugins"),
|
|
("validateelements.launch_pipeline.smpte*",
|
|
"smpte cannot be tested with simple pipeline. Hence excluding"),
|
|
("validateelements.launch_pipeline.glfilterbin*",
|
|
"glfilter bin doesnt launch."),
|
|
("validateelements.launch_pipeline.audiomixmatrix*",
|
|
"Now deprecated and requires specific properties to be set."),
|
|
])
|
|
valid_scenarios = ["play_15s"]
|
|
Gst.init(None)
|
|
factories = Gst.Registry.get().get_feature_list(Gst.ElementFactory)
|
|
for element_factory in factories:
|
|
audiosrc = False
|
|
audiosink = False
|
|
videosrc = False
|
|
videosink = False
|
|
klass = element_factory.get_metadata("klass")
|
|
fname = element_factory.get_name()
|
|
|
|
if "Audio" not in klass and "Video" not in klass:
|
|
continue
|
|
|
|
padstemplates = element_factory.get_static_pad_templates()
|
|
for padtemplate in padstemplates:
|
|
if padtemplate.static_caps.string:
|
|
caps = padtemplate.get_caps()
|
|
for i in range(caps.get_size()):
|
|
structure = caps.get_structure(i)
|
|
if "audio/x-raw" in structure.get_name():
|
|
if padtemplate.direction == Gst.PadDirection.SRC:
|
|
audiosrc = True
|
|
elif padtemplate.direction == Gst.PadDirection.SINK:
|
|
audiosink = True
|
|
elif "video/x-raw" in structure.get_name():
|
|
if padtemplate.direction == Gst.PadDirection.SRC:
|
|
videosrc = True
|
|
elif padtemplate.direction == Gst.PadDirection.SINK:
|
|
videosink = True
|
|
|
|
if (audiosink is False and videosink is False) or (audiosrc is False and videosrc is False):
|
|
continue
|
|
|
|
element = Gst.ElementFactory.make(fname, None)
|
|
if element is None:
|
|
print("Could not create element: %s" % fname)
|
|
continue
|
|
|
|
props = GObject.list_properties(element)
|
|
for prop in props:
|
|
if "name" in prop.name or "parent" in prop.name or "qos" in prop.name or \
|
|
"latency" in prop.name or "message-forward" in prop.name:
|
|
continue
|
|
if (prop.flags & GObject.ParamFlags.WRITABLE) and \
|
|
(prop.flags & GObject.ParamFlags.READABLE):
|
|
if prop.value_type == GObject.TYPE_BOOLEAN:
|
|
loop = 2
|
|
elif pspec_is_numeric(prop):
|
|
loop = 3
|
|
else:
|
|
loop = 0
|
|
|
|
while loop:
|
|
loop -= 1
|
|
description = get_pipe_and_populate(test_manager, klass,
|
|
fname, prop, loop)
|
|
if None is not description:
|
|
pipelines_descriptions.append(description)
|
|
|
|
# No restriction about scenarios that are potentially used
|
|
test_manager.add_scenarios(valid_scenarios)
|
|
test_manager.add_generators(test_manager.GstValidatePipelineTestsGenerator
|
|
("validate_elements", test_manager,
|
|
pipelines_descriptions=pipelines_descriptions,
|
|
valid_scenarios=valid_scenarios))
|
|
|
|
return True
|