1. История
При измерении декодирования ffmpeg init 264 конфигурация имеет разрешение 1080p, и данные 360p могут быть проанализированы нормально.Наоборот, init настроен на разрешение 360p, и фактические данные 1080p могут быть проанализированы нормально.
2. Анализ
Для анализа исходного кода каждый раз, когда декодер получает данные SPS, он повторно обновляет и инициализирует параметры декодера.
h264_decode_frame
->ff_h264_decode_extradata
->decode_nal_units
->ff_h264_decode_seq_parameter_set
Получить параметры кодирования в SPS, такие как разрешение и т. д.
h264_decode_frame
->decode_nal_units
-> ff_h264_decode_slice_header (в соответствии с параметрами SPS обновить новые параметры кодирования, такие как разрешение)
->h264_slice_header_init
->ff_h264_alloc_tables применяются для памяти макроблока в соответствии с новым разрешением
ff_h264_decode_slice_header (в соответствии с параметрами SPS обновить новые параметры кодирования, такие как разрешение)
ff_h264_alloc_tables применяются для памяти макроблока в соответствии с новым разрешением
3. Заключение
Декодер может повторно инициализировать декодер каждый раз, когда он получает SPS кадра IDR, и может адаптивно декодировать данные различных разрешений.