RRiffMeadow
Рабочая среда с ИИ для кода

Обход границ блоков RIFF

RiffMeadow — AI-клиент для Windows для разбора обхода RIFF-чанков. Откройте папку проекта, обсудите с совместимой моделью объявленные размеры, выравнивание и неизвестные чанки, затем проверьте предлагаемые изменения парсера.

● ● ●RiffMeadow●
Конкретная отправная точка · Обход границ блоков RIFF ×
def riff_chunks(wire):
    if type(wire) is not bytes or not 12 <= len(wire) <= 1048576:
        raise ValueError("riff.input")
    if wire[:4] != b"RIFF" or wire[8:12] != b"WAVE" or int.from_bytes(wire[4:8], "little")+8 != len(wire):
        raise ValueError("riff.header")
    chunks, pos = [], 12
    while pos < len(wire):
        if len(chunks) == 128 or pos+8 > len(wire):
            raise ValueError("riff.chunk")
        tag = wire[pos:pos+4]
        size = int.from_bytes(wire[pos+4:pos+8], "little")
        start, stop = pos+8, pos+8+size
        next_pos = stop+(size & 1)
        if next_pos > len(wire):
            raise ValueError("riff.truncated")
        chunks.append((tag, wire[start:stop]))
        pos = next_pos
    return chunks
✳Обход границ блоков RIFF
✓ ИзмененияПроверьте перед применением ↗
Иллюстрация рабочей среды
01

Проверьте перед применением

Сравните фактическое поведение с ожидаемым. Если проверка не проходит, разберитесь в причине перед следующими изменениями.

02

Подключение

Базовый URL, учётные данные и доступный сервер.

03

Проект

Проверьте неизвестные блоки и дополнение нечётной длины, отклоняя обрыв заголовков и данных без декодирования звука.

Сценарии

Обход границ блоков RIFF

Сценарии ↗
Конкретная отправная точка
def riff_chunks(wire):
    if type(wire) is not bytes or not 12 <= len(wire) <= 1048576:
        raise ValueError("riff.input")
    if wire[:4] != b"RIFF" or wire[8:12] != b"WAVE" or int.from_bytes(wire[4:8], "little")+8 != len(wire):
        raise ValueError("riff.header")
    chunks, pos = [], 12
    while pos < len(wire):
        if len(chunks) == 128 or pos+8 > len(wire):
            raise ValueError("riff.chunk")
        tag = wire[pos:pos+4]
        size = int.from_bytes(wire[pos+4:pos+8], "little")
        start, stop = pos+8, pos+8+size
        next_pos = stop+(size & 1)
        if next_pos > len(wire):
            raise ValueError("riff.truncated")
        chunks.append((tag, wire[start:stop]))
        pos = next_pos
    return chunks
Рабочая среда с ИИ для кода

Проверьте импорт файла от заголовка до последнего блока

RiffMeadow переносит сопровождение файловых форматов в рабочую среду программирования Windows с исходниками проекта и обсуждением с подключённой моделью. Начните с поведения импорта, которое нужно изменить, и определите использование разобранных блоков приложением. Попросите модель изучить этот путь до предложения правок отдельного вычисления длины.

Задача с riff_chunks.py может исследовать файл RIFF, у которого блок нечётного размера требует байта дополнения перед следующим заголовком. Предоставьте небольшой байтовый пример и ожидаемые границы блоков. Проверяйте заявленную длину контейнера вместе с поведением при усечении, чтобы предложение объясняло начальную позицию следующего чтения.

После изучения изменения запустите корректные и усечённые примеры в своей среде разработки и проверьте результат импорта через потребителя. Добавьте незнакомый тег блока, если приложение должно сохранять или пропускать его. Разделяйте обход формата и интерпретацию приложением: обнаружение байтов блока не подтверждает пригодность содержимого для любой последующей операции.

Для помощи модели настройте поддерживаемую конечную точку, совместимую с OpenAI, или Anthropic и учётные данные при необходимости. ИИ-модель с удалёнными механизмами ограничений можно выбрать при наличии; ограничения определяет поставщик. Инструменты и объём контекста зависят от модели и сервера; конкретным основанием принятия кода служат пример и ожидаемое поведение импорта.

Перед изменением чтения файлов с блоками

Зачем отдельный пример блока нечётной длины?

Дополнение влияет на начало следующего заголовка, поэтому пример чётной длины может пропустить ошибку смещения. Предоставьте файл с ещё одним блоком после дополненного. Проверяйте возвращённые границы и конечную позицию, а не только обнаружение первого блока.

Должен ли незнакомый тег прерывать импорт?

Решите это по поддерживаемому подмножеству формата и поведению приложения. Обход и интерпретация могут иметь разные политики. Попросите модель изучить потребителя до изменения обработки тегов и включите незнакомый тег в примеры, если он допускается.

Что должен показывать тест усечённого файла?

Укажите, какая заявленная граница выходит за предоставленные байты и какого отказа ожидает вызывающий код. При необходимости включите укороченный заголовок или полезные данные. Проверьте импорт, чтобы интерфейс не принял частичный разбор за успешную загрузку файла.

Доказывает ли успешный обход блоков корректность аудио?

Нет. Он подтверждает только проверки границ, охваченные кодом и тестами. Интерпретация метаданных аудио и отсчётов относится к дополнительной логике. Сосредоточьтесь на запрошенном изменении парсера и проверьте поздние этапы, если приложение от них зависит.

Скачать для Windows ↗

RiffMeadow · Обновлено 2026-10-25