Martin Pulec
213748300c
main.cpp: use dynamic ports for UDP loopback
...
Use dynammic ports if using both send and receive and sending over
loopback.
2022-06-16 14:40:31 +02:00
Martin Pulec
e9c255d0e1
V4L2 cap.: make libv4lconvert soft depenendency
...
libv4l2 is actually not needed at all (we do not use v4l2_ wrappers
like v4l2_open).
libv4lconvert can be make soft dependency
2022-06-14 11:35:58 +02:00
Martin Pulec
8a07498a3b
added V4L2 display
2022-06-10 15:46:43 +02:00
Martin Pulec
667c6cae48
V4L2 cap.: unmap buffers
2022-06-10 15:46:43 +02:00
Martin Pulec
e8624717a7
video decoder: more descriptive msg if unable to decode
2022-06-10 15:46:43 +02:00
Martin Pulec
73e836e1f6
video_display: allow run callback to be NULL
...
It saves a bit of coding and it may be sometimes in future useful to
know that the display doesn't need a control.
2022-06-10 15:46:40 +02:00
Martin Pulec
86bb25b650
GL: use optionally Rec.2020 or P3 YUV->RGB coefs
2022-06-06 16:07:33 +02:00
Martin Pulec
c74ccf9cc7
color.h: excess semicolon in macro
2022-06-06 11:06:07 +02:00
Martin Pulec
7a8cc7e5cb
GL: GLSL shaders - substitute col. spec vals on runtime
2022-06-06 11:06:07 +02:00
Martin Pulec
47d4db6ed9
Revert "GL: added some nasty workaround"
...
This reverts commit 8d48330f91 .
Hopefully this is no longer need.
2022-06-06 11:06:06 +02:00
Martin Pulec
1a31999f1a
utils/misc: split to misc and macros.h
...
Some macros are quite common so it is perhaps more wise to use a
separate header.
Also moved ref_count_init_once and ref_count_terminate last to misc.h.
2022-06-06 11:06:06 +02:00
Martin Pulec
e03c7eb207
use Kr,Kb also for forward conversions
...
+ changed semantics of {Y,CBCR}_SCALED to inverted value (it is also
more intuitive meaning)
2022-06-06 11:06:06 +02:00
Martin Pulec
2481326a4a
color.h: derive ->YCbCr coefs directly from Kr,Kb
...
This is more obvious and allows easily switching color space.
2022-06-06 11:06:06 +02:00
Martin Pulec
d7368b1a4a
glsl compilation: print compiled shader if debug
2022-06-06 11:06:06 +02:00
Martin Pulec
9d57e57b6b
from_lavc_vid_conv.c: fixed 8-bit YUV->RGB convs
...
Fixed nv12_to_rgb() and yuv8p_to_rgb() luma headroom not being
substracted.
2022-06-06 11:06:06 +02:00
Martin Pulec
89be4a70ef
GL,NDI: experimental support for HDR
2022-06-06 11:06:01 +02:00
Martin Pulec
d968581b8f
video_codec: best_decoder_cmp: small refactor
...
If bit depths are the same, continue directly to next feature.
2022-06-01 11:22:03 +02:00
Martin Pulec
975805b087
video_codec: improved comparator best
...
- check for exact match first
- continue comparing if bit depths are the same - this was perhaps
incorrect previously, because it reported codec equality if bit
depth was equal
2022-06-01 11:22:02 +02:00
Martin Pulec
df16e71b89
Cineform enc.: use UG decoder to resolve convs
...
Dispatch format conversions automatically instead of hard-codec list.
2022-06-01 11:22:02 +02:00
Martin Pulec
3978d67176
Win AJA stub: fixed compilation error + warn
2022-06-01 11:22:02 +02:00
Martin Pulec
d19f6a5329
display cap. f.: use decoder if needed
...
Use decoder if display doesn't natively support the pixel format.
2022-06-01 11:22:01 +02:00
Martin Pulec
dc02469acf
GL: issue performance warning for all >8 bit
2022-06-01 11:22:01 +02:00
Martin Pulec
03c024309f
GLFW: allow multiple instantiation
...
For now, use reference counting without any synchronization -
glfwInit/Terminate should be called only from main thread, anyway.
2022-06-01 11:22:01 +02:00
Martin Pulec
9ecb13dfb4
video_display: small update to doxy documentation
2022-06-01 11:22:01 +02:00
Martin Pulec
6e9e96b63d
multiplier: no fail if mainloop display not first
...
Do not fail when display requiring mainloop is not first. On Linux,
although eg. GL declares the need to be run from mainloop (GLFW-induced
constraint), it runs fine also without it. Thus print only and error
and don't fail.
2022-06-01 11:22:01 +02:00
Martin Pulec
474c4dd7cc
added display capture filter
2022-06-01 11:22:00 +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
b81f0fed32
video codec: removed needless protoypes
2022-05-30 15:38:48 +02:00
Martin Pulec
9001fe9ad1
video codec: conversion selection logic
...
Do not use third parameter of get_decoder_from_to by caller to get fast
decode first, Created function get_fastest_decoder_from instead, that
hides and encapsulates the selection logic.
2022-05-30 15:38:48 +02:00
Martin Pulec
b914f6ee22
video_codec: few improvements
...
- get_best_decoder_for: added doxy
- " : return also vc_memcpy
- " : simplified return - there exist only one
conversion in the end (no matter if slow or not)
- fixed protoypes for both get_best_decoder_for and codec_is_in_set:
the first should not be neither const nor pure, 2nd may be pure
- codec_is_in_set: argument can be pointer to const
2022-05-30 15:38:48 +02:00
Martin Pulec
d66f336e1d
video_codec: removed some more ext link
...
+ return vc_copylineRGB[A] for RGB->RGB and RGBA->RGBA instead of
vc_memcpy - we cannot know if caller wants or doesn't want to use
rgb-shifts other than default. Both implementations call vc_memcpy
if s/he does
2022-05-30 15:38:47 +02:00
Martin Pulec
9c72e92c36
video_codec: removed some external linkage for convs
2022-05-30 15:38:44 +02:00
Martin Pulec
fb4be4945d
file cap.: deduce input pixel format from source
...
Removed implicit UYVY capture - UYVY is leaved only as a fallback.
2022-05-26 15:26:30 +02:00
Martin Pulec
e50f4b3b57
lavd: refactor a bit
...
Factor out some code from get_format_callback. It was too complex and it
may be tricky to comprehend (probe vs non-probe).
Moved to from_lavc_vid_conv because it will be also used by file capture
to establish UG pixel format to capture to.
2022-05-26 15:26:30 +02:00
Martin Pulec
dc033b5361
added vc_copylineV210toY216
...
Can be used by NDI display that doesn't support v210 natively but does
Y216.
2022-05-26 15:26:29 +02:00
Martin Pulec
7b54034426
video_codec.c: removed function casts
...
Those were required previously when some conversions had incompatible
prototype (missing r,g,b shifts for pixfmts not using it - that is
almost all except RGBA).
2022-05-26 15:26:29 +02:00
Martin Pulec
817d767e5d
NDI disp.: convert Y416 to PA16, not P216
...
PA16 is the same as P216 except it has an alpha plane in addition. Since
Y416 has also alpha, we simply keep it.
2022-05-26 15:26:27 +02:00
Martin Pulec
5d68388c16
host.cpp: use VIDEO_CODEC_FIRST inst. of magic 1
2022-05-26 10:53:12 +02:00
Martin Pulec
e861ed5fcd
testcard_common: custom handle v210 custom for 8b
...
Returned custom handling of v210 when source is 8 bit.
Unfortunately this is a special case if the common conversion is used by
testcard2, which is able to generate 8-bit pattern only but we may want
to convert to v210, anyways.
2022-05-26 10:53:12 +02:00
Martin Pulec
cc5a309dd6
testcard2: use testcard_show_codec_help
2022-05-26 10:53:12 +02:00
Martin Pulec
d0afddb108
testcard: simplified
2022-05-26 10:53:12 +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
ffb2f714b9
testcard: do not hardcode list of pixfmts
...
Created specializtion of mostly obsolete show_codec_help() for testcard
taking into account convertibility of codecs.
2022-05-26 10:53:02 +02:00
Martin Pulec
9743625c80
codec, pixfmt listing: added legend
2022-05-26 09:07:28 +02:00
Martin Pulec
b5072a936e
ProRes: fixed metadata (not inter-frame)
2022-05-26 09:06:58 +02:00
Martin Pulec
6729a8a1ad
audio: use const audio_frame
2022-05-25 17:09:42 +02:00
Martin Pulec
330b0918c9
ALSA play: do not override input frame
...
If audio was 8 bit, conversion to unsigned was performed on input frame.
+ use the side-buffer also for interleaved->non-interleaved conversion
2022-05-25 15:31:10 +02:00
Martin Pulec
5b0c8ca268
video pattern generator: add full-depth Y216/Y416
2022-05-25 14:47:18 +02:00
Martin Pulec
fe8d353e0c
video_codec.c: make some functions explicitly bool
2022-05-25 14:47:18 +02:00
Martin Pulec
3a1efd97b0
RTDXT decompress: check init errors
2022-05-25 14:47:18 +02:00