The testbot failures will need to be addressed, of course.
d3dx10:d3dx10 has a todo for this: d3dx10.c:1380: Test succeeded inside todo block: Test 27: Got unexpected hr 0.
While we don't have to support multiple frames for an initial implementation, putting the frame object in the same struct as the decoder means someone will have to split them out later. Since this will become more difficult as the implemenation develops, I'd much rather have it done from the start.
This is effectively reimplementing copy_pixels from windowscodecs. Maybe we can split it into another file that can be shared with wmphoto?