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
  • #335

Closed
Open
Created Feb 04, 2017 by Bugzilla Migration User@bugzilla-migration

Don't switch track and use future list if active stream is not ready

Submitted by HoonHee Lee

Link to original bug (#778164)

Description

Created attachment 344911
Log for decodebin3

Hello All.
Segmentation fault is happened sometimes when audio track is changed immediately after initial prerolling(async-done) is completed.

Collection information.

cat gst.log | grep "gstdecodebin3.c" | grep "handle_stream_collection"
0:00:01.978901460 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1459:handle_stream_collection:<decodebin3-0> Setting collection 0x72b12928 on input 0x178470
0:00:01.978947501 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1467:handle_stream_collection: Received Stream Collection. Upstream_id : 700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d
0:00:01.978968251 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1468:handle_stream_collection: From input 0x178470
0:00:01.979002043 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1469:handle_stream_collection: 3 streams
0:00:01.979026126 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1475:handle_stream_collection: Stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/001'
0:00:01.979048001 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1477:handle_stream_collection: type : video
0:00:01.979067460 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1478:handle_stream_collection: flags : 0x0
0:00:01.979131168 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1480:handle_stream_collection: tags : taglist, video-codec=(string)"H.264\ /\ AVC", track-id=(uint)1;
0:00:01.979178210 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1482:handle_stream_collection: caps : video/x-h264, stream-format=(string)avc, alignment=(string)au, container=(string)"ISO\ MP4/M4A", format=(string)avc1, timestamptype=(boolean)true, level=(string)4, profile=(string)high, codec_data=(buffer)01640028ffe1002f67640028ac2ce5014016ec0502000007d0000186a1d180043280017d7d7bdf1a30008650002fafaf7be1f08844858001000468ffbcb0fdf8f800, width=(int)1280, height=(int)720, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)1/1
0:00:01.979302293 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1475:handle_stream_collection: Stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/002'
0:00:01.979323751 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1477:handle_stream_collection: type : audio
0:00:01.979342626 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1478:handle_stream_collection: flags : 0x0
0:00:01.979362168 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1480:handle_stream_collection: tags : taglist, audio-codec=(string)"EAC-3\ audio", language-code=(string)de, track-id=(uint)2;
0:00:01.979397251 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1482:handle_stream_collection: caps : audio/x-eac3, framed=(boolean)true, rate=(int)48000, channels=(int)2
0:00:01.979447418 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1475:handle_stream_collection: Stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/003'
0:00:01.979469918 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1477:handle_stream_collection: type : audio
0:00:01.979489085 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1478:handle_stream_collection: flags : 0x0
0:00:01.979508335 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1480:handle_stream_collection: tags : taglist, audio-codec=(string)"EAC-3\ audio", language-code=(string)en, track-id=(uint)3;
0:00:01.979543376 4249 0x2f9c60 DEBUG decodebin3 gstdecodebin3.c:1482:handle_stream_collection: caps : audio/x-eac3, framed=(boolean)true, rate=(int)48000, channels=(int)2

Active stream of multiqueue0:src_2(2nd audio track) is ready after changing audio track. Thus, Crash is happened.

0:00:02.261227918 4249 0x241d80 DEBUG decodebin3 gstdecodebin3.c:1754:multiqueue_src_probe:multiqueue0:src_2 Got event 0x721aee70 stream-start
0:00:02.261315293 4249 0x241d80 DEBUG decodebin3 gstdecodebin3.c:1768:multiqueue_src_probe:multiqueue0:src_2 Stream Start '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/003'
0:00:02.261372293 4249 0x241d80 DEBUG decodebin3 gstdecodebin3.c:1754:multiqueue_src_probe:multiqueue0:src_2 Got event 0x71706188 caps

========================================================
cat gst.log | grep "gstdecodebin3.c" | grep "handle_stream_switch"
0:00:02.228173001 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2555:handle_stream_switch:<decodebin3-0> Checking stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/001'
0:00:02.228201335 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2572:handle_stream_switch:<decodebin3-0> Stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/001' from slot 0x721b9510 is already active on output 0x71700d40
0:00:02.228231543 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2555:handle_stream_switch:<decodebin3-0> Checking stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/003'
0:00:02.228256668 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2567:handle_stream_switch:<decodebin3-0> We need to activate slot 0x721bb8c0 for stream '700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/003')
0:00:02.228379793 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2599:handle_stream_switch:<decodebin3-0> Slot 0x721b9cd0 (700b33270de0626842783cd41367760d89e939be6afa274c89f726e21284095d/002) should be deactivated, no longer used
0:00:02.228405710 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2606:handle_stream_switch:<decodebin3-0> Check if we can reassign slots
0:00:02.228424543 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2618:handle_stream_switch:<decodebin3-0> Checking if slot to deactivate (0x721b9cd0) has a candidate slot to activate
0:00:02.228446918 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2621:handle_stream_switch:<decodebin3-0> Comparing to slot 0x721bb8c0
0:00:02.228467668 4249 0x8cac0 DEBUG decodebin3 gstdecodebin3.c:2623:handle_stream_switch:<decodebin3-0> Re-using

Following code is crash point in handle_stream_switch ().

to_reassign = g_list_append (to_reassign, (gchar *)
gst_stream_get_stream_id (slot_to_activate->active_stream));

Attachment 344911, "Log for decodebin3":
gst.log

Version: 1.11.1

Assignee
Assign to
Time tracking