avsyncvideotestsrc
avsyncvideotestsrc is one half of a phase-locked audio/video test pair for
measuring end-to-end A/V synchronisation. It renders a white vertical bar on
black that crosses screen centre exactly on every pip instant and sweeps
fully across in one pip interval, so the bar-centre crossing lines up with
the tone pip from avsyncaudiotestsrc.
Each frame also carries its frame index and a phase-locked CEA-708 caption
(alternating "TICK"/"TOCK") as ancillary data, so an st2038extractor can
split the ANC into its own flow and a downstream analyser can check that
video, audio and caption alignment survive the round trip.
Example
Eyeball-and-ear check — the bar crosses centre exactly on the beep:
gst-launch-1.0 \
avsyncvideotestsrc is-live=true ! videoconvert ! autovideosink \
avsyncaudiotestsrc is-live=true ! audioconvert ! autoaudiosink
Phase locking
The content is derived purely from each buffer's running time and the shared
pip-interval, so the two sources are aligned by construction and any skew
seen downstream was introduced by the pipeline under test. pip-interval
must be set to the same value on both elements. Set is-live=true to pace
output against the pipeline clock for live capture or transmit pipelines.
Hierarchy
GObject
╰──GInitiallyUnowned
╰──GstObject
╰──GstElement
╰──GstBaseSrc
╰──GstPushSrc
╰──avsyncvideotestsrc
Factory details
Authors: – NVIDIA Corporation
Classification: – Source/Video
Rank – none
Plugin – avsynctest
Package – gst-avsynctest-rs
Pad Templates
src
video/x-raw:
format: { v210, UYVP }
width: [ 1, 2147483647 ]
height: [ 1, 2147483647 ]
framerate: { (fraction)24000/1001, (fraction)24/1, (fraction)25/1, (fraction)30000/1001, (fraction)30/1, (fraction)50/1, (fraction)60000/1001, (fraction)60/1 }
Presence – always
Direction – src
Object type – GstPad
Properties
framerate
“framerate” GstFraction*
Default output framerate when downstream leaves it open
Flags : Read / Write
Default value : 30000/1001
height
“height” gint
Default output height when downstream leaves it open
Flags : Read / Write
Default value : 720
is-live
“is-live” gboolean
Whether to pace output against the pipeline clock
Flags : Read / Write
Default value : false
pip-interval
“pip-interval” guint64
Nanoseconds between bar-centre crossings (must match the audio source)
Flags : Read / Write
Default value : 1000000000
width
“width” gint
Default output width when downstream leaves it open
Flags : Read / Write
Default value : 1280
The results of the search are