Sooo, I wanna talk about the QSV Encoder currently implemented in OBS Studio.
I already made a thread about a bug I have with the current implementation (see https://obsproject.com/forum/threads/quicksync-encoder-failure.48782/)
Old OBS (OBS Classic?) had a similar bug. It was solved thanks to Shinck's patch for QSVHelper.exe (see https://obsproject.com/forum/thread...killed-encode-failed.19230/page-3#post-161984)
So, I kinda tried to implement the same thing on OBS Studio.
Aaaand so far, it works. I already put a patch on my bug thread, but it was incomplete and would crash as soon as you restart the encoder (stop streaming/recording and restart).
I made some more modifications (still based on Shinck's patch) and now, well it works fine.
I forked the current master branch on GitHub and applied my patch. It is a single commit:
https://github.com/Incalex/obs-studio/commit/8e7c00fea3cf46cc6e47ebbe95eca4f40e97a601
Now, I haven't yet made a pull request because I'm fairly sure I'm REALLY far from respecting OBS Style Guidelines (and let's be honest, I did that a really ugly way).
In conclusion, my patch is more of a PoC on how to fix my problem (but a stable one. I'm really using it to stream!).
Keep in mind it is totally specific on Windows 7 as Win8+ use a DirectX11 Allocator and Device (and it uses specific DX11.1 functions that were never ported on Win7).
Also, I did all of that without any knowledge about DirectX, or QSV. It's totally a port of Shinck's patch on OBS Studio. All credits should go to him!
For the moment, I don't really wanna PR that commit. I'm mostly asking if you think it's not "that" bad and I should mostly try to respect more guidelines without doing a huge refactor (and would love receiving any remarks about my awful patch on what I should change), or if you prefer to take all that data and implement things on your side.
At least, I hope I helped o/
I already made a thread about a bug I have with the current implementation (see https://obsproject.com/forum/threads/quicksync-encoder-failure.48782/)
Old OBS (OBS Classic?) had a similar bug. It was solved thanks to Shinck's patch for QSVHelper.exe (see https://obsproject.com/forum/thread...killed-encode-failed.19230/page-3#post-161984)
So, I kinda tried to implement the same thing on OBS Studio.
Aaaand so far, it works. I already put a patch on my bug thread, but it was incomplete and would crash as soon as you restart the encoder (stop streaming/recording and restart).
I made some more modifications (still based on Shinck's patch) and now, well it works fine.
I forked the current master branch on GitHub and applied my patch. It is a single commit:
https://github.com/Incalex/obs-studio/commit/8e7c00fea3cf46cc6e47ebbe95eca4f40e97a601
Now, I haven't yet made a pull request because I'm fairly sure I'm REALLY far from respecting OBS Style Guidelines (and let's be honest, I did that a really ugly way).
In conclusion, my patch is more of a PoC on how to fix my problem (but a stable one. I'm really using it to stream!).
Keep in mind it is totally specific on Windows 7 as Win8+ use a DirectX11 Allocator and Device (and it uses specific DX11.1 functions that were never ported on Win7).
Also, I did all of that without any knowledge about DirectX, or QSV. It's totally a port of Shinck's patch on OBS Studio. All credits should go to him!
For the moment, I don't really wanna PR that commit. I'm mostly asking if you think it's not "that" bad and I should mostly try to respect more guidelines without doing a huge refactor (and would love receiving any remarks about my awful patch on what I should change), or if you prefer to take all that data and implement things on your side.
At least, I hope I helped o/