message: videoio/MSMF: fixed audio stream handling
diff: @@ -487,12 +487,14 @@ public:
  }
  }
  }
  - std::pair<MediaID, MediaType> findBest(const MediaType& newType)
  + std::pair<MediaID, MediaType> findBestVideoFormat(const MediaType& newType)
  {
  std::pair<MediaID, MediaType> best;
  std::map<MediaID, MediaType>::const_iterator i = formats.begin();
  for (; i != formats.end(); ++i)
  {
  + if (i->second.majorType != MFMediaType_Video)
  + continue;
  if (newType.isEmpty()) // file input - choose first returned media type
  {
  best = *i;
  @@ -770,7 +772,12 @@ bool CvCapture_MSMF::configureOutput(MediaType newType, cv::uint32_t outFormat)
  {
  FormatStorage formats;
  formats.read(videoFileSource.Get());
  - std::pair<FormatStorage::MediaID, MediaType> bestMatch = formats.findBest(newType);
  + std::pair<FormatStorage::MediaID, MediaType> bestMatch = formats.findBestVideoFormat(newType);
  + if (bestMatch.second.isEmpty())
  + {
  + CV_LOG_DEBUG(NULL, "Can not find video stream with requested parameters");
  + return false;
  + }
  dwStreamIndex = bestMatch.first.stream;
  nativeFormat = bestMatch.second;
  MediaType newFormat = nativeFormat;
  