It looks okay overall, with a few nitpicks above, then I think you could split the MR in half to make it easier to review and to keep changes a bit more targeted.
I think a first MR should include changes up to 9966e0bea0e317862fbfa3e9b9c5dc1b8479371f, plus a change implementing the video decoder stub and using it, at the same time, for the client Open / Close.
Then, in a second MR you would implement the format support and decompression methods, ideally ICM_DECOMPRESS_BEGIN and ICM_DECOMPRESS in separate changes.