Процесс декодирования динамического разрешения ffmpeg h264

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, и может адаптивно декодировать данные различных разрешений.

Supongo que te gusta

Origin blog.csdn.net/CrystalShaw/article/details/129619305
Recomendado
Clasificación