ffmpeg; check return code of avcodec_send_frame when flushing encoders
Fixes Coverity CID 1404841. Signed-off-by: Marton Balint <cus@passwd.hu>
This commit is contained in:
		
							parent
							
								
									fc8cff96ed
								
							
						
					
					
						commit
						c037f2f1ba
					
				
							
								
								
									
										14
									
								
								ffmpeg.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								ffmpeg.c
									
									
									
									
									
								
							@ -1904,8 +1904,6 @@ static void flush_encoders(void)
 | 
			
		||||
        if (enc->codec_type != AVMEDIA_TYPE_VIDEO && enc->codec_type != AVMEDIA_TYPE_AUDIO)
 | 
			
		||||
            continue;
 | 
			
		||||
 | 
			
		||||
        avcodec_send_frame(enc, NULL);
 | 
			
		||||
 | 
			
		||||
        for (;;) {
 | 
			
		||||
            const char *desc = NULL;
 | 
			
		||||
            AVPacket pkt;
 | 
			
		||||
@ -1927,7 +1925,17 @@ static void flush_encoders(void)
 | 
			
		||||
                pkt.size = 0;
 | 
			
		||||
 | 
			
		||||
                update_benchmark(NULL);
 | 
			
		||||
                ret = avcodec_receive_packet(enc, &pkt);
 | 
			
		||||
 | 
			
		||||
                while ((ret = avcodec_receive_packet(enc, &pkt)) == AVERROR(EAGAIN)) {
 | 
			
		||||
                    ret = avcodec_send_frame(enc, NULL);
 | 
			
		||||
                    if (ret < 0) {
 | 
			
		||||
                        av_log(NULL, AV_LOG_FATAL, "%s encoding failed: %s\n",
 | 
			
		||||
                               desc,
 | 
			
		||||
                               av_err2str(ret));
 | 
			
		||||
                        exit_program(1);
 | 
			
		||||
                    }
 | 
			
		||||
                }
 | 
			
		||||
 | 
			
		||||
                update_benchmark("flush_%s %d.%d", desc, ost->file_index, ost->index);
 | 
			
		||||
                if (ret < 0 && ret != AVERROR_EOF) {
 | 
			
		||||
                    av_log(NULL, AV_LOG_FATAL, "%s encoding failed: %s\n",
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user