Commit Graph

186 Commits

Author SHA1 Message Date
Martin Piatka
356bd85d7e capabilities: report codec priority 2021-03-09 14:39:42 +01:00
Martin Piatka
31b2bf7e81 video_compress: libavcodec: report options 2021-03-09 14:39:41 +01:00
Martin Piatka
14fcf70fb6 capabilities: report video compression codecs, encoders, options 2021-03-09 14:39:41 +01:00
Martin Pulec
9c0322e4e7 Lavc: set header_insertion_mode for AMF
Otherwise there won't be repeating synchronization points in the stream
(VPS/PPS/SPS) and thus it would not be possible to decode without.
2021-03-05 10:59:15 +01:00
Martin Pulec
a7c6f31bb5 Libavcodec: set 4x4 tiling for SVT HEVC/AV1
This may allow more parallel decoding of the encoded stream.
2021-01-15 15:59:07 +01:00
Martin Pulec
4ebdf0a1bf Lavc: more specific NVENC tune warning 2021-01-13 14:46:37 +01:00
Martin Pulec
143456770b Video frame: copy whole frame metadata in some places 2021-01-12 15:42:33 +01:00
Martin Pulec
013f22c652 Lavc: updated NVENC settings
Used new values instead of deprecated in current libavcodec.

Refer to GitHub issue #119.
2021-01-07 16:22:19 +01:00
Martin Pulec
a0f48ad255 Lavc: try to set CQP or CRF for all codecs
Try to set CQP or CRF for all codecs if user requests it. Eg. NVENC
positively supports QP.
2020-11-13 14:50:27 +01:00
Martin Pulec
e80c7321e9 Libavcodec: more fine grain verbosity setting 2020-11-02 10:12:03 +01:00
Martin Pulec
abb1d69fe7 Lavc: removed setting of range after init
FFmpeg actually sets the CS=ITU601 dubiously - it writes it even for
BT.701 limited range which than can lead to confusion on the decoder
(especially GPUJPEG) how to interpret. Therefore, we "utilize" the bug
that avcodec_open2() overrides our values for YUVJ formats and doesn't
emit dubious CS=ITU601 COM marker.
2020-10-05 15:05:19 +02:00
Martin Pulec
23ca8f37bd Lavc: set range/colorspec to codec 2020-10-05 15:05:18 +02:00
Martin Pulec
5086d08dee Lavc: default to 420 only for I420
Before that, 420 was used for every non-interlaced video (even v210). Of
course if available, which was not the case for RGB pixel formats.
2020-09-22 16:06:52 +02:00
Lukas Rucka
42d9f364bd Fix missleading abbreviations in encoder/decoder option (libavcodec) 2020-09-14 11:20:29 +02:00
Martin Pulec
2389a74d1b lavc: fixed bitrate overflow with eg. 8K@120 FPS 2020-08-28 15:10:28 +02:00
Martin Pulec
9307a8a8ca Lavc: list avail pixfmts also in "-c libavcodec:encoder=libx264:help" 2020-08-05 08:44:48 +02:00
Martin Pulec
321d6985f6 Lavc/lavd: decrease avail codecs print log level 2020-08-05 08:26:54 +02:00
Martin Pulec
a02725a94b Lavc: changed pixfmt selection
Changed sorting preference of FFmpeg input pixel formats - now nearest higher
(or equal) are most preferred and furthest lesser least preferred.
2020-08-03 13:17:39 +02:00
Martin Pulec
a465f681f8 Lavc: fixed codec init with swscale
Pixel format needs to be set before the codec initialization.

