Не открываются некоторые WAV файлы. [Исправлено]

Автор Aleksoid1978, 03 августа 2016, 09:44:36

« назад - далее »

0 Пользователи и 1 гость просматривают эту тему.

Aleksoid1978

Вот сам файл - https://yadi.sk/d/qQf796LPtsFrR
Не открывается встроенным сплиттером(нормально открывается LAV/libavformat), причина вот в этом куске кода:
           for (int i = 0; i < sizeof(Chunk.id); i++) {
                BYTE ch = Chunk.data[i];
                if (ch != 0x20 && (ch < \'0\' || ch > \'9\') && (ch < \'A\' || ch > \'Z\') && (ch < \'a\' || ch > \'z\')) {
                    TRACE(L"CWAVFile::Open() : broken file!\\n");
                    return E_FAIL;
                }
            }

Первый сивмол в id - ноль, из-за этого выходим с ошибкой. Хотя по факту там id должен быть \'DISP\', видимо где-то а расчетах ошибка либо мы чего-то не знаем(ну типа добавление нулей в конце данных и т.д.).
AMD Ryzen 5 3600 /GIGABYTE B450 Gaming X /AMD Radeon R9 16Gb@3200 /Kingston 500Gb M.2 /GTX 1650 /Samsung U28R550UQI /OLED Philips 55OLED707 /Yamaha RX-V471 + NS-555 + NS-C444 + NS-333 + YST-SW215

V0lt

Очень аккуратно исправил воспроизведение этого файла в r1789, дабы не сломать все остальное.

Дай знать, если еще есть подобные файлы (моно 8 бит), которые даже после r1789 не воспроизводиться корректно.
Если чего поломалось, тоже прошу сообщить.

Такой случай встречаю впервые. Вероятнее всего как-то связано с выравниванием, но нужно официальное описание, где про это написано. А то боюсь, так выравнивает, только какая-нибудь одна утилита от MS.