Commit Graph

91 Commits (master)

Author SHA1 Message Date
palana fa8b2b044e Assume QSV being supported means Haswell or better
This should work for Broadwell/Skylake/whatever comes next, could
potentially break for new chips with old Quick Sync units though
2015-09-21 16:49:07 +02:00
palana d3d3edd40b Add more QSV CPUIDs 2015-09-21 16:49:06 +02:00
palana 89b560b82d Add note in Encoding Settings if on Vista with QSV compatible hardware 2014-09-25 17:51:28 +02:00
palana a976a2cbec Disable QSV on Vista 2014-09-25 02:28:08 +02:00
palana 90580dad52 Fix livelock in QSV encoder when QSV fails to process frames
When QSVHelper.exe gets stuck the surfaces are never released, hence
idle_tasks remains empty
2014-09-11 01:49:35 +02:00
palana af275ce1e4 Remove CrashErrors from QSV initialization 2014-08-27 11:15:43 +02:00
palana 2e9ed941c0 Fix QSV encoder info output for CBR enabled with custom params 2014-08-13 01:18:19 +02:00
palana 0b0b5d28e6 Add custom parameters for QSV rate control modes
Custom parameters can be set via profile settings. This also allows
selecting newer modes such as look ahead modes on Haswell+.
2014-08-13 00:37:52 +02:00
palana e81c04448b Handle QSVHelper hangs more gracefully 2014-08-13 00:37:50 +02:00
palana 9014a4fecf Implement QSV encoder flushing 2014-08-13 00:37:48 +02:00
palana 3fa992beed Fix stop signal types in QSV encoder 2014-08-13 00:37:47 +02:00
palana 5f1f3d40b3 Track pts of encoded pictures 2014-08-13 00:37:22 +02:00
palana 7f4522f9b5 Fix an issue with OBS to QSV bitrate conversion
Also log a warning if (user) configured bitrate exceeds maximum QSV bitrate
(maximum QSV bitrate is 2**16-1 = 65535)
2014-05-09 04:44:14 +02:00
palana a966964617 Use QSVHelper utilities in Encoder_QSV.cpp
Utilities.h will now also undefine min/max macros so std::min/std::max and
similar functions can be used
2014-05-09 04:44:13 +02:00
Richard Stanway e508216b31 Minor static analysis fixes 2014-03-10 23:18:15 +01:00
palana 02024ffcca Remove a whole bunch of tabs ...
Someone make Visual Studio remember that OBS1 uses spaces
2014-02-26 15:53:50 +01:00
palana 818f56b5f1 Add message to encoding settings if QSV is unavailable due to misconfiguration
Unfortunately this doesn't adequately cover configuration for Sandy Bridge (i.e.
monitor connected/forced output) and mainboards without Intel graphics support
2014-02-24 21:42:17 +00:00
palana 2088e99a69 Move encoder selection to encoding settings
This will automatically update profiles to the new encoder selection
according to the old setting resolution, i.e. UseQSV && UseNVENC results
in QSV being selected.

This should free up some space to allow more encoder troubleshooting and
diagnostics in the settings window (relevant QSV changes coming soon ...)

Also hopefully made supported encoder settings a bit more clear by
disabling more settings if the selected encoder doesn't support them
2014-02-23 13:19:42 +01:00
palana 780f7d410b Make QSVHelper exit early in case no compatible graphics card is found
This should fix initialization on Optimus laptops if QSVHelper is forced
to the Nvidia graphics card (fix as in not initialize a non-accelerated
session resulting in sub par performance)

