您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ GST_IS_EVENT函数代码示例

51自学网 2021-06-01 20:56:35
  C++
这篇教程C++ GST_IS_EVENT函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中GST_IS_EVENT函数的典型用法代码示例。如果您正苦于以下问题:C++ GST_IS_EVENT函数的具体用法?C++ GST_IS_EVENT怎么用?C++ GST_IS_EVENT使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了GST_IS_EVENT函数的30个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: gst_overlay_loop

static voidgst_overlay_loop (GstElement * element){  GstOverlay *overlay;  GstBuffer *out;  GstBuffer *in1 = NULL, *in2 = NULL, *in3 = NULL;  int size;  overlay = GST_OVERLAY (element);  in1 = GST_BUFFER (gst_pad_pull (overlay->sinkpad1));  if (GST_IS_EVENT (in1)) {    gst_pad_push (overlay->srcpad, GST_DATA (in1));    /* FIXME */    return;  }  in2 = GST_BUFFER (gst_pad_pull (overlay->sinkpad2));  if (GST_IS_EVENT (in2)) {    gst_pad_push (overlay->srcpad, GST_DATA (in2));    /* FIXME */    return;  }  in3 = GST_BUFFER (gst_pad_pull (overlay->sinkpad3));  if (GST_IS_EVENT (in3)) {    gst_pad_push (overlay->srcpad, GST_DATA (in3));    /* FIXME */    return;  }  g_return_if_fail (in1 != NULL);  g_return_if_fail (in2 != NULL);  g_return_if_fail (in3 != NULL);  size = (overlay->width * overlay->height * 3) / 2;  g_return_if_fail (GST_BUFFER_SIZE (in1) != size);  g_return_if_fail (GST_BUFFER_SIZE (in2) != size);  g_return_if_fail (GST_BUFFER_SIZE (in3) != size);  out = gst_buffer_new_and_alloc (size);  gst_overlay_blend_i420 (GST_BUFFER_DATA (out),      GST_BUFFER_DATA (in1),      GST_BUFFER_DATA (in2),      GST_BUFFER_DATA (in3), overlay->width, overlay->height);  GST_BUFFER_TIMESTAMP (out) = GST_BUFFER_TIMESTAMP (in1);  GST_BUFFER_DURATION (out) = GST_BUFFER_DURATION (in1);  gst_buffer_unref (in1);  gst_buffer_unref (in2);  gst_buffer_unref (in3);  gst_pad_push (overlay->srcpad, GST_DATA (out));}
开发者ID:Distrotech,项目名称:gst-plugins-bad,代码行数:54,


示例2: gst_sdlvideosink_navigation_send_event

static voidgst_sdlvideosink_navigation_send_event (GstNavigation * navigation,                                        GstStructure * structure){    GstSDLVideoSink *sdlvideosink = GST_SDLVIDEOSINK (navigation);    GstEvent *event;    GstVideoRectangle dst = { 0, };    GstVideoRectangle src = { 0, };    GstVideoRectangle result;    double x, y, old_x, old_y;    GstPad *pad = NULL;    src.w = GST_VIDEO_SINK_WIDTH (sdlvideosink);    src.h = GST_VIDEO_SINK_HEIGHT (sdlvideosink);    dst.w = sdlvideosink->width;    dst.h = sdlvideosink->height;    gst_video_sink_center_rect (src, dst, &result, FALSE);    event = gst_event_new_navigation (structure);    /* Our coordinates can be wrong here if we centered the video */    /* Converting pointer coordinates to the non scaled geometry */    if (gst_structure_get_double (structure, "pointer_x", &old_x)) {        x = old_x;        if (x >= result.x && x <= (result.x + result.w)) {            x -= result.x;            x *= sdlvideosink->width;            x /= result.w;        } else {            x = 0;        }        GST_DEBUG_OBJECT (sdlvideosink, "translated navigation event x "                          "coordinate from %f to %f", old_x, x);        gst_structure_set (structure, "pointer_x", G_TYPE_DOUBLE, x, NULL);    }    if (gst_structure_get_double (structure, "pointer_y", &old_y)) {        y = old_y;        if (y >= result.y && y <= (result.y + result.h)) {            y -= result.y;            y *= sdlvideosink->height;            y /= result.h;        } else {            y = 0;        }        GST_DEBUG_OBJECT (sdlvideosink, "translated navigation event y "                          "coordinate from %f to %f", old_y, y);        gst_structure_set (structure, "pointer_y", G_TYPE_DOUBLE, y, NULL);    }    pad = gst_pad_get_peer (GST_VIDEO_SINK_PAD (sdlvideosink));    if (GST_IS_PAD (pad) && GST_IS_EVENT (event)) {        gst_pad_send_event (pad, event);        gst_object_unref (pad);    }}
开发者ID:asrashley,项目名称:gst-plugins-bad,代码行数:60,


