Visual Studio 2008 не выравнивает переменные стека? - PullRequest
2 голосов
/ 18 июля 2010

Я пытаюсь прочитать avi-файл в OpenCV 2.1, VS2008 стандартно в течение 2 дней безуспешно.Я постоянно получаю это сообщение в программной консоли:

Компилятор не выравнивает переменные стека.Libavcodec был неправильно скомпилирован и может работать очень медленно или зависать.Это не ошибка в libavcodec, а в компиляторе.Вы можете попробовать перекомпилировать, используя gcc> = 4.2.Не сообщайте о сбоях разработчикам FFmpeg.

.. и все, что я получаю, - это воспроизведение со скоростью 0,5 кадра в секунду.Я пытался с различными файлами AVI и MPEG, все еще с теми же результатами.Кроме того, примеры использования веб-камеры очень медленные.У меня не было таких проблем при использовании OpenCV 1.1

Что я уже пытался решить эту проблему:

  • Перекомпилировала всю библиотеку
  • Обновлена ​​библиотека изSVN и заново скомпилированный
  • Пробовал различные версии файла libavcodec.a

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

CvCapture* input_video = cvCreateFileCapture("c:\\data\test.avi");
// ...
while (true) {
    // ...
    frame = cvQueryFrame( input_video );
    cvShowImage("test", frame); 
    // ...
}

Кто-нибудь может мне помочь?Это сводит меня с ума: (

1 Ответ

1 голос
/ 21 июля 2010

Ну, вы также должны проверить cvCaptureFromAVI (), чтобы заменить cvCreateFileCapture ().Может быть, это хорошая идея.

Но я бы наверняка перекомпилировал библиотеку.Попробуйте добавить эту опцию в configure: - enable-force-stack-realign или - enable-memalign-hack

Эти ребята, похоже, решили эту проблему:http://ffmpeg.arrozcru.org/forum/viewtopic.php?f=9&t=568

Если ничего не работает, почему бы не попробовать предварительно скомпилированные двоичные файлы для Windows?http://sourceforge.net/projects/opencvlibrary/files/opencv-win/2.1/

В любом случае, ваш вопрос касается программного обеспечения.Я настоятельно рекомендую вам искать ответы в соответствующих списках рассылки и форумах, связанных с OpenCV.

...