Skip to content
GitLab
Projects Groups Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
  • gst-plugins-good gst-plugins-good
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 646
    • Issues 646
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 71
    • Merge requests 71
  • 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-goodgst-plugins-good
  • Issues
  • #535
Closed
Open
Issue created Dec 17, 2018 by Nicolas Dufresne@ndufresneMaintainer

rtph26xdepay: Does not forward downstream GstFlowReturn

I though of fixing this in my !10 (merged) but it's getting too big, and this is just a distraction. I notice that the new identity eos-after=N does not push an eos returns EOS upstream. As a side effect, it rely on every element forwarding properly the GstFlowReturn value. Generally this is only broken in threaded elements, but in rth264depay, we over use gst_rtp_base_depayload_push(). This function does not return the GstFlowReturn, hence does not allow chaining it up. This issue can be fixed, by simply returning the buffer in process() implementation. The only case where the flow would be lost is when something is "injected" in the stream, but in all these cases something else will be pushed immediatly, so in the end, the flow return will be catched later.

To reproduce

This pipeline will not stop as it's supposed.

gst-launch-1.0 videotestsrc ! openh264enc ! rtph264pay ! rtph264depay ! identity eos-after=1 ! fakesink
Assignee
Assign to
Time tracking