Martin Piatka
332000e4b8
logging: check if output is a terminal only once
2022-08-03 10:43:43 +02:00
Martin Piatka
c0a9db6d0f
logging: reserve space in buffer
2022-08-03 10:43:42 +02:00
Martin Piatka
33c8ac5c90
logging: log_msg(): Write directly to Log_output buffer
2022-08-03 10:43:42 +02:00
Martin Piatka
04fbcddfed
logging: expose styles as strings
2022-08-03 10:43:42 +02:00
Martin Piatka
c439b05887
logging: Log_out: nicer interface
2022-08-03 10:43:41 +02:00
Martin Piatka
d108c068f4
logging: Log_output: avoid using streams
...
Avoids an allocation and copy for timestamp
2022-08-03 10:43:41 +02:00
Martin Piatka
b4144ffa5b
logging: put style reset into the msg buffer
2022-08-03 10:43:41 +02:00
Martin Piatka
241c930299
logging: Flush stream on msg repeat
...
Since the repeat msg does not contain a newline we need to flush the
stream to make sure it appears when stream buffering is used
2022-08-03 10:43:40 +02:00
Martin Piatka
e031547a1d
logging: use mutex for repeated msg checking
...
The previous implementation using atomics was not entirely correct,
since the following situation could happen:
1. Thread 1 detects a msg repeat
2. Thread 2 prints a message before thread 1 could print repeat notice
3. Thread 1 outputs "last msg repeated" for the msg from step 1
The stdout stream uses locking internaly anyway, so this should not have
any significant overhead. On the other hand this simplifies the code,
eliminates an allocation and fixes the leak on exit.
2022-08-03 10:43:40 +02:00
Martin Piatka
65d7cf69b8
logging: Split timestamp and repeat functionality into its own class
...
This will eventually allow better integration with other formatting
functions like color_out, color_printf
2022-08-03 10:41:14 +02:00
Martin Piatka
44294ef0c6
logging: Logger: set color&style in constructor
2022-08-03 10:13:31 +02:00
Martin Pulec
ec20f7877c
logger: trigger flush on repeated messages
...
When the output is line-buffered, the repeated message isn't immediately
printed.
2022-08-03 09:51:07 +02:00
Martin Pulec
d2c5ca065d
fixed vc_copylineRGBAtoUYVY
...
- the required space for intermediate result was actually 2x larger than
dst buffer could provide
+ make arguments of vc_copylineRGBAtoUYVY restrict again -- no longer
used in situ, thus it can be restricted again
2022-08-02 15:03:55 +02:00
Martin Pulec
1b7291e492
lavc: cache AVPacket in compress state
...
This avoids AVPacket allocation/free for every frame.
2022-08-02 11:37:58 +02:00
Martin Pulec
facbf05608
lavc: increment pts directly, do not use static var
...
Since the in_frame is recycled, there is no need to store sequential
number separately.
2022-08-02 11:25:04 +02:00
Martin Pulec
f67aa7c2e2
lavc: repl. av_image_alloc with av_frame_get_buffer
...
Replace av_image_alloc call wit av_frame_get_buffer.
The use of the former caused significant performance degradation (see
GH discussion CESNET/UltraGrid#241 ).
2022-08-02 11:14:39 +02:00
Martin Pulec
c7db9c12b8
lavc: configure_with codec opening in sep. func.
...
Moved FF codec selection to a separate function.
2022-08-02 11:14:39 +02:00
Martin Pulec
7d8f2a5017
lavc: configure_with - simplify a bit
2022-08-02 11:14:39 +02:00
Martin Pulec
3bd2a96087
lavc: moved swscale creation to configure_swscale
2022-08-02 11:14:39 +02:00
Martin Piatka
d18fb0300e
logging: Call preinit before parsing log config
...
Since help text containing ANSI escape codes can be shown during parsing
(i.e. on error or help text), preinit should be called sooner
2022-07-29 13:03:28 +02:00
Martin Piatka
d496f738f2
logging: setters for timestamp and skip_repeat
2022-07-29 13:03:28 +02:00
Martin Piatka
b77292d29e
logging: modernize config parsing
2022-07-29 13:03:27 +02:00
Martin Piatka
e1b51bda18
logging: separate config parsing from setting log level
2022-07-29 13:03:27 +02:00
Martin Piatka
07f245c5ec
logging: Use enum for timestamp mode
2022-07-29 13:03:27 +02:00
Martin Piatka
31b39db713
logging: Add missing assert
2022-07-29 13:03:26 +02:00
Martin Piatka
1ba26d4f91
conference: control port info command
2022-07-29 13:03:26 +02:00
Martin Piatka
3cba9cf0e1
deltacast: remove duplicit include
2022-07-29 13:03:26 +02:00
Martin Piatka
b71c4e633d
audio/utils: Add missing include for std::clamp()
2022-07-29 13:03:25 +02:00
Martin Pulec
517c27fa18
format_in_si_units: don't take parameter suffix
...
This is perhaps unneeded -- caller can append the units by itself.
2022-07-29 11:48:48 +02:00
Martin Pulec
c69fd8a076
lavc: print bitrate using SI-prefix
...
With SI-prefix, the value is human readable.
2022-07-29 10:53:30 +02:00
Martin Pulec
12c1b37121
lavc nvenc: set delay to 2
...
This improves throughtput by factor of 2 at the expense of possibly
increased latency (up those 2 frames).
2022-07-29 10:15:33 +02:00
Martin Pulec
f7746f97a7
parse_cuda_device: updates
...
- document return code (non-intuitive)
- set cuda devices even if GPUJPEG is not compiled in. The code is used
to enumerate CUDA devices but now not only GPUJPEG uses the value, it
is eg. used to identify GPU for NVENC
- restructuralize (exit in help block) + return EXIT_FAILURE instead of
EXIT_FAIL_USAGE if GPUJPEG not compiled in (perhaps more eligible --
the usage is actually correct, just GJ is not compiled in)
2022-07-29 08:09:04 +02:00
Martin Pulec
1bdf147a20
main.cpp: moved --cuda-device code to sep. func
2022-07-29 08:09:04 +02:00
Martin Pulec
e21c28a6cf
Added r10k_to_x2rgb10le but don't use
...
The codec seems currently not working correctly for nvenc from
libavcodec side.
2022-07-29 08:08:57 +02:00
Martin Pulec
8681c8220e
vidcap import: color usage
2022-07-28 10:56:51 +02:00
Martin Pulec
0a8bd533b8
vidcap import: opt to limit number of frames used
2022-07-28 10:56:35 +02:00
Martin Pulec
791b101625
lavc: simplify a bit
...
Just removed one level of indention (if avcodec_frame_send fails, return
immediately).
2022-07-28 10:11:29 +02:00
Martin Pulec
40bcc8f6c6
lavc: performance debug print
2022-07-27 13:46:33 +02:00
Martin Pulec
3b4a0d7511
tools/convert: compilation fixes
2022-07-27 10:23:50 +02:00
Martin Pulec
ad5c6bd2c2
AppImage: bundle libjack.so.0 again
...
This effectively reverts 3c9b8293 .
libjack.so.0 is a dependency also for different modules like portaudio
so if we do not want to depend on instance in the system, we must ship
our version.
2022-07-27 09:05:56 +02:00
Martin Pulec
356b622889
testcard: get rid of SDL_mixer
...
SDL_mixer has some nasty dependency on JACK so remove it altogether
since it is perhaps seldom used (the MIDI playback may be added later
eg. as a standalone audio capture).
(see GH discussion #241 )
2022-07-27 09:05:56 +02:00
Martin Pulec
46746286ec
export.c: use color_printf for help
2022-07-27 09:05:55 +02:00
Martin Pulec
1ab53bacf4
dummy video display: simplify
...
- use generic FPS indicator
- default member intializer for video_frame instead of member
initializer list
2022-07-27 09:05:55 +02:00
Martin Pulec
d8e9f5bd5c
Set _IONBF for stdout in MSYS term
...
This partially reverts d4775e37 which changed the output buffering from
_IONBF to _IOLBF.
2022-07-27 09:05:55 +02:00
Martin Pulec
9e10a385b6
color_out: new API
...
Use inline ANSI escape sequences instead of modifiers.
This allows more convenient formatting without the need to use multiple
calls (possibly interleaving).
ANSI escape sequences are nowadays supported also in Windows terminals
(PS, cmd).
2022-07-27 09:05:55 +02:00
Martin Pulec
58f91ec2c1
pixfmts - improve desc comments
2022-07-27 09:05:52 +02:00
Martin Piatka
8f04309638
ipc_frame_unix: Handle socket errors
2022-07-25 09:55:26 +02:00
Martin Piatka
f2f9b39412
sv_parse_num: Work aroud coverity issue
2022-07-25 09:40:54 +02:00
Martin Pulec
37151de344
r10k_to_yuv42Xp10le: use global coefs and defs
2022-07-25 08:22:12 +02:00
Martin Pulec
de98da996f
lavc: added r10k_to_yuv420p10le
2022-07-22 16:26:21 +02:00