Skip to content

GitLab

  • Menu
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 645
    • Issues 645
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 88
    • Merge requests 88
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Monitor
    • Monitor
    • Incidents
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • GStreamer
  • gst-plugins-basegst-plugins-base
  • Issues
  • #333

Closed
Open
Created Jan 25, 2017 by Bugzilla Migration User@bugzilla-migration

decodebin3: Add input_lock whenever add and remove DecodebinInputStream

Submitted by HoonHee Lee

Link to original bug (#777729)

Description

Hello All.
When decodebin3 has multiple parsebins, segmentation fault is observed sometimes when playbin3 pipeline goes to PLAYING to NULL.


Test Stream:
http://hls-streamer2-dev.minutv.ee/2d6870d65cd1b616ec04c107288081a9_1467970545web/vod/indur_test_lg/index.m3u8

Above HLS stream contains 1-video and 2-audio and number of parsebin is 3.

When create_input_stream () function is called at the same time by each pending pads, one DecodebinInputStream can not be inserted 'dbin->input_streams' list
and other DecodebinInputStream is added to 'dbin->input_streams' list.
So, length of 'dbin->input_streams' it not 3.

Thus, when playbin3 goes to PLAYING to NULL, parsebin_pad_removed_cb () function is called but, remove_input_stream () function is not called.
Because, we could not find corresponded DecodebinInputStream from 'dbin->input_streams'.

And then, segmentation fault is happened trying to "gst_pad_unlink (slot->input->srcpad, slot->sink_pad);" in free_multiqueue_slot () function.

Thanks.

Version: 1.11.1

Assignee
Assign to
Time tracking