Commit Graph

114 Commits

Author SHA1 Message Date
Martin Pulec
79531ceacf Lavc: codec ordering to a separate function 2019-06-13 14:01:50 +02:00
Martin Pulec
fd869ea034 Lavc: table for pixfmt conversions 2019-06-13 14:01:50 +02:00
Martin Pulec
d4dded81ca Video codec: fixed some warnings 2019-06-07 13:44:33 +02:00
Martin Pulec
59f4183df7 Lavc: use libx264 params also for libx264rgb 2019-05-30 11:38:18 +02:00
Martin Pulec
879d557810 Lavc: fixed unset linesizes 2019-05-30 11:38:17 +02:00
Martin Piatka
1f56d139a1 Video compress: lavc: Decode to v210 with memcpy only if input is v210 2019-04-08 13:37:11 +02:00
Martin Piatka
f15ed9c5bd Video compress: lavc: Fix segfault when pixfmt unsupported 2019-04-08 13:06:36 +02:00
Martin Pulec
bf979a1c56 Lavc: allow RGB for libx264rgb
* when codecs supports pixel format natively, it is now passed directly
* also when no conversion is needed, data aren't memcpied anymore
2019-03-29 15:04:05 +01:00
Martin Piatka
835239498d Separate async frame and async tile APIs 2019-03-13 15:00:05 +01:00
Martin Pulec
071bc9b3ad Libavcodec: support for AV1 2019-03-01 14:04:05 +01:00
Martin Pulec
c76512df6b lavc: pretty print 2019-03-01 14:03:16 +01:00
Martin Pulec
dafc6f48af Lavc: added cmath header (compile fix)
+ reorder headers
2019-02-22 16:38:32 +01:00
Martin Pulec
9f6048e144 Added RFC 2435 compliant RTP JPEG transport
Compliant JPEGs can be now sent with SDP or RTSP.
2018-12-17 10:37:53 +01:00
Martin Pulec
3f8d00391f Libavcodec: added HuffYUV and FFV1 2018-11-13 15:13:21 +01:00
Martin Piatka
1e2f38c97c Rewrite video_frame callbacks to be set by decoders 2018-09-12 23:29:08 +02:00
Martin Pulec
eacade34e9 Lavc: warn if we cannot set CRF/CQP 2018-08-22 11:23:09 +02:00
Martin Pulec
60cab503ec Libavcodec: use new API for iterating codecs 2018-08-22 11:23:09 +02:00
Martin Pulec
d7827ea014 Copyright isn't license
Get entirely rid of licensing stuff - we do not explicitly license
UltraGrid.
2018-08-15 13:29:51 +02:00
Martin Pulec
30e76180ff Libavcodec QSV: set intra-refresh by default 2018-07-03 09:46:31 +02:00
Martin Pulec
abc593e7e3 Libavcodec NVENC: changed default RC
The former caused pulsing and is deprecated. The current one doesn't
make frames of the exactly same size (I-frames are bigger).
2018-06-27 14:33:46 +02:00
Martin Piatka
4dfe336949 hwaccel: Split code into more files, compile each hwaccel independently 2018-05-16 14:19:24 +02:00
Martin Pulec
c71ad1760a Libavcodec: fixed crash when VAAPI init fails 2018-01-08 15:21:38 +01:00
Martin Pulec
098383cfd9 Lavc: H.264 - use ultrafast for >1080p30 2018-01-08 15:21:38 +01:00
Martin Pulec
78602d9715 Lavc: changed preset selection 2018-01-08 15:21:38 +01:00
Martin Pulec
84b5e18667 Libavcodec 58 compat 2018-01-02 09:57:47 +01:00
Martin Pulec
85d5faf4a7 Libavcodec: fixed pkt->size == 0 (crash in export)
This fixes a crash in video_export.c on assertion data_len != 0.
2017-09-21 10:34:12 +02:00
Martin Pulec
0d6f2a3ca9 Libavcodec: get rid of multiple cpu_count
Was duplicitly in state_video_compress_libav and setparam_param.
2017-06-21 10:12:14 +02:00
Martin Piatka
af8c478a38 SSE vectorisation for to_nv12 and yuv420p_to_yuv422 2017-06-20 12:55:14 +02:00
Martin Piatka
747f230024 VAAPI hw accelerated encoding support 2017-06-13 14:27:14 +02:00
Martin Pulec
f6aa52e426 Libavcodec: show info which codec is not supported
Show info which UltraGrid codec is not supported - has no transcoding to
libavcodec native pixel formats.
2017-06-05 11:00:57 +02:00
Martin Pulec
7c2730237b Libavcodec: hot-fixed initialization of params
Parameters were initialized after being used.
2017-05-22 17:08:23 +02:00
Lukas Rucka
98943bf56d Compilation compatibility fix - use std::isnan instead of isnan (broken gcc c++11 support) 2017-04-05 22:24:56 +02:00
Martin Pulec
2894c313a2 Better input value check for bitrates and MTU
* better check values' boundries
* for MTU and traffic shapper also check if there are reasonable values
  (eg. for the cases when they are interchanged by mistake)
