/** * gst_buffer_straw_stop_pipeline: * @bin: the pipeline previously started via gst_buffer_straw_start_pipeline() * @pad: the pad previously passed to gst_buffer_straw_start_pipeline() * * Set @bin to #GST_STATE_NULL and release resource allocated in * gst_buffer_straw_start_pipeline(). * * You must have previously called gst_buffer_straw_start_pipeline() on * @pipeline and @pad. */ void gst_buffer_straw_stop_pipeline (GstElement * bin, GstPad * pad) { GstStateChangeReturn ret; g_mutex_lock (lock); if (buf) gst_buffer_unref (buf); buf = NULL; gst_pad_remove_buffer_probe (pad, (guint) id); id = 0; g_cond_signal (cond); g_mutex_unlock (lock); ret = gst_element_set_state (bin, GST_STATE_NULL); fail_if (ret == GST_STATE_CHANGE_FAILURE, "Could not stop test pipeline"); if (ret == GST_STATE_CHANGE_ASYNC) { ret = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE); fail_if (ret != GST_STATE_CHANGE_SUCCESS, "Could not stop test pipeline"); } g_mutex_lock (lock); if (buf) gst_buffer_unref (buf); buf = NULL; g_mutex_unlock (lock); g_mutex_free (lock); g_cond_free (cond); lock = NULL; cond = NULL; }
static void brasero_transcode_stop_pipeline (BraseroTranscode *transcode) { BraseroTranscodePrivate *priv; GstPad *sinkpad; priv = BRASERO_TRANSCODE_PRIVATE (transcode); if (!priv->pipeline) return; sinkpad = gst_element_get_pad (priv->sink, "sink"); if (priv->probe) gst_pad_remove_buffer_probe (sinkpad, priv->probe); gst_object_unref (sinkpad); gst_element_set_state (priv->pipeline, GST_STATE_NULL); gst_object_unref (GST_OBJECT (priv->pipeline)); priv->link = NULL; priv->sink = NULL; priv->source = NULL; priv->convert = NULL; priv->pipeline = NULL; priv->set_active_state = 0; }
gboolean QGstreamerGLTextureRenderer::padBufferProbe(GstPad *pad, GstBuffer *buffer, gpointer user_data) { QGstreamerGLTextureRenderer *control = reinterpret_cast<QGstreamerGLTextureRenderer*>(user_data); QMetaObject::invokeMethod(control, "updateNativeVideoSize", Qt::QueuedConnection); gst_pad_remove_buffer_probe(pad, control->m_bufferProbeId); return TRUE; }
static gboolean buffer_probe_once (GstPad * pad, GstBuffer * obj, guint * data) { n_buffer_probes_once++; g_assert (GST_IS_BUFFER (obj)); gst_pad_remove_buffer_probe (pad, *data); return TRUE; }
void scope_parser_free(ScopeParser *parser) { if(parser != NULL) { gst_pad_remove_buffer_probe(parser->tee_pad, parser->buffer_probe_id); gst_pad_remove_event_probe(parser->tee_pad, parser->event_probe_id); g_object_unref(parser->adapter); parser->adapter = NULL; g_free(parser); parser = NULL; } }
static void stop_pipeline (GstElement * bin, GstPad * pad) { GstStateChangeReturn ret; ret = gst_element_set_state (bin, GST_STATE_NULL); fail_if (ret == GST_STATE_CHANGE_FAILURE, "Could not stop test pipeline"); if (ret == GST_STATE_CHANGE_ASYNC) { ret = gst_element_get_state (bin, NULL, NULL, GST_CLOCK_TIME_NONE); fail_if (ret != GST_STATE_CHANGE_SUCCESS, "Could not stop test pipeline"); } gst_pad_remove_buffer_probe (pad, (guint) probe_id); ogg_sync_clear (&oggsync); /* check end conditions, such as EOS flags */ g_hash_table_foreach_remove (eos_chain_states, (GHRFunc) check_chain_final_state, NULL); }
static gboolean pad_buffer_probe(GstPad *pad, GstBuffer *buffer, gpointer u_data) { SMC::RTSPserverGate *object = static_cast<SMC::RTSPserverGate*> (u_data); if (GST_BUFFER_FLAG_IS_SET(buffer, GST_BUFFER_FLAG_DELTA_UNIT) == TRUE) { std::clog << "########## NOT KEY FRAMES:" << std::endl; return FALSE; } else { std::clog << "########## KEY FRAMES:" << std::endl; gst_object_unref(GST_OBJECT(pad)); gst_pad_remove_buffer_probe(pad, object->pid); object->pid = 0; object->lock_transition = false; return TRUE; } }
void QGstreamerVideoWindow::padBufferProbe(GstPad *pad, GstBuffer * /* buffer */, gpointer user_data) { QGstreamerVideoWindow *control = reinterpret_cast<QGstreamerVideoWindow*>(user_data); QMetaObject::invokeMethod(control, "updateNativeVideoSize", Qt::QueuedConnection); gst_pad_remove_buffer_probe(pad, control->m_bufferProbeId); }