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 721100 - App Dev Manual: Dynamically Changing the Pipeline example hangs
App Dev Manual: Dynamically Changing the Pipeline example hangs
Status: RESOLVED FIXED
Product: GStreamer
Classification: Platform
Component: documentation
git master
Other Linux
: Normal normal
: 1.3.1
Assigned To: GStreamer Maintainers
GStreamer Maintainers
Depends on:
Blocks:
 
 
Reported: 2013-12-26 19:50 UTC by Todd Agulnick
Modified: 2014-02-04 20:37 UTC
See Also:
GNOME target: ---
GNOME version: ---


Attachments
Code from "Dynamically Changing the Pipeline" (5.05 KB, application/octet-stream)
2013-12-26 19:50 UTC, Todd Agulnick
  Details
Updates "dynamically changing the pipeline" example in manual (4.04 KB, patch)
2014-01-03 15:32 UTC, Todd Agulnick
committed Details | Review

Description Todd Agulnick 2013-12-26 19:50:25 UTC
Created attachment 264910 [details]
Code from "Dynamically Changing the Pipeline"

When running the example included here:

http://gstreamer.freedesktop.org/data/doc/gstreamer/head/manual/html/section-dynamic-pipelines.html

... the code always gets stuck with the warning like the following:

basetransform gstbasetransform.c:2130:gst_base_transform_handle_buffer:<vertigotv0> could not get buffer from pool: flushing

... after which all processing appears to cease, though the program keeps running.

I don't know whether the problem is in the code sample provided with the documentation or whether there's really a bug in gstreamer core. But this seems to be the key example available for reconfiguring a running pipeline, so it's probably important to anyone who's trying to learn how to do this (including me!)

I've included the code from the referenced chapter as an attachment.
Comment 1 Todd Agulnick 2013-12-26 20:17:14 UTC
fwiw, it behaves the same way when compiled against the 1.2 branch.
Comment 2 Tim-Philipp Müller 2013-12-26 22:37:40 UTC
For what it's worth, there is also a (hopefully working) demo here:
http://cgit.freedesktop.org/gstreamer/gst-plugins-base/tree/tests/icles/test-effect-switch.c
Comment 3 Todd Agulnick 2013-12-26 23:22:11 UTC
Thanks! That works for me, compiled against both master and the 1.2 branch on Linux.

On OSX, ximagesink has trouble allocating shared memory, which causes it to bail after the second or third effect switches. I guess that might be a problem with osxvideosink? Or maybe something about my specific setup?

Regardless, the example you provided seems like it might be a better selection for the Developer Manual.
Comment 4 Sebastian Dröge (slomo) 2014-01-03 09:22:37 UTC
Yes, the docs should just include the test-effect-switch example. It's like a newer and better version of what is there now :) Todd, do you want to provide a patch?
Comment 5 Todd Agulnick 2014-01-03 15:32:18 UTC
Created attachment 265224 [details] [review]
Updates "dynamically changing the pipeline" example in manual

Here it is. Note that I removed the copyright block as there don't seem to be any others in the manual. If the copyright holder (which happens to be Tim) objects, I'd be happy to provide another patch.
Comment 6 Sebastian Dröge (slomo) 2014-01-03 15:57:08 UTC
Review of attachment 265224 [details] [review]:

::: docs/manual/advanced-dataaccess.xml
@@ +1515,3 @@
   g_option_context_free (ctx);
 
+  GST_FIXME ("Multiple things to check/fix, see source code");

That's not so nice to have in the documentation :) What is it about? Maybe we should fix that first or remove that GST_FIXME() if there's no problem anymore.

Tim, do you know?
Comment 7 Sebastian Dröge (slomo) 2014-02-04 20:37:12 UTC
Ok, whatever :) The code is definitely better than the old one... cleaned that up a bit now

commit b110286e9531131f610ad4d27580051f91eb09d2
Author: Sebastian Dröge <sebastian@centricular.com>
Date:   Tue Feb 4 21:36:18 2014 +0100

    manual: Clean up code a bit to be suitable for the docs

commit cb1657fcea1a5e913839ede84aa97a5b917cb391
Author: Todd Agulnick <todd@agulnick.com>
Date:   Fri Jan 3 07:25:37 2014 -0800

    manual: Replace manual's effectswitch.c with newer test-effect-switch.c
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721100