示例3: gst_event_get_structure

/** * gst_event_get_structure: * @event: The #GstEvent. * * Access the structure of the event. * * Returns: The structure of the event. The structure is still * owned by the event, which means that you should not free it and * that the pointer becomes invalid when you free the event. * * MT safe. */const GstStructure *gst_event_get_structure (GstEvent * event){  g_return_val_if_fail (GST_IS_EVENT (event), NULL);  return event->structure;}
开发者ID:JERUKA9,项目名称:gstreamer,代码行数:19,


示例4: gst_event_get_seqnum

/** * gst_event_get_seqnum: * @event: A #GstEvent. * * Retrieve the sequence number of a event. * * Events have ever-incrementing sequence numbers, which may also be set * explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to * indicate that a event corresponds to some other set of events or messages, * for example an EOS event corresponding to a SEEK event. It is considered good * practice to make this correspondence when possible, though it is not * required. * * Note that events and messages share the same sequence number incrementor; * two events or messages will never have the same sequence number unless * that correspondence was made explicitly. * * Returns: The event's sequence number. * * MT safe. */guint32gst_event_get_seqnum (GstEvent * event){  g_return_val_if_fail (GST_IS_EVENT (event), -1);  return GST_EVENT_SEQNUM (event);}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:28,


示例5: gst_event_get_structure

/** * gst_event_get_structure: * @event: The #GstEvent. * * Access the structure of the event. * * Returns: The structure of the event. The structure is still * owned by the event, which means that you should not free it and * that the pointer becomes invalid when you free the event. * * MT safe. */const GstStructure *gst_event_get_structure (GstEvent * event){  g_return_val_if_fail (GST_IS_EVENT (event), NULL);  return GST_EVENT_STRUCTURE (event);}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:19,


示例6: shmdata_base_reader_reset_time

