ffmpeg: only count got_output/errors in decode_error_stat
If threading is used, the first (thread_count - 1) packets are read before any frame/error is returned. Counting this as successful decoding is wrong, because it also happens when no single frame could be decoded. Reviewed-by: Michael Niedermayer <michaelni@gmx.at> Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
This commit is contained in:
		
							parent
							
								
									cd64ead8d9
								
							
						
					
					
						commit
						bd0f14123f
					
				
							
								
								
									
										6
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								ffmpeg.c
									
									
									
									
									
								
							@ -1870,7 +1870,7 @@ static int decode_audio(InputStream *ist, AVPacket *pkt, int *got_output)
 | 
			
		||||
        ret = AVERROR_INVALIDDATA;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (*got_output || ret<0 || pkt->size)
 | 
			
		||||
    if (*got_output || ret<0)
 | 
			
		||||
        decode_error_stat[ret<0] ++;
 | 
			
		||||
 | 
			
		||||
    if (ret < 0 && exit_on_error)
 | 
			
		||||
@ -2009,7 +2009,7 @@ static int decode_video(InputStream *ist, AVPacket *pkt, int *got_output)
 | 
			
		||||
            );
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (*got_output || ret<0 || pkt->size)
 | 
			
		||||
    if (*got_output || ret<0)
 | 
			
		||||
        decode_error_stat[ret<0] ++;
 | 
			
		||||
 | 
			
		||||
    if (ret < 0 && exit_on_error)
 | 
			
		||||
@ -2121,7 +2121,7 @@ static int transcode_subtitles(InputStream *ist, AVPacket *pkt, int *got_output)
 | 
			
		||||
    int i, ret = avcodec_decode_subtitle2(ist->dec_ctx,
 | 
			
		||||
                                          &subtitle, got_output, pkt);
 | 
			
		||||
 | 
			
		||||
    if (*got_output || ret<0 || pkt->size)
 | 
			
		||||
    if (*got_output || ret<0)
 | 
			
		||||
        decode_error_stat[ret<0] ++;
 | 
			
		||||
 | 
			
		||||
    if (ret < 0 && exit_on_error)
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user