Я читаю документация по avcodec и я пытаюсь понять, что означает повреждение потока MPEG. Это упоминает:
Конец буфера входного буфера должен быть установлен в 0, чтобы гарантировать, что не будет никакого перезаписи для поврежденных потоков MPEG.
Так что же произойдет, если конец входного буфера не будет установлен в 0? Будет ли это потенциальным способом введения коррупции?
Чтобы найти ответ на этот вопрос, вы можете посмотреть код, который читает буфер для такого кодека — здесь avcodec
Кажется, что буфер заполнен количеством кадров, и в конце каждого кадра данных есть счетчик байтов для следующего. Если это значение равно нулю, то декодер не будет продолжать чтение в неинициализированную память в случае какого-либо повреждения потока MPEG. Такие потоки могут быть повреждены из-за ошибок кодирования, ошибок передачи или (редко) сбоев на носителе данных. Это хороший пример защитного программирования.
Других решений пока нет …