flvenc: don't write random data if seek fails
The FLV muxer tries to update the header in write_trailer, which is impossible if writing to a pipe or network stream. Don't write header data if seek to header fails. Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:
		
				
					committed by
					
						
						Michael Niedermayer
					
				
			
			
				
	
			
			
			
						parent
						
							0aa0bab40d
						
					
				
				
					commit
					2947e7b7a7
				
			@@ -426,10 +426,14 @@ static int flv_write_trailer(AVFormatContext *s)
 | 
			
		||||
    file_size = avio_tell(pb);
 | 
			
		||||
 | 
			
		||||
    /* update information */
 | 
			
		||||
    avio_seek(pb, flv->duration_offset, SEEK_SET);
 | 
			
		||||
    put_amf_double(pb, flv->duration / (double)1000);
 | 
			
		||||
    avio_seek(pb, flv->filesize_offset, SEEK_SET);
 | 
			
		||||
    put_amf_double(pb, file_size);
 | 
			
		||||
    if(avio_seek(pb, flv->duration_offset, SEEK_SET) < 0)
 | 
			
		||||
        av_log(s, AV_LOG_WARNING, "Failed to update header with correct duration.\n");
 | 
			
		||||
    else
 | 
			
		||||
        put_amf_double(pb, flv->duration / (double)1000);
 | 
			
		||||
    if(avio_seek(pb, flv->filesize_offset, SEEK_SET) < 0)
 | 
			
		||||
        av_log(s, AV_LOG_WARNING, "Failed to update header with correct filesize.\n");
 | 
			
		||||
    else
 | 
			
		||||
        put_amf_double(pb, file_size);
 | 
			
		||||
 | 
			
		||||
    avio_seek(pb, file_size, SEEK_SET);
 | 
			
		||||
    return 0;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user