On 3/18/20 5:53 PM, Derek Lesho wrote:
Is it really
useful to have a second call here? It probably means "any"
output type, which could work in some interactive scenario. Does
it really
offer anything available in this case on Windows and what
happens to current type?
The reason we need the second call is so that we return the
correct error code. `MF_E_INVALIDREQUEST` when the type can't be
output, and `MF_E_TOPO_CODEC_NOT_FOUND` when a decoder isn't found
for a native media type.
Let's keep it simple and return MF_E_INVALIDREQUEST, with single
enum call.
Would it help to use IMFActivate instances instead? For example
that would be the only way to access local transforms, but I
don't know if reader is using them.
I'm also unsure whether the source reader can access local
transforms, but it doesn't seem critical to me. Do you think this
could instead be added in a future patch?
Definitely. I asked because they moved away from CLSID-based
enumeration in later versions of EnumEx and Enum2, and only newer
functions give control over returned results.
This should handle a case when output type should be set first.
Is this ever the case with a decoder?
I don't know, it's documented to work one way or another. It's a
minor addition if we ever need it, for user transforms for example.
If you verified that at least some decoders work like that, no need
to change it.