Commit Graph

195 Commits

Author SHA1 Message Date
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 97a53d261f encoders/generic: Fix getting stuck in EAGAIN endless loop
Also removes some left over debug logs.
2019-07-07 15:07:09 +02:00
Michael Fabian 'Xaymar' Dirks e45a82350e encoders/generic: Fix crash and disable static properties 2019-07-07 14:44:08 +02:00
Michael Fabian 'Xaymar' Dirks b6ad026eb3 encoders/generic: Allow overriding of thread count 2019-07-07 14:33:58 +02:00
Michael Fabian 'Xaymar' Dirks df63677529 encoders/generic: Allow overriding color format
Some encoders don't have all options available with the automatically detected color format, so allowing the user to override the detected color format opens up more options.
2019-07-07 14:26:51 +02:00
Michael Fabian 'Xaymar' Dirks d1ff4a7adc encoders/generic: Don't instantly drop frames on EAGAIN
Instead of instantly dropping frames on EAGAIN, try first recieving a packet (if not already done so) and then resubmit the same frame. If it still doesn't work, drop the frame as we have no way to deal with that situation yet.
2019-07-07 13:50:47 +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 b442914ebe encoders/generic: Replace generated UI with the new UI Handlers 2019-07-07 13:46:09 +02:00
Michael Fabian 'Xaymar' Dirks 8fb69d6870 plugin: Add global codec to UI Handler map 2019-07-07 13:42:39 +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
Michael Fabian 'Xaymar' Dirks 9ce8f39efc plugin: Implement support for initializers and finalizers 2019-07-07 13:39:23 +02:00
Michael Fabian 'Xaymar' Dirks 924c64cd37 clang-format: Don't ever break string literals automatically
This option is very broken and just results in unreadable text.
2019-07-07 13:28:53 +02:00
Michael Fabian 'Xaymar' Dirks 99003d5193 utility: Add initializer functions 2019-07-07 12:57:30 +02:00
Michael Fabian 'Xaymar' Dirks c5d81e41a6 encoders/prores_aw: Update to match new std::shared_ptr<AVFrame> code 2019-07-07 12:18:43 +02:00
Michael Fabian 'Xaymar' Dirks 2f0cd790ed encoders/generic: Update to match new std::shared_ptr<AVFrame> code 2019-07-07 12:14:46 +02:00
Michael Fabian 'Xaymar' Dirks c5ff5d224d ffmpeg/avframe-queue: Upgrade to shared_ptr AVFrame
Removes problems with memory leaks due to lost references and other issues.
2019-07-07 12:14:24 +02:00
Michael Fabian 'Xaymar' Dirks 89fd38e604 ci: Fix package name 2019-07-07 01:51:35 +02:00
Michael Fabian 'Xaymar' Dirks 56807370a9 cmake: Update to 23.2.1 obs-studio binaries 2019-07-07 01:47:32 +02:00
Michael Fabian 'Xaymar' Dirks e7c12a52f3 ffmpeg/generic: Strip generated options and always apply bitrate and profile in update 2019-07-07 01:12:06 +02:00
Michael Fabian 'Xaymar' Dirks 976e5dba4f encoders/generic: Reduce warnings, fix encoding, remove threading options, and profiling
* Improved encoding loop can now deal with early and late receive requests.
* Lots of warnings fixed.
* Removed all threading options (they were broken anyway).
* Added some profiler calls.
2019-07-07 00:34:56 +02:00
Michael Fabian 'Xaymar' Dirks 16015f180b plugin: Use av_codec_is_encoder instead of custom check 2019-07-07 00:32:21 +02:00
Michael Fabian 'Xaymar' Dirks 042c934516 ffmpeg/tools: Remove a few warnings and translate more errors 2019-07-07 00:32:05 +02:00
Michael Fabian 'Xaymar' Dirks 53651c29be ffmpeg/avframe-queue: Fix a few warnings 2019-07-07 00:31:33 +02:00
Michael Fabian 'Xaymar' Dirks 5b05cc1504 locale: Remove text for frame queue (unused) 2019-07-06 14:22:28 +02:00
Michael Fabian 'Xaymar' Dirks 0a20b750b8 encoders/generic: Implement video encoding and always use frame queue
This implements video encoding for the generic encoder by using frame queue and a set lag amount (in frames). The lag amount determines for how many frames no repeated attempts at submitting or retrieving a frame should be made, and after that many frames have been submitted the generic encoder will try to retrieve packets if at all possible. If not possible, it will delay for as long as possible to show an Encoder overloaded message.
2019-07-06 14:22:15 +02:00
Michael Fabian 'Xaymar' Dirks 9a58a6a5ff encoders/generic: Implement generic encoder for all ffmpeg encoders 2019-07-06 13:10:00 +02:00
Michael Fabian 'Xaymar' Dirks 143b7f585f ffmpeg/tools: Add function to translate encoder capabilities 2019-07-06 13:09:21 +02:00
Michael Fabian 'Xaymar' Dirks 93c6f0b35a encoders/prores_aw: Fix warnings and formatting 2019-07-06 13:09:21 +02:00
Michael Fabian 'Xaymar' Dirks 3154443e18 ffmpeg/swscale: Fix warning and broken get_target_size 2019-07-06 13:09:21 +02:00
Michael Fabian 'Xaymar' Dirks 74fb3a3847 ci: Fix package names and always build packages 2019-06-28 20:45:56 +02:00
Michael Fabian 'Xaymar' Dirks 2d131b8566 cmake: Fix broken if/endif check for Windows 2019-06-28 20:39:42 +02:00
Michael Fabian 'Xaymar' Dirks 35db9e714a ci: New scripts for AppVeyor 2019-06-28 20:34:26 +02:00
Michael Fabian 'Xaymar' Dirks 01e1c70a02 cmake: Apply improvements from Stream Effects
* Copyright updated to include current year.
* Description updated to no longer talk about AMD encoder.
* Increased minimum CMake version to 3.8 from 3.1.
* Renamed project to xmr-ffmpeg-encoders from enc-ffmpeg.
* Add additional compiler options for Clang, GNU GCC, Intel C and MSVC.
* Set the C++ standard to C++17 with no non-standard extensions.
* Slightly improve project generation.
2019-06-28 20:25:19 +02:00
Michael Fabian 'Xaymar' Dirks 4a63db78d2 cmake: Disable CppCheck if not found (not installed) 0.1.0 2018-11-25 21:42:07 +01:00
Michael Fabian 'Xaymar' Dirks b0cc52bbc5 cmake: Revert use of Zeranoe ffmpeg binaries
OBS Studio is a little bit behind with the FFmpeg Binaries, so the Zeranoe binaries will lead to the plugin being unable to load - which is not what we want. Instead just use the OBS Studio dependencies and offer a way to specify an already downloaded directory and also respect FFmpegPath if set.
2018-11-25 21:42:07 +01:00
Michael Fabian 'Xaymar' Dirks 586765555d cmake: Fix installer script 2018-11-25 21:42:07 +01:00
Michael Fabian 'Xaymar' Dirks 71e04315ca ci: Improved caching, re-use OBS dependencies and logging
Massively speeds up repeated builds by not relying on random undeterministic download speeds of the AppVeyor machines, in addition to reducing the stress on the remote end for each build done. Additionally the logging changes make it so that the errors and warnings are shown in the AppVeyor UI.
2018-11-25 21:42:07 +01:00
Michael Fabian 'Xaymar' Dirks 120ddcd7e4 cmake: Fix data path 2018-11-24 13:17:32 +01:00
Michael Fabian 'Xaymar' Dirks 3f5f8a501b cmake: Fix ffmpeg search path 2018-11-24 13:04:27 +01:00
Michael Fabian 'Xaymar' Dirks 5e67430006 cmake: Disable SAFESEH and use zeranoe ffmpeg binaries 2018-11-13 20:02:22 +01:00
Michael Fabian 'Xaymar' Dirks 0997e209bc cmake: Versioning, ffmpeg dependency, installer and more 2018-11-13 19:47:33 +01:00
Michael Fabian 'Xaymar' Dirks b2b0aac330 ci: AppVeyor support 2018-11-13 19:47:14 +01:00
Michael Fabian 'Xaymar' Dirks ec75fe23fe Initial code (pre-GitHub)
Contains:
- ffmpeg object wrappers
- base encoder class
- Apply ProRes encoder (prores_aw)
- OBS plugin structure
2018-11-13 19:04:13 +01:00
Michael Fabian 'Xaymar' Dirks e1d41695a2 Intial commit 2018-11-13 19:01:53 +01:00