I'm working on some patches for the v4l2 decoder in ffmpeg, and in testing on rpi3/rpi4/lepotato I have noticed some unexpected behavior in how the meson-vdec driver behaves during decoding.
In short, ffmpeg will often hang indefinitely inside poll(POLLIN | POLLRDNORM | POLLPRI | POLLOUT | POLLWRNORM, -1). When the decoder is not able to produce frames, I would expect it to return with POLLOUT set to indicate that it needs more data. This happens more readily when the driver is configured with fewer capture buffers (i.e. 8 output buffers and 2 capture buffers).