[Ffmpeg-devel] incorrect NTSC frame rate detection in .MOV file parser (original) (raw)
Dan Maas dmaas
Wed Feb 1 03:31:36 CET 2006
- Previous message: [Ffmpeg-devel] incorrect NTSC frame rate detection in .MOV file parser
- Next message: [Ffmpeg-devel] incorrect NTSC frame rate detection in .MOV file parser
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
I've traced the problem to line 2029 of libavformat/utils.c:
av_reduce(&st->r_frame_rate.num, &st->r_frame_rate.den, num, den, FFMAX(st->time_base.den, st->time_base.num)/4);
This av_reduce() is supposed to compute the real frame rate based on sample durations. However the 'max' argument (FFMAX(...))) prevents it from computing the correct ratio. This causes the following if() statement to be false, and incorrectly assigns a frame rate without the 1/1.001 NTSC factor.
For example, a 2-frame NTSC DV Quicktime file has total duration 5994 and sample duration 200. The correct frame rate is 5994/200 = 2997/100. However the av_reduce() returns 30/1, which is incorrect.
Regards, Dan
- Previous message: [Ffmpeg-devel] incorrect NTSC frame rate detection in .MOV file parser
- Next message: [Ffmpeg-devel] incorrect NTSC frame rate detection in .MOV file parser
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]