-
Geza Lore authored
With ext-ref enabled, it is possible that when trying to encode the first true ALTREF frame after a keyframe, the previous ALTREF frame (alias for the keyframe) is the same as one of the new LAST{2,3,4} reference frames, and hence cpi->ref_frame_flags will have the ALTREF bit clear, as computed by get_ref_frame_flags in encoder.c. sf->alt_ref_search_fp forces the previous ALTREF frame to be used as the only possible reference when encoding a new ALTREF frame, but due to cpi->ref_frame_flags, some buffers will not be initialized (see rdopt.c:7689 yv12_mb), leading to a segfault. get_ref_frame_flags in encoder.c has been changed to prefer to keep the LAST frame, then the ALTREF frame, then any of the LAST{2,3,4} frames and then the GOLDEN frame in that order of preference in case any of them are the same. This avoids the segfault and behaves the same for the baseline. Change-Id: I4da1991667614009da5d3061a6316c0d5dbc6c0c
77d197e6