Я работаю с кодировщик x264 api где для каждого закодированного изображения я получаю номер наль единицы. Есть ли способ проверить, действительны ли nals в моем отладчике VS2010. В настоящее время я вижу следующую информацию:
i_ref_idc -858993460
i_type -858993460
b_long_startcode -858993460
i_first_mb -858993460
i_last_mb -858993460
i_payload 27
p_payload 0x06b94d68
i_padding -858993460
Я не уверен, представляют ли эти отрицательные значения, что NAL являются недействительными или отсутствует информация.
В основном, как я могу проверить, что nals, которые я получил от x264_encoder_encode (), является действительной единицей nal?
НОТА Я использую эти nals для потоковой передачи в реальном времени, используя LIVE555.
Это определенно неверно. Вы не можете знать наверняка, является ли nalu действительным на 100%, не анализируя все это. Но вы можете проверить правильность значений.
i_ref_idc — это 2-битное поле. Все, что находится за пределами диапазона 0-3, не является нормальным.
i_type составляет 5 бит. Но на самом деле кодер будет выдавать только 1-15 или 19-21 включительно
b_long_startcode — логическое значение, поэтому вы не можете проверить его
i_first_mb и i_last_mb будут меньше ceil(width/8.0) * ceil(height/8.0)
i_payload — это размер данных, на которые указывает p_payload, поэтому выберите здесь высокое значение. 10*with*height
должно хватить.
-858993460
также известны как 0xСССССССС
а также указывать что значения не были инициализированы кодером.
i_payload
, p_payload
Размер полезной нагрузки в байтах и указатель на данные. В основном нет проверки достоверности этих данных, кроме подачи данных в декодер и проверки наличия ошибок вывода и декодирования.