diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 3b550cf380770eddb756eb412c7e90a39137659e..83c26eff294e0e2a99abde2307e5c6e5e3475fc4 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -3633,9 +3633,13 @@ static int decode_nal_units(H264Context *h, const uint8_t *buf, int buf_size){ switch (hx->nal_unit_type) { case NAL_SPS: case NAL_PPS: + nals_needed = nal_index; + break; case NAL_IDR_SLICE: case NAL_SLICE: - nals_needed = nal_index; + init_get_bits(&hx->s.gb, ptr, bit_length); + if (!get_ue_golomb(&hx->s.gb)) + nals_needed = nal_index; } continue; }