avformat/hlsenc: copy codec_tag when stream copy
when use fmp4 segment type in hls and use codec copy, there have an error message. error message: [mp4 @ 0x25df020] Tag avc1 incompatible with output codec id '28' ([33][0][0][0]) [hls @ 0x2615c80] Some of the provided format options in '(null)' are not recognized Could not write header for output file #0 (incorrect codec parameters ?): Invalid argument this patch can fix it. Signed-off-by: Liu Qi <w_liuqi@kingsoft.com> Signed-off-by: Steven Liu <lq@onvideo.cn>
This commit is contained in:
		
							parent
							
								
									d01b8f8683
								
							
						
					
					
						commit
						1fe40e73a6
					
				@ -566,6 +566,14 @@ static int hls_mux_init(AVFormatContext *s)
 | 
			
		||||
        if (!(st = avformat_new_stream(loc, NULL)))
 | 
			
		||||
            return AVERROR(ENOMEM);
 | 
			
		||||
        avcodec_parameters_copy(st->codecpar, s->streams[i]->codecpar);
 | 
			
		||||
        if (!oc->oformat->codec_tag ||
 | 
			
		||||
            av_codec_get_id (oc->oformat->codec_tag, s->streams[i]->codecpar->codec_tag) == st->codecpar->codec_id ||
 | 
			
		||||
            av_codec_get_tag(oc->oformat->codec_tag, s->streams[i]->codecpar->codec_id) <= 0) {
 | 
			
		||||
            st->codecpar->codec_tag = s->streams[i]->codecpar->codec_tag;
 | 
			
		||||
        } else {
 | 
			
		||||
            st->codecpar->codec_tag = 0;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        st->sample_aspect_ratio = s->streams[i]->sample_aspect_ratio;
 | 
			
		||||
        st->time_base = s->streams[i]->time_base;
 | 
			
		||||
        av_dict_copy(&st->metadata, s->streams[i]->metadata, 0);
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user