How do I correct pulldown on DVD content?
You may think that all is lost, but no. There are two approaches. The first is to have the MPEG2 decoding layer expand all content on the DVD to 59.94 interlaced fields per second, and pass it to a heuristics engine. You may say: why do that, when the flags tell you exactly what to do! However, remember that if you do this, copied fields will be byte-for-byte identical, and they’ll be easy to test for, and secondly this will get around some problem cases. The other method is to enable pulldown detection whenever you see interlaced frames, and remember where you were in the pulldown sequence based on what sequence the flags were telling you. I do this in my DVD player app ‘movietime’ (see http://www.sf.net/projects/movietime/). Whenever I see interlaced content, I fill my diff_factor history with the ideal based on what I was decoding, and assume the interlaced content is pulldown and go at it. It works ok.