Images into video streams (Matt Clark)

Matt Clark mclark4386 at
Tue Mar 22 07:18:22 UTC 2022

Hey all,
First thank y'all for your help! I did get it working, but I don't think
it's ideal. I was getting ready for a demo so didn't want to play with it
then, but now is a good time to try to optimize it! Attached is the debug
of the complete pipeline. As you can see I ended up putting a videoconvert
on either side of the imagefreeze and I think that's what finally got it

Any hints or pointers on improving our pipeline?

On Thu, Mar 10, 2022 at 3:33 AM Aleksandar Topic <aleks at> wrote:

> As stated in MR #1547, imagefreeze by itself is also dependent on both
> format and bit depth.
> So the CAPS could very likely be the issue. You could quickly test this
> using a videoconvert.
> Knowing whether this solves your negotiation problem, you should be able
> to set CAPS explicitly to do a proper solution.
> Best regards / Med venlig hilsen
> Aleksandar Topic
> On Thu, 10 Mar 2022 at 09:59, Marianna Smidth Buschle via gstreamer-devel <
> gstreamer-devel at> wrote:
>> Hi,
>> You have a non-negotiated error, that means you have problems with the
>> CAPS.
>> So you need to investigate that.
>> Try running with: GST_DEBUG=*:3,GST_CAPS:5
>> In order to get more information about the CAPS available and trying to
>> be negotiated.
>> Also, I vaguely recall some cases where you might need to specify the
>> CAPS in the input and output of the compositor to get it to work properly.
>> Best Regards
>> Marianna
>> On 08.03.2022 22.32, gstreamer-devel-request at wrote:
>> (Sorry if this duplicates, I thought I had fully signed up for the mailing
>> list before trying to send this the first, but it seems it didn't
>> go through. So now that I know I'm on the mailing list I hope this wont
>> mess anything up.)
>> *Context:* I'm making a server that composites various sources of media
>> into a video stream(like a 2x2 grid from different sources for instance)
>> and supports multiple streams at the same time (including being able to
>> update those pipelines dynamically with web calls in the future). One
>> source is an image(image/png) that gets generated upon request by a
>> separate microservice. I was trying to use an Appsrc to pull the image and
>> then push it into a PngDec --> ImageFreeze and then link that to the
>> composite element with the sink properties for which part of the grid it
>> should show on.
>> I've got it pulling the image and pushing that buffer, but I'm getting the
>> error below, and I'm not sure exactly what's causing it.
>> *Questions:*
>> 1. What do you think is happening and what's the best way to resolve it?
>> 2. Is there a better way for me to do this?
>> 3. Knowing that I plan to have multiple streams pulling from multiple
>> sources and want to update them live, any pointers?
>> *Error:*
>> should have image
>> should have image in pipeline: Ok
>> Error from
>> Some("/GstPipeline:pipeline_6be3b6be-0767-49db-a2b1-26708950261b/GstAppSrc:vsource0_top_left"):
>> Internal data stream error. (Some("../libs/gst/base/gstbasesrc.c(3127):
>> gst_base_src_loop ():
>> /GstPipeline:pipeline_6be3b6be-0767-49db-a2b1-26708950261b/GstAppSrc:vsource0_top_left:\nstreaming
>> stopped, reason not-negotiated (-4)"))
>> --
>> Best regards / Med venlig hilsen
>> “Marianna Smidth Buschle”
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: debug_session.svg
Type: image/svg+xml
Size: 127020 bytes
Desc: not available
URL: <>

More information about the gstreamer-devel mailing list