Sadly this will also disable the QSV checkbox in advanced settings for
some people that should have QSV support
2014-02-20 15:59:46 +01:00
palana ec421e580a Add 'profile' advanced option support for QSV encoder
Fix #304
2014-02-15 22:45:57 +01:00
palana e8467dc87f Add QSV preset selection setting
Also improve string output for QSV target usages
2014-02-14 04:08:26 +01:00
palana ed314cfce6 Implement QSV preset selection via init request 2014-02-14 03:45:29 +01:00
palana 5ae6cca2fc Output qsvimpl error only if there actually is a qsvimpl parameter 2014-01-11 04:26:39 +01:00
palana 13906eb934 Refactored encoder initialization, display errors instead of silently using x264
Added a bunch of (localized) error messages for QSV and NVENC
2014-01-04 01:41:23 +01:00
palana 2f3d119e32 Output complete sei_rbsp (including rbsp_trailing_bits) 2014-01-03 07:35:37 +01:00
palana d1a272e5f0 Stop processing NAL_SEI when rbsp_trailing_bits is encountered 2014-01-03 07:35:36 +01:00
BtbN 270481f91d Fix some warnings 2014-01-02 17:37:31 +01:00
palana 764f01f778 Added h264 main profile override to QSV encoder 2013-12-19 15:19:16 +01:00
palana f802bb8868 Log bframe_delay adjustments and lower bframe_delay instead of crashing 2013-12-06 00:56:16 +01:00
palana 62865a59fc Fixed frame_ticks calculation and added bounds check for init_pts 2013-12-05 04:59:25 +01:00
palana 58c2ad0227 Improve DTS handling for QSV encoder
Improves audio delay/sync
2013-12-04 20:25:33 +01:00
palana 0e9663f696 Extend QSV resolution check for Ivy Bridge 2013-12-04 20:25:32 +01:00
palana d84552ad82 Fixed typo in QSV encoder height check 2013-12-04 20:25:32 +01:00
palana c1021997b7 Fixed broken identifier 2013-10-17 00:57:41 +02:00
palana 3bacf25fea Added detection for unsupported high resolutions on Sandy Bridge QSV 2013-10-17 00:12:47 +02:00
palana 56b2baf286 Add error message for failed initialization on windows 7 (and earlier) 2013-10-07 16:34:53 +02:00
palana 134a13c80d Moved QSV encoder implementation to QSVHelper
Notable improvements:
- fixes d3d11 mode on all tested configurations
- should improve compatibility with Optimus (untested)
2013-09-25 21:36:21 +02:00
palana a426dda319 Added more descriptive error messages to QSV encoder
QSV encoder will now trigger a CrashError if there are no new idle tasks after 1500 ms
2013-09-14 00:10:23 +02:00
palana a2d553d793 Made custom QSV implementation setting default to hardware autoselect 2013-09-13 18:57:51 +02:00
palana 45e6c0b3a9 Updated AUTHORS and various file header copyright notices 2013-09-12 04:14:26 +02:00
palana 55af151ab5 Handle aborted QSV sync operations 2013-09-10 00:43:07 +02:00
Gol-D-Ace 2a09d703b3 Removed whitespace in OBSApi/Utility/Profiler.cpp + Source/Encoder_QSV.cpp 2013-09-07 18:19:26 +02:00
palana a7823ffec4 Actually use selectable color space matrix in QSV encoder 2013-09-07 02:50:05 +02:00
palana 693e659737 Implemented selectable color space matrix in QSV encoder 2013-09-06 19:53:25 +02:00
palana 1936f24c33 Refactored memset calls in QSV encoder 2013-09-06 19:47:26 +02:00
palana 25080db838 Add mutex to RequestBuffers and related calls in QSV encoder 2013-09-06 16:06:07 +02:00
palana 0a7da6cb4d Re-enabled profiler calls in QSV encoder 2013-09-06 15:42:26 +02:00
jp9000 fd014bfe97 Allow selectable color space matrix outputs 2013-09-03 09:10:17 -07:00
palana e605e3c8f6 Disabled profiler calls in QSV encoder
Fixes crashes due to new encoder thread
2013-09-01 22:50:53 +02:00
jp9000 f17ddc84c6 Separated encoding to a separate thread to prevent constant framerate issues, and increased frame timing precision to nanosecond approximation 2013-08-31 13:13:50 -07:00