[FFmpeg-cvslog] ffmpeg: exit_on_error if decoding a packet failed

Andreas Cadhalpun git at videolan.org
Thu Jul 23 02:17:06 CEST 2015


ffmpeg | branch: release/2.6 | Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com> | Tue Jun 30 21:06:40 2015 +0200| [32df1cd6ac09bc52d5a4cadf4053aeb113472f8d] | committer: Michael Niedermayer

ffmpeg: exit_on_error if decoding a packet failed

This is the second part of the fix for ticket #4370.

Reviewed-by: Michael Niedermayer <michaelni at gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>
(cherry picked from commit cd64ead8d96b2d2c300e0ac620fb82b17d6051bf)
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun at googlemail.com>

Conflicts:
	ffmpeg.c
(cherry picked from commit 1d1adf5ff42041810d4069ce03303706fbf13d8a)

Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>

> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=32df1cd6ac09bc52d5a4cadf4053aeb113472f8d
---

 ffmpeg.c |    9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/ffmpeg.c b/ffmpeg.c
index 2c757bd..2612beb 100644
--- a/ffmpeg.c
+++ b/ffmpeg.c
@@ -1844,6 +1844,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
     if (*got_output || ret<0 || pkt->size)
         decode_error_stat[ret<0] ++;
 
+    if (ret < 0 && exit_on_error)
+        exit_program(1);
+
     if (!*got_output || ret < 0) {
         if (!pkt->size) {
             for (i = 0; i < ist->nb_filters; i++)
@@ -1989,6 +1992,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
     if (*got_output || ret<0 || pkt->size)
         decode_error_stat[ret<0] ++;
 
+    if (ret < 0 && exit_on_error)
+        exit_program(1);
+
     if (*got_output && ret >= 0) {
         if (ist->dec_ctx->width  != decoded_frame->width ||
             ist->dec_ctx->height != decoded_frame->height ||
@@ -2107,6 +2113,9 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output)
     if (*got_output || ret<0 || pkt->size)
         decode_error_stat[ret<0] ++;
 
+    if (ret < 0 && exit_on_error)
+        exit_program(1);
+
     if (ret < 0 || !*got_output) {
         if (!pkt->size)
             sub2video_flush(ist);



More information about the ffmpeg-cvslog mailing list