Fixes command: uv -t testcard:1920:1080:25:R12L -c libavcodec:encoder=mjpeg
2020-07-29 10:40:13 +02:00
Martin Pulec
d59050b384 Lavcd/sws: use full-range color-space transformations 2020-07-22 11:06:38 +02:00
Martin Pulec
9647133b40 Lavc: show list of codecs on "--param lavc-use-codec=help" 2020-07-17 16:35:47 +02:00
Martin Pulec
7a7cb358c5 Lavc: more clear message when codec and encoder doesn't match 2020-07-08 16:12:10 +02:00
Martin Pulec
3fe99ab168 Lavc: set intra-refresh also for libx264rgb
+ ensure (assert) that intra-refresh is set (unless disabled)
2020-06-22 09:02:44 +02:00
Martin Pulec
563e64106d Lavc: fixed incorrectly set intra-refresh for libx264
For x264, intra-refresh option was not set at all. Instead it was set
for x265 which doesn't support it in this way.
2020-06-17 15:48:16 +02:00
Martin Pulec
70cf9da646 Fixed 219459aa (previous commit) 2020-06-17 15:27:32 +02:00
Martin Pulec
219459aa5d Lavc: allow codec option listing 2020-06-16 15:08:19 +02:00
Martin Pulec
0c0d374469 Lavc: do not crash when codec was not opened
Do not crash when codec was not opened but we have swscale.
2020-06-16 10:35:57 +02:00
Martin Pulec
48895b0783 ADD_TO_PARAM: salt is no longer needed
UNIQUE_NAME is used instead of the salt
2020-06-09 14:02:37 +02:00
Martin Pulec
883c0a5904 --param lavc-use-codec: updated help 2020-06-08 10:30:51 +02:00
Martin Pulec
6d038a06dd Lavc: print swscale presence 2020-06-08 10:29:24 +02:00
Martin Pulec
c6370d1888 Lavc: use swscale even if lavc-use-codec not given
Try to use swscale conversion if UltraGrid conversion was not found and
"--param lavc-use-codec" was not explicitly given.

+ fixed few invalid comments
2020-06-05 14:46:45 +02:00
Martin Pulec
4f9ed08c02 Lavc: qCompress needs to be 0.5-1 for H.265 2020-06-05 11:04:09 +02:00
Martin Pulec
659da8edeb Lavc: fixed incorrectly printed lavd 2020-06-05 10:06:13 +02:00
Martin Pulec
51a81029ef Lavc print_codec_supp_pix_fmts: do not crash on NULL pointer 2020-06-01 16:09:40 +02:00
Martin Pulec
d43b531ae9 Lavc: reflect thread opt also for conv threads
If the thread option is a number, use it also as a number of conversion
threads.
2020-05-31 23:04:28 +02:00
Martin Pulec
ba25fb3567 Lavc: fixed setting thread mode
Since commit 96c99f49, the thread option was not honored at all.
2020-05-31 22:42:25 +02:00
Martin Pulec
8bef2dd757 Lavc: allow passing thread number 2020-05-31 21:34:07 +02:00
Martin Pulec
5646e0dece Lavc: use closed GOP for SVT encoders
The HEVC/AV1 SVT encoders default to open GOP which is unsuitable for
UltraGrid - unable to refresh from the middle of the stream. Even
playback from the start won't work (because the first frame is
"consumed" by color space probe).
2020-04-06 16:24:23 +02:00
Martin Pulec
a7b7952c86 Lavc: support for non-2 divisible I420 2020-03-03 08:02:47 +01:00
Martin Pulec
c05c4ecf38 Lavc: support for I420 2020-03-02 17:12:59 +01:00
Martin Pulec
96c99f490b Lavc: updated 'thread' option handling
Use the option for all codecs + disable threading if explicitly
specified (even if default setting enable it, eg. with H.264 with
zerolatency implies slice threading).
2020-02-20 16:37:47 +01:00
Martin Pulec
06b521f2d0 Libavcodec common: UV<->AV pixfmt conversion funcs
Use form UV<->AV pixfmt conversions functions rather than the C++ map in
order to maintain compatibility with C code.
2019-10-22 13:46:06 +02:00
Martin Pulec
763d354794 Lavc: moved UG<->libav codec map to common 2019-10-21 13:49:23 +02:00
Martin Pulec
e2848647fa Print compressed size and time in verbose mode 2019-10-11 10:21:30 +02:00
Martin Pulec
2b80be1071 Libavcodec: suppress warnings 2019-10-10 09:20:39 +02:00
Martin Pulec
294041f60b Libavcodec common: don't include conv list in header
Do not include conversion lists in header - it adds dependency on the
libavcodec_common.c file to every module that (transitively) includes
the header (eg. GL) which results in undefined references with modular
build.
2019-10-03 16:57:54 +02:00
Martin Pulec
aaa00dbe8c Moved replace_all() to utils 2019-10-03 14:43:52 +02:00
Martin Pulec
5117570b34 Lavc: be more verbose when no pixfmt conversion found 2019-10-02 09:50:41 +02:00
Martin Pulec
d0c288e850 Lavc: do not dereference NULL pointer for AV_CODEC_ID_NONE 2019-09-26 18:37:20 +02:00
Martin Pulec
c49a137301 Lavc: allow backslash preceeding colon
Allow backslash preceeding colons where needed (eg. for x264opts, that
may contain colons).
2019-09-20 16:54:09 +02:00