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 734220 - decodebin/uridecodebin/playbin support multiple srcpads in a parser
decodebin/uridecodebin/playbin support multiple srcpads in a parser
Status: RESOLVED OBSOLETE
Product: GStreamer
Classification: Platform
Component: gst-plugins-base
git master
Other Linux
: Normal enhancement
: git master
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2014-08-04 06:48 UTC by cjunwang
Modified: 2018-05-05 15:22 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
change is_demuxer_element judgement (1.03 KB, patch)
2014-08-06 08:12 UTC, cjunwang
needs-work Details | Review

Description cjunwang 2014-08-04 06:48:33 UTC
Seperated bug from https://bugzilla.gnome.org/show_bug.cgi?id=704881

As Mr Sebastian Dröge said,
-------------------------------------------------------------------------------
However for adding multiple srcpads to a parser there are changes necessary in
decodebin:
1) decodebin needs to detect these multi-srcpad parsers still as parsers (thus
use the capsfilter hack for its main srcpad, but only for that) and
additionally detect them as demuxers (thus use the multiqueue after all
srcpads).
2) decodebin/uridecodebin/playbin need support for late pads. That is pads that
are added after no-more-pads (or after multiqueue overrun, which is handled
like no-more-pads). These should be included in the current stream group
instead of being ignored. This shouldn't be too difficult but might break some
assumptions in a few places.
Comment 1 cjunwang 2014-08-06 08:12:05 UTC
Created attachment 282640 [details] [review]
change is_demuxer_element judgement
Comment 2 Sebastian Dröge (slomo) 2014-08-06 08:16:15 UTC
Comment on attachment 282640 [details] [review]
change is_demuxer_element judgement 

This is not correct. Not every video parser can have multiple srcpads, and you still need to handle the parsers as parsers elsewhere in the decodebin code. This patch would break conversion of stream formats for example.

If you look elsewhere in decodebin you will see some parser specific code that still must be called for this.


Maybe there should be a separate demuxer element for extracting the ancilliary data instead of putting it into the parser? Might be an easier solution
Comment 3 Thiago Sousa Santos 2014-08-29 21:07:41 UTC
(In reply to comment #2)
> (From update of attachment 282640 [details] [review])
> This is not correct. Not every video parser can have multiple srcpads, and you
> still need to handle the parsers as parsers elsewhere in the decodebin code.
> This patch would break conversion of stream formats for example.
> 
> If you look elsewhere in decodebin you will see some parser specific code that
> still must be called for this.
>

I started implementing a dynamic-parser handling that is similar to the demuxer, except that the no-more-pads signaling is ignored. It seems to work and is quite simple.
 
> 
> Maybe there should be a separate demuxer element for extracting the ancilliary
> data instead of putting it into the parser? Might be an easier solution

Seems more elegant, but:
1) Will likely replicate parsing code in 2 elements
2) Autoplugging and avoiding loops will add extra complexity to decodebin
Comment 4 Faham Negini 2014-10-22 18:38:52 UTC
Thiago could you please upload your patch for the dynamic-parser handling
Comment 5 Edward Hervey 2018-05-05 15:22:07 UTC
This is not really needed anymore considering that any element (including parsers) can add CC as meta on streams.