Commit Graph

4044 Commits

Author SHA1 Message Date
Martin Pulec
45bcb26572 added vc_copylineY216toV210() 2022-05-09 13:54:24 +02:00
Martin Pulec
ee9db30752 GL: change vsync back to 1
This reverts b80fcf18 while addressing the resize issue that the
original commit was supposed to solve.

Adaptive VSync may cause tearing if real frame rate is lower than
nominal (display) frame rate.

see also #227
2022-05-09 10:41:30 +02:00
Martin Pulec
e3ee7a24e7 GLSL: compilation, link: check errors 2022-05-06 16:23:57 +02:00
Martin Pulec
a51ded322b GL: v210 shader: use Rec. 709 coeffs 2022-05-06 16:23:44 +02:00
Martin Pulec
4db63a3431 GL: rewritten the v210 shader to GLSL 1.1 2022-05-06 15:29:53 +02:00
Martin Pulec
6aacbccdcf testcard, pattern generator: generate full-depth v210 2022-05-06 09:58:36 +02:00
Martin Pulec
be2dd026d3 added RG48->v210 conversion 2022-05-06 09:56:04 +02:00
Martin Pulec
5d62199aea testcard: help updates 2022-05-05 14:09:38 +02:00
Martin Pulec
be01d313e4 GL: added shader to display v210 natively 2022-05-05 14:09:38 +02:00
Martin Piatka
8a6a2fff1e GL: Preserve refresh rate when creating fullscreen window 2022-05-05 12:11:03 +02:00
Martin Pulec
f0d3021644 gl_check_error() as macro
Macro allows to print the place (file/line/function) where the error occured.
2022-05-04 16:31:26 +02:00
Martin Pulec
1327c0619f transmit H.264: use rtpenc_h264_get_next_nal
Also removed remaining H.264 codestream parsing/splitting code - it was
a bit over-engineered.
2022-05-04 10:20:57 +02:00
Martin Pulec
ff3d41cf92 RTSP cap.: fixed err return value 2022-05-04 09:08:18 +02:00
Martin Pulec
ddd2f77da7 RTSP, GL: added warnings about not supported options 2022-05-03 17:02:27 +02:00
Martin Pulec
4ba5f85072 RTSP cap.: set CURLOPT_NOSIGNAL to 1
This flag should be set in multithreaded environment:

  https://stackoverflow.com/questions/30098087/is-libcurl-really-thread-safe
2022-05-03 16:45:43 +02:00
Martin Pulec
2fbcc40894 lavd: mitigate flood of errors at H.264 dec start
Do not pass decoder frames until one beginning with SPS is received -
this mitigates flood of errors at the beginning of H.264 decode, which
may be potentially harmful because it pushes off other messages
(including warnings).
2022-05-03 16:38:23 +02:00
Martin Pulec
a20a29b4ce RTSP cap.: emit extra SPS/PPS at beginning of stream
+ added example command to generate a stream  to test with
2022-05-03 13:52:05 +02:00
Martin Pulec
1701fb11c1 RTP UDP: eliminated else-after-return 2022-05-03 13:52:05 +02:00
Martin Pulec
9021a82fc8 Worker: signal after unlock
This is more correct anyway but for some reason, it hung when
instrumented by valgrind.
2022-05-03 13:52:04 +02:00
Martin Pulec
11ca5b3aaf RTSP: fixed synchronization problems + leaks 2022-05-03 13:52:04 +02:00
Martin Pulec
db04e0e27f RTSP cap.: moved again to C 2022-05-03 13:52:01 +02:00
Martin Pulec
a1d23aea78 RTSP improved logging
+ remove message that the module is broken
+ remove untested comment
+ printf RTSP responses only if verbose or in case of error
2022-05-02 16:58:37 +02:00
Martin Pulec
8fc614df0f RTSP cap.: use my_curl_easy_perform abstr. 2022-05-02 16:12:33 +02:00
Martin Pulec
d40233f695 rtpdec_h264.c: process NAL units in 1st pass
processing in 2nd is too late - we need to set data offset before the
second pass
2022-05-02 16:12:33 +02:00
Martin Pulec
5ca1ed3730 RTSP cap.: get rid of glib dependency
It was needed only for base64 decode, which is perhaps needless
overhead.
2022-05-02 16:12:32 +02:00
Martin Pulec
c52375177e RTSP cap.: fixed get_nals parsing
';' is not a valid delimiter for sprop-parameters-set units according to
RFC 6185, example line from SDP:

    a=fmtp:96 packetization-mode=1; sprop-parameter-sets=Z2QAKKyyAPAET8uAiAAAAwAIAAADAZR4wZJA,aOvDyyLA; profile-level-id=640028
