Commit Graph

51 Commits

Author SHA1 Message Date
Martin Pulec
7d8cf2db14 added text testcard pattern
- print printable ASCII characters
- choosed default colors such that 4:2:2 subsampling is observable
2023-02-08 12:49:12 +01:00
Martin Pulec
16659b61ea added simple bitmap font + function to draw RGBA
+ option to annotatne testcard bars
2023-02-08 12:49:12 +01:00
Martin Pulec
7c5e286834 video_pattern_generator: catch errors + init noexcept
The out of bound access in previous commit was silently suppressed
because the exception was passed and catch(...) didn't print anything.

- init is now noexcept
- while still letting catch(...) without err msg, because when int is
  thrown, it is expected that thrower has already printed a cause (or
  help), catch std::exception
2023-02-07 09:45:49 +01:00
Martin Pulec
a541bcddf5 image_pattern_generator: fixed EBU/SMPTE patters
- EBU didn't work at all (out of bounds access)
- last column of SMPTE pattern has full luminance but should have .75%
2023-02-07 09:45:49 +01:00
Martin Pulec
d374a52f3d testcard blank: accept 0xFFFFFFFF pattern 2023-01-30 16:09:23 +01:00
Martin Pulec
481cc66821 video_pattern_generator: log "Fill rect" as debug
+ use logger where there hasn't been

The messages are not particulary useful and produce higher number of
lines on init so it would be better to use debug level.
2023-01-13 16:24:48 +01:00
Martin Pulec
2d20a63487 gray image pattern: allow also alternative spelling 2022-11-28 16:37:23 +01:00
Martin Pulec
cd51c3b831 testcard gray pattern: decrease default step to 1
The previous value 16 was too much fast (one iteration lasted only 16
frames) which was even unsuitable for latency evaluation for higher
latency compressions.

With the value 1, the latency can be directy read from difference of
luma on subsequent lines.
2022-11-28 12:01:58 +01:00
Martin Pulec
c97bf2bcea testcard gray pattern: added option for color step 2022-11-28 11:36:14 +01:00
Martin Pulec
9de21a236c video_pattern_generator: fixed 1st px overwrite
- fixed overwritting own data for very first pixel of image in rgba->rg48
  conversion
2022-11-04 16:50:59 +01:00
Martin Pulec
1e50d51e11 replaced unqualified move with std::move
to avoid this clang warning: https://reviews.llvm.org/D119670
2022-10-18 09:21:50 +02:00
Martin Pulec
d5728f5669 testcard uv_plane: set default level to 0.5 2022-09-19 14:34:24 +02:00
Martin Pulec
08aac6798d testcard uv_plane: fixed compution of level 2022-09-19 14:34:08 +02:00
Martin Pulec
7737a4f878 replace some color_out macros with stream-oriented
For ostreams, the stream macros are prefered both over raw escape
sequence macros (guarantee style/color termination) and function-like
ones in form T<PROP>(), because it allows also different argument than
C string literal.
2022-08-24 16:12:36 +02:00
Martin Pulec
b1f0e004f4 fixed new Coverity bugs
Fixed some of (easy) newly detected Coverity bugs. Those are mostly
innocent ones (performance) and not new (detected because of new release
of Coverity).
2022-08-22 09:57:16 +02:00
Martin Pulec
cb3618af85 video pattern generator: list only >8-bit pixfmts
List only higher bit-dept pixel formats instead of full to which also
8-bit codecs counted.
2022-08-15 16:23:11 +02:00
Martin Pulec
fc6087180a image generator gradient: generate full depth as well 2022-08-15 16:06:23 +02:00
Martin Pulec
984bd9dfd6 image generator: help - note that gradient2 also has options 2022-08-15 15:21:40 +02:00
Martin Pulec
21129d7fcb image generators: unified initialization
- either nothing or string passed to constructor
- disallowed omitting "blank" when color with "blank=<color>" given
2022-08-15 15:12:54 +02:00
Martin Pulec
edad146aeb added testcard pattern uv_plane 2022-08-15 15:11:57 +02:00
Martin Pulec
6e3133a6e6 image generator: help updated
highlight pattern names + use new color API
2022-08-15 15:10:40 +02:00
Martin Pulec
04c2d245d0 fixed Win compile warnings (from CI) 2022-08-11 10:42:45 +02:00
Martin Pulec
26a739dc6b testcard gray: preinit frames
Generating frames on-fly is a bit slow.
2022-08-05 16:11:46 +02:00
Martin Pulec
e1a490b334 testcard: added gray pattern 2022-08-05 09:43:22 +02:00
Martin Pulec
76e6a824c9 still_image_video_pattern_generator: use vector
use vector instead of unique ptrs for still_image_video_pattern_generator and image_pattern.
2022-08-04 15:33:00 +02:00
Martin Pulec
85111a96c2 restructuralize video_pattern_generactor a bit
Currently only still image patterns are used, but it can be also
something else so factor out it to separate class.
2022-08-04 15:00:44 +02:00
Martin Pulec
b9ea5ec9a9 testcard: encapsulate frame sequence to video_pattern_generator
Get every frame from video_pattern_generator, i. e. every frame, not
only first one.

