• Philip Langdale's avatar
    CrystalHD: Add heuristics to try and distinguish h.264 PAFF variants. · 4ab57cff
    Philip Langdale authored
    As previously discussed, the CrystalHD hardware treats some PAFF
    clips different from others; even when input fields are always in
    separate packets, the hardware might return a single fieldpair for
    one clip and individual fields for another.
    
    Given the bogus flags set by the hardware, it is impossible to
    distinguish these two cases without knowing about the current
    picture and the next one. The hardware can usually provide the
    picture number of the next picture and when that is available,
    we can detect the two cases.
    
    When it is not available, we have to guess - and find out later
    if we were right or wrong.
    
    With this change, clips will play correctly unless they are PAFF
    where individual fields are returned *and* no next picture number
    is available. Generally speaking, the incorrect cases arise in
    the first couple of seconds of a clip as the delay calibration takes
    place. Once that's set, things work fine.
    4ab57cff
crystalhd.c 36.9 KB