Проблема с захваченным кадром в libdc1394

StackOverflow https://stackoverflow.com/questions/914848

  •  06-09-2019
  •  | 
  •  

Вопрос

Я пытался закодировать framegrabber для камеры firewire, используя libdc1394.Инициализация камеры выполнена правильно, режим видеосъемки установлен на поддерживаемый DC1394_VIDEO_MODE_640x480_YUV422 и кадр захватывается без каких-либо ошибок.

Проблема, однако, в том, что возвращаемый фрейм состоит из 640x480x1,5 байт, что на самом деле является упаковкой YUV411.В структуре видеокадра также указано, что в качестве видеорежима использовался YUV411.

Но данные на самом деле не декодируются с помощью YUV411.Вместо этого при декодировании YUV422 получается действительное изображение, но нижняя область изображения отсутствует, очевидно, из-за того, что в данных кадра отсутствуют последние байты (YUV422 - 16 бит на пиксель, YUV411 - 12 бит на пиксель).

Теперь камера совместима с IIDC версии v1.30, и libdc1394 поддерживает это.Используется единственный поддерживаемый режим видеосъемки (как указано в libdc1394), и это тот режим, который, как указано в руководстве по эксплуатации камеры, используется камерой.

Я не смог обойти эту проблему с помощью Google.Есть какие-нибудь зацепки?

Это было полезно?

Решение

Проблема заключается в том, что прошивка устройства не может вернуть правильное значение видеорежима.Это может быть устранено путем исправления libdc1394, чтобы вернуть желаемое значение.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top