2022-05-02 16:12:32 +02:00
Martin Pulec
ead6aec22e RTSP capture: get_nals simplified
Simplified processing of NALs received in SDP.

- removed writing start code _after_ the serialized NAL
2022-05-02 16:12:32 +02:00
Martin Pulec
6e525b3df5 rtpdec_h264: use symbolic names for constants
+ move NAL type 0 from unhandled to invalid (only different msg)
2022-05-02 16:12:32 +02:00
Martin Pulec
94bb693c8e dump disp.: check export_init return value 2022-05-02 16:12:31 +02:00
Martin Pulec
476aff2008 RTSP cap.: improved logging 2022-05-02 16:12:31 +02:00
Martin Pulec
13b3705098 RTSP cap.: fixed init crash
Fixed a crash when init fails and done function is called - check if
threads that are to be destroyed were actually created.
2022-05-02 16:12:30 +02:00
Martin Pulec
5e57ec64ae rtpdec_h264.c: print also nri 2022-05-02 16:12:30 +02:00
Martin Pulec
bfb210ade0 RTSP cap.: print curl error messages 2022-05-02 16:12:30 +02:00
Martin Pulec
67c443c785 dump disp.: small refactor
+ do not export discarded frame
+ assure that the exported frame is ours (otherwise the lifetime is
  uncertain eg. if we decide to write the frame in thread)
2022-05-02 16:12:29 +02:00
Martin Pulec
e9f8a95ea1 dump display: fixed a crash
For opaque codecs (H.264), the allocated size was actually smaller than
(maximal) data len set. That is usually not an issue, but when
destroying, the invalid maximum is exported (because PUTF_DISCARD with
unmodified frame). Steps to reproduce:

    uv -t testcard:size=1280x128 -c libavcodec:codec=H.264 -d dump
2022-05-02 16:12:29 +02:00
Martin Pulec
fad9d20ade rtpdec_h264.c: process reassembled NAL
Process reassembled NAL from fragmentation units (FU).
2022-05-02 16:12:29 +02:00
Martin Pulec
40c3821204 rtpdec_h264.c: process NAL units from STAP-A 2022-05-02 16:12:29 +02:00
Martin Pulec
c3634debae rtpdec_h264.c: reverse order of aggregate NALs fix
NAL units are put to the buffer in a reverse order (from the end of the
frame to the beginning), but aggregate (STAP-A) NAL units were processed
straight while put in the buffer from the end.
2022-05-02 16:12:28 +02:00
Martin Pulec
4a15dafa87 rtpdec_h264.c: moved NAL processing to sep. func 2022-05-02 16:12:28 +02:00
Martin Pulec
1d3db3e726 rtpdec_h264.c: simplify a bit 2022-05-02 16:12:28 +02:00
Martin Pulec
1fedeebca5 rtpdec_h264.c: small refactor 2022-05-02 16:12:27 +02:00
Martin Pulec
6a96ccc082 rtpdec_h264.c: size of NAL in STAP-A is little-end 2022-05-02 16:12:27 +02:00
Martin Pulec
16530807bb lavc conv: remove some unused sse compat 2022-05-02 16:12:27 +02:00
Martin Pulec
b1a7f2229a lavc split also to/from conv file
The combined file had ~3k lines which is quite too much.
2022-05-02 16:12:26 +02:00
Martin Pulec
d4841687c4 split libavcodec_common to multiple files
This allows use of libavcodec_common with eg. audio without to need to
include all the conversions burden.
2022-05-02 16:12:26 +02:00
Martin Pulec
512cfc181e added param to specify libavcodec logging level
The output may be flooded by decoding errors (eg. H.264) which may not
be desirable. If not specified, the verbosity level for libavcodec is
deduced from UltraGrid log level.
2022-05-02 16:12:26 +02:00
Martin Pulec
0275d4e669 register_param: warn if max params reached 2022-05-02 16:12:25 +02:00
Martin Pulec
49eb5219a0 register_param: skip repeating registr. of param
Skip repeating registration of the same parameter.

This allows registration of the param from within more modules (eg.
common file included in multiple plugins). Warning is issued if already
registered param has a different description.
2022-05-02 16:12:25 +02:00
Martin Pulec
53e6876ac7 vc_copyliner10k: pointless double cast to same type 2022-05-02 16:12:25 +02:00
Martin Piatka
053640ce69 lavc: Fix channel layouts on new API
AAC encoder didn't like unspecified layout + format was not set on
avframe
2022-05-02 13:08:53 +02:00