On 22/06/20 6:53 a. m., Nikolay Sivov wrote:
On 6/15/20 4:41 AM, Sergio Gómez Del Real wrote:
+ hr = IMFAttributes_GetUINT32(attrs_src, &MF_TOPONODE_CONNECT_METHOD, &method); + if (!enum_src_types || (hr == S_OK && !(method & MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES))) + { + for (method = MF_CONNECT_DIRECT; method < MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES; method++) + { + for (i = 0; i < num_media_types; i++) + { + IMFMediaTypeHandler_SetCurrentMediaType(mth_src, src_mediatypes[i]); + hr = S_OK; + goto out; + } + } + } + else + { + for (i = 0; i < num_media_types; i++) + { + for (method = MF_CONNECT_DIRECT; method < MF_CONNECT_RESOLVE_INDEPENDENT_OUTPUTTYPES; method++) + { + IMFMediaTypeHandler_SetCurrentMediaType(mth_src, src_mediatypes[i]); + hr = S_OK; + goto out; + } + } + } I think this was carried from previous iteration of the patches? I think same concern still apply, why specified method is essentially ignored? Loops are reduced to 1 iteration until following patches, it's better to avoid that.
Yes, this is indeed incorrect. Forgot to apply the modifications I had. Will send them in next iteration.