[SCM] libav/experimental: h264: error out from decode_nal_units() when AV_EF_EXPLODE is set
siretart at users.alioth.debian.org
siretart at users.alioth.debian.org
Sun Aug 10 16:03:36 UTC 2014
The following commit has been merged in the experimental branch:
commit 772d150a6e82542c06b0c251e73dd299d98d1027
Author: Vittorio Giovara <vittorio.giovara at gmail.com>
Date: Fri Feb 7 15:13:40 2014 +0100
h264: error out from decode_nal_units() when AV_EF_EXPLODE is set
Signed-off-by: Vittorio Giovara <vittorio.giovara at gmail.com>
diff --git a/libavcodec/h264.c b/libavcodec/h264.c
index c4ce278..a04839c 100644
--- a/libavcodec/h264.c
+++ b/libavcodec/h264.c
@@ -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 */
--
Libav/FFmpeg packaging
More information about the pkg-multimedia-commits
mailing list