Michael Fabian 'Xaymar' Dirks
11f72c9bc7
ci: Integrate Github Actions
...
Integrates Github Actions which is much much faster than AppVeyor in all areas, and even supports multiple workflows instead of forcing everything into just one workflow like AppVeyor does. Plus we get 20 parallel builds that nearly instantly finish, which results in much faster feedback without having to run our own Jenkins CI.
The builder and packager scripts have been adjusted to add support for both Windows and Linux, and both AppVeyor and Github Actions. Additionally to that, the builder script now correctly executes x32 and x64 steps in a chain, instead of waiting for the other architecture to finish first. This further reduces build times.
2019-09-04 00:30:06 +02:00
Michael Fabian 'Xaymar' Dirks
5c8939b4a8
encoder: Delay init until resolution, framerate and color are finalized
...
Fixes a crash due to reading/writing out of bounds when the resolution, color and framerate end up different than initially expected during the creation of the encoder. While this does change the error message that appears when the encoder can't be initialized, it is better than outright crashing OBS Studio.
2019-08-11 21:46:21 +02:00
Michael Fabian 'Xaymar' Dirks
a4b3131c50
project: Version 0.2.0
...
* Completely rewrote most of the plugin from scratch to unify the encoder class into one file, resulting in much lower code and size overhead and all optimizations being in effect for all encoders.
* Removed old ProRes encoder interface as it has been replaced with the new interface.
* Added support for NVidias H.264/AVC NVENC Encoder with all options, including the capability for YUV 4:4:4 encoding. It is slightly faster and less CPU intensive than the version included with OBS Studio.
* Added support for NVidias H.265/HEVC NVENC Encoder with all options. This finally brings the HEVC market to NVidia people in addition to the AMD people that have already been able to use this with enc-amf.
0.2.0
2019-08-11 03:38:41 +02:00
Michael Fabian 'Xaymar' Dirks
617229ce84
codecs/hevc: Add HEVC NAL parsing capabilities
...
While this doesn't help with thumbnails, it helps some players get the playback started quicker. Also was a fun exercise too.
2019-08-11 03:22:55 +02:00
Michael Fabian 'Xaymar' Dirks
e3263c2372
encoder: Fix streaming and recording for H.264/AVC encoders
2019-08-11 01:06:49 +02:00
Michael Fabian 'Xaymar' Dirks
e84eedb8f9
encoder: Fix cast warning
2019-08-10 22:40:45 +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
6523b82c95
encoder: Apply coding guidelines
2019-08-10 22:39:06 +02:00
Michael Fabian 'Xaymar' Dirks
3253e97dec
encoder: Implement initial support for AVC streaming
...
This is currently not fully working, but it makes OBS not crash so that's good enough for this commit.
2019-08-10 22:37:49 +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
8af061ea02
ci: Don't run both package steps in the same build
2019-08-03 15:54:46 +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
f9e56d33f3
encoder: Remove BGR3 support
2019-07-26 23:38:31 +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
fbf5ffb921
encoder: Set unique Id to actual encoder name and add unsupported tag
2019-07-25 02:41:15 +02:00
Michael Fabian 'Xaymar' Dirks
8b2fafbbd1
encoder: Cleanup
2019-07-25 02:10:42 +02:00
Michael Fabian 'Xaymar' Dirks
10110cb62e
encoder: Select best video format in get_video_info
...
Skips a later conversion step if we can find a potential identical or better quality video format, without ignoring the color format override in the settings itself.
2019-07-25 01:37:01 +02:00
Michael Fabian 'Xaymar' Dirks
e17fa119a1
ffmpeg/tools: Function to go from AVPixelFormat to video_format
2019-07-25 01:36:16 +02:00
Michael Fabian 'Xaymar' Dirks
3e7fd3ea55
encoder: Properly flush delayed encoders
2019-07-24 21:47:39 +02:00
Michael Fabian 'Xaymar' Dirks
97a68404c0
ffmpeg/avframe-queue: Unreference frames that may have a ref-counted obj
2019-07-24 21:22:35 +02:00
Michael Fabian 'Xaymar' Dirks
24bc913f53
encoder: Ensure that delayed encoders are flushed properly
2019-07-24 21:22:14 +02:00
Michael Fabian 'Xaymar' Dirks
11cc88deb6
encoder: Fix incorrect or missing Intra-Only check
2019-07-24 21:21:54 +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
7c3e313bcd
encoder: Rename class from generic to encoder
2019-07-24 19:51:05 +02:00
Michael Fabian 'Xaymar' Dirks
adeea2fb43
encoders/generic: Move file
2019-07-24 19:17:08 +02:00
Michael Fabian 'Xaymar' Dirks
8c80f6c79e
project: Remove old Prores implementation
2019-07-24 19:14:21 +02:00
Michael Fabian 'Xaymar' Dirks
ee0c7706a0
ffmpeg/swscale: Apply clang-tidy fix for l <-> L
2019-07-24 14:38:30 +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
034100e44b
ffmpeg/tools: Fix BT.601 color format
2019-07-24 14:19:14 +02:00
Michael Fabian 'Xaymar' Dirks
0399989238
project: Apply patches from const correctness checks
2019-07-24 14:19:00 +02:00
Michael Fabian 'Xaymar' Dirks
1a8f4d6a02
ci: Improve CI build scripts
...
Build both 32 and 64 bit in parallel, and also handle the INSTALL target correctly.
2019-07-24 14:01:29 +02:00
Michael Fabian 'Xaymar' Dirks
60e5499d3d
locale: Add new NVENC translation strings
0.2.0pre3
2019-07-24 12:58:29 +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
c3d1793f14
encoders/generic: Only check MAX_AV_PLANES
2019-07-24 11:19:33 +02:00
Michael Fabian 'Xaymar' Dirks
57ebb9d866
encoders/generic: Handle frame queue in send_frame
2019-07-24 11:19:33 +02:00
Michael Fabian 'Xaymar' Dirks
9f8e4b67c6
encoders/generic: Don't use a pointer for AVPacket
...
Also allocate 8MB of storage initially, and free the buffers in the packet on stop.
2019-07-24 11:19:33 +02:00
Michael Fabian 'Xaymar' Dirks
c61b2aead1
encoders/generic: Ensure that the packet is using default values
2019-07-24 11:19:33 +02:00
Michael Fabian 'Xaymar' Dirks
f7db2d45af
encoders/generic: Don't throw away AVFrames
2019-07-24 11:19:33 +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
51a5396fb1
locale: Add description to buffer size
2019-07-24 11:19:32 +02:00
Michael Fabian 'Xaymar' Dirks
9db2219582
encoders/generic: Prefer formats with no conversion
...
Fixes the issue where an encoder has RGB0 available as input, but avcodec_find_best_pix_fmt_of_list would choose YUV420P instead for RGBA.
2019-07-24 11:19:32 +02:00
Michael Fabian 'Xaymar' Dirks
68bacc07dc
encoders/generic: Fix NV12 support and improve copy performance
...
FFmpeg's swscale does not properly copy all planes when the pixel format is NV12, so instead we will handle cases where nothing actually changes and we just have to copy memory.
2019-07-24 11:19:29 +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
ac68c2f4c8
codecs/h264: Add H264 codec information
2019-07-22 12:34:50 +02:00