mirror of
				https://projects.vdr-developer.org/git/vdr-plugin-softhddevice.git
				synced 2023-10-10 17:16:51 +00:00 
			
		
		
		
	Add automatic frame rate detection for older ffmpeg versions.
This commit is contained in:
		@@ -1,6 +1,7 @@
 | 
			
		||||
User johns
 | 
			
		||||
Date:
 | 
			
		||||
 | 
			
		||||
    Add automatic frame rate detection for older ffmpeg versions.
 | 
			
		||||
    Fix bug: destroyed vdpau surfaces still used in queue.
 | 
			
		||||
    Fix bug: need signed char, if compiler has unsigned chars.
 | 
			
		||||
    Try smaller audio puffer, if default size fails.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								video.c
									
									
									
									
									
								
							
							
						
						
									
										14
									
								
								video.c
									
									
									
									
									
								
							@@ -457,10 +457,18 @@ static void VideoSetPts(int64_t * pts_p, int interlaced,
 | 
			
		||||
    //	FIXME: using framerate as workaround for av_frame_get_pkt_duration
 | 
			
		||||
    //
 | 
			
		||||
#if LIBAVCODEC_VERSION_INT < AV_VERSION_INT(56,13,100)
 | 
			
		||||
    // FIXME: need frame rate for older versions
 | 
			
		||||
    duration = interlaced ? 40 : 20;	// 50Hz -> 20ms default
 | 
			
		||||
    // version for older ffmpeg without framerate
 | 
			
		||||
    if (video_ctx->time_base.num && video_ctx->time_base.den) {
 | 
			
		||||
	duration =
 | 
			
		||||
	    (video_ctx->ticks_per_frame * 1000 * video_ctx->time_base.num) /
 | 
			
		||||
	    video_ctx->time_base.den;
 | 
			
		||||
    } else {
 | 
			
		||||
	duration = interlaced ? 40 : 20;	// 50Hz -> 20ms default
 | 
			
		||||
    }
 | 
			
		||||
    Debug(4, "video: %d/%d %" PRIx64 " -> %d\n", video_ctx->time_base.den,
 | 
			
		||||
	video_ctx->time_base.num, av_frame_get_pkt_duration(frame), duration);
 | 
			
		||||
#else
 | 
			
		||||
    if (video_ctx->framerate.num != 0 && video_ctx->framerate.den != 0) {
 | 
			
		||||
    if (video_ctx->framerate.num && video_ctx->framerate.den) {
 | 
			
		||||
	duration = 1000 * video_ctx->framerate.den / video_ctx->framerate.num;
 | 
			
		||||
    } else {
 | 
			
		||||
	duration = interlaced ? 40 : 20;	// 50Hz -> 20ms default
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user