Hi,
the attached patch should fix this bug.

-- 
Anton Khirnov
Index: xjadeo-0.7.6/src/xjadeo/avinfo.c
===================================================================
--- xjadeo-0.7.6.orig/src/xjadeo/avinfo.c	2013-07-12 15:55:35.000000000 +0000
+++ xjadeo-0.7.6/src/xjadeo/avinfo.c	2014-02-23 13:53:41.626711805 +0000
@@ -367,7 +367,7 @@
 #elif LIBAVFORMAT_BUILD <= 4629
       printf("    <framerate>%.2f</framerate>\n", 1/av_q2d(codec->time_base));
 #else
-      printf("    <framerate>%.2f</framerate>\n", av_q2d(st->r_frame_rate));
+      printf("    <framerate>%.2f</framerate>\n", av_q2d(st->avg_frame_rate));
 #endif
 #if LIBAVFORMAT_BUILD < 3473920
       printf("    <pixelformat>%s</pixelformat>\n", avcodec_get_pix_fmt_name(codec->pix_fmt));
Index: xjadeo-0.7.6/src/xjadeo/xjadeo.c
===================================================================
--- xjadeo-0.7.6.orig/src/xjadeo/xjadeo.c	2013-08-06 15:47:39.000000000 +0000
+++ xjadeo-0.7.6/src/xjadeo/xjadeo.c	2014-02-23 13:54:17.091594177 +0000
@@ -410,8 +410,8 @@
 #elif LIBAVFORMAT_BUILD <= 4623 // I'm not sure that this is correct:
 	else framerate = (double) av_stream->r_frame_rate / (double) av_stream->r_frame_rate_base;
 #else
-	else if(av_stream->r_frame_rate.den && av_stream->r_frame_rate.num) {
-		framerate = av_q2d(av_stream->r_frame_rate);
+	else if(av_stream->avg_frame_rate.den && av_stream->avg_frame_rate.num) {
+		framerate = av_q2d(av_stream->avg_frame_rate);
 		if ((framerate < 4 || framerate > 100 ) && (av_stream->time_base.num && av_stream->time_base.den))
 			framerate = 1.0/av_q2d(av_stream->time_base);
 	}
@@ -687,7 +687,7 @@
 	} else {
 	// does not work with -F <double>, but it's more accurate when rounding ratios
 		timestamp=av_rescale_q(timestamp,c1_Q,v_stream->time_base); 
-		timestamp=av_rescale_q(timestamp,c1_Q,v_stream->r_frame_rate); //< timestamp/=framerate; 
+		timestamp=av_rescale_q(timestamp,c1_Q,v_stream->avg_frame_rate); //< timestamp/=framerate;
 	}
 
 # ifdef FFDEBUG

Reply via email to