Problem with multiple tees in pipeline

Stefan Sauer ensonic at hora-obscura.de
Tue Jul 15 12:22:16 PDT 2014


On 07/15/2014 03:14 PM, yoyosuper8 wrote:
> Hi all, I'm having some problems with tee and I can't figure out why it
> doesn't seem to work properly.
> Please note that I'm working on Android devices. In my gstreamer pipeline, I
> need to have two tees. One tee is for taking snapshots, the second tee is
> for recording to a file. I'm also using valve to turn on/off each tee. Here
> is what my testing pipeline looks like:
>
> videotestsrc ! videoconvert ! tee name=snapshot ! valve name=snap drop=true
> ! jpegenc ! filesink location=/home/user/Desktop/pic1.jpg snapshot. !
> eglglessink name=videosink
You want to add queue elements after each tee branch to create a new thread.

Stefan
>
> This simple pipeline I believe it should have the main branch which displays
> the videotestsrc into the eglglessink and the second branch should save a
> frame into a jpg file when the valve is set to drop=false.
>
> When I push on a button, the valve is set to drop=false, but it does not
> save a frame to a file. This is how I perform the update of valve:
>
>     gelement_name = "snap";  // name of element
>     gprop_val_name = "drop"; // name of property
>     gProp_val = "false";         // new value to set in property
>
>     // Get the element from the pipeline by using the element name
>     GstElement *element = gst_bin_get_by_name (GST_BIN (pipeline),
> gelement_name);
>     
>     if ( strcmp(gprop_val_name, "drop") == 0 )
>     {
>     	gboolean prop_val = FALSE;
>         // if the property value is true, then send an EOS.
>     	if ( strcmp(gProp_val, "true") == 0 ) {
>     		gst_element_send_event(element, gst_event_new_eos());
>     		prop_val = TRUE;
>     	}
>     	else {
>     		prop_val = FALSE;
>      	}
>
>     	// Update property in pipeline.
> 	g_object_set (element, gprop_val_name, prop_val, NULL);
>     }
>
> However, if I remove the eglglessink name=videosink from the pipeline, the
> above works. But with the eglglessink in the pipeline, the snapshot tee
> doesn't work. Also, with eglglessink in the pipeline, I see the videotestsrc
> in the screen, but it is a still image, it seems that all the other frames
> are dropped, but in the log everything seems fine and no warnings or errors.
>
> Am I missing something in the pipeline or am I using tee the wrong way?
> Please help.
>
> Andy
>
>
>
> --
> View this message in context: http://gstreamer-devel.966125.n4.nabble.com/Problem-with-multiple-tees-in-pipeline-tp4667937.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
> _______________________________________________
> gstreamer-devel mailing list
> gstreamer-devel at lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel



More information about the gstreamer-devel mailing list