Michael Fabian 'Xaymar' Dirks
e4474c29c4
ui/nvenc: Improve and fix some options and logging
...
Some of the options shown to the user were never actually being applied, which resulted in encoding that looked worse than it could have. With this these options are now applied and users may experience a sudden increase or decrease in quality if they had these options changed.
In addition to that, some options now use a triple state field, which allows them to also have a default/middle state instead of being On or Off.
Furthermore, log output is now read from the actual AVCodecContext, which contains the actual values used in the encoding, instead of relying on the OBS settings to be the actual values.
2019-11-16 21:44:03 +01:00
Michael Fabian 'Xaymar' Dirks
59e33a132b
ui/nvenc: Remove "Encoder" from name
...
It's already known that this is an encoder.
2019-11-16 13:04:10 +01:00
Michael Fabian 'Xaymar' Dirks
be7b2737b4
encoder, ui/handler: Massive Refactor
...
This refactor is primarily to make the entire interface more unified and capable of more than before.
2019-11-15 17:29:24 +01:00
Michael Fabian 'Xaymar' Dirks
18c50b3cbb
ui/handler: Refactoring
2019-11-13 11:44:40 +01:00
Michael Fabian 'Xaymar' Dirks
2184e5bc71
project: Reapply formatting
2019-11-04 18:32:47 +01:00
Michael Fabian 'Xaymar' Dirks
f21cbe9aba
ui/nvenc_shared: Fix lag calculation for rc-lookahead
2019-10-19 02:40:50 +02:00
Michael Fabian 'Xaymar' Dirks
2f8acc58cf
encoder: Separate get_defaults and get_properties for SW/HW encoders
2019-10-04 19:27:45 +02:00
Michael Fabian 'Xaymar' Dirks
e4e76dae8f
ui/nvenc: Override lag in frames to use Max. B-Frames
2019-10-03 20:10:03 +02:00
Michael Fabian 'Xaymar' Dirks
4cac28a8a3
ui/handler, encoder: Allow overriding lag in frames
...
The lag in frames is not dictated by the number of threads being used by some encoders. At least for hardware encoders, the expected frame lag in real time encoding is 1 + the number of bframes
2019-10-03 20:09:34 +02:00
Michael Fabian 'Xaymar' Dirks
0461b20e1b
ui/handler: Allow Codec handlers to select the proper device
2019-09-29 19:16:26 +02:00
Michael Fabian 'Xaymar' Dirks
fe71944199
ui/prores_aw_handler: Workaround for FFmpeg bug with ProRes in Matroska
...
In current FFmpeg, whenever Matroska with ProRes is demuxed it creates an atom that is just 8 bytes short of the true size necessary.
We can work around this by padding the actual packet by 8 0x00 bytes, which should result in older FFmpeg versions working fine.
An FFmpeg patch is available: http://ffmpeg.org/pipermail/ffmpeg-devel/2019-September/250724.html
2019-09-29 07:27:22 +02:00
Michael Fabian 'Xaymar' Dirks
62eae3827b
ui/handler: Add function for packet processing
2019-09-29 06:55:42 +02:00
Michael Fabian 'Xaymar' Dirks
6bc1cb9c88
ui/nvenc*: Print all settings to the log file
2019-09-28 01:54:28 +02:00
Michael Fabian 'Xaymar' Dirks
9efda8af8d
ui/prores_aw_handler: Print profile to log
2019-09-27 16:29:01 +02:00
Michael Fabian 'Xaymar' Dirks
0c9764a15c
encoder: Use codec name instead of encoder info
2019-09-27 16:28:44 +02:00
Michael Fabian 'Xaymar' Dirks
5c5a235502
ui/handler: Always have a no-op function
2019-09-27 16:16:39 +02:00
Michael Fabian 'Xaymar' Dirks
a32f8dd28b
ui/prores_aw_handler: Override automatic color format when profile demands it
...
Certain ProRes profiles require a very specific color format, otherwise the avcodec_open2 will fail with EPERM, which is very confusing.
2019-09-27 12:41:13 +02:00
Michael Fabian 'Xaymar' Dirks
a9f39527f6
handler: Additional functionality for handlers
...
Allows overriding color format, encoder info, importing and exporting from/to ffmpeg command line and most importantly logging actual settings to the log file.
2019-09-27 12:35:34 +02:00
Michael Fabian 'Xaymar' Dirks
7faea52d67
ui/nvenc_shared: Hide the QP group if mode is not CQP or VBR
2019-08-10 22:40:37 +02:00
Michael Fabian 'Xaymar' Dirks
0c9dd4b2f8
ui/nvenc_shared: Add Quality Target for VBR
2019-08-10 22:36:51 +02:00
Michael Fabian 'Xaymar' Dirks
c6d842d52d
ui/nvenc_shared: Reduce upper limit for lookahead to 32
...
This matches the actual limit in the SDK.
2019-08-10 19:39:00 +02:00
Michael Fabian 'Xaymar' Dirks
61c4c80c8f
project: Add and apply new contributing guidelines
2019-08-10 19:31:57 +02:00
Michael Fabian 'Xaymar' Dirks
f5052f45c6
project: Fix support for avcodec version 58 and newer
2019-08-03 09:45:56 +02:00
Michael Fabian 'Xaymar' Dirks
6db094d778
ui/nvenc_hevc_handler: Add name override
2019-07-25 03:06:51 +02:00
Michael Fabian 'Xaymar' Dirks
8d0b12dfe3
ui/nvenc_h264_handler: Add name override
2019-07-25 03:06:42 +02:00
Michael Fabian 'Xaymar' Dirks
2c2d42ebaf
encoder: Support Key-Frame options in all encoders
2019-07-24 20:53:18 +02:00
Michael Fabian 'Xaymar' Dirks
c8f3f9201c
ui/handler: Add ability to override UI name
2019-07-24 20:19:05 +02:00
Michael Fabian 'Xaymar' Dirks
8fdc944be8
codecs/hevc: Remove global option maps
...
These were moved into the actual UI handler now
2019-07-24 14:37:19 +02:00
Michael Fabian 'Xaymar' Dirks
9dcce1c655
project: Apply even more patches from const correctness checks
2019-07-24 14:20:11 +02:00
Michael Fabian 'Xaymar' Dirks
d4ffd20085
ui/nvenc_shared: Fix support for Quantization Parameters
2019-07-24 12:58:15 +02:00
Michael Fabian 'Xaymar' Dirks
2840a7fbb1
ui/nvenc_shared: Fix Rate Control Mode CQP and AQ Strength
2019-07-24 11:19:33 +02:00
Michael Fabian 'Xaymar' Dirks
fa5c421d34
project: Drop GPL in favor of MIT license
2019-07-24 11:04:24 +02:00
Michael Fabian 'Xaymar' Dirks
d178200800
ui/nvenc_h264_handler: Add UI handler for NVENC H264
2019-07-22 12:34:50 +02:00
Michael Fabian 'Xaymar' Dirks
a5d14c87ff
ui/nvenc_hevc_handler: Add UI handler for NVENC HEVC
2019-07-22 09:12:07 +02:00
Michael Fabian 'Xaymar' Dirks
de1a687b8d
ui/nvenc_shared: Add shared UI for NVENC HEVC and H264
2019-07-22 09:11:25 +02:00
Michael Fabian 'Xaymar' Dirks
f530f9ee9f
ui/debug_handler: Fix warnings about unused variables
2019-07-22 00:55:02 +02:00
Michael Fabian 'Xaymar' Dirks
f15769ddb7
ui/debug_handler: Don't leak the temporary AVCodecContext*
2019-07-21 02:41:45 +02:00
Michael Fabian 'Xaymar' Dirks
b7fdd5491a
ui/debug_handler: Print flags as normal values instead of hexadecimal
2019-07-13 00:16:42 +02:00
Michael Fabian 'Xaymar' Dirks
830ebf31d9
ui/prores_aw_handler: Disable profile file while encoding
2019-07-07 16:55:02 +02:00
Michael Fabian 'Xaymar' Dirks
076df05b37
ui/debug_handler: Fix flags
2019-07-07 16:54:48 +02:00
Michael Fabian 'Xaymar' Dirks
3bbbea7b42
ui/debug_handler: Add debug handler for implementing new UI Handlers
2019-07-07 16:34:15 +02:00
Michael Fabian 'Xaymar' Dirks
e5bf18f2a6
ui/prores_aw_handler: Implement UI Handler for prores_aw
2019-07-07 13:46:11 +02:00
Michael Fabian 'Xaymar' Dirks
dbdf915a07
ui/handler: Implement UI Handler interface class
...
Adds the ability to override the UI for very specific encoders in order to properly support customized and detailed UI for each encoder. This design is flexible and allows for any kind of UI generator to work, without relying on an actual object too much.
2019-07-07 13:42:22 +02:00