This will allow more complex pattern than just sliding over one picture.
2022-08-04 14:32:40 +02:00
Martin Pulec
a0458aa6dd video pattern generator: finished SMPTE bars
It is not fully-conformant but the wiki description is rather vague and
it is eg. inpossible to represent a "superblack" color if we assume 0 as
a base black.
2022-07-14 15:54:22 +02:00
Martin Pulec
8f5d5b4ccd video pattern generator: fixed 7nd bar of SMPTE 2022-07-14 15:40:52 +02:00
Martin Pulec
e4f56be955 prevent dangling lambdas
Prevent dangling parameter-less lambdas. Although it may not be so dangerous
(operator() should be a plain function in the end), it is not correct.
2022-07-14 09:29:15 +02:00
Martin Pulec
c66e7de98d testcard: show "Fill rect" only if verbose 2022-06-29 09:34:04 +02:00
Martin Pulec
7b1837c668 video_codec: removed slow parameter from get_decoder_from_to 2022-05-30 15:38:48 +02:00
Martin Pulec
bd8d70195b video pattern generator: rem. hard-coded 16-b list
Use 16-bit source if there is a conversion.
2022-05-26 10:53:11 +02:00
Martin Pulec
5b0c8ca268 video pattern generator: add full-depth Y216/Y416 2022-05-25 14:47:18 +02:00
Martin Pulec
f62ec32d9d image generator: fixed typo in help 2022-05-25 14:47:18 +02:00
Martin Pulec
6aacbccdcf testcard, pattern generator: generate full-depth v210 2022-05-06 09:58:36 +02:00
Martin Pulec
20215db4b8 moved testcard_fillRect to testcard_common 2022-01-26 08:22:40 +01:00
Martin Pulec
d6ed8a8cca video_pattern_generator.cpp: use testcard_convert_buffer()
Use testcard_convert_buffer() for pixel format conversion to avoid messy
code that there has been.
2022-01-26 08:22:39 +01:00
Martin Pulec
9e555352d2 testcard2: factorized some common code to testcard_common
+ removed redundant functinos
+ relicense (there remains nothing from original code now)
2022-01-26 08:22:39 +01:00
Martin Pulec
5de79bd6be Testcard: encode full depth with R10k 2021-11-12 15:22:17 +01:00
Martin Pulec
f9890e47da Image pattern generator: fixed NL in exception explanation string
Standard exceptions (eg. from stol) doesn't have newlines in what() so
do not pass it with custom ones but print it in the handler.
2021-11-12 09:57:36 +01:00
Martin Pulec
81bb2d7397 Image pattern generator: simplified a bit 2021-11-12 09:54:46 +01:00
Martin Pulec
e2bedca34d Image pattern generator: fixed gradient2
- "gradient" is prefix of "gradient2" and the first was checked earlier
  thus gradient2 was never selected
- incorrect check for boundaries with min instead of max
2021-11-12 09:38:15 +01:00
Martin Pulec
a2593b0a8a SMPTE bars: fixed column count
Smpte bars doesn't have the eight colum as EBU has.

Moreover the pattern is not complete - the bottom third contains
different data - mention this in help + todo.
2021-10-14 10:52:49 +02:00
Martin Pulec
19e4110e6b Image pattern generator: use enum to indicate bit depth 2021-10-14 10:52:48 +02:00
Martin Pulec
cfe793a23b Image pattern generator: adapt EBU bars gen also for SMPTE 2021-10-14 10:52:48 +02:00
Martin Pulec
2b47dd4acd Image pattern generator: added EBU bars 2021-10-14 10:52:48 +02:00
Martin Pulec
5b1084e8b8 video_pattern_generator.cpp: noise - make it uniformly distributed 2021-09-14 08:40:00 +02:00
Martin Pulec
b23736770b Added image_pattern_raw
Added raw image data generator that user can use to provide raw image
data that won't be color-converted. This could be useful eg. for testing
out-of-range YUV values.
2021-06-16 12:27:14 +02:00
Martin Pulec
c0a17534cc Fixed newly detected Coverity issues 2021-05-20 11:04:52 +02:00