Fix hang on stream termination if no frames can be captured (#709)

This commit is contained in:
Cameron Gutman
2023-01-05 10:21:38 -06:00
committed by GitHub
parent f1c225fccc
commit 00aa23b342
9 changed files with 39 additions and 30 deletions

View File

@@ -505,10 +505,10 @@ public:
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
std::this_thread::sleep_for(1ms);
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';

View File

@@ -684,10 +684,10 @@ public:
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
std::this_thread::sleep_for(1ms);
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';
@@ -805,10 +805,10 @@ public:
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
std::this_thread::sleep_for(1ms);
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';

View File

@@ -134,9 +134,10 @@ public:
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';
@@ -239,9 +240,10 @@ public:
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';

View File

@@ -476,10 +476,10 @@ struct x11_attr_t : public display_t {
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
std::this_thread::sleep_for(1ms);
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';
@@ -587,10 +587,10 @@ struct shm_attr_t : public x11_attr_t {
case platf::capture_e::error:
return status;
case platf::capture_e::timeout:
std::this_thread::sleep_for(1ms);
continue;
img = snapshot_cb(img, false);
break;
case platf::capture_e::ok:
img = snapshot_cb(img);
img = snapshot_cb(img, true);
break;
default:
BOOST_LOG(error) << "Unrecognized capture status ["sv << (int)status << ']';