summaryrefslogtreecommitdiffstats
path: root/libhb/decavcodec.c
diff options
context:
space:
mode:
authorjstebbins <[email protected]>2010-04-25 21:15:43 +0000
committerjstebbins <[email protected]>2010-04-25 21:15:43 +0000
commitc22e82ad0081856466a92a6e47a72b3ea9b5628c (patch)
tree4118bfdb4913105820b98e7317021704c8f39faa /libhb/decavcodec.c
parente6ba7dc071b0b1f070b7f92e3b30eab1ee00a0b5 (diff)
bump ffmpeg to rev 22950
offset ffmpeg seeks by value of initial timestamp since it can be non-zero catch pix fmt that is unsupported by swscale, log it, skip the track use new ffmpeg avg_frame_rate for more accurate framerate estimate git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@3267 b64f7644-9d1e-0410-96f1-a4d463321fa5
Diffstat (limited to 'libhb/decavcodec.c')
-rw-r--r--libhb/decavcodec.c10
1 files changed, 8 insertions, 2 deletions
diff --git a/libhb/decavcodec.c b/libhb/decavcodec.c
index a506154db..0a9f63fec 100644
--- a/libhb/decavcodec.c
+++ b/libhb/decavcodec.c
@@ -1027,8 +1027,14 @@ static void init_ffmpeg_context( hb_work_object_t *w )
// Because the time bases are so screwed up, we only take values
// in the range 8fps - 64fps.
AVRational tb;
- if ( st->time_base.num * 64 > st->time_base.den &&
- st->time_base.den > st->time_base.num * 8 )
+ if ( st->avg_frame_rate.den * 64 > st->avg_frame_rate.num &&
+ st->avg_frame_rate.num > st->avg_frame_rate.den * 8 )
+ {
+ tb.num = st->avg_frame_rate.den;
+ tb.den = st->avg_frame_rate.num;
+ }
+ else if ( st->time_base.num * 64 > st->time_base.den &&
+ st->time_base.den > st->time_base.num * 8 )
{
tb = st->time_base;
}