85 Commits

Author SHA1 Message Date
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
palana
d6ac596dcf Added keyframe interval option support for QSV 2013-08-05 03:05:31 +02:00
palana
1b41d2fefa Implemented encoder flushing for QSV 2013-08-03 05:13:36 +02:00
Richard Stanway
5b6f99e72d Flush encoder before exiting video processing loop 2013-07-21 09:06:59 -04:00
palana
4cd481f138 Added QSV profile for platforms with non-functional D3D11 API version 1.6 support and broken acceleration on API version 1.4 2013-07-12 06:03:45 +02:00
palana
7d68f732cc Improved QSV device auto initialization and added override via custom parameter
Auto initialization is still triggered if the session initialization fails with custom qsvimpl parameter
2013-07-10 04:01:04 +02:00
palana
fcc8b34c57 Added headless Direct3D11 mode for QSV on Ivy Bridge or better 2013-06-26 01:43:43 +02:00