| audiogenerationutils.cpp |
sampleIndex= |
3749 |
- |
| audiogenerationutils_p.h |
|
7235 |
- |
| capturesessionfixture.cpp |
|
3726 |
- |
| capturesessionfixture_p.h |
|
2173 |
- |
| CMakeLists.txt |
|
2584 |
- |
| formatutils.cpp |
|
2132 |
- |
| formatutils_p.h |
|
852 |
- |
| framegenerator.cpp |
|
4104 |
- |
| framegenerator_p.h |
|
2138 |
- |
| framegrabber.cpp |
|
7728 |
- |
| framegrabber_p.h |
!
The FrameGrabber stores frames that arrive from a surface capture,
and is used to inspect captured frames in the tests.
|
5233 |
- |
| mediabackendutils.cpp |
|
1191 |
- |
| mediabackendutils_p.h |
messageOpt |
5069 |
- |
| mediafileselector_p.h |
|
5962 |
- |
| mediainfo_p.h |
|
4523 |
- |
| multimedia_debug_support_p.h |
|
727 |
- |
| osdetection_p.h |
|
965 |
- |
| qcolorutil.cpp |
|
1131 |
- |
| qcolorutil_p.h |
|
694 |
- |
| qcoreaudioaggregatedevice.cpp |
|
7932 |
- |
| qcoreaudioaggregatedevice_p.h |
|
1568 |
- |
| qfakexdgportal.cpp |
|
19839 |
- |
| qfakexdgportal_p.h |
!
\internal
\b{Overview.} This fixture stands in for xdg-desktop-portal so that tests can
exercise portal-backed PipeWire code paths without a human present. The real
stack looks like:
\code
client (e.g. QPipeWireCaptureHelper)
-> D-Bus session bus
-> xdg-desktop-portal (interactive consent dialog)
-> compositor's PipeWire node
\endcode
QFakeXdgPortalFixture (qfakexdgportalfixture_p.h) replaces the middle two: it
starts a private, hardware-free \c pipewire daemon, then re-execs the test
binary itself as a helper process on a private D-Bus session bus with no
service activation, so the real xdg-desktop-portal can never be reached. That
helper process is what this namespace implements. It owns
\c org.freedesktop.portal.Desktop and answers portal calls immediately with
canned, always-successful responses (FakePortalObject and its per-interface
QDBusAbstractAdaptor subclasses in qfakexdgportal.cpp), backed by a
QSyntheticPipeWireVideoSource (qsyntheticpipewirevideosource_p.h) that publishes
a synthetic, painter-generated frame as if it came from a real screen or
camera. A private org.qtproject.qtmultimedia.FakeXdgPortal D-Bus interface lets
the fixture drive the helper from the test process (change the published
scene, force a specific response code, and so on).
|
2075 |
- |
| qfakexdgportalfixture.cpp |
Deliberately not /usr/share/pipewire/minimal.conf: that one loads
module-protocol-pulse, which binds $XDG_RUNTIME_DIR/pulse/native and aborts the
whole daemon with EADDRINUSE whenever a developer's own pipewire-pulse is
running. We only need enough modules to host one video stream and link it.
Dropping spa-node-factory, access or rt from this list makes clients hang in
"connecting", so the set is load-bearing.
|
17786 |
- |
| qfakexdgportalfixture_p.h |
!
\internal
Runs an unattended stand-in for xdg-desktop-portal, so that tests can exercise
the portal-backed PipeWire code paths end to end without a human approving a
consent dialog. Today it implements the ScreenCast interface; the intent is that
every portal interface qtmultimedia talks to is faked here.
It brings up, and tears down:
\list
\li a private pipewire daemon, with no session manager and no access to any
real hardware;
\li a helper process (this test binary, re-executed with
QtFakeXdgPortal::HelperArgument) which owns
\c org.freedesktop.portal.Desktop on a private D-Bus session bus and
publishes a synthetic video source rendering a SyntheticVideoScene.
\endlist
Usage from a test's main():
\code
#define main testlib_main
QTEST_MAIN(tst_Foo)
#undef main
int main(int argc, char *argv[])
{
if (QFakeXdgPortalFixture::isHelperProcess(argc, argv))
return QFakeXdgPortalFixture::runHelperProcess(argc, argv);
QFakeXdgPortalFixture::reexecUnderPrivateBusIfRequested(argc, argv);
return testlib_main(argc, argv);
}
\endcode
The re-exec must happen before QApplication is constructed: QApplication opens
the session bus, and QDBusConnection caches it for the lifetime of the process.
|
3986 |
- |
| qfileutil.cpp |
|
2021 |
- |
| qfileutil_p.h |
|
782 |
- |
| qintegrationtestbase.cpp |
|
428 |
- |
| qintegrationtestbase_p.h |
|
687 |
- |
| qmessagespy_p.h |
!
\internal
QLoggingCategoryEnabler temporarily enables a logging category for all
message types, and restores the original state on destruction.
Usage:
\code
QLoggingCategoryEnabler enable(qLcMyCategory());
// all message types for qLcMyCategory are now active for this scope
\endcode
|
7726 |
- |
| qmockiodevice_p.h |
|
781 |
- |
| qmockresolvers_p.h |
|
1064 |
- |
| qscopedenvironmentvariable_p.h |
|
1163 |
- |
| qsequentialfileadaptor_p.h |
|
1507 |
- |
| qsinewavevalidator.cpp |
|
1651 |
- |
| qsinewavevalidator_p.h |
|
1627 |
- |
| qsyntheticpipewirevideosource.cpp |
|
17492 |
- |
| qsyntheticpipewirevideosource_p.h |
!
\internal
Identity of a synthetic source: what it advertises to the PipeWire graph.
media.role is load-bearing, not cosmetic. It is how the source decides which
consumers are meant for it -- see QSyntheticPipeWireVideoSource.
|
4668 |
- |
| qsyntheticvideoscene.cpp |
|
3229 |
- |
| qsyntheticvideoscene_p.h |
!
\internal
Describes the content of a synthetic video frame -- a virtual "screen" for
screen-capture tests, or a virtual camera image.
The same description drives both the real widget shown on screen and the
synthetic PipeWire source used by QFakeXdgPortalFixture, so that a test can
make identical pixel assertions whichever of the two produced the frame.
Keeping one paint routine (paintSyntheticVideoScene()) is the point: it makes
"the fake source shows the same thing as the widget" structural rather than
a duplicated implementation that can drift.
|
3247 |
- |
| qvideoframetestutils.cpp |
|
1341 |
- |
| qvideoframetestutils_p.h |
|
1728 |
- |
| rhi_support.cpp |
|
10602 |
- |
| rhi_support_p.h |
|
2295 |
- |
| surfacecapturetestutils.cpp |
|
890 |
- |
| surfacecapturetestutils_p.h |
|
803 |
- |
| testvideosink.cpp |
|
2089 |
- |
| testvideosink_p.h |
This is a simple video surface which records all presented frames.
|
1655 |
- |
| udmabuftestutils.cpp |
|
1834 |
- |
| udmabuftestutils_p.h |
|
909 |
- |
| windows |
|
|
- |