Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-base gst-plugins-base
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 641
    • Issues 641
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 80
    • Merge requests 80
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Container Registry
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamerGStreamer
  • gst-plugins-basegst-plugins-base
  • Issues
  • #768
Closed
Open
Issue created Jun 08, 2020 by Edward Hervey@bilboed🤘Owner

Oggdemux seeking fail with theora

This is the major reason the theora rtsp validate tests fail

In a nutshell:

  • Seek to a position via rtsp-server
  • oggdemux in rtsp-server has an off-by-one error in where the keyframe really is
  • oggdemux outputs a wrong (off by one frame duration) segment start value
  • oggdemux starts outputting from the page containing that (off by one) keyframe
  • payloader (rightfully) doesn't set any PTS
  • udpsink (rightfully) drops the out-of-segment buffer

This ends up in having to wait a long time for the next keyframe to arrive, even potentially locking the player client-side (audio arrives, but video never arrives before maximum buffering).

Note that one wouldn't see this issue with regular (non-rtsp) playback because the demuxer would (almost all the time) output from the proper page, so the decoder would still have the data (even though it would end up clipping that first frame).

I've lost my sanity trying to figure out what would cause that off-by-one error, someone else please look into it.

Edited Jun 09, 2020 by Edward Hervey
Assignee
Assign to
Time tracking