|  |  |  | @ -94,15 +94,6 @@ PUSHER_FUNC(jint, pushStream, jstring filePath, jstring liveUrl) { | 
			
		
	
		
			
				
					|  |  |  |  |         if (ret < 0) { | 
			
		
	
		
			
				
					|  |  |  |  |             break; | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         // calculate pts and dts
 | 
			
		
	
		
			
				
					|  |  |  |  |         if (packet.pts == AV_NOPTS_VALUE) { | 
			
		
	
		
			
				
					|  |  |  |  |             AVRational time_base = in_format->streams[video_index]->time_base; | 
			
		
	
		
			
				
					|  |  |  |  |             double frame_rate = av_q2d(in_format->streams[video_index]->r_frame_rate); | 
			
		
	
		
			
				
					|  |  |  |  |             int64_t cal_duration = (int64_t) (AV_TIME_BASE / frame_rate); | 
			
		
	
		
			
				
					|  |  |  |  |             packet.pts = (int64_t) ((frame_index * cal_duration) / (av_q2d(time_base) * AV_TIME_BASE)); | 
			
		
	
		
			
				
					|  |  |  |  |             packet.dts = packet.pts; | 
			
		
	
		
			
				
					|  |  |  |  |             packet.duration = (int64_t) (cal_duration / (av_q2d(time_base) * AV_TIME_BASE)); | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         if (packet.stream_index == video_index) { | 
			
		
	
		
			
				
					|  |  |  |  |             AVRational time_base = in_format->streams[video_index]->time_base; | 
			
		
	
		
			
				
					|  |  |  |  |             AVRational time_base_q = {1, AV_TIME_BASE}; | 
			
		
	
	
		
			
				
					|  |  |  | @ -116,7 +107,7 @@ PUSHER_FUNC(jint, pushStream, jstring filePath, jstring liveUrl) { | 
			
		
	
		
			
				
					|  |  |  |  |         in_stream = in_format->streams[packet.stream_index]; | 
			
		
	
		
			
				
					|  |  |  |  |         out_stream = out_format->streams[packet.stream_index]; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |         //pts to dts
 | 
			
		
	
		
			
				
					|  |  |  |  |         //calculate: pts dts duration
 | 
			
		
	
		
			
				
					|  |  |  |  |         packet.pts = av_rescale_q_rnd(packet.pts, in_stream->time_base, out_stream->time_base, | 
			
		
	
		
			
				
					|  |  |  |  |                                       (AVRounding) (AV_ROUND_NEAR_INF | AV_ROUND_PASS_MINMAX)); | 
			
		
	
		
			
				
					|  |  |  |  |         packet.dts = av_rescale_q_rnd(packet.dts, in_stream->time_base, out_stream->time_base, | 
			
		
	
	
		
			
				
					|  |  |  | 
 |