chromeos / cros-codecs

BSD 3-Clause "New" or "Revised" License
30 stars 11 forks source link

decoder/stateless: let the backends decide which resources they need #89

Closed Gnurou closed 4 months ago

Gnurou commented 4 months ago

This series fixes a design shortcoming in the decoder, namely that it was checking for output buffers availability before deciding to initiate a picture with the backend.

This was working well for the VAAPI backend, which must secure its output surface to create a VAPicture, but is not appropriate for V4L2 where the input and output queues are completely independent.

Each codec has a series of CLs culminating with let the backend decide which resources it needs, which moves the burden of checking output surfaces availability from the decoder to the VAAPI backend. That way the V4L2 backend is not constrained by output resources, and can decide itself which resources it needs to acquire to create a picture (in its case, an input buffer).

The other CLs include changes that are necessary to reach this state, e.g. rework of the backend interface to separate picture creation from submission when needed, and reordering of the format negotiation flow.

Sorry for the number of CLs ; however they should be bite-sized and relatively easy to understand.