2017-03-15 16:45:47 +01:00
Martin Pulec
8a537bedde Libavcodec: changed one warning 2017-02-24 14:37:53 +01:00
Martin Pulec
feae858c65 Validate optional commandline parameters 2017-02-23 16:30:43 +01:00
Martin Pulec
1c02c5e8b0 New way of documenting additional params (--param)
All parameters can now be listed with '--params help'.
2017-02-20 11:27:30 +01:00
Martin Pulec
4950bf95e8 Libavcodec: small cleanups
* denote which identifiers are 8-bit
* simplify pixel format conversions lookup in decoder
* if encoder could not have been initialized, writes for which pixel
  format (useful for NVENC where HW may not support all pixel formats)
2017-02-15 10:18:30 +01:00
Martin Pulec
c76b4f95e9 Libavcodec: experimental support for 10-bit 2017-02-15 10:17:59 +01:00
Martin Pulec
0bff18d80f Libavcodec enc.: make functions static 2017-02-15 10:16:07 +01:00
Martin Pulec
541f5727d7 Libavcodec: use CBR for QSV 2017-02-15 10:12:51 +01:00
Martin Pulec
9c0d08526a Libavcodec NVENC: disable spatial AQ by default
AQ requires more computational power from decoder. Currently NVENC from
libavcodec uses only one slice, therefore the decoder isn't much
parallelized. Consequently, the use of AQ can be the difference if the
decoder is sufficiently powerful to decode the stream or not.
2017-01-26 14:55:16 +01:00
Martin Pulec
00bb07667f Libavcodec: opt to enable interlaced DCT (H.264) 2017-01-23 19:01:52 +01:00
Martin Pulec
e7673158f2 Libavcodec: added VP9 2017-01-18 11:13:24 +01:00
Martin Pulec
666850b638 Libavcodec NVENC: Adjust parameters to recommended
Use settings recommended by NVIDIA for low-latency setups.
2017-01-04 15:00:35 +01:00
Martin Pulec
24c0c93075 Libavcodec: try different pix. formats for encoder
This fixes problem when hevc_nvenc reports YUV444 although device
doesn't support it (eg. Maxwell NVIDIA cards) and thus avcodec_open2()
fail. From now, different pixel formats are examined and used if open is
successful (YUV420 in this case).
2017-01-04 13:14:22 +01:00
Martin Pulec
8f46a8bb4d Libavcodec: fixed x264/x265 ban in BSD build
Use of libx264/libx265 is forbidded even if given with 'encoder' option.
On the other hand, alternative encoders are allowed for H.264/H.265 in
BSD build.
2016-10-27 16:00:39 +02:00
Martin Pulec
020d9e24a0 Libavcodec: use zerolatency for NVENC 2016-10-12 16:41:18 +02:00
Martin Pulec
1559345727 Libavcodec: use regex to match encoder names
* use regex to match encoder names - this is mainly due to often NVENC
  encoders' renaming (nvenc, nvenc_h264, h264_nvenc)
* do not enforce AV_PIX_FMT_NV12 for NVENC anymore, instead there is a
  generic command-line parameter (lavc-use-codec) to allow user select
  one desired encdoer pixel format.
* set default preset for h264_qsv/hevc_qsv to medium - it is implicit
  but to be consistent with other similar encoders
2016-10-10 20:44:37 +02:00
Martin Pulec
eae680fe85 Libavcodec: use tune zerolatency for x265
x265 supports only single tune parameter (in opposite to x264, where we
currently use "zerolatency,fastdecode").
2016-10-10 20:44:37 +02:00
Martin Pulec
47d1cb4014 Libavcodec: removed deprecated functions (encoder)
+ fixed leaked codec in audio
+ fixed warnings in codec listing (--audio-codec help)
2016-10-10 20:44:37 +02:00