gbooleanshmdata_base_reader_reset_time (GstPad *pad,                                GstMiniObject * mini_obj,                                gpointer user_data){    shmdata_base_reader_t *context = (shmdata_base_reader_t *) user_data;    if (GST_IS_EVENT (mini_obj))    {        //g_debug ("EVENT %s", GST_EVENT_TYPE_NAME (GST_EVENT_CAST(mini_obj)));    }    else if (GST_IS_BUFFER (mini_obj))    {        GstBuffer *buffer = GST_BUFFER_CAST (mini_obj);        /* g_debug ("shmdata writer data frame (%p), data size %d, timestamp %llu, caps %s", */        /* 	       GST_BUFFER_DATA (buffer), GST_BUFFER_SIZE (buffer), */        /* 	       GST_TIME_AS_MSECONDS (GST_BUFFER_TIMESTAMP (buffer)), */        /* 	       gst_caps_to_string (GST_BUFFER_CAPS (buffer))); */        if (context->timereset_)        {            context->timeshift_ = GST_BUFFER_TIMESTAMP (buffer);            context->timereset_ = FALSE;        }        GST_BUFFER_TIMESTAMP (buffer) =            GST_BUFFER_TIMESTAMP (buffer) - context->timeshift_;    }    else if (GST_IS_MESSAGE (mini_obj))    {    }    return TRUE;}
开发者ID:step21,项目名称:shmdata,代码行数:32,


示例7: gst_event_parse_step

/** * gst_event_parse_step: * @event: The event to query * @format: (out) (allow-none): a pointer to store the format in * @amount: (out) (allow-none): a pointer to store the amount in * @rate: (out) (allow-none): a pointer to store the rate in * @flush: (out) (allow-none): a pointer to store the flush boolean in * @intermediate: (out) (allow-none): a pointer to store the intermediate *     boolean in * * Parse the step event. */voidgst_event_parse_step (GstEvent * event, GstFormat * format, guint64 * amount,    gdouble * rate, gboolean * flush, gboolean * intermediate){  const GstStructure *structure;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_STEP);  structure = GST_EVENT_STRUCTURE (event);  if (format)    *format =        (GstFormat) g_value_get_enum (gst_structure_id_get_value (structure,            GST_QUARK (FORMAT)));  if (amount)    *amount = g_value_get_uint64 (gst_structure_id_get_value (structure,            GST_QUARK (AMOUNT)));  if (rate)    *rate = g_value_get_double (gst_structure_id_get_value (structure,            GST_QUARK (RATE)));  if (flush)    *flush = g_value_get_boolean (gst_structure_id_get_value (structure,            GST_QUARK (FLUSH)));  if (intermediate)    *intermediate = g_value_get_boolean (gst_structure_id_get_value (structure,            GST_QUARK (INTERMEDIATE)));}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:39,


示例8: probe_cb

/* Data probe cb to drop everything but count buffers and events */static GstPadProbeReturnprobe_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data){  gint count = 0;  const gchar *count_type = NULL;  GstMiniObject *obj = GST_PAD_PROBE_INFO_DATA (info);  GST_LOG_OBJECT (pad, "got data");  if (GST_IS_BUFFER (obj)) {    count_type = "buffer_count";  } else if (GST_IS_EVENT (obj)) {    count_type = "event_count";  } else {    g_assert_not_reached ();  }  /* increment and store count */  count = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (pad), count_type));  count++;  g_object_set_data (G_OBJECT (pad), count_type, GINT_TO_POINTER (count));  /* drop every buffer */  return GST_IS_BUFFER (obj) ? GST_PAD_PROBE_DROP : GST_PAD_PROBE_PASS;}
开发者ID:BigBrother-International,项目名称:gstreamer,代码行数:26,


示例9: gst_event_parse_qos

/** * gst_event_parse_qos: * @event: The event to query * @type: (out): A pointer to store the QoS type in * @proportion: (out): A pointer to store the proportion in * @diff: (out): A pointer to store the diff in * @timestamp: (out): A pointer to store the timestamp in * * Get the type, proportion, diff and timestamp in the qos event. See * gst_event_new_qos() for more information about the different QoS values. */voidgst_event_parse_qos (GstEvent * event, GstQOSType * type,    gdouble * proportion, GstClockTimeDiff * diff, GstClockTime * timestamp){  const GstStructure *structure;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_QOS);  structure = GST_EVENT_STRUCTURE (event);  if (type)    *type = (GstQOSType)        g_value_get_enum (gst_structure_id_get_value (structure,            GST_QUARK (TYPE)));  if (proportion)    *proportion =        g_value_get_double (gst_structure_id_get_value (structure,            GST_QUARK (PROPORTION)));  if (diff)    *diff =        g_value_get_int64 (gst_structure_id_get_value (structure,            GST_QUARK (DIFF)));  if (timestamp)    *timestamp =        g_value_get_uint64 (gst_structure_id_get_value (structure,            GST_QUARK (TIMESTAMP)));}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:38,


