[FFmpeg-cvslog] avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
ffmpeg | branch: release/2.4 | Michael Niedermayer | Sat Apr 4 19:28:33 2015 +0200| [7572cf7fdcc998b8fd1fdadc1ba3ff90349b6978] | committer: Michael Niedermayer avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode Fixes Ticket4408 Signed-off-by: Michael Niedermayer (cherry picked from commit fc58d5c43b4c7396fc69081eb0dfe5b6a21cb10d) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=7572cf7fdcc998b8fd1fdadc1ba3ff90349b6978 --- libavcodec/h264.c |8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 4757015..5f29267 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1551,8 +1551,14 @@ again: ret = -1; goto end; } -if(!idr_cleared) +if(!idr_cleared) { +if (h->current_slice && (avctx->active_thread_type & FF_THREAD_SLICE)) { +av_log(h, AV_LOG_ERROR, "invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n"); +ret = AVERROR_INVALIDDATA; +goto end; +} idr(h); // FIXME ensure we don't lose some frames if there is reordering +} idr_cleared = 1; h->has_recovery_point = 1; case NAL_SLICE: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
ffmpeg | branch: release/2.5 | Michael Niedermayer | Sat Apr 4 19:28:33 2015 +0200| [52ba406b94d659dfdb2d8d119a6535474876c205] | committer: Michael Niedermayer avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode Fixes Ticket4408 Signed-off-by: Michael Niedermayer (cherry picked from commit fc58d5c43b4c7396fc69081eb0dfe5b6a21cb10d) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=52ba406b94d659dfdb2d8d119a6535474876c205 --- libavcodec/h264.c |8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index ac8adf3..88fc270 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1554,8 +1554,14 @@ again: ret = -1; goto end; } -if(!idr_cleared) +if(!idr_cleared) { +if (h->current_slice && (avctx->active_thread_type & FF_THREAD_SLICE)) { +av_log(h, AV_LOG_ERROR, "invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n"); +ret = AVERROR_INVALIDDATA; +goto end; +} idr(h); // FIXME ensure we don't lose some frames if there is reordering +} idr_cleared = 1; h->has_recovery_point = 1; case NAL_SLICE: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
ffmpeg | branch: release/2.6 | Michael Niedermayer | Sat Apr 4 19:28:33 2015 +0200| [f1b4a71ddfcdfa37106243383255406e7be51b93] | committer: Michael Niedermayer avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode Fixes Ticket4408 Signed-off-by: Michael Niedermayer (cherry picked from commit fc58d5c43b4c7396fc69081eb0dfe5b6a21cb10d) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=f1b4a71ddfcdfa37106243383255406e7be51b93 --- libavcodec/h264.c |8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 8ec46df..e64cc07 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1537,8 +1537,14 @@ again: ret = -1; goto end; } -if(!idr_cleared) +if(!idr_cleared) { +if (h->current_slice && (avctx->active_thread_type & FF_THREAD_SLICE)) { +av_log(h, AV_LOG_ERROR, "invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n"); +ret = AVERROR_INVALIDDATA; +goto end; +} idr(h); // FIXME ensure we don't lose some frames if there is reordering +} idr_cleared = 1; h->has_recovery_point = 1; case NAL_SLICE: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
ffmpeg | branch: release/2.2 | Michael Niedermayer | Sat Apr 4 19:28:33 2015 +0200| [5b4e58ed4c3641a934b46b6e3063b4b2d5fc8bed] | committer: Michael Niedermayer avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode Fixes Ticket4408 Signed-off-by: Michael Niedermayer (cherry picked from commit fc58d5c43b4c7396fc69081eb0dfe5b6a21cb10d) Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=5b4e58ed4c3641a934b46b6e3063b4b2d5fc8bed --- libavcodec/h264.c |8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 56858f4..155877b 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -5006,8 +5006,14 @@ again: ret = -1; goto end; } -if(!idr_cleared) +if(!idr_cleared) { +if (h->current_slice && (avctx->active_thread_type & FF_THREAD_SLICE)) { +av_log(h, AV_LOG_ERROR, "invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n"); +ret = AVERROR_INVALIDDATA; +goto end; +} idr(h); // FIXME ensure we don't lose some frames if there is reordering +} idr_cleared = 1; h->has_recovery_point = 1; case NAL_SLICE: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog
[FFmpeg-cvslog] avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode
ffmpeg | branch: master | Michael Niedermayer | Sat Apr 4 19:28:33 2015 +0200| [fc58d5c43b4c7396fc69081eb0dfe5b6a21cb10d] | committer: Michael Niedermayer avcodec/h264: Fail for invalid mixed IDR / non IDR frames in slice threading mode Fixes Ticket4408 Signed-off-by: Michael Niedermayer > http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=fc58d5c43b4c7396fc69081eb0dfe5b6a21cb10d --- libavcodec/h264.c |8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/libavcodec/h264.c b/libavcodec/h264.c index 33a66be..283e753 100644 --- a/libavcodec/h264.c +++ b/libavcodec/h264.c @@ -1548,8 +1548,14 @@ again: ret = -1; goto end; } -if(!idr_cleared) +if(!idr_cleared) { +if (h->current_slice && (avctx->active_thread_type & FF_THREAD_SLICE)) { +av_log(h, AV_LOG_ERROR, "invalid mixed IDR / non IDR frames cannot be decoded in slice multithreading mode\n"); +ret = AVERROR_INVALIDDATA; +goto end; +} idr(h); // FIXME ensure we don't lose some frames if there is reordering +} idr_cleared = 1; h->has_recovery_point = 1; case NAL_SLICE: ___ ffmpeg-cvslog mailing list ffmpeg-cvslog@ffmpeg.org http://ffmpeg.org/mailman/listinfo/ffmpeg-cvslog