2016-04-06 8 views
1

У нас есть приложение для Windows (только 32-битное), которое показывает список кодеков, установленных на компьютере.Отсутствует кодек при записи с DirectShow

Однако мы обнаруживаем, что иногда этот список не получает каждый установленный кодек, так как мы обнаружили случаи - без каких-либо особенностей - где мы устанавливаем кодеки h264vfw, и установка выполняется успешно. Однако после этого список не отображает кодек в списке.

Вот код, который мы используем, чтобы получить полный список кодеков:

Dim DsDevice as DirectShowLib.DsDevice 

Private Function LlistaVideoCodecs() As List(Of String)   
    LlistaVideoCodecs = New List(Of String)   
    Dim llista = DsDevice.GetDevicesOfCat(FilterCategory.VideoCompressorCategory) 
     For Each oDevice As DsDevice In llista    
      If oDevice IsNot Nothing Then 
       LlistaVideoCodecs.Add(oDevice.Name)   
     Next   
    Return LlistaVideoCodecs  
End Function 

Как мы могли бы получить полный список кодеков всех кодеков, установленных? Почему h264vfw кодек не отображается даже при его успешной установке?

Благодарим вас за ваше время и вашу помощь.

ответ

1

Фрагмент кода примерно вправо. DirectShow сам (его Intelligent Connect) ищет аналогичные способы для кодеков.

Типичная проблема заключается в том, что существуют два отдельных независимых списка: 32-битные кодеки и 64-битные кодеки. Когда вы устанавливаете 32-битный кодек, в 64-битном списке его нет, и наоборот.

Когда вы перечисляете кодеки, вы просматриваете список, соответствующий битту вашего кода. «Установленный, но невидимый» кодек находится в вашем случае в другом списке и другой битности.

+0

Благодарим вас за ответ. Хотя наше приложение работает только в 32-битном режиме, мы проверим эту возможность! Как только мы сможем, я буду обновлять/отвечать, если это было причиной! Еще раз спасибо. – Unapedra

 Смежные вопросы

  • Нет связанных вопросов^_^