MPC-BE forum

MPC-BE => Баг Репорт / The bug report => Архив / Archive => Тема начата: Aleksoid1978 от 03 августа 2016, 09:44:36

Название: Не открываются некоторые WAV файлы. [Исправлено]
Отправлено: Aleksoid1978 от 03 августа 2016, 09:44:36
Вот сам файл - 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\', видимо где-то а расчетах ошибка либо мы чего-то не знаем(ну типа добавление нулей в конце данных и т.д.).
Название: Не открываются некоторые WAV файлы. [Исправлено]
Отправлено: V0lt от 03 августа 2016, 20:57:18
Очень аккуратно исправил воспроизведение этого файла в r1789, дабы не сломать все остальное.

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

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