Skip to content
Snippets Groups Projects
Commit cd64ead8 authored by Andreas Cadhalpun's avatar Andreas Cadhalpun
Browse files

ffmpeg: exit_on_error if decoding a packet failed


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

Reviewed-by: default avatarMichael Niedermayer <michaelni@gmx.at>
Signed-off-by: default avatarAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
parent 32a5b631
No related branches found
No related tags found
No related merge requests found
...@@ -1873,6 +1873,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output) ...@@ -1873,6 +1873,9 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
if (*got_output || ret<0 || pkt->size) if (*got_output || ret<0 || pkt->size)
decode_error_stat[ret<0] ++; decode_error_stat[ret<0] ++;
if (ret < 0 && exit_on_error)
exit_program(1);
if (!*got_output || ret < 0) if (!*got_output || ret < 0)
return ret; return ret;
...@@ -2009,6 +2012,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output) ...@@ -2009,6 +2012,9 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
if (*got_output || ret<0 || pkt->size) if (*got_output || ret<0 || pkt->size)
decode_error_stat[ret<0] ++; decode_error_stat[ret<0] ++;
if (ret < 0 && exit_on_error)
exit_program(1);
if (*got_output && ret >= 0) { if (*got_output && ret >= 0) {
if (ist->dec_ctx->width != decoded_frame->width || if (ist->dec_ctx->width != decoded_frame->width ||
ist->dec_ctx->height != decoded_frame->height || ist->dec_ctx->height != decoded_frame->height ||
...@@ -2118,6 +2124,9 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output) ...@@ -2118,6 +2124,9 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output)
if (*got_output || ret<0 || pkt->size) if (*got_output || ret<0 || pkt->size)
decode_error_stat[ret<0] ++; decode_error_stat[ret<0] ++;
if (ret < 0 && exit_on_error)
exit_program(1);
if (ret < 0 || !*got_output) { if (ret < 0 || !*got_output) {
if (!pkt->size) if (!pkt->size)
sub2video_flush(ist); sub2video_flush(ist);
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment