Automatically use virtual display if no active display is detected
This commit is contained in:
+6
-1
@@ -223,7 +223,12 @@ namespace proc {
|
||||
});
|
||||
|
||||
#ifdef _WIN32
|
||||
if (config::video.headless_mode || launch_session->virtual_display || _app.virtual_display) {
|
||||
if (
|
||||
config::video.headless_mode // Headless mode
|
||||
|| launch_session->virtual_display // User requested virtual display
|
||||
|| _app.virtual_display // App is configured to use virtual display
|
||||
|| !video::allow_encoder_probing() // No active display presents
|
||||
) {
|
||||
if (vDisplayDriverStatus != VDISPLAY::DRIVER_STATUS::OK) {
|
||||
// Try init driver again
|
||||
initVDisplayDriver();
|
||||
|
||||
@@ -41,7 +41,6 @@ using namespace std::literals;
|
||||
|
||||
namespace video {
|
||||
|
||||
namespace {
|
||||
/**
|
||||
* @brief Check if we can allow probing for the encoders.
|
||||
* @return True if there should be no issues with the probing, false if we should prevent it.
|
||||
@@ -70,7 +69,6 @@ namespace video {
|
||||
BOOST_LOG(error) << "No display devices are active at the moment! Cannot probe the encoders.";
|
||||
return false;
|
||||
}
|
||||
} // namespace
|
||||
|
||||
void free_ctx(AVCodecContext *ctx) {
|
||||
avcodec_free_context(&ctx);
|
||||
|
||||
@@ -349,6 +349,12 @@ namespace video {
|
||||
|
||||
bool validate_encoder(encoder_t &encoder, bool expect_failure);
|
||||
|
||||
/**
|
||||
* @brief Check if we can allow probing for the encoders.
|
||||
* @return True if there should be no issues with the probing, false if we should prevent it.
|
||||
*/
|
||||
bool allow_encoder_probing();
|
||||
|
||||
/**
|
||||
* @brief Probe encoders and select the preferred encoder.
|
||||
* This is called once at startup and each time a stream is launched to
|
||||
|
||||
Reference in New Issue
Block a user