• Sergey Svechnikov's avatar
    avcodec/cuviddec: improve progressive frame detection · 703583db
    Sergey Svechnikov authored
    There are 2 types of problems when using adaptive deinterlace with cuvid:
    
    1. Sometimes, in the middle of transcoding, cuvid outputs frames with visible horizontal lines (as though weave deinterlace method was chosen);
    2. Occasionally, on scene changes, cuvid outputs a wrong frame, which should have been shown several seconds before (as if the frame was assigned some wrong PTS value).
    
    The reason is that sometimes CUVIDPARSERDISPINFO has property progressive_frame equal to 1 with interlaced videos.
    In order to fix the problem we should check if the video is interlaced or progressive in the beginning of a video sequence (cuvid_handle_video_sequence).
    And then we just use this information instead of the property progressive_frame in CUVIDPARSERDISPINFO (which is unreliable).
    Signed-off-by: 's avatarTimo Rothenpieler <timo@rothenpieler.org>
    703583db
cuviddec.c 40.1 KB