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@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This commit is contained in:
		
							parent
							
								
									32a5b63126
								
							
						
					
					
						commit
						cd64ead8d9
					
				
							
								
								
									
										9
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										9
									
								
								ffmpeg.c
									
									
									
									
									
								
							@ -1873,6 +1873,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)
 | 
			
		||||
        return ret;
 | 
			
		||||
 | 
			
		||||
@ -2009,6 +2012,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 ||
 | 
			
		||||
@ -2118,6 +2124,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);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user