Commit 772d150a authored by Vittorio Giovara's avatar Vittorio Giovara

h264: error out from decode_nal_units() when AV_EF_EXPLODE is set

Signed-off-by: 's avatarVittorio Giovara <vittorio.giovara@gmail.com>
parent 10306e9c
...@@ -1593,7 +1593,9 @@ again: ...@@ -1593,7 +1593,9 @@ again:
break; break;
case NAL_SEI: case NAL_SEI:
init_get_bits(&h->gb, ptr, bit_length); 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; break;
case NAL_SPS: case NAL_SPS:
init_get_bits(&h->gb, ptr, bit_length); init_get_bits(&h->gb, ptr, bit_length);
...@@ -1613,7 +1615,9 @@ again: ...@@ -1613,7 +1615,9 @@ again:
break; break;
case NAL_PPS: case NAL_PPS:
init_get_bits(&h->gb, ptr, bit_length); 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; break;
case NAL_AUD: case NAL_AUD:
case NAL_END_SEQUENCE: case NAL_END_SEQUENCE:
...@@ -1630,7 +1634,9 @@ again: ...@@ -1630,7 +1634,9 @@ again:
} }
if (context_count == h->max_contexts) { 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; context_count = 0;
} }
...@@ -1649,8 +1655,11 @@ again: ...@@ -1649,8 +1655,11 @@ again:
} }
} }
} }
if (context_count) if (context_count) {
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;
}
end: end:
/* clean up */ /* clean up */
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment