Binkw32

Тема в разделе "WASM.ZEN", создана пользователем Booster, 9 янв 2007.

  1. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Приветствую всех.
    Если не сложно подскажите интернет ресурс, где сие можно взять.
    Интересует собно хедер, +описалово использования, на крайняк без хедера.
    В google найти не удалось, везде качалово самой библы. :dntknw:.
     
  2. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    http://wiki.multimedia.cx/index.php?title=RAD_Game_Tools_Bink_API - случайно не это?
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    n0name
    Спасибо, похоже на то, опробую.
    Правда в экспорте библы есть ещё функции, работы с окном например. Может она умеет сразу рендерить в окно!?
     
  4. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    Ну SDK платно, и последнии версии доступны только зареганым пользователям по FTP.
    Не самую новую можешь скачать http://kosfiz.narod.ru/sdk/binksdk.7z
     
  5. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Решил продолжить данную темку.
    n0name Сенкью вери мач. Сдк этот похоже тоже не официальный, а хакерский. Так как инфа там по существу только та что на вики, плюс некоторые наработки для удобства, но для разгона очень помогло. Проблема в том, что извлечь видео данные с плоскостей как там написано оказалось невозможным. Зато после непродолжительного анализа одной игры удалось более менее понять работу одной из функций, которая как раз позволяет извлечь эти данные. Засим всем представляю сделанный плеер.

    P.S Новая версия 0.3.2.2, конвертирует в avi.
     
  6. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Для него необходима сама Binkw32.dll (работает с версиёй 1.8, с другими не проверял)
    Аттачу для тех у кого её нету.
     
  7. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Ну и финальная часть.
     
  8. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Для тех кто в танке. Данный плейер проигрывает видео .bik формата, широко юзаемого в играх. Качайте, комментируйте, только не забудьте положить в папку с плейером Binkw32.dll.
     
  9. satrau

    satrau Александр

    Публикаций:
    0
    Регистрация:
    5 янв 2008
    Сообщения:
    229
    Интересно - файл в бик формате это нечто уже заранее смонтированное, обработанное и запихнуто по типу AVI, или нечто вроде набора моделей со скриптами для действия и видео которое видим на экране генерируется в реальном времени?
    В частности интересует возможность вытаскивания моделей из ролика.
     
  10. reverser

    reverser New Member

    Публикаций:
    0
    Регистрация:
    27 янв 2004
    Сообщения:
    615
    Просто картинка.
     
  11. Lamer_Pavel

    Lamer_Pavel Павел

    Публикаций:
    0
    Регистрация:
    28 мар 2008
    Сообщения:
    15
    Адрес:
    Санкт-Петербург
    Booster,твой плеер хорош,но ты бы мог продолжить его модернизацию,например,сделать конвертер bik->avi(это возможно)
     
  12. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Lamer_Pavel
    Я вообщем-то и не против, тем более фича была бы интересная. Только я же без SDK работаю, так что всех возможностей не знаю. Если только просто декодированные данные кидать к файл. Но тут есть пара трудностей: пока не понятно как быть со звуком, в плеере звук играет сама библиотека, самих данных я не получаю. Хотя если подумать, то можно было бы эту проблему решить. Потом я не знаю формата AVI, имхо там несколько его вариаций (Майкрософтский и ещё какой-то). С майкрософтским надо вроде через API, с другим вообще не знаю как.
     
  13. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Lamer_Pavel
    Вообще-то AVI - это контейнер, нужно еще кодек определить. Иначе получается, что ты универсальный
    конвертор предлагаешь сделать.
    ========================================
    http://www.radgametools.com/binkhlp2.htm
    Раз уж они quicktime в AVI конвертируют, то родной bik - наверняка.
     
  14. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    valterg
    В RAD tools (бесплатный) есть и проигрыватель и конвертор. Проигрыватель там гумно. Конвертер нормальный.
     
  15. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Booster
    Мне уже уходить пора, но я тоже напрягся на поиск.
     
  16. Lamer_Pavel

    Lamer_Pavel Павел

    Публикаций:
    0
    Регистрация:
    28 мар 2008
    Сообщения:
    15
    Адрес:
    Санкт-Петербург
    Booster,искав долго информацию про bik в инете,наткнулся на коды и примеры
    В архиве есть список флагов для функции BinkOpen(их там примерно 30),практически все функции и структуры,но это часть BinkSDK(нету некоторых header-ов),но я думаю,что ты разберёшся,как их использовать.
    Качай отсюда.
    -------------------
    http://avangard.data.cod.ru/26082833136
    или
    http://bbs.vbstreets.ru/viewtopic.php?t=35098&highlight=bik
    -------------------
    P.S
    В RAD tools конвертер очень медленно конвертирует в bik,а при конвертировании bik->avi надо выбирать самые низкие параметры аудио,т.к иначе он это делать не будет(поэтому насладится stereo-звуком врятли можно будет).

    Booster,прежде чем вывести видео фаил на обьект с hwnd(как я понял),например,форма(используя BinkBufferSetHWND) ты копируешь файл в буфер.
    Если этим буфером можно манипулировать,то и его можно использовать

    И еще:посмотри сюда http://www.theswapmeet-forum.com/viewtopic.php?p=38243&sid=22c5785c89954ebc505b1302dd464b86
     
  17. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    Что и неудивительно, ибо заявлена упаковка в 3 раза лучшая, чем для обычных кодеков.
    За все надо платить.
     
  18. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    Lamer_Pavel
    Спасибо, буду разбирать, вроде есть кое-что интересное, в особенности касательно звука.
    Проблем с видеоданными нету. Функция которую я откопал, прекрасно их декодирует.
    То есть я получаю указатель на буфер с декодированными видео данными, а затем копирую их на поверхность DirectDraw. Но вот звук играет сама библиотека (Miles, DirectSound, WaveOut). В той доке, что ты передал вроде описана функция передающая звуковой буфер. Так что буду смотреть. Скорее всего c AVI буду работать через стандартный механизм WinAPI, со всеми вытекающими последствиями.
     
  19. Lamer_Pavel

    Lamer_Pavel Павел

    Публикаций:
    0
    Регистрация:
    28 мар 2008
    Сообщения:
    15
    Адрес:
    Санкт-Петербург
    Не обязательно работать с AVI при помощи WinAPI.
    На sourceforge.net,codeplex.com поищи проекты,связанные с FFMpeg,Mplayer(а именно с их dll avcodec.dll,avformat.dll и т.п).Они полностью с открытым кодом и умеют конвертировать не только в AVI(могут в MP4,OGM,MPG и т.п).Ты им должен будешь передать указатель на буфер,всевозможные параметры,а они всё cделают сами(как я думаю).Но на мой взгляд,легче будет использовать WinAPI

    А насчет звука,вроде вот это
    ------------------------------

    struct BINKSND;
    typedef S32 (RADLINK PTR4* BINKSNDOPEN) (struct BINKSND PTR4* BnkSnd, U32 freq, S32 bits, S32 chans, U32 flags, HBINK bink);
    typedef S32 (RADLINK PTR4* BINKSNDREADY) (struct BINKSND PTR4* BnkSnd);
    typedef S32 (RADLINK PTR4* BINKSNDLOCK) (struct BINKSND PTR4* BnkSnd, U8 PTR4* PTR4* addr, U32 PTR4* len);
    typedef S32 (RADLINK PTR4* BINKSNDUNLOCK) (struct BINKSND PTR4* BnkSnd, U32 filled);
    typedef void (RADLINK PTR4* BINKSNDVOLUME) (struct BINKSND PTR4* BnkSnd, S32 volume);
    typedef void (RADLINK PTR4* BINKSNDPAN) (struct BINKSND PTR4* BnkSnd, S32 pan);
    typedef void (RADLINK PTR4* BINKSNDMIXBINS) (struct BINKSND PTR4* BnkSnd, U32 PTR4* mix_bins, U32 total);
    typedef void (RADLINK PTR4* BINKSNDMIXBINVOLS) (struct BINKSND PTR4* BnkSnd, U32 PTR4* vol_mix_bins, S32 PTR4* volumes, U32 total );
    typedef S32 (RADLINK PTR4* BINKSNDONOFF) (struct BINKSND PTR4* BnkSnd, S32 status);
    typedef S32 (RADLINK PTR4* BINKSNDPAUSE) (struct BINKSND PTR4* BnkSnd, S32 status);
    typedef void (RADLINK PTR4* BINKSNDCLOSE) (struct BINKSND PTR4* BnkSnd);

    typedef BINKSNDOPEN (RADLINK PTR4* BINKSNDSYSOPEN) (UINTa param);

    typedef struct BINKSND {
    BINKSNDREADY Ready;
    BINKSNDLOCK Lock;
    BINKSNDUNLOCK Unlock;
    BINKSNDVOLUME Volume;
    BINKSNDPAN Pan;
    BINKSNDPAUSE Pause;
    BINKSNDONOFF SetOnOff;
    BINKSNDCLOSE Close;
    BINKSNDMIXBINS MixBins;
    BINKSNDMIXBINVOLS MixBinVols;

    U32 sndbufsize; // sound buffer size
    U8 PTR4* sndbuf; // sound buffer
    U8 PTR4* sndend; // end of the sound buffer
    U8 PTR4* sndwritepos; // current write position
    U8 PTR4* sndreadpos; // current read position
    UINTa sndcomp; // sound compression handle
    U32 sndamt; // amount of sound currently in the buffer
    U32 sndconvert8; // convert back to 8-bit sound at runtime
    U32 sndendframe; // frame number that the sound ends on
    U32 sndprime; // amount of data to prime the playahead
    U32 sndpad; // padded this much audio

    U32 BestSizeIn16;
    U32 BestSizeMask;
    U32 SoundDroppedOut;
    S32 NoThreadService;
    S32 OnOff;
    U32 Latency;
    U32 VideoScale;
    U32 freq;
    S32 bits,chans;
    U8 snddata[256];
    } BINKSND;

    -------------------------------
     
  20. Lamer_Pavel

    Lamer_Pavel Павел

    Публикаций:
    0
    Регистрация:
    28 мар 2008
    Сообщения:
    15
    Адрес:
    Санкт-Петербург
    Booster,хедер,которого не хватало(radbase.h) находится во втором файле в архиве,так что получается,что это практически полное SDK