This adds some extra options that affect pattern=ball mode, allowing the
animation to be synced to running time or wall-time clock for comparing
sync across different instances / pipelines / machines.
Also added is the ability to invert the rendering colours every second,
and some different ball motion patterns.
https://bugzilla.gnome.org/show_bug.cgi?id=740557
Deterministic generation of snow and smpte is important for tests so
that it's not affected by other videotestsrc elements in current or
possibly previous tests.
https://bugzilla.gnome.org/show_bug.cgi?id=773102
timestamp_offset is being declared as an int64 variable,
for which the min
value of G_MININT64 is -9223372036854775808
Changing the minimum and maximum limit for the offset variable.
https://bugzilla.gnome.org/show_bug.cgi?id=738568
Need to store the old running time and frame numbers when renegotiating and
start from 0 again when a new caps is set, preventing that framerate changes
cause timestamping issues.
For example, if a stream pushed 10 buffers on framerate=2/1, its
running time will be 5s. If a new framerate of 1/1 is set, it would
make the running time go to 10s as it would count those 10 buffers
as being sent on this new framerate.
Fixes camerbin unit test.
https://bugzilla.gnome.org/show_bug.cgi?id=682973
Make enums for the chroma siting for easier use in the videoinfo.
Make enums for the color range, color matrix, transfer function and the
color primaries. Add these values to the video info structure in a Colorimetry
structure. These values define the exact colors and are needed to perform
correct colorspace conversion. Use a couple of predefined colorimetry specs
because in practice only a few combinations are in use.
Add view_id to the video frames to identify the view this frame represents in
multiview video.
Remove old gst_video_parse_caps_framerate, use the videoinfo for this.
Port elements to new colorimetry info.
Remove deprecated colorspace property from videotestsrc.
Replace moving-color-bars pattern with smpte100, and change
moving-speed to horizontal-speed. Default is now 0. Add
a rotation stage to pattern building.
Allocate a temporary scanline for building images. Remove
unused code. Disable several patterns that we're unable to
test and probably never used. Add other variants of bayer
sampling. Convert some patterns to use videotestsrc_blend_line.
Replace solid-color property with foreground-color and add
background-color. Pull some common code out of each of the
pattern generating functions. Fix many of the patterns to
use foreground-color/background-color instead of white/black.
Generated images are indentical to previously if foreground-color
and background-color are left as default.
API: GstVideoTestSrc::foreground-color
API: GstVideoTestSrc::background-color
... which generalizes the current listing of white, black, etc.
In particular, also allow specifying alpha channel, and modify
some structures and pattern filling to cater for alpha value as well.
Fixes#624919.
API: GstVideoTestSrc:solid-color
Adds a pattern with out-of-gamut colors in a checkerboard
pattern with in-gamut neighbors. Useful for checking YCbCr->RGB
color matrixing. Correct matrixing and clamping will cause the
checkerboard pattern to be invisible.
Original commit message from CVS:
Patch by: Jonathan Rosser <jonathan.rosser@rd.bbc.co.uk>
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Add a zone plate pattern generator based on BBC R&D Report
1978/23 (yeah *that* 1978). Try 'videotestsrc pattern=zone-plate
kx2=20 ky2=20 kt=1'.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Add "colorspec" property, specifying whether to generate BT.601
or BT.709 video. This only affects YCbCr values, not RGB, since
if you're generating a 709 test pattern, presumably you want
709 RGB primaries, not 601. Also add "smpte75" pattern, which
uses 75% colors instead of 100%, since this is often more useful
for testing (and also follows the SMPTE EG-1 guideline).
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
Add a "blink" pattern. Turn on the pain. Apologies. It's useful
for testing vertical refresh synchronization.
Original commit message from CVS:
* gst/videotestsrc/gstvideotestsrc.c:
* gst/videotestsrc/gstvideotestsrc.h:
* gst/videotestsrc/videotestsrc.c:
* gst/videotestsrc/videotestsrc.h:
Add a test pattern called "circular", which has concentric
rings with varying radial frequency. The main purpose of this
pattern is to test fidelity loss in a filter or scaler element.
Notably, this pattern is scale invariant, and is optimally viewed
with a width (and height) of 400.
Original commit message from CVS:
2005-09-28 Andy Wingo <wingo@pobox.com>
* gst/videotestsrc/gstvideotestsrc.c: Implement live source mode
and unlocking.