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
commit 00aa23b342
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
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 << ']';