示例10: gst_event_parse_buffer_size

/** * gst_event_parse_buffer_size: * @event: The event to query * @format: (out): A pointer to store the format in * @minsize: (out): A pointer to store the minsize in * @maxsize: (out): A pointer to store the maxsize in * @async: (out): A pointer to store the async-flag in * * Get the format, minsize, maxsize and async-flag in the buffersize event. */voidgst_event_parse_buffer_size (GstEvent * event, GstFormat * format,    gint64 * minsize, gint64 * maxsize, gboolean * async){  const GstStructure *structure;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_BUFFERSIZE);  structure = GST_EVENT_STRUCTURE (event);  if (format)    *format = (GstFormat)        g_value_get_enum (gst_structure_id_get_value (structure,            GST_QUARK (FORMAT)));  if (minsize)    *minsize =        g_value_get_int64 (gst_structure_id_get_value (structure,            GST_QUARK (MINSIZE)));  if (maxsize)    *maxsize =        g_value_get_int64 (gst_structure_id_get_value (structure,            GST_QUARK (MAXSIZE)));  if (async)    *async =        g_value_get_boolean (gst_structure_id_get_value (structure,            GST_QUARK (ASYNC)));}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:37,


示例11: gst_event_set_seqnum

/** * gst_event_set_seqnum: * @event: A #GstEvent. * @seqnum: A sequence number. * * Set the sequence number of a event. * * This function might be called by the creator of a event to indicate that the * event relates to other events or messages. See gst_event_get_seqnum() for * more information. * * MT safe. */voidgst_event_set_seqnum (GstEvent * event, guint32 seqnum){  g_return_if_fail (GST_IS_EVENT (event));  GST_EVENT_SEQNUM (event) = seqnum;}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:20,


示例12: event_counter

static GstPadProbeReturnevent_counter (GstObject * pad, GstPadProbeInfo * info, gpointer user_data){  GstEvent *event = GST_PAD_PROBE_INFO_EVENT (info);  fail_unless (event != NULL);  fail_unless (GST_IS_EVENT (event));  switch (GST_EVENT_TYPE (event)) {    case GST_EVENT_STREAM_START:      ++nb_stream_start_event;      break;    case GST_EVENT_CAPS:      ++nb_caps_event;      break;    case GST_EVENT_SEGMENT:      ++nb_segment_event;      break;    case GST_EVENT_GAP:      ++nb_gap_event;      break;    default:      break;  }  return GST_PAD_PROBE_OK;}
开发者ID:ConfusedReality,项目名称:pkg_multimedia_gstreamer,代码行数:27,


示例13: dxr3videosink_chain

static voiddxr3videosink_chain (GstPad * pad, GstData * _data){  GstBuffer *buf = GST_BUFFER (_data);  Dxr3VideoSink *sink;  g_return_if_fail (pad != NULL);  g_return_if_fail (GST_IS_PAD (pad));  g_return_if_fail (buf != NULL);  sink = DXR3VIDEOSINK (gst_pad_get_parent (pad));  if (GST_IS_EVENT (buf)) {    dxr3videosink_handle_event (pad, GST_EVENT (buf));    return;  }/*   fprintf (stderr, "^^^^^^ Video block/n"); */  if (sink->cur_buf == NULL) {    sink->cur_buf = buf;  } else {    sink->cur_buf = gst_buffer_append (sink->cur_buf, buf);  }  sink->last_ts = GST_BUFFER_TIMESTAMP (buf);  dxr3videosink_parse_data (sink);}
开发者ID:Distrotech,项目名称:gst-plugins-bad,代码行数:29,


示例14: gst_mikmod_loop

static voidgst_mikmod_loop (GstElement * element){  GstMikMod *mikmod;  GstBuffer *buffer_in;  g_return_if_fail (element != NULL);  g_return_if_fail (GST_IS_MIKMOD (element));  mikmod = GST_MIKMOD (element);  srcpad = mikmod->srcpad;  mikmod->Buffer = NULL;  if (!mikmod->initialized) {    while ((buffer_in = GST_BUFFER (gst_pad_pull (mikmod->sinkpad)))) {      if (GST_IS_EVENT (buffer_in)) {        GstEvent *event = GST_EVENT (buffer_in);        if (GST_EVENT_TYPE (event) == GST_EVENT_EOS)          break;      } else {        if (mikmod->Buffer) {          mikmod->Buffer = gst_buffer_append (mikmod->Buffer, buffer_in);        } else {          mikmod->Buffer = buffer_in;        }      }    }    if (!GST_PAD_CAPS (mikmod->srcpad)) {      if (GST_PAD_LINK_SUCCESSFUL (gst_pad_renegotiate (mikmod->srcpad))) {        GST_ELEMENT_ERROR (mikmod, CORE, NEGOTIATION, (NULL), (NULL));        return;      }    }    MikMod_RegisterDriver (&drv_gst);    MikMod_RegisterAllLoaders ();    MikMod_Init ("");    reader = GST_READER_new (mikmod);    module = Player_LoadGeneric (reader, 64, 0);    gst_buffer_unref (mikmod->Buffer);    if (!Player_Active ())      Player_Start (module);    mikmod->initialized = TRUE;  }  if (Player_Active ()) {    timestamp = (module->sngtime / 1024.0) * GST_SECOND;    drv_gst.Update ();  } else {    gst_element_set_eos (GST_ELEMENT (mikmod));    gst_pad_push (mikmod->srcpad, GST_DATA (gst_event_new (GST_EVENT_EOS)));  }}
开发者ID:an146,项目名称:gst-plugins-good,代码行数:59,


示例15: handle_queued_objects

static gbooleanhandle_queued_objects (APP_STATE_T * state){    GstMiniObject *object = NULL;    g_mutex_lock (&state->queue_lock);    if (state->flushing) {        g_cond_broadcast (&state->cond);        goto beach;    } else if (g_async_queue_length (state->queue) == 0) {        goto beach;    }    if ((object = g_async_queue_try_pop (state->queue))) {        if (GST_IS_BUFFER (object)) {            GstBuffer *buffer = GST_BUFFER_CAST (object);            update_image (state, buffer);            render_scene (state);            gst_buffer_unref (buffer);            if (!SYNC_BUFFERS) {                object = NULL;            }        } else if (GST_IS_QUERY (object)) {            GstQuery *query = GST_QUERY_CAST (object);            GstStructure *s = (GstStructure *) gst_query_get_structure (query);            if (gst_structure_has_name (s, "not-used")) {                g_assert_not_reached ();            } else {                g_assert_not_reached ();            }        } else if (GST_IS_EVENT (object)) {            GstEvent *event = GST_EVENT_CAST (object);            g_print ("/nevent %p %s/n", event,                     gst_event_type_get_name (GST_EVENT_TYPE (event)));            switch (GST_EVENT_TYPE (event)) {            case GST_EVENT_EOS:                flush_internal (state);                break;            default:                break;            }            gst_event_unref (event);            object = NULL;        }    }    if (object) {        state->popped_obj = object;        g_cond_broadcast (&state->cond);    }beach:    g_mutex_unlock (&state->queue_lock);    return FALSE;}
开发者ID:ryumiel,项目名称:gst-omx,代码行数:58,


示例16: gst_event_parse_tag

/** * gst_event_parse_tag: * @event: a tag event * @taglist: (out) (transfer none): pointer to metadata list * * Parses a tag @event and stores the results in the given @taglist location. * No reference to the taglist will be returned, it remains valid only until * the @event is freed. Don't modify or free the taglist, make a copy if you * want to modify it or store it for later use. */voidgst_event_parse_tag (GstEvent * event, GstTagList ** taglist){  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TAG);  if (taglist)    *taglist = (GstTagList *) event->structure;}
开发者ID:JERUKA9,项目名称:gstreamer,代码行数:19,


示例17: event_probe

static gbooleanevent_probe (GstPad * pad, GstEvent * obj, gpointer data){  n_event_probes++;  GST_DEBUG ("event probe %d", n_event_probes);  g_assert (GST_IS_EVENT (obj));  g_assert (data == SPECIAL_POINTER (2));  return TRUE;}
开发者ID:kuailexs,项目名称:symbiandump-mw1,代码行数:9,


示例18: pad_blocked_cb

static GstPadProbeReturnpad_blocked_cb (GstPad * pad, GstPadProbeInfo * info, gpointer user_data){  GstPlaySinkConvertBin *self = user_data;  GstPad *peer;  GstCaps *caps;  gboolean raw;  if (GST_IS_EVENT (info->data) && !GST_EVENT_IS_SERIALIZED (info->data)) {    GST_DEBUG_OBJECT (self, "Letting non-serialized event %s pass",        GST_EVENT_TYPE_NAME (info->data));    return GST_PAD_PROBE_PASS;  }  GST_PLAY_SINK_CONVERT_BIN_LOCK (self);  GST_DEBUG_OBJECT (self, "Pad blocked");  /* There must be a peer at this point */  peer = gst_pad_get_peer (self->sinkpad);  caps = gst_pad_get_current_caps (peer);  if (!caps)    caps = gst_pad_query_caps (peer, NULL);  gst_object_unref (peer);  raw = is_raw_caps (caps, self->audio);  GST_DEBUG_OBJECT (self, "Caps %" GST_PTR_FORMAT " are raw: %d", caps, raw);  gst_caps_unref (caps);  if (raw == self->raw)    goto unblock;  self->raw = raw;  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->sinkpad), NULL);  gst_ghost_pad_set_target (GST_GHOST_PAD_CAST (self->srcpad), NULL);  if (raw) {    GST_DEBUG_OBJECT (self, "Switching to raw conversion pipeline");    if (self->conversion_elements)      g_list_foreach (self->conversion_elements,          (GFunc) gst_play_sink_convert_bin_on_element_added, self);  } else {    GST_DEBUG_OBJECT (self, "Switch to passthrough pipeline");    gst_play_sink_convert_bin_on_element_added (self->identity, self);  }  gst_play_sink_convert_bin_set_targets (self, !raw);unblock:  self->sink_proxypad_block_id = 0;  GST_PLAY_SINK_CONVERT_BIN_UNLOCK (self);  return GST_PAD_PROBE_REMOVE;}
开发者ID:ksophocleous,项目名称:gst-plugins-base,代码行数:56,


示例19: event_probe_once

static gbooleanevent_probe_once (GstPad * pad, GstEvent * obj, guint * data){  n_event_probes_once++;  g_assert (GST_IS_EVENT (obj));  gst_pad_remove_event_probe (pad, *data);  return TRUE;}
开发者ID:kuailexs,项目名称:symbiandump-mw1,代码行数:10,


示例20: gst_event_has_name

/** * gst_event_has_name: * @event: The #GstEvent. * @name: name to check * * Checks if @event has the given @name. This function is usually used to * check the name of a custom event. * * Returns: %TRUE if @name matches the name of the event structure. */gbooleangst_event_has_name (GstEvent * event, const gchar * name){  g_return_val_if_fail (GST_IS_EVENT (event), FALSE);  if (GST_EVENT_STRUCTURE (event) == NULL)    return FALSE;  return gst_structure_has_name (GST_EVENT_STRUCTURE (event), name);}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:20,


示例21: event_probe

static gbooleanevent_probe (GstPad * pad, GstEvent * obj, gpointer data){  n_event_probes++;  GST_DEBUG_OBJECT (pad, "event probe %d [%s]",      n_event_probes, GST_EVENT_TYPE_NAME (obj));  g_assert (GST_IS_EVENT (obj));  g_assert (data == SPECIAL_POINTER (2));  return TRUE;}
开发者ID:WangCrystal,项目名称:gstreamer,代码行数:10,


示例22: gst_event_parse_sink_message

/** * gst_event_parse_sink_message: * @event: The event to query * @msg: (out) (transfer full): a pointer to store the #GstMessage in. * * Parse the sink-message event. Unref @msg after usage. * * Since: 0.10.26 */voidgst_event_parse_sink_message (GstEvent * event, GstMessage ** msg){  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_SINK_MESSAGE);  if (msg)    *msg =        GST_MESSAGE (gst_value_dup_mini_object (gst_structure_id_get_value            (event->structure, GST_QUARK (MESSAGE))));}
开发者ID:JERUKA9,项目名称:gstreamer,代码行数:20,


示例23: gst_event_parse_latency

/** * gst_event_parse_latency: * @event: The event to query * @latency: (out): A pointer to store the latency in. * * Get the latency in the latency event. */voidgst_event_parse_latency (GstEvent * event, GstClockTime * latency){  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_LATENCY);  if (latency)    *latency =        g_value_get_uint64 (gst_structure_id_get_value (GST_EVENT_STRUCTURE            (event), GST_QUARK (LATENCY)));}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:18,


示例24: drop_reconfigure_cb

/* reconfiguration is not supported by all sources and can be disruptive * we will handle reconfiguration manually * FIXME: implement source reconfiguration support :) */static GstPadProbeReturn drop_reconfigure_cb(GstPad *pad, GstPadProbeInfo *info, gpointer user_data){    OWR_UNUSED(pad);    OWR_UNUSED(user_data);    if (GST_IS_EVENT(GST_PAD_PROBE_INFO_DATA(info))        && GST_EVENT_TYPE(GST_PAD_PROBE_INFO_EVENT(info)) == GST_EVENT_RECONFIGURE) {        GST_DEBUG("Dropping reconfigure event");        return GST_PAD_PROBE_DROP;    }    return GST_PAD_PROBE_OK;}
开发者ID:PerBoussard,项目名称:openwebrtc,代码行数:16,


示例25: gst_event_copy_segment

/** * gst_event_copy_segment: * @event: The event to parse * @segment: a pointer to a #GstSegment * * Parses a segment @event and copies the #GstSegment into the location * given by @segment. */voidgst_event_copy_segment (GstEvent * event, GstSegment * segment){  const GstSegment *src;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT);  if (segment) {    gst_event_parse_segment (event, &src);    gst_segment_copy_into (src, segment);  }}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:21,


示例26: on_video_sink_data_flow

static gbooleanon_video_sink_data_flow (GstPad * pad, GstMiniObject * mini_obj,    gpointer user_data){  GstFPSDisplaySink *self = GST_FPS_DISPLAY_SINK (user_data);#if 0  if (GST_IS_BUFFER (mini_obj)) {    GstBuffer *buf = GST_BUFFER_CAST (mini_obj);    if (GST_CLOCK_TIME_IS_VALID (self->next_ts)) {      if (GST_BUFFER_TIMESTAMP (buf) <= self->next_ts) {        self->frames_rendered++;      } else {        GST_WARNING_OBJECT (self, "dropping frame : ts %" GST_TIME_FORMAT            " < expected_ts %" GST_TIME_FORMAT,            GST_TIME_ARGS (GST_BUFFER_TIMESTAMP (buf)),            GST_TIME_ARGS (self->next_ts));        self->frames_dropped++;      }    } else {      self->frames_rendered++;    }  } else#endif  if (GST_IS_EVENT (mini_obj)) {    GstEvent *ev = GST_EVENT_CAST (mini_obj);    if (GST_EVENT_TYPE (ev) == GST_EVENT_QOS) {      GstClockTimeDiff diff;      GstClockTime ts;      gst_event_parse_qos (ev, NULL, &diff, &ts);      if (diff <= 0.0) {        g_atomic_int_inc (&self->frames_rendered);      } else {        g_atomic_int_inc (&self->frames_dropped);      }      ts = gst_util_get_timestamp ();      if (G_UNLIKELY (!GST_CLOCK_TIME_IS_VALID (self->start_ts))) {        self->interval_ts = self->last_ts = self->start_ts = ts;      }      if (GST_CLOCK_DIFF (self->interval_ts, ts) > self->fps_update_interval) {        display_current_fps (self);        self->interval_ts = ts;      }    }  }  return TRUE;}
开发者ID:c-a,项目名称:gst-plugins-bad,代码行数:51,


示例27: gst_event_parse_tag

/** * gst_event_parse_tag: * @event: a tag event * @taglist: (out) (transfer none): pointer to metadata list * * Parses a tag @event and stores the results in the given @taglist location. * No reference to the taglist will be returned, it remains valid only until * the @event is freed. Don't modify or free the taglist, make a copy if you * want to modify it or store it for later use. */voidgst_event_parse_tag (GstEvent * event, GstTagList ** taglist){  const GValue *val;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_TAG);  val = gst_structure_id_get_value (GST_EVENT_STRUCTURE (event),      GST_QUARK (TAGLIST));  if (taglist)    *taglist = (GstTagList *) g_value_get_boxed (val);}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:24,


示例28: gst_event_parse_segment

/** * gst_event_parse_segment: * @event: The event to parse * @segment: (out) (transfer none): a pointer to a #GstSegment * * Parses a segment @event and stores the result in the given @segment location. * @segment remains valid only until the @event is freed. Don't modify the segment * and make a copy if you want to modify it or store it for later use. */voidgst_event_parse_segment (GstEvent * event, const GstSegment ** segment){  GstStructure *structure;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_SEGMENT);  if (segment) {    structure = GST_EVENT_STRUCTURE (event);    *segment = g_value_get_boxed (gst_structure_id_get_value (structure,            GST_QUARK (SEGMENT)));  }}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:23,


示例29: gst_event_parse_caps

/** * gst_event_parse_caps: * @event: The event to parse * @caps: (out) (transfer none): A pointer to the caps * * Get the caps from @event. The caps remains valid as long as @event remains * valid. */voidgst_event_parse_caps (GstEvent * event, GstCaps ** caps){  GstStructure *structure;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_CAPS);  structure = GST_EVENT_STRUCTURE (event);  if (G_LIKELY (caps))    *caps =        g_value_get_boxed (gst_structure_id_get_value (structure,            GST_QUARK (CAPS)));}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:22,


示例30: gst_event_parse_gap

/** * gst_event_parse_gap: * @event: a #GstEvent of type #GST_EVENT_GAP * @timestamp: (out) (allow-none): location where to store the *     start time (pts) of the gap, or %NULL * @duration: (out) (allow-none): location where to store the duration of *     the gap, or %NULL * * Extract timestamp and duration from a new GAP event. */voidgst_event_parse_gap (GstEvent * event, GstClockTime * timestamp,    GstClockTime * duration){  GstStructure *structure;  g_return_if_fail (GST_IS_EVENT (event));  g_return_if_fail (GST_EVENT_TYPE (event) == GST_EVENT_GAP);  structure = GST_EVENT_STRUCTURE (event);  gst_structure_id_get (structure,      GST_QUARK (TIMESTAMP), GST_TYPE_CLOCK_TIME, timestamp,      GST_QUARK (DURATION), GST_TYPE_CLOCK_TIME, duration, NULL);}
开发者ID:Grobik1,项目名称:gstreamer,代码行数:24,



注:本文中的GST_IS_EVENT函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ GST_IS_OBJECT函数代码示例
C++ GST_IS_ELEMENT_FACTORY函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。