本文整理汇总了C++中GST_ELEMENT_NAME函数的典型用法代码示例。如果您正苦于以下问题:C++ GST_ELEMENT_NAME函数的具体用法?C++ GST_ELEMENT_NAME怎么用?C++ GST_ELEMENT_NAME使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了GST_ELEMENT_NAME函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: gst_jack_audio_src_allocate_channels
static gboolean
gst_jack_audio_src_allocate_channels (GstJackAudioSrc * src, gint channels)
{
jack_client_t *client;
client = gst_jack_audio_client_get_client (src->client);
/* remove ports we don't need */
while (src->port_count > channels)
jack_port_unregister (client, src->ports[--src->port_count]);
/* alloc enough input ports */
src->ports = g_realloc (src->ports, sizeof (jack_port_t *) * channels);
src->buffers = g_realloc (src->buffers, sizeof (sample_t *) * channels);
/* create an input port for each channel */
while (src->port_count < channels) {
gchar *name;
/* port names start from 1 and are local to the element */
name =
g_strdup_printf ("in_%s_%d", GST_ELEMENT_NAME (src),
src->port_count + 1);
src->ports[src->port_count] =
jack_port_register (client, name, JACK_DEFAULT_AUDIO_TYPE,
JackPortIsInput, 0);
if (src->ports[src->port_count] == NULL)
return FALSE;
src->port_count++;
g_free (name);
}
return TRUE;
}
示例2: handle_state_change_message
MbEvent *
handle_state_change_message (GstMessage *message)
{
MbEvent *mb_event = NULL;
GstState old_state, new_state;
GstElement *source = (GstElement *) message->src;
gst_message_parse_state_changed (message, &old_state, &new_state, NULL);
if (new_state == GST_STATE_PLAYING)
{
if (source == _mb_global_data.pipeline)
{
g_mutex_lock (&(_mb_global_data.mutex));
if (_mb_global_data.initialized == FALSE)
{
if (_mb_global_data.clock_provider == NULL)
_mb_global_data.clock_provider =
gst_element_get_clock(_mb_global_data.pipeline);
_mb_global_data.initialized = TRUE;
mb_event = create_app_event (MB_APP_INIT_DONE);
}
g_mutex_unlock (&(_mb_global_data.mutex));
}
else
{
if (strcmp (G_OBJECT_TYPE_NAME(G_OBJECT (source)), "GstBin") == 0)
mb_event = create_state_change_event (MB_BEGIN,
GST_ELEMENT_NAME (source));
}
}
return mb_event;
}
示例3: register_http_end_points
static void
register_http_end_points (gint n)
{
const gchar *url;
gint i;
for (i = 0; i < n; i++) {
GstElement *httpep = gst_element_factory_make ("httpendpoint", NULL);
BOOST_CHECK ( httpep != NULL );
GST_DEBUG ("Registering %s", GST_ELEMENT_NAME (httpep) );
url = kms_http_ep_server_register_end_point (httpepserver, httpep,
COOKIE_LIFETIME, DISCONNECTION_TIMEOUT);
BOOST_CHECK (url != NULL);
if (url == NULL)
continue;
/* Leave the last reference to http end point server */
g_object_unref (G_OBJECT (httpep) );
GST_DEBUG ("Registered url: %s", url);
urls = g_slist_prepend (urls, (gpointer *) g_strdup (url) );
}
urls_registered = g_slist_length (urls);
}
示例4: debug_graph
static gboolean
debug_graph (gpointer bin)
{
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (bin),
GST_DEBUG_GRAPH_SHOW_ALL, GST_ELEMENT_NAME (bin));
return FALSE;
}
示例5: bus_sync_signal_handler
static GstBusSyncReply
bus_sync_signal_handler (GstBus * bus, GstMessage * msg, gpointer data)
{
KmsRecorderEndpoint *self = KMS_RECORDER_ENDPOINT (data);
if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_ERROR) {
ErrorData *data;
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (self),
GST_DEBUG_GRAPH_SHOW_ALL, GST_ELEMENT_NAME (self));
kms_base_media_muxer_dot_file (self->priv->mux);
GST_ERROR_OBJECT (self, "Message %" GST_PTR_FORMAT, msg);
data = create_error_data (self, msg);
GST_ERROR_OBJECT (self, "Error: %" GST_PTR_FORMAT, msg);
gst_task_pool_push (self->priv->pool, kms_recorder_endpoint_post_error,
data, NULL);
} else if (GST_MESSAGE_TYPE (msg) == GST_MESSAGE_EOS) {
gst_task_pool_push (self->priv->pool, kms_recorder_endpoint_on_eos_message,
self, NULL);
}
return GST_BUS_PASS;
}
示例6: http_eos_cb
static void
http_eos_cb (GstElement * appsink, gpointer user_data)
{
GST_INFO ("EOS received on %s element. Stopping main loop",
GST_ELEMENT_NAME (httpep));
g_main_loop_quit (loop);
}
示例7: player_state_changed_cb
static void
player_state_changed_cb (GstElement * recorder, KmsUriEndpointState newState,
gpointer loop)
{
GST_INFO ("Element %s changed its state to %s.", GST_ELEMENT_NAME (recorder),
state2string (newState));
}
示例8: post_recv_sample
static GstFlowReturn
post_recv_sample (GstElement * appsink, gpointer user_data)
{
GstSample *sample = NULL;
GstFlowReturn ret;
GstBuffer *buffer;
g_signal_emit_by_name (appsink, "pull-sample", &sample);
if (sample == NULL)
return GST_FLOW_ERROR;
buffer = gst_sample_get_buffer (sample);
if (buffer == NULL) {
ret = GST_FLOW_OK;
goto end;
}
g_signal_emit_by_name (httpep, "push-buffer", buffer, &ret);
if (ret != GST_FLOW_OK) {
/* something wrong */
GST_ERROR ("Could not send buffer to httpep %s. Ret code %d",
GST_ELEMENT_NAME (httpep), ret);
}
g_object_get (G_OBJECT (httpep), "http-method", &method, NULL);
ck_assert_int_eq (method, KMS_HTTP_ENDPOINT_METHOD_POST);
end:
if (sample != NULL)
gst_sample_unref (sample);
return ret;
}
示例9: __mm_player_streaming_set_buffer
void __mm_player_streaming_set_buffer(mm_player_streaming_t* streamer, GstElement * buffer,
gboolean use_buffering, guint buffer_size, gdouble low_percent, gdouble high_percent, gdouble buffering_time,
gboolean use_file, gchar * file_path, guint64 content_size)
{
debug_fenter();
return_if_fail(streamer);
if (buffer)
{
streamer->buffer = buffer;
debug_log("buffer element is %s.", GST_ELEMENT_NAME(buffer));
g_object_set ( G_OBJECT (streamer->buffer), "use-buffering", use_buffering, NULL );
}
streaming_set_buffer_size(streamer, buffer_size);
streaming_set_buffer_percent(streamer, low_percent, high_percent);
streaming_set_buffer_type (streamer, use_file, file_path, content_size);
streaming_set_buffering_time(streamer, buffering_time);
debug_fleave();
return;
}
示例10: on_demuxElementAdded
static void
on_demuxElementAdded (GstBin * demux, GstElement * element, gpointer user_data)
{
GstAdaptiveDemuxTestEnginePrivate *priv =
(GstAdaptiveDemuxTestEnginePrivate *) user_data;
GstAdaptiveDemuxTestOutputStream *stream = NULL;
GstPad *internal_pad;
gchar *srcbin_name;
gint i;
srcbin_name = GST_ELEMENT_NAME (element);
GST_TEST_LOCK (priv);
for (i = 0; i < priv->engine.output_streams->len; i++) {
stream = g_ptr_array_index (priv->engine.output_streams, i);
if (strstr (srcbin_name, GST_PAD_NAME (stream->pad)) != NULL)
break;
}
fail_unless (stream != NULL);
/* keep the reference to the internal_pad.
* We will need it to identify the stream in the on_demuxReceivesEvent callback
*/
if (stream->internal_pad) {
gst_pad_remove_probe (stream->internal_pad, stream->internal_pad_probe);
gst_object_unref (stream->internal_pad);
}
internal_pad = gst_element_get_static_pad (element, "src");
stream->internal_pad_probe =
gst_pad_add_probe (internal_pad, GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM,
(GstPadProbeCallback) on_demuxReceivesEvent, priv, NULL);
stream->internal_pad = internal_pad;
GST_TEST_UNLOCK (priv);
}
示例11: gst_element_get_static_pad
void GstPlayer::handleAddedPad(GstElement * upstream, GstPad * upstreamNewPad, GstElement * downstream) {
GstPad *downstreamPad = gst_element_get_static_pad ( downstream, "sink");
GstPadLinkReturn result;
GstCaps * newPadCaps = NULL;
GstStructure * newPadStruct = NULL;
const gchar * newPadType = NULL;
QLOG_TRACE() << "Got pad " << GST_PAD_NAME (upstreamNewPad) << " from " << GST_ELEMENT_NAME (upstream);
if (gst_pad_is_linked (downstreamPad)) {
QLOG_TRACE() << " Pad already connected to downstream.";
}else{
newPadCaps = gst_pad_get_caps (upstreamNewPad);
newPadStruct = gst_caps_get_structure (newPadCaps, 0);
newPadType = gst_structure_get_name (newPadStruct);
if (!g_str_has_prefix (newPadType, "audio/x-raw")) {
QLOG_TRACE() << "Pad is not of type is not raw audio but of type "<< newPadType <<". Can't connect.";
}else{
result = gst_pad_link (upstreamNewPad, downstreamPad);
if (GST_PAD_LINK_FAILED (result)) {
QLOG_TRACE() << "Failed to link.";
} else {
QLOG_TRACE() << "Link successful.";
}
}
}
if (newPadCaps != NULL)
gst_caps_unref (newPadCaps);
gst_object_unref (downstreamPad);
}
示例12: bus_handler
static gboolean
bus_handler (GstBus * bus, GstMessage * message, gpointer data)
{
GMainLoop *loop = (GMainLoop *) data;
switch (message->type) {
case GST_MESSAGE_EOS:{
GST_LOG ("EOS event received");
g_main_loop_quit (loop);
break;
}
case GST_MESSAGE_ERROR:{
GError *gerror;
gchar *debug;
gst_message_parse_error (message, &gerror, &debug);
g_error ("Error from %s: %s (%s)\n",
GST_ELEMENT_NAME (GST_MESSAGE_SRC (message)), gerror->message,
GST_STR_NULL (debug));
g_error_free (gerror);
g_free (debug);
g_main_loop_quit (loop);
break;
}
case GST_MESSAGE_WARNING:{
g_main_loop_quit (loop);
break;
}
default:
break;
}
return TRUE;
}
示例13: kms_sdp_session_post_constructor
static void
kms_sdp_session_post_constructor (KmsSdpSession * self, KmsBaseSdpEndpoint * ep,
guint id)
{
self->id = id;
self->id_str = g_strdup_printf ("%s-sess%d", GST_ELEMENT_NAME (ep), id);
self->ep = ep;
}
示例14: appsink_eos_cb
static void
appsink_eos_cb (GstElement * appsink, gpointer user_data)
{
GstFlowReturn ret;
GST_INFO ("EOS received on %s. Preparing %s to finish the test",
GST_ELEMENT_NAME (appsink), GST_ELEMENT_NAME (test_pipeline));
g_signal_emit_by_name (httpep, "end-of-stream", &ret);
if (ret != GST_FLOW_OK) {
// something wrong
GST_ERROR ("Could not send EOS to %s. Ret code %d",
GST_ELEMENT_NAME (httpep), ret);
fail ("Can not send buffer to", GST_ELEMENT_NAME (httpep));
}
}
示例15: kms_muxing_pipeline_dot_file
void
kms_muxing_pipeline_dot_file (KmsMuxingPipeline * obj)
{
g_return_if_fail (obj != NULL);
GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS (GST_BIN (obj->priv->pipeline),
GST_DEBUG_GRAPH_SHOW_ALL, GST_ELEMENT_NAME (obj->priv->pipeline));
}