Fix some racyness as the test was checking the idle property
right after it got the preview message for video recordings. In some
conditions, it might happen that camerabin2 still hasn't decremented
the processing counter after posting the preview and/or the image/video-done
message and the test will get idle=false and fail.
The approach for checking for the idle property was a busy loop with
a sleep. Far from elegant, but good enough for these tests.
Instead of having a single VC1SequenceHeader structure, use the 3 structs
from the "Table 265: Sequence Layer Data Structure" of the specification
for the library to be more flexible.
Implement the functions to parse them
camerabing example had a missing ')' and the fix to build against GTK+3
that was introduced in commit 516c977c76
is also applied to the camerabin2 example.
The scaletempo demo was using API which has been removed, so that's
wrapped in a version check.
Adding some additional checks for custom camerabin2 messages
Also improves reliability of the tests by waiting for the preview-buffer message.
This message is generated from the preview pipeline, and might arrive later than the
image/video-done from the main camerabin2 pipeline, the tests need to wait for it even
after getting the image/video-done.
A flags property has been added to encodebin to toggle whether the
conversion elements (ffmpegcolorspace, videoscale, audioconvert,
audioresample, audiorate) are created and linked into the appropriate
branches of encodebin.
Not including these elements avoids some slow caps negotiation and
allows the first buffers to flow through encodebin much more quickly.
However, it imposes that the uncompressed input is appropriate for the
target profile and elements selected to meet that profile.
Adds performance (timing) measure feature to gst-camerabin2-test, it allows
users to specify some target values for commonly measured times and the
application will print out a table of values at the end of its execution
with the measured times and averages of them.
Compares colorspace result with ffmpegcolorspace output using SSIM.
Also probes for possible crashes for odd width and height image by applying
all possible colorspace transformations.
Allow context callbacks to perform custom buffer verification
and custom element setup. Also move some static tracking variables
into helper struct and expose the latter struct for use by unit test
(callbacks).