Skip to content
  • Vincent Penquerc'h's avatar
    oggdemux: fix granpos interpolation violating max keyframe distance · b4d6263f
    Vincent Penquerc'h authored
    In case many packets fit on a page, we may not see a granpos for
    a while, and granpos interpolation can wrap the 'frames since last
    keyframe' part of the granpos, generating a granpos which is smaller
    than what it should be.
    
    This is fixed by detecting keyframe packets (at least for Theora),
    and updating the last keyframe granpos from this.
    
    This may still be generating potentially wrong granpos for streams
    which have a Theora like granpos (keyframes, a max keyframe distance
    and a count of frames since last keyframe), and which allow implicit
    granules on packets. For these streams, a custom keyframe detection
    routine should be plugged into their GstOggStream mapper.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=669164
    b4d6263f