decodebin3-parse: take input locking when updating group-id
Submitted by HoonHee Lee
Link to original bug (#797020)
Description
Dear All
I've encountered issue to play dual video stream (BL/EL).
The issue is that group-id is changed in decodebin3-parse and it is not equal in between video and audio in streamsyncronizer.
So, streamsynchronizer could not send segment and buffer to downstream(basesink).
The root cause it that group-id is updated without mutex locking.
0:00:32.817321099 10434 0xefd0ba00 DEBUG decodebin3 gstdecodebin3-parse.c:237:parse_chain_output_probe:parsebin0:src_0 Got event stream-start
0:00:32.817865349 10434 0xefd0ba00 FIXME decodebin3 gstdecodebin3-parse.c:246:parse_chain_output_probe:parsebin0:src_0 Consider implementing group-id handling on stream-start event
0:00:32.817900932 10434 0xefd0ba00 DEBUG decodebin3 gstdecodebin3-parse.c:251:parse_chain_output_probe:parsebin0:src_0 Got stream-start, group_id:4, input 0x194d18
0:00:32.818515182 10434 0xf0601a30 DEBUG decodebin3 gstdecodebin3-parse.c:237:parse_chain_output_probe:parsebin0:src_1 Got event stream-start
0:00:32.818548641 10434 0xf0601a30 DEBUG decodebin3 gstdecodebin3-parse.c:251:parse_chain_output_probe:parsebin0:src_1 Got stream-start, group_id:3, input 0x194d18
0:00:32.818587557 10434 0xf0601a30 WARN decodebin3 gstdecodebin3.c:908:set_input_group_id:<decodebin3-0>
Group id changed (4 -> 3) on input 0x194d18
0:00:32.818611682 10434 0xf0601a30 DEBUG decodebin3 gstdecodebin3.c:915:set_input_group_id:<decodebin3-0>
Setting current group id to 3
0:00:32.818869057 10434 0xf0601a30 DEBUG decodebin3 gstdecodebin3-parse.c:237:parse_chain_output_probe:parsebin0:src_1 Got event caps
0:00:32.818924432 10434 0xf0601a30 DEBUG decodebin3 gstdecodebin3-parse.c:281:parse_chain_output_probe:parsebin0:src_1 caps audio/x-eac3, framed=(boolean)true, rate=(int)48000, channels=(int)2, alignment=(string)iec61937
0:00:32.818289849 10434 0xefd0ba00 DEBUG decodebin3 gstdecodebin3.c:915:set_input_group_id:<decodebin3-0>
Setting current group id to 4
===========================================Version: 1.14.0