использование avifil32.dll

Тема в разделе "WASM.WIN32", создана пользователем Dylan, 29 ноя 2004.

Статус темы:
Закрыта.
  1. Dylan

    Dylan New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2004
    Сообщения:
    17
    Адрес:
    Russia
    вопрос в сущности простой:

    как использовать функции этой библиотеки для получения кадров из avi-файлов...



    или на худой конец, как можно воспроизводить видео (звук не нужен) другими способами, но не через MDI...



    просто пробовал переделать код из demo использующую avi'шки и AVIStreamInfo, AVIStreamOpenFromFile... но не получается его на masm переделать - на функции AVIStreamOpenFromFile парится, а как не пытаюсь переделать - не получается... и найти тоже ничего не могу...



    помогите что ли?
     
  2. jekyll

    jekyll New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2003
    Сообщения:
    92
    Адрес:
    Russia
    А где у тебя загвоздка?
     
  3. Dylan

    Dylan New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2004
    Сообщения:
    17
    Адрес:
    Russia
    я чуть-чуть дальше продвинулся...

    теперь у меня проблема с функции AVIStreamGetFrameOpen...



    выдаёт ошибку... никак не могу пока исправить...



    а загвоздка в том, чтобы взять какой-либо кадр (ну, пусть 17-ый) и поместить его на hdc моего окна... вот
     
  4. jekyll

    jekyll New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2003
    Сообщения:
    92
    Адрес:
    Russia
    какую ошибку?
     
  5. Dylan

    Dylan New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2004
    Сообщения:
    17
    Адрес:
    Russia
    критическую ошибку, то что программа не может быть выполнена...



    по-моему, это потому, что для AVIStreamGetFrameOpen типа не совсем стандартный вызов нужен STDAPI_(PGETFRAME)?!?



    просто .inc-файл самому переделывать приходится - может что напутал, а из этого и .lib-файл тоже косячный получается...
     
  6. jekyll

    jekyll New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2003
    Сообщения:
    92
    Адрес:
    Russia
    Ты где этот файл надыбал? Функция возвращает указатель, или NULL в противном случае, ты под дебаггером прогонял. Кинь кусок кода, или хоть екзешник с описанием использования.
     
  7. Dylan

    Dylan New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2004
    Сообщения:
    17
    Адрес:
    Russia
    .data?

    psi AVISTREAMINFO <>

    pavi dd ?

    pgf dd ?

    .code



    <вырезано>



    ; открытие библиотеки обработки avi-файлов

    invoke AVIFileInit

    ; открываем поток

    ; строка 073646976h означает "vids"

    invoke AVIStreamOpenFromFile, addr pavi, szFile, 073646976h, 0, OF_READ, 0

    test eax, eax

    je jmpOk1

    invoke MessageBox, 0, addr szAviStreamErr, 0, 0

    jmp jmpExit



    jmpOk1:

    invoke AVIStreamInfo, pavi, addr psi, 08Ch

    invoke AVIStreamGetFrameOpen, pavi, 0

    ; как раз вот здесь вот и происходит ошибка и программа выдаёт ошибку в дебаггере

    jmpExit:

    invoke AVIFileExit
     
  8. jekyll

    jekyll New Member

    Публикаций:
    0
    Регистрация:
    20 мар 2003
    Сообщения:
    92
    Адрес:
    Russia
    access violation? значит pavi неверен.
     
  9. Dylan

    Dylan New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2004
    Сообщения:
    17
    Адрес:
    Russia
    я разобрался... у меня структура AVISTREAMINFO была неверная... ручки мои кривые...



    теперь осталось DIB вывести на hdc окна, но через что... не могу понять - в примере-то через функции openGL'я всё делалось... а здесь как не пойму
     
  10. Dylan

    Dylan New Member

    Публикаций:
    0
    Регистрация:
    29 ноя 2004
    Сообщения:
    17
    Адрес:
    Russia
    всё разобрался... итак готовый пример извлекает из видео кадр и показывает его в окне...



    исходники с примером прилагаются (вдруг кому интересно или кто-то как я будут искать)...

    [​IMG] _1505138878__avi.rar
     
Статус темы:
Закрыта.