Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
gst-plugins-bad
gst-plugins-bad
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 1,011
    • Issues 1,011
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 199
    • Merge Requests 199
  • CI / CD
    • CI / CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI / CD
    • Repository
    • Value Stream
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-badgst-plugins-bad
  • Issues
  • #581

Closed
Open
Opened Jul 11, 2017 by Bugzilla Migration User@bugzilla-migration

dashdemux: don't rebuild streams if manifest has not changed

Submitted by A Ashley

Link to original bug (#784791)

Description

Every time the manifest is re-loaded, dashdemux creates a new set of stream objects and destroys the old objects. It then tries to position playback within these new streams to match the position before the manifest update. As shown by comments in the source code, this position calculation is not entirely accurate and there are several open bug tickets relating to manifest refreshes. For example https://bugzilla.gnome.org/show_bug.cgi?id=762933

In most situations, the manifest hasn't actually changed and there is no need to perfom the complex, expensive and slightly inaccurate process of full stream recreation. To make matters worse, some commercial DASH packagers set the minimumUpdatePeriod to the same as fragment duration, causing a manifest reload after every fragment.

I think it would be useful if dashdemux detected that the manifest has not changed so that it could avoid the whole stream re-creation step when there are no changes.

Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking
None
Due date
None
Reference: gstreamer/gst-plugins-bad#581