Commit Graph

68 Commits

Author SHA1 Message Date
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
b4eff8ed39 lavc: fixed new aud. ch. layout API warnings 2022-04-12 14:43:16 +02:00
Martin Pulec
e839703307 Lavc P210: fixed compat
Do not define P210 to AV_PIX_FMT_NONE if not available - this causes
crash when accessing result of av_pix_fmt_desc_get() in
video_compress/libavcodec.cpp.
2022-04-11 11:55:10 +02:00
Martin Pulec
cb885df890 libavcodec: get rid of global locking
this is no longer needed (lavc calls are thread-safe now)
2022-04-01 10:28:55 +02:00
Martin Pulec
abfd209be4 FFmpeg P210 compat
+ silenced cast warnings (check with asserts)
2022-03-30 14:05:11 +02:00
Martin Pulec
9e258beddc lavcd fixed non-420 subsampling warning
The improvement introduced by commit 12ee84143 was actually not entirely
correct - since the condition was inverted, all subexpressions needed to
be inverted as well.

+ the condition for pixfmt_has_420_subsampling was not changed from the
  old 422 version at all
2022-03-28 16:22:49 +02:00
Martin Pulec
12ee84143f lavc: issue hwacc compat warning for any non-4:2:0
Display warning for every non-4:2:0 subsampling (previously was
displayed for 4:2:2 but also 4:4:4 is now normally supported).
2022-01-17 13:51:17 +01:00
Martin Pulec
a22ff7a5f1 lavc: debug dump spot for converted AVFrame
+ change first parameter of serialize callback to (const void *)
+ renamed "lavd-uncompressed" to "lavd-avframe" - uncompressed is vague
  since there are multiple forms of uncompressed - avframe, ultragrid
  pixfmt...
2021-11-26 12:19:17 +01:00
Martin Pulec
f0c63651d2 libavcodec_common: av_to_uv_convert - use const rgb_shift 2021-11-24 13:26:40 +01:00
Martin Pulec
1b3b27eb7c Updated copyright dates for modified files 2021-11-08 15:43:14 +01:00
Martin Piatka
fab71806eb Lavc: print warning about 422 subsampling hwaccel support 2021-08-12 14:57:29 +02:00
Martin Pulec
7af48e236b Libavcodec compat fix
av_packet_alloc/av_packet_free were actually added already in lavc 57.8.0.

+ handle NULLs
+ av_packet_free: fix - set pointed pointer to NULL
2021-05-20 10:33:40 +02:00
Martin Pulec
a186ae2112 Libavcodec: removed deprecated AVPacket usage
+ make usages of AVCodec const
2021-05-17 13:17:09 +02: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
23ca8f37bd Lavc: set range/colorspec to codec 2020-10-05 15:05:18 +02:00
Martin Pulec
9c484e86b3 Lavc common: added get_uv_to_av_conversion() 2020-09-21 14:34:03 +02:00
Martin Pulec
9e4b317e8f File cap.: use UG conversion + codec opt
Use UltraGrid covnversion if available instead of swscale. Added codec option
2020-08-14 15:11:21 +02:00
Martin Pulec
d59050b384 Lavcd/sws: use full-range color-space transformations 2020-07-22 11:06:38 +02:00
Martin Pulec
31d9809fcd Updated documentation
Updated authors, copyright to 3-clause BSD (where possible) and file-level Doxygen
2019-11-09 13:47:11 +01:00
Martin Pulec
5eddc6546b Replaced function attributes pure with const
Const is actually more powerful than pure while all those function
satisfy those more strict requirements.
2019-11-04 07:53:10 +01:00
Martin Pulec
507a419bb1 Libavcodec common: return print_decoder_error
Needed by audio libavcodec, if linking with the object, there would be
needed to link also with VDPAU which doesn't look fortunate.
2019-10-31 09:56:03 +01:00
Martin Pulec
a6dd67032b Libavcodec common: moved functions from hdr to src 2019-10-23 09:54:57 +02: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
9e9e77e135 Libavcodec common: do not export API of convs
Mark conversion functions as static and remove from header.
2019-10-07 18:28:51 +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
cff978a082 Do not convert AV_PIX_FMT_* to AV_PIX_FMT_NONE
This partially corrects commit f83230c2 which converts the pix format to
0 if not found (old FFMPEG) whereas on some places non-0 is expected
(see previous commit).
2019-09-26 18:37:28 +02:00
Martin Pulec
f83230c208 Libavcodec common: compat macros improvments
* reodered
* correctly found out some exact API numbers
* use lavu instead of lavc for some macros that are for lavu functions'
  compatibility
2019-09-25 08:49:07 +02:00
Martin Pulec
8a6674d516 Libavcodec common: fixed version check 2019-09-25 08:36:13 +02:00
Martin Pulec
de00f170eb Added r10k_to_bgr0 2019-09-23 14:23:31 +02:00
Lukas Rucka
babdb79239 COMPAT: compile even with antique version of ffmpeg/libavcodec 2019-07-23 16:01:01 +02:00
Martin Pulec
d00639aea6 libavcodec_common.h: removed no longer used items 2019-06-26 16:25:49 +02:00
Martin Piatka
55bc7d3f82 lavc: Add r10k to yuv422p10le conversion 2019-06-20 12:17:37 +02:00
Martin Pulec
79e90e6501 Libavcodec: toggle optimalizations + params restrict
Note: C99 restrict cannot be used because restrict is not a keyword in
C++. __restrict__ or __restrict can be used (the later is supported also
by MSVC).

+ rename min/max macro
2019-06-18 14:59:20 +02:00
Martin Pulec
6b1cf9c2b5 Libavcodec conversions: rename 2019-06-18 14:59:20 +02:00
Martin Pulec
81f7b632d6 Libavcodec: moved conversions to a separate file 2019-06-18 14:59:20 +02:00
Martin Pulec
e285a2318f Lavd: print text representation of error 2019-06-14 08:55:04 +02:00
Martin Pulec
3a8d3382d0 Libavcodec: AV_CODEC_ID_AV1 backward compat 2019-04-08 17:36:23 +02:00
Martin Pulec
f8656a08d6 SDP: complain about unsupported codecs 2018-11-23 16:12:01 +01:00
Martin Pulec
3f8d00391f Libavcodec: added HuffYUV and FFV1 2018-11-13 15:13:21 +01:00
Martin Pulec
84b5e18667 Libavcodec 58 compat 2018-01-02 09:57:47 +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
37fac85d02 Libavcodec: do not use VP9 where not available 2017-02-14 21:27:26 +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
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
Martin Pulec
86eb848b2c Libavcodec: fixed avcodec_free_context compat
+ compute bitrate tolerance differently (now it is at most 6 frames)
2016-08-01 14:19:19 +02:00
Martin Pulec
6bd457cee6 Libavcodec: compat
+ fixed some mess in configure.ac
2016-07-26 15:06:04 +02:00
Martin Pulec
6ced9a57f6 Lavd: removed some deprecated functions
+ fixed leaked AVCodecContext
2016-06-29 10:36:55 +02:00