win-dshow: Fix virtualcam output a default video format

This commit is contained in:
Exeldro 2022-12-16 15:49:14 +01:00 committed by Jim
parent cb6b5cc249
commit 3840f92777
3 changed files with 7 additions and 18 deletions

@ -1 +1 @@
Subproject commit 2fa2e488b7dc4a266eb8f5be56ced626e39a6159 Subproject commit bac23f2ca01b712b9740c6a3822d32c134ab6325

View File

@ -14,18 +14,11 @@ extern volatile long locks;
/* ========================================================================= */ /* ========================================================================= */
VCamFilter::VCamFilter() VCamFilter::VCamFilter() : OutputFilter()
: OutputFilter(VideoFormat::NV12, DEFAULT_CX, DEFAULT_CY,
DEFAULT_INTERVAL)
{ {
thread_start = CreateEvent(nullptr, true, false, nullptr); thread_start = CreateEvent(nullptr, true, false, nullptr);
thread_stop = CreateEvent(nullptr, true, false, nullptr); thread_stop = CreateEvent(nullptr, true, false, nullptr);
AddVideoFormat(VideoFormat::I420, DEFAULT_CX, DEFAULT_CY,
DEFAULT_INTERVAL);
AddVideoFormat(VideoFormat::YUY2, DEFAULT_CX, DEFAULT_CY,
DEFAULT_INTERVAL);
format = VideoFormat::NV12; format = VideoFormat::NV12;
placeholder.scaled_data = nullptr; placeholder.scaled_data = nullptr;

View File

@ -10,10 +10,6 @@
#include "../../../libobs/util/windows/WinHandle.hpp" #include "../../../libobs/util/windows/WinHandle.hpp"
#include "../../../libobs/util/threading-windows.h" #include "../../../libobs/util/threading-windows.h"
#define DEFAULT_CX 1920
#define DEFAULT_CY 1080
#define DEFAULT_INTERVAL 333333ULL
typedef struct { typedef struct {
int cx; int cx;
int cy; int cy;
@ -30,11 +26,11 @@ class VCamFilter : public DShow::OutputFilter {
bool in_obs = false; bool in_obs = false;
enum queue_state prev_state = SHARED_QUEUE_STATE_INVALID; enum queue_state prev_state = SHARED_QUEUE_STATE_INVALID;
placeholder_t placeholder; placeholder_t placeholder;
uint32_t obs_cx = DEFAULT_CX; uint32_t obs_cx = 0;
uint32_t obs_cy = DEFAULT_CY; uint32_t obs_cy = 0;
uint64_t obs_interval = DEFAULT_INTERVAL; uint64_t obs_interval = 0;
uint32_t filter_cx = DEFAULT_CX; uint32_t filter_cx = 0;
uint32_t filter_cy = DEFAULT_CY; uint32_t filter_cy = 0;
DShow::VideoFormat format; DShow::VideoFormat format;
WinHandle thread_start; WinHandle thread_start;
WinHandle thread_stop; WinHandle thread_stop;