--- libavcodec/samidec.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/libavcodec/samidec.c b/libavcodec/samidec.c index 39ac608..ce05cf6 100644 --- a/libavcodec/samidec.c +++ b/libavcodec/samidec.c @@ -114,6 +114,7 @@ end: static int sami_decode_frame(AVCodecContext *avctx, void *data, int *got_sub_ptr, AVPacket *avpkt) { + int ret = 0; AVSubtitle *sub = data; const char *ptr = avpkt->data; SAMIContext *sami = avctx->priv_data; @@ -122,8 +123,13 @@ static int sami_decode_frame(AVCodecContext *avctx, int ts_start = av_rescale_q(avpkt->pts, avctx->time_base, (AVRational){1,100}); int ts_duration = avpkt->duration != -1 ? av_rescale_q(avpkt->duration, avctx->time_base, (AVRational){1,100}) : -1; - ff_ass_add_rect(sub, sami->full.str, ts_start, ts_duration, 0); + if (!av_bprint_is_complete(&sami->full)) + ret = AVERROR(ENOMEM); + else + ret = ff_ass_add_rect(sub, sami->full.str, ts_start, ts_duration, 0); } + if (ret < 0) + return ret; *got_sub_ptr = sub->num_rects > 0; return avpkt->size; } -- 2.1.0 _______________________________________________ ffmpeg-devel mailing list ffmpeg-devel@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-devel