Если у меня есть активный асинхронный IMFSourceReader, когда безопасно вызывать SetCurrentMediaType () для него?
Первоначально я пытался IMFSourceReaderCallback :: OnReadSample () и IMFSourceReaderCallback :: OnFlush () с доступом к объекту, охраняемымкритическая секция, но я получаю ошибки, связанные с ожидающими выборками или ошибкой порта завершения io.
На самом деле не ясно, что безопасно вызывать в функциях IMFSourceReaderCallback, которые вызываются из рабочих потоков медиа-основания.
Нужно ли полностью очищать / сливать конвейер из-за пределов потоков функции обратного вызова, затем передавать сигнал из потока обратного вызова OnFlush () в потоки вне стека вызовов обратного вызова (убедитесь, что дальнейшие примеры чтения не поставлены в очередь), чтотогда безопасно изменить формат мультимедиа с помощью SetCurrentMediaType ()?
Нужно ли идти еще дальше и уничтожить SourceReader, а затем начать заново, чтобы воссоздать и затем установить формат мультимедиа?