After an evaluation, GNOME has moved from Bugzilla to GitLab. Learn more about GitLab.
No new issues can be reported in GNOME Bugzilla anymore.
To report an issue in a GNOME project, go to GNOME GitLab.
Do not go to GNOME Gitlab for: Bluefish, Doxygen, GnuCash, GStreamer, java-gnome, LDTP, NetworkManager, Tomboy.
Bug 608167 - [decodebin2] Doesn't push out full topology
[decodebin2] Doesn't push out full topology
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal normal
: 0.10.26
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2010-01-26 16:01 UTC by Edward Hervey
Modified: 2010-01-26 17:58 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
read all caps (782 bytes, patch)
2010-01-26 16:01 UTC, Edward Hervey
committed Details | Review

Description Edward Hervey 2010-01-26 16:01:53 UTC
Created attachment 152319 [details] [review]
read all caps

I'll take a simple example, but this behaviour happens with many other cases, mostly those when a parser is being used.

When taking a simple mp3 file (i.e. not surrounded with id3), the resulting topology isn't complete.

We end up with "typefind ! mp3parse ! mad" being plugged in internally. One would expect the stream topology to contain:
* the upstream caps (i.e. the caps from typefind.src)
* the caps between mp3parse and mad
* the final caps from mad (from its source pad)

Right now the resulting topology structure contains:
* the upstream caps (audio/mpeg, mpegversion=(int)1, layer=(int)3)
* the final caps (audio/x-raw-int, endianness=(int)1234, channels=(int)2, width=(int)16, dept....)

The problem is that this information isn't complete, it's missing the caps between mp3parse and mad, which contain quite a bit more information like this: audio/mpeg, mpegversion=(int)1, mpegaudioversion=(int)2, layer=(int)3, rate=(int)22050, channels=(int)2, parsed=(boolean)true

For some reason, the code writing the topology structure misses out the caps between mp3parse and mad, the attached patch fixes that issue.
Comment 1 Edward Hervey 2010-01-26 16:03:28 UTC
Ideally the topology code should figure out that two caps are compatible (like the final and middle caps from above), and only give the intersected caps.
Comment 2 Tim-Philipp Müller 2010-01-26 16:10:18 UTC
Comment on attachment 152319 [details] [review]
read all caps

Feel free to push this. Code path isn't active by default afaict, so should be low risk.
Comment 3 Edward Hervey 2010-01-26 17:58:46 UTC
commit c60f94da58a6bc3b61f991a3f9519fef1666bba6
Author: Edward Hervey <bilboed@bilboed.com>
Date:   Tue Jan 26 16:47:40 2010 +0100

    decodebin2: Don't skip an element when getting the topology
    
    Fixes #608167