D3D11H264Accelerator::SubmitFrameMetadata doesn’t handle E_PENDING correctly. it CHECKs(), when it should just schedule a retry later.
Busy wait seems to work, but probably not what we’re supposed to do.
H24Decoder::StartNewFrame should check before doing stuff like getting a picture buffer. Then again, maybe that’s okay if it’s okay to drop it on the floor. It does some work before trying metadata, and i’m not sure if it can be restarted easily. Maybe it can be, and SFM should just return false.
I think that it should have tryBeginFrame() and endFrame() or similar that it always calls, and the accelerator can ask d3d about it. The decoder will have to call cancelFrame() or something if it decides not to do work later. Not sure if d3d supports that.
alternatively, we could buffer all the data until d3d is ready for it, but then the decoder is entirely async from the accelerator. seems like the decoder is supposed to be the async part, and should handle "not ready".
Comment 1 by liber...@chromium.org
, Mar 8 2018Owner: ----
Status: Available (was: Assigned)