[Bug 739334] GstGLVideoMixer input caps can not be dynamically changed

GStreamer (bugzilla.gnome.org) bugzilla at gnome.org
Wed Oct 29 18:39:58 PDT 2014


https://bugzilla.gnome.org/show_bug.cgi?id=739334
  GStreamer | gst-plugins-bad | git

--- Comment #2 from comicfans44 <comicfans44 at gmail.com> 2014-10-30 01:39:56 UTC ---
(In reply to comment #1)
> Isn't this fixed by
> 9ac74f62267e65c58a11e7f923b9659bc9f67c49
> glmixer: override the caps query in order to 'convert' capsfeatures ?

sorry ,the version I trace didn't include this commit . but the problem still
exists. 

seems gst_gl_mixer_pad_sink_getcaps use gst_pad_get_current_caps  to do 
intersection, after first negotiation, this is a fixate caps 
as  

"video/x-raw, format=(string)I420, width=(int)320, height=(int)240,
framerate=(fraction)30/1, pixel-aspect-ratio=(fraction)1/1,
interlace-mode=(string)progressive"

but caps query passed a new filter with different height, leads empty result.



> 
> If not, a simple test program would be helpful :)


#include <gst/gst.h>


int height=240;

GstElement *capsfilter;
static gboolean
timeout_cb (gpointer user_data)
{

    height+=20;

  GstCaps *newCaps=gst_caps_new_simple("video/x-raw",
          "width",G_TYPE_INT,320,
          "height",G_TYPE_INT,height,NULL);

  g_object_set(G_OBJECT(capsfilter),"caps",newCaps,NULL);

  return TRUE;
}

int main(int argc, char *argv[])
{

    gst_init(NULL,NULL);

    GstElement* pipeline=gst_parse_launch("videotestsrc ! capsfilter
name=capsfilter ! glvideomixer ! glimagesink ",NULL);

    capsfilter=gst_bin_get_by_name(GST_BIN(pipeline),"capsfilter");

    GMainLoop *loop=g_main_loop_new(NULL,FALSE);

    g_timeout_add(1000, timeout_cb, NULL);

    gst_element_set_state(pipeline,GST_STATE_PLAYING);

    g_main_loop_run(loop);

}

for compare, pipeline as
videotestsrc ! capsfilter ! glfilterblur ! glimagesink
videotestsrc ! capsfilter ! glimagesink 
are working as expected .

-- 
Configure bugmail: https://bugzilla.gnome.org/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are the QA contact for the bug.
You are the assignee for the bug.


More information about the gstreamer-bugs mailing list