Commit Graph

7136 Commits

Author SHA1 Message Date
Martin Pulec
a6ca815e9c GL: unified handling of DXT GLSL programs
Handle DXT-related (YUV->RGB) programs in the same way as the rest of
the shader programs.
2023-01-16 10:50:54 +01:00
Martin Piatka
c62f97c76f double_framerate: Fix build with -Werror=format-security
This flag is present when building the AUR package on Arch
2023-01-16 10:45:34 +01:00
Martin Piatka
ebee5aa583 capabilities: Remove unneeded cout flag and precision restoring
Flags and precision were set when reporting compression presets, but
that got removed.
2023-01-16 10:45:33 +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
7e0c77c434 print display mode by disp. module
Printout by video decoder might have been incorrect if there is a
postprocessor that changes properties, eg.:

    uv -t testcard:fps=50i -d gl -p double_framerate

printed 50i but display was actually set to 50p.
2023-01-13 15:53:37 +01:00
Martin Pulec
c4aa64c800 do not deinterlace progressive
until option "force" is given, do not deinterlace progressive video
2023-01-13 15:52:56 +01:00
Martin Pulec
13bdf14157 double-framerate: ported computation optimizations
ported optimizations from commit 3c1d075 below
2023-01-13 14:18:49 +01:00
Martin Pulec
b56897ed0d vo_postprocess: use logger 2023-01-13 14:17:59 +01:00
Martin Pulec
191c59512a deinterlacers: added (cmdline) documentation 2023-01-13 14:17:59 +01:00
Martin Pulec
0aa83eb334 vc_deinterlace_ex: optimize R10k, v210, R12L
At least a little optimization for slow codecs - these have fixed number
of iterations per pixel block so we can give a compiler an oppurtunity
to unroll and optimize.

speedup on i9-9820X - v210, R10k 8%; R12L 12%
2023-01-13 14:17:59 +01:00
Martin Pulec
755c6d1330 vc_deinterlace_ex: improved quality
instead of just interpolating between 2 lines and writing result to
both, average everytime line N with N+1 and write result to N:

    1 1 1 1        1A1A1A1A
    A A A A        A2A2A2A2
    2 2 2 2   ->   2B2B2B2B
    B B B B        B3B3B3B3
    3 3 3 3        3C3C3C3C
    C C C C        3C3C3C3C  (last 2 lines are the same)

Performance assessment - for SSE optimized pixel formats (8-bit ones)
the impact is small (5% on i9-9820X) - it is perhaps memory-bound and
adjacent lines stays in cache (each loop re-reads one used in previous
iteration). For v210, R10k and R12L the situation is worse and the
slow-down is around 90%.
2023-01-13 14:17:59 +01:00
Martin Pulec
52a8b1e821 vc_deinterlace_ex: added debug timer 2023-01-13 14:17:59 +01:00
Martin Piatka
26f51c2857 Update NEWS 2023-01-13 13:22:32 +01:00
Martin Piatka
6b08932038 capabilities: Remove old unused preset reporting 2023-01-13 13:12:22 +01:00
Martin Piatka
3563baa615 GUI: launch preview on ug exit 2023-01-13 12:20:07 +01:00
Martin Piatka
cc18861111 GUI: available_setting: Remove unused functionality 2023-01-13 12:20:06 +01:00
Martin Piatka
cddcfe9330 GUI: query capabilities line by line 2023-01-13 12:20:06 +01:00
Martin Piatka
0dfec28849 GUI: Fix codec settings refresh 2023-01-13 12:20:06 +01:00
Martin Piatka
bd2c7c9d17 GUI: Don't block on capabilities querying 2023-01-13 12:20:05 +01:00
Martin Piatka
63e7af8fc6 GUI: Rewrite launch manager using lambdas 2023-01-13 12:20:05 +01:00
Martin Piatka
900cd8fe9f jack: Do not automatically start jack server in probe
Jack does not wait for the server to exit completely on client_close(),
which causes a race condition when running uv with `--capabilities`:
when the jack playback device is probed right after probing the jack
capture device, jack still sees the terminating server and tries to
connect to it unsuccessfully 5 times in a row.

This changes reduces the time it takes for --capabilities to run by ~7
seconds, greately reducing the GUI startup time.
2023-01-13 12:20:05 +01:00
Martin Pulec
23e4c6ae7f deinterlace bob, linear: simplified + fixed 2023-01-13 10:09:39 +01:00
Martin Pulec
c35bfaf19a added deinterlace_linear
+ fixes for deinterlace_bob
2023-01-13 10:09:38 +01:00
Martin Pulec
4ddbda613d added deinterlace_bob 2023-01-13 10:09:38 +01:00
Martin Pulec
808b3de382 av_log_ug_callback: fixed incremental printout
FFmpeg doesn't always use to logger for whole lines, resulting in
smoething like:

    [lavc libx264 @ 0x6e93f000b280] Possible tunes:[lavc libx264 @ 0x6e93f000b280]  film[lavc libx264 @ 0x6e93f000b280]  animation[lavc libx264 @ 0x6e93f000b280]  grain[lavc libx264 @ 0x6e93f000b280]  stillimage[lavc libx264 @ 0x6e93f000b280]  psnr[lavc libx264 @ 0x6e93f000b280]  ssim[lavc libx264 @ 0x6e93f000b280]  fastdecode[lavc libx264 @ 0x6e93f000b280]  zerolatency[lavc libx264 @ 0x6e93f000b280]

So we should prefix only the line after <nl>.
2023-01-13 10:09:01 +01:00
Martin Pulec
3ebacd0eb0 deinterlace pp: rename to deinterlace_blend
to differentiate from other deinter modes
2023-01-12 16:25:56 +01:00
Martin Pulec
5d8e84fe06 vc_deinterlace_ex: support for R12L 2023-01-12 11:43:55 +01:00
Martin Pulec
8efdce2337 CI: fixed Windows natpmp build error
Fixes failed run  https://github.com/CESNET/UltraGrid/actions/runs/3894640814/jobs/6648919900.

cmd.exe script for unknown reason ceased to work, copied appropriate
parts of script to our script.

+ use shell debug flag for the script
2023-01-12 10:50:47 +01:00
Martin Pulec
94f51003f1 vc_deinterlace_ex: support for R10k 2023-01-11 17:17:58 +01:00
Martin Pulec
3154de0595 vc_deinterlace_ex: support for v210
+ fixed indexes for 16-bit codecs (used bytes but should use
  element-sized indices)
2023-01-11 16:51:49 +01:00
Martin Pulec
bab27db915 double_framerate fix
see 694b226 (1st point)
2023-01-11 16:38:50 +01:00
Martin Pulec
1affef29b7 vc_deinterlace_ex: support for other 8-bit and 16-bit pixfmts 2023-01-11 15:36:27 +01:00
Martin Pulec
ecb20902b7 SSE optimized vc_deinterlace_ex
now faster than vc_deinterlace

+ fixed possible error that has there been perhaps always when dst_pitch
  > src_linesize - after inner cycle, dst was incremented by
  (dst_pitch+src_linesize), not 2xdst_pitch
2023-01-11 14:51:03 +01:00
Martin Pulec
35eda1f7fa deinterlace pp.: removed wrong memcpy
The memcpy was there left after changing vc_deinterlice for
vc_deinterlace_ex but not only that it is not needed since it converts
directly to output buffer but also the output would get rewritten by the
input.
2023-01-11 14:03:00 +01:00
Martin Pulec
694b226ec1 double-framerate: small fixes
- fixed taking codec from input frame (that may be NULL)
- set drop policy only if option nodelay is used - after the previous
  changes, the second frame is correctly output and the filter delays
  it output automatically (until "nodelay" is used)
2023-01-11 10:27:33 +01:00
Martin Pulec
5439cbcc9e vo_postprocess: updates
- fixed filters that multiply output images than receive, like
  double_framerate
- refuse filter chain (longer than 1) from complex filter - it doesn't
  currently work
2023-01-11 10:25:16 +01:00
Martin Pulec
2afcdf3c1f print which pixel format cannot be deinterlaced
Needs adding log_msg_once variable arguments (printf-like).

+ print always error in deinterlace - if user explicitly wants
  deinterlace PP, maybe we should notify loudly
2023-01-10 16:41:52 +01:00
Martin Pulec
e3574d3d66 one-shot logger updates
On one-shot second and further calls of one-shot message, no output was
producet, yet empty buffer was submitted to Log_output resulting in
false repeate messages:

    Last message repeated <n> times

To simplify the stuff, C++ API was removed and in the C API the Logger
is taken only if actual message will be output. If someone is willing to
use the C++ API, it can be later readded (not really needed now, only
simple message are presented).
2023-01-10 16:17:37 +01:00
Martin Pulec
bdf389099c vc_deinterlace_ex: basic check if pixfmt is supported
+ use&check it in GL/SDL/deinterlace pp/double_framerate pp
2023-01-10 15:57:37 +01:00
Martin Pulec
683f10dd21 fixed display generic indicator display if there is a PP 2023-01-10 15:57:12 +01:00
Martin Pulec
1a8f6b5d0c double_framerate: set drop timeout if not set
Curently when implicit behavior is now non-blocking, the second frame
would just be dropped otherwise. This assumes that display implements
timeout but this is useful primarily for GL/SDL, which implement that.
2023-01-10 15:57:10 +01:00
Martin Pulec
88ae690ea9 vo_postprocess.c: fixed running double_framerate
double_framerate takes input frame first and then nothing and it
generates another frame with NULL input so modify the assert so.
2023-01-10 15:13:06 +01:00
Martin Pulec
1d8445e0e5 double_framerate: fixed running without args 2023-01-10 14:42:55 +01:00
Martin Pulec
15f5c5302d GL: fixed a bug (c&p err) from prev commit 2023-01-10 14:28:10 +01:00
Martin Pulec
77ba3fa529 GL: small fixes
use ternary operator to shorten the code + removed glBindTexture added by mistake
2023-01-10 12:09:38 +01:00
Martin Pulec
c38b00e573 Spout: build fix
LibLogLevel has renamed to SpoutLibLogLevel
2023-01-10 12:09:38 +01:00
Martin Piatka
527aa6253a vulkan: Fix RG48 being misinterpreted as signed
Also drop the 'A', because it has no alpha channel
2023-01-10 11:55:39 +01:00
Martin Pulec
ff181ca757 GL: support for RG48
Can be useful for 12-bit RGB, which didn't have any appropriate pixel
format until now.
2023-01-09 16:53:21 +01:00
Martin Pulec
b9dc69fada added vc_copylineR12LtoR10k 2023-01-09 16:37:40 +01:00
Martin Pulec
0c1831447a lavc: allow AV_PIX_FMT_X2RGB10LE
This is currently not fully operable with NVENC (see previous commit)
but the pixel format itself may be used also by QSV, so enable it (and
blacklist for NVENC with previous commit).
2023-01-09 12:11:57 +01:00