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
  • #424
Closed
Open
Issue created Mar 05, 2018 by Bugzilla Migration User@bugzilla-migration

decodebin2: Fix detecting when a group or chain is really done

Submitted by GstBlub

Link to original bug (#794099)

Description

Created attachment 369367
decodebin2: Fix detecting when a group or chain is really done

I ran into a problem where decodebin2 accidentally emits the "drained" signal (which an application could act on) and then causes the pipeline to stall with the demuxer continuing on. This happened when using hlsdemux with a video stream, but without any (suitable) video decoder plugin present. The application intentionally ignores the typefind error as we're only interested in the audio portion. This works fine until hlsdemux triggers a bitrate switch, which causes decodebin2 to believe everything is drained (despite the new pads being added and properly signalled). When this happens there are two chains in a group, one for the video portion (that isn't active) and one for the audio portion.

I attached a patch that appears to fix this issue for me. Since I'm not too familiar with this code, I'd appreciate any feedback.

Patch 369367, "decodebin2: Fix detecting when a group or chain is really done":
0001-decodebin2-Fix-detecting-when-a-group-or-chain-is-re.patch

Assignee
Assign to
Time tracking