|
|
|
@ -1593,7 +1593,9 @@ again: |
|
|
|
|
break; |
|
|
|
|
case NAL_SEI: |
|
|
|
|
init_get_bits(&h->gb, ptr, bit_length); |
|
|
|
|
ff_h264_decode_sei(h); |
|
|
|
|
ret = ff_h264_decode_sei(h); |
|
|
|
|
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) |
|
|
|
|
goto end; |
|
|
|
|
break; |
|
|
|
|
case NAL_SPS: |
|
|
|
|
init_get_bits(&h->gb, ptr, bit_length); |
|
|
|
@ -1613,7 +1615,9 @@ again: |
|
|
|
|
break; |
|
|
|
|
case NAL_PPS: |
|
|
|
|
init_get_bits(&h->gb, ptr, bit_length); |
|
|
|
|
ff_h264_decode_picture_parameter_set(h, bit_length); |
|
|
|
|
ret = ff_h264_decode_picture_parameter_set(h, bit_length); |
|
|
|
|
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) |
|
|
|
|
goto end; |
|
|
|
|
break; |
|
|
|
|
case NAL_AUD: |
|
|
|
|
case NAL_END_SEQUENCE: |
|
|
|
@ -1630,7 +1634,9 @@ again: |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (context_count == h->max_contexts) { |
|
|
|
|
ff_h264_execute_decode_slices(h, context_count); |
|
|
|
|
ret = ff_h264_execute_decode_slices(h, context_count); |
|
|
|
|
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) |
|
|
|
|
goto end; |
|
|
|
|
context_count = 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1649,8 +1655,11 @@ again: |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (context_count) |
|
|
|
|
ff_h264_execute_decode_slices(h, context_count); |
|
|
|
|
if (context_count) { |
|
|
|
|
ret = ff_h264_execute_decode_slices(h, context_count); |
|
|
|
|
if (ret < 0 && (h->avctx->err_recognition & AV_EF_EXPLODE)) |
|
|
|
|
goto end; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
end: |
|
|
|
|
/* clean up */ |
|
|
|
|