Prototype/Demo: minor bugfix
Add failure check when opening next URing slot for a submission; this ''can'' fail when the ring is fully populated -- which in theory should never happen in our setup, yet can always, in practice...
This commit is contained in:
parent
3f61b106cc
commit
835f468e1b
2 changed files with 5 additions and 2 deletions
|
|
@ -203,6 +203,9 @@ UringVideoPlayer::addNextReadSubmissions (io_uring& uRing, int inputFD)
|
||||||
{
|
{
|
||||||
size_t srcOffset = calcSrcFrame (nextRead_);
|
size_t srcOffset = calcSrcFrame (nextRead_);
|
||||||
io_uring_sqe* readSubmission = io_uring_get_sqe (&uRing);
|
io_uring_sqe* readSubmission = io_uring_get_sqe (&uRing);
|
||||||
|
if (nullptr == readSubmission)
|
||||||
|
__FAIL ("URing slot allocation failed");
|
||||||
|
|
||||||
io_uring_prep_read (readSubmission
|
io_uring_prep_read (readSubmission
|
||||||
,inputFD
|
,inputFD
|
||||||
,& buffer_[nextRead_ % RING_SIZ]
|
,& buffer_[nextRead_ % RING_SIZ]
|
||||||
|
|
|
||||||
|
|
@ -45,7 +45,7 @@ class EglDisplay
|
||||||
using Buffer = std::array<PIX, WIDTH*HEIGHT * 3 >;
|
using Buffer = std::array<PIX, WIDTH*HEIGHT * 3 >;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Interface retrieve pixel data for video frames to display.
|
* Interface: retrieve pixel data for video frames to display.
|
||||||
* - this is a Glib::Dispatcher, and the attached slot shall be
|
* - this is a Glib::Dispatcher, and the attached slot shall be
|
||||||
* triggered whenever data for a new frame is available
|
* triggered whenever data for a new frame is available
|
||||||
* - pixel data is accessed (threadsafe) by invoking #retrieveFrame()
|
* - pixel data is accessed (threadsafe) by invoking #retrieveFrame()
|
||||||
|
|
@ -85,7 +85,7 @@ class EglDisplay
|
||||||
float scaleX_{1};
|
float scaleX_{1};
|
||||||
float scaleY_{1};
|
float scaleY_{1};
|
||||||
|
|
||||||
/** Callback functor to access current pixel data */
|
/** Callback to retrieve pixel data */
|
||||||
PixelFeed& pixelFeed_{};
|
PixelFeed& pixelFeed_{};
|
||||||
|
|
||||||
void openDisplay (Gtk::Window&);
|
void openDisplay (Gtk::Window&);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue