When no video is arriving, the resized window doesn't have defined
content.
Moreover, if using Wayland, the window change of fullscreen is not
applied at until next refresh (new frame in this case).
Fix the benchmark tool build when src/config.h present and CUDA
conversions enabled there. The appropriate CUDA files will be required
if HAVE_LAVC_CUDA_CONV is defined.
The [file] (URL few commits below) has actually set r_frame_rate as
1/1200k, which causes the libavcodec JPEG decoder crash (received is
something like 1792i due to overflow). avg_frame_rate contains 1/25.
Prior to the commit 9891f19a (HEAD~3) avio_seek was called prior to
avformat_seek_file. This worked fine for normal containers (eg. MP4). But
after this was swapped, avio_seek after that broke that.
In order to work properly, run avio_seek() just if avformat_seek_file
fails (fixes temporarily broken .mp4 loop). Only case remaining is
JPEG/MJPEG file loop, which returns 0 for the avformat_seek_file() call.
This is handled ad hoc (I don't have any better solution now).
Rewinding the file (:loop option) doesn't work using raw HEVC like with
the [file].
avformat_seek_file retrurns EPERM, which was handled as an error, so
stopped the worker.
avio_seek seems to do the job but must be performed _after_ (unsuccessful)
avformat_seek_file.
[file]:
https://ultravideo.fi/video/ReadySetGo_3840x2160_120fps_420_8bit_HEVC_RAW.hevc
Use fixed width second precision - looks better when the stat lines are
below each other (if the order of magnitude matches, the same alignment).
Use B instead of bytes (shorter, also likely won't exceed 80 rows).
steps to reproduce the fixed behavior:
1) run `hd-rum-transcode 8M 7000 100::`
2) press Ctrl-C
There is compress_done() called once - once by the now commented out
line and then also with compress_state_deleter::operator().
This problem technically occurs since 2ca38e7c (16th Jun 2025) when
module_done() was replaced with compress_done(), which doesn't allow double
call (in cotrary to module_done(), which does). The root of the problem
is perhaps the commit 7460563 (2022-01-18).
- in short (default) help, offer the most often used options only
- print the available codecs/connections inline
- print opts "one-line" (or multiple line but with description starting
on the line); this makes it compatible with vdisp/decklink
- hide old positional syntax (shown in full-help), :help not red
The original noisiness 30 seem to be too much to be default - with default
compression JPEG or H.264 it produces high-bitrate stream. The new value
200 may better approximate real-life complexity video.
If the frame sizes become big, let say >1 MB, it is really hard to see
the order of magnitude visually.
This slightly hardens parsing the dumped frame sizes in batch but it
shouldn't a big problem (tr(1) or sed(1) will remove them).
not much importatnt but rather for the tools (clang-ticy, perhaps also
Coverity) not to complain about use of rand()
also use (UCHAR_MAX + 1) instead of 256 (for warning fix only)
Issue a warning eg. when -c option used without -t, in which case the
compression does nothing. This avoids either omitting an option by
mistake (here `-t`) or vice versa passing an extra parameter (either by
accident or not knowing that not usable in the context).
Do not use $DEBUG to add --enable-debug - needless, moreover $DEBUG is
too general and the user may have it defined by accident for a different
purpose.
Remove cd to $ORIG_DIR, that has already been performed.
CMAKE_OSX_SYSROOT is empty by default since CMake 4 [1] so make a workaround
MSCOS_SDK_VERSION_MAJOR and _MINOR seems to be unused but are derived
from MACOS_SDK_VERSION which is conversly derived from MACOS_SDK_NAME,
which can be now eg. /Library/Developer/CommandLineTools/SDKs/MacOSX.sdk
(`xcrun --sdk macosx --show-sdk-path`) - not containing the version
string in expected form.
[1]: https://cmake.org/cmake/help/latest/variable/CMAKE_OSX_SYSROOT.html
doesn't need to be patched
Also, the dynamic version may be slightly better because it is separated
from UG, eg. also because the uv binary and reflector both link with
this so not linking twice (increasing overall size).
- return on errors
- do not set the position when neither display/x/y was set (prevent
Wayland errors)
- check that the only x/y or display was set (not both position and
display)