decodebin3: Avoid duplicate streams

Elements emitting stream collections do so by not only posting the
GST_MESSAGE_STREAM_COLLECTION, but also then pushing a
GST_EVENT_STREAM_COLLECTION through each srcpad.

The latter is how decodebin3 detects stream collections itself, as
the GST_MESSAGE_STREAM_COLLECTION may be posted before the source
element is added to the pipeline and therefore missed.

But it should be noted: when the source has two srcpads the stream
collection event is received twice!

When decodebin3 receives several stream collections it reacts by
creating a new one combining all the streams... But the code doing so
did not take into account the case mentioned before, where both
collections are actually the same and have the same streams. This patch
fixes that.
28 jobs for decodebin3-avoid-duplicate-streams in 70 minutes and 5 seconds (queued for 10 seconds)
latest
Status Job ID Name Coverage
  Preparation
passed #1291196
gst indent

00:00:42

passed #1291195
manifest

00:00:38

 
  Build
passed #1291206
gstreamer
build cerbero cross-android universal

00:14:39

passed #1291210
gst-ios-13.2
build cerbero cross-ios universal

00:16:45

passed #1291207
gstreamer
build cerbero cross win32

00:06:09

passed #1291208
gstreamer
build cerbero cross win64

00:04:38

passed #1291205
gstreamer
build cerbero fedora x86_64

00:05:32

passed #1291209
gst-macos-10.15
build cerbero macos x86_64

00:08:41

passed #1291201
build clang fedora x86_64

00:12:32

passed #1291197
build fedora x86_64

00:10:55

passed #1291204
docker windows 1809
build msys2

00:22:12

passed #1291198
build nodebug fedora x86_64

00:05:08

passed #1291199
build static fedora x86_64

00:17:28

passed #1291200
build static nodebug fedora x86_64

00:05:20

passed #1291202
docker windows 1809
build vs2017 amd64

00:09:53

passed #1291203
docker windows 1809
build vs2017 x86

00:10:02

 
  Test
passed #1291211
gstreamer
check fedora

00:03:20

passed #1292610
gstreamer
integration testsuites fedora

00:44:19

passed #1291216
gstreamer
valgrind bad

00:06:41

passed #1291213
gstreamer
valgrind base

00:07:08

passed #1291217
gstreamer
valgrind ges

00:09:46

passed #1291214
gstreamer
valgrind good

00:14:01

passed #1291215
gstreamer
valgrind ugly

00:02:22

failed #1291212
gstreamer
integration testsuites fedora

01:52:41

failed #1292383
gstreamer
integration testsuites fedora

00:45:29

 
  Integrate
passed #1291218
cross-android universal examples

00:06:20

passed #1291220
gst-ios-13.2
cross-ios universal examples

00:03:43

passed #1291219
documentation

00:04:53