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 765431 - aggregator: Check all pads for data when live
aggregator: Check all pads for data when live
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: gst-plugins-bad
git master
Other Linux
: Normal normal
: 1.9.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2016-04-22 14:22 UTC by Nicolas Dufresne (ndufresne)
Modified: 2016-04-26 11:00 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
aggregator: Check all pads for data when live (2.12 KB, patch)
2016-04-22 14:23 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
aggregator: Check all pads for data when live (2.25 KB, patch)
2016-04-22 20:15 UTC, Nicolas Dufresne (ndufresne)
none Details | Review
aggregator: Check all pads for data when live (2.17 KB, patch)
2016-04-22 20:48 UTC, Nicolas Dufresne (ndufresne)
committed Details | Review

Description Nicolas Dufresne (ndufresne) 2016-04-22 14:22:34 UTC
Patch coming. This bug cause the aggregator to not always start if the first pads in the list is not linked and/or have no data.
Comment 1 Nicolas Dufresne (ndufresne) 2016-04-22 14:23:02 UTC
Created attachment 326555 [details] [review]
aggregator: Check all pads for data when live

When live, we still need to inspect all pads queue in order to determin
if we have received the first buffer or not.
Comment 2 Olivier Crête 2016-04-22 19:19:06 UTC
Review of attachment 326555 [details] [review]:

Looks good to me, but

::: gst-libs/gst/base/gstaggregator.c
@@ -449,1 @@
-    if (gst_aggregator_pad_queue_is_empty (pad) && !pad->priv->eos) {

Why did you remove the code that deals with EOS ? If EOS has been received, the pad should not be counted as empty.
Comment 3 Nicolas Dufresne (ndufresne) 2016-04-22 19:20:26 UTC
Oops, was not intentional.
Comment 4 Nicolas Dufresne (ndufresne) 2016-04-22 20:15:37 UTC
Created attachment 326574 [details] [review]
aggregator: Check all pads for data when live

When live, we still need to inspect all pads queue in order to determin
if we have received the first buffer or not.
Comment 5 Nicolas Dufresne (ndufresne) 2016-04-22 20:41:29 UTC
Review of attachment 326574 [details] [review]:

::: gst-libs/gst/base/gstaggregator.c
@@ +441,3 @@
 
+    /* Pad at EOS are considered having data, but not as first buffer */
+    if (!pad->priv->eos) {

Actually I'm uncertain that this is correct. I believe we could queue both data and EOS, and we'd missed the first buffer ...
Comment 6 Nicolas Dufresne (ndufresne) 2016-04-22 20:48:36 UTC
Created attachment 326577 [details] [review]
aggregator: Check all pads for data when live

When live, we still need to inspect all pads queue in order to determin
if we have received the first buffer or not.
Comment 7 Sebastian Dröge (slomo) 2016-04-25 06:51:13 UTC
Review of attachment 326577 [details] [review]:

Makes sense
Comment 8 Nicolas Dufresne (ndufresne) 2016-04-26 11:00:17 UTC
Comment on attachment 326577 [details] [review]
aggregator: Check all pads for data when live

commit 38895f236478ca5c0966d7d5b56897594b3caaaa
Author: Nicolas Dufresne <nicolas.dufresne@collabora.com>
Date:   Fri Apr 22 10:15:39 2016 -0400

    aggregator: Check all pads for data when live
    
    When live, we still need to inspect all pads queue in order to determin
    if we have received the first buffer or not.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=765431