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

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

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

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

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

示例1: gst_unaligned_audio_parse_init

static voidgst_unaligned_audio_parse_init (GstUnalignedAudioParse * unaligned_audio_parse){  GstPad *inner_pad;  GstPad *ghostpad;  unaligned_audio_parse->inner_parser =      gst_element_factory_make ("rawaudioparse", "inner_parser");  g_assert (unaligned_audio_parse->inner_parser != NULL);  g_object_set (G_OBJECT (unaligned_audio_parse->inner_parser),      "use-sink-caps", TRUE, NULL);  gst_bin_add (GST_BIN (unaligned_audio_parse),      unaligned_audio_parse->inner_parser);  inner_pad =      gst_element_get_static_pad (unaligned_audio_parse->inner_parser, "sink");  ghostpad =      gst_ghost_pad_new_from_template ("sink", inner_pad,      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS          (unaligned_audio_parse), "sink"));  gst_element_add_pad (GST_ELEMENT (unaligned_audio_parse), ghostpad);  gst_object_unref (GST_OBJECT (inner_pad));  inner_pad = gst_element_get_static_pad (unaligned_audio_parse->inner_parser,      "src");  ghostpad =      gst_ghost_pad_new_from_template ("src", inner_pad,      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS          (unaligned_audio_parse), "src"));  gst_element_add_pad (GST_ELEMENT (unaligned_audio_parse), ghostpad);  gst_object_unref (GST_OBJECT (inner_pad));}
开发者ID:luisbg,项目名称:gst-plugins-bad,代码行数:34,


示例2: gst_video_parse_init

static voidgst_video_parse_init (GstVideoParse * vp){  GstPad *inner_pad;  GstPad *ghostpad;  vp->rawvideoparse =      gst_element_factory_make ("rawvideoparse", "inner_rawvideoparse");  g_assert (vp->rawvideoparse != NULL);  gst_bin_add (GST_BIN (vp), vp->rawvideoparse);  inner_pad = gst_element_get_static_pad (vp->rawvideoparse, "sink");  ghostpad =      gst_ghost_pad_new_from_template ("sink", inner_pad,      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (vp), "sink"));  gst_element_add_pad (GST_ELEMENT (vp), ghostpad);  gst_object_unref (GST_OBJECT (inner_pad));  inner_pad = gst_element_get_static_pad (vp->rawvideoparse, "src");  ghostpad =      gst_ghost_pad_new_from_template ("src", inner_pad,      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (vp), "src"));  gst_element_add_pad (GST_ELEMENT (vp), ghostpad);  gst_object_unref (GST_OBJECT (inner_pad));}
开发者ID:GrokImageCompression,项目名称:gst-plugins-bad,代码行数:26,


示例3: kms_recording_profile_create_ksr_profile

static GstEncodingContainerProfile *kms_recording_profile_create_ksr_profile (gboolean has_audio,    gboolean has_video){  GstEncodingContainerProfile *cprof;  GstPadTemplate *templ;  GstElement *mux;  GstCaps *pc;  pc = gst_caps_from_string ("application/x-ksr");  cprof = gst_encoding_container_profile_new ("Ksr", NULL, pc, NULL);  gst_caps_unref (pc);  /* Use matroska caps to define this profile */  mux = gst_element_factory_make ("matroskamux", NULL);  if (has_audio) {    GstCaps *ac;    templ =        gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (mux),        "audio_%u");    ac = gst_pad_template_get_caps (templ);    gst_encoding_container_profile_add_profile (cprof, (GstEncodingProfile *)        gst_encoding_audio_profile_new (ac, NULL, NULL, 0));    gst_caps_unref (ac);  }  if (has_video) {    GstCaps *vc;    templ =        gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (mux),        "video_%u");    vc = gst_pad_template_get_caps (templ);    gst_encoding_container_profile_add_profile (cprof, (GstEncodingProfile *)        gst_encoding_video_profile_new (vc, NULL, NULL, 0));    gst_caps_unref (vc);  }  g_object_unref (mux);  return cprof;}
开发者ID:kirushyk,项目名称:kms-core,代码行数:48,


示例4: gst_osx_video_src_get_caps

static GstCaps *gst_osx_video_src_get_caps (GstBaseSrc * src){  GstElementClass *gstelement_class;  GstOSXVideoSrc *self;  GstPadTemplate *pad_template;  GstCaps *caps;  GstStructure *structure;  gint width, height;  gstelement_class = GST_ELEMENT_GET_CLASS (src);  self = GST_OSX_VIDEO_SRC (src);  /* if we don't have the resolution set up, return template caps */  if (!self->world)    return NULL;  pad_template = gst_element_class_get_pad_template (gstelement_class, "src");  /* i don't think this can actually fail... */  if (!pad_template)    return NULL;  width = self->rect.right;  height = self->rect.bottom;  caps = gst_caps_copy (gst_pad_template_get_caps (pad_template));  structure = gst_caps_get_structure (caps, 0);  gst_structure_set (structure, "width", G_TYPE_INT, width, NULL);  gst_structure_set (structure, "height", G_TYPE_INT, height, NULL);  return caps;}
开发者ID:ChinnaSuhas,项目名称:ossbuild,代码行数:33,


示例5: gst_rtp_rtx_receive_init

static voidgst_rtp_rtx_receive_init (GstRtpRtxReceive * rtx){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (rtx);  rtx->srcpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "src"), "src");  GST_PAD_SET_PROXY_CAPS (rtx->srcpad);  GST_PAD_SET_PROXY_ALLOCATION (rtx->srcpad);  gst_pad_set_event_function (rtx->srcpad,      GST_DEBUG_FUNCPTR (gst_rtp_rtx_receive_src_event));  gst_element_add_pad (GST_ELEMENT (rtx), rtx->srcpad);  rtx->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "sink"), "sink");  GST_PAD_SET_PROXY_CAPS (rtx->sinkpad);  GST_PAD_SET_PROXY_ALLOCATION (rtx->sinkpad);  gst_pad_set_chain_function (rtx->sinkpad,      GST_DEBUG_FUNCPTR (gst_rtp_rtx_receive_chain));  gst_element_add_pad (GST_ELEMENT (rtx), rtx->sinkpad);  rtx->ssrc2_ssrc1_map = g_hash_table_new (g_direct_hash, g_direct_equal);  rtx->seqnum_ssrc1_map = g_hash_table_new_full (g_direct_hash, g_direct_equal,      NULL, (GDestroyNotify) ssrc_assoc_free);  rtx->rtx_pt_map = g_hash_table_new (g_direct_hash, g_direct_equal);}
开发者ID:hizukiayaka,项目名称:gst-plugins-good,代码行数:29,


示例6: gst_rtp_ssrc_demux_init

static voidgst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux){    GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux);    demux->rtp_sink =        gst_pad_new_from_template (gst_element_class_get_pad_template (klass,                                   "sink"), "sink");    gst_pad_set_chain_function (demux->rtp_sink, gst_rtp_ssrc_demux_chain);    gst_pad_set_event_function (demux->rtp_sink, gst_rtp_ssrc_demux_sink_event);    gst_pad_set_iterate_internal_links_function (demux->rtp_sink,            gst_rtp_ssrc_demux_iterate_internal_links_sink);    gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtp_sink);    demux->rtcp_sink =        gst_pad_new_from_template (gst_element_class_get_pad_template (klass,                                   "rtcp_sink"), "rtcp_sink");    gst_pad_set_chain_function (demux->rtcp_sink, gst_rtp_ssrc_demux_rtcp_chain);    gst_pad_set_event_function (demux->rtcp_sink, gst_rtp_ssrc_demux_sink_event);    gst_pad_set_iterate_internal_links_function (demux->rtcp_sink,            gst_rtp_ssrc_demux_iterate_internal_links_sink);    gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtcp_sink);    g_rec_mutex_init (&demux->padlock);}
开发者ID:DylanZA,项目名称:gst-plugins-good,代码行数:25,


示例7: gst_wildmidi_init

/* initialize the new element * instantiate pads and add them to element * set functions * initialize structure */static voidgst_wildmidi_init (GstWildmidi * filter, GstWildmidiClass * g_class){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (filter);  filter->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "sink"), "sink");  gst_pad_set_activatepull_function (filter->sinkpad,      gst_wildmidi_activatepull);  gst_pad_set_activate_function (filter->sinkpad, gst_wildmidi_activate);  gst_pad_set_event_function (filter->sinkpad, gst_wildmidi_sink_event);  gst_pad_set_chain_function (filter->sinkpad, gst_wildmidi_chain);  gst_element_add_pad (GST_ELEMENT (filter), filter->sinkpad);  filter->srcpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "src"), "src");  gst_pad_set_query_function (filter->srcpad, gst_wildmidi_src_query);  gst_pad_set_event_function (filter->srcpad, gst_wildmidi_src_event);  gst_pad_use_fixed_caps (filter->srcpad);  gst_element_add_pad (GST_ELEMENT (filter), filter->srcpad);  gst_segment_init (filter->o_segment, GST_FORMAT_DEFAULT);  filter->adapter = gst_adapter_new ();  filter->bytes_per_frame = WILDMIDI_BPS;}
开发者ID:zsx,项目名称:ossbuild,代码行数:37,


示例8: gst_rtp_ssrc_demux_init

static voidgst_rtp_ssrc_demux_init (GstRtpSsrcDemux * demux,    GstRtpSsrcDemuxClass * g_class){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (demux);  demux->rtp_sink =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "sink"), "sink");  gst_pad_set_chain_function (demux->rtp_sink, gst_rtp_ssrc_demux_chain);  gst_pad_set_event_function (demux->rtp_sink, gst_rtp_ssrc_demux_sink_event);  gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtp_sink);  demux->rtcp_sink =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "rtcp_sink"), "rtcp_sink");  gst_pad_set_chain_function (demux->rtcp_sink, gst_rtp_ssrc_demux_rtcp_chain);  gst_pad_set_event_function (demux->rtcp_sink,      gst_rtp_ssrc_demux_rtcp_sink_event);  gst_element_add_pad (GST_ELEMENT_CAST (demux), demux->rtcp_sink);  demux->padlock = g_mutex_new ();  gst_segment_init (&demux->segment, GST_FORMAT_UNDEFINED);}
开发者ID:mrchapp,项目名称:gst-plugins-good,代码行数:25,


示例9: mfw_gst_vpuenc_init

static voidmfw_gst_vpuenc_init(GstVPU_Enc * vpu_enc, GstVPU_EncClass * gclass){	GST_DEBUG("mfw_gst_vpuenc_init");	GstElementClass *klass = GST_ELEMENT_GET_CLASS(vpu_enc);	/* create the sink and src pads */	vpu_enc->sinkpad =	    gst_pad_new_from_template(gst_element_class_get_pad_template				      (klass, "sink"), "sink");	vpu_enc->srcpad =	    gst_pad_new_from_template(gst_element_class_get_pad_template				      (klass, "src"), "src");	gst_element_add_pad(GST_ELEMENT(vpu_enc), vpu_enc->sinkpad);	gst_element_add_pad(GST_ELEMENT(vpu_enc), vpu_enc->srcpad);	vpu_enc->parent_class = g_type_class_peek_parent(gclass);	gst_pad_set_chain_function(vpu_enc->sinkpad, mfw_gst_vpuenc_chain);	gst_pad_set_event_function(vpu_enc->sinkpad,				   GST_DEBUG_FUNCPTR				   (mfw_gst_vpuenc_sink_event));	gst_pad_set_setcaps_function(vpu_enc->sinkpad, mfw_gst_vpuenc_setcaps);	vpu_enc->codec = STD_AVC;	vpu_enc->device = g_strdup(VPU_DEVICE);	vpu_enc->framerate = DEFAULT_FRAME_RATE;	vpu_enc->bitrate = 0;	vpu_enc->gopsize = 0;	vpu_enc->codecTypeProvided = FALSE;	vpu_enc->memory = V4L2_MEMORY_USERPTR;	vpu_enc->mjpeg_quality = 50;}
开发者ID:jmartinc,项目名称:gst-plugins-fsl-vpu,代码行数:33,


示例10: gst_alsasink_getcaps

static GstCaps *gst_alsasink_getcaps (GstBaseSink * bsink){    GstElementClass *element_class;    GstPadTemplate *pad_template;    GstAlsaSink *sink = GST_ALSA_SINK (bsink);    GstCaps *caps;    if (sink->handle == NULL) {        GST_DEBUG_OBJECT (sink, "device not open, using template caps");        return NULL;                /* base class will get template caps for us */    }    if (sink->cached_caps) {        GST_LOG_OBJECT (sink, "Returning cached caps");        return gst_caps_ref (sink->cached_caps);    }    element_class = GST_ELEMENT_GET_CLASS (sink);    pad_template = gst_element_class_get_pad_template (element_class, "sink");    g_return_val_if_fail (pad_template != NULL, NULL);    caps = gst_alsa_probe_supported_formats (GST_OBJECT (sink), sink->device,            sink->handle, gst_pad_template_get_caps (pad_template));    if (caps) {        sink->cached_caps = gst_caps_ref (caps);    }    GST_INFO_OBJECT (sink, "returning caps %" GST_PTR_FORMAT, caps);    return caps;}
开发者ID:pli3,项目名称:gst-plugins-base,代码行数:33,


示例11: gst_rdt_manager_request_new_pad

static GstPad *gst_rdt_manager_request_new_pad (GstElement * element,    GstPadTemplate * templ, const gchar * name, const GstCaps * caps){  GstRDTManager *rdtmanager;  GstElementClass *klass;  GstPad *result;  g_return_val_if_fail (templ != NULL, NULL);  g_return_val_if_fail (GST_IS_RDT_MANAGER (element), NULL);  rdtmanager = GST_RDT_MANAGER (element);  klass = GST_ELEMENT_GET_CLASS (element);  /* figure out the template */  if (templ == gst_element_class_get_pad_template (klass, "recv_rtp_sink_%u")) {    result = create_recv_rtp (rdtmanager, templ, name);  } else if (templ == gst_element_class_get_pad_template (klass,          "recv_rtcp_sink_%u")) {    result = create_recv_rtcp (rdtmanager, templ, name);  } else if (templ == gst_element_class_get_pad_template (klass, "rtcp_src_%u")) {    result = create_rtcp (rdtmanager, templ, name);  } else    goto wrong_template;  return result;  /* ERRORS */wrong_template:  {    g_warning ("rdtmanager: this is not our template");    return NULL;  }}
开发者ID:lubing521,项目名称:gst-embedded-builder,代码行数:34,


示例12: gst_v4lmjpegsink_init

static voidgst_v4lmjpegsink_init (GstV4lMjpegSink * v4lmjpegsink){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (v4lmjpegsink);  v4lmjpegsink->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "sink"), "sink");  gst_element_add_pad (GST_ELEMENT (v4lmjpegsink), v4lmjpegsink->sinkpad);  gst_pad_set_chain_function (v4lmjpegsink->sinkpad, gst_v4lmjpegsink_chain);  gst_pad_set_link_function (v4lmjpegsink->sinkpad,      gst_v4lmjpegsink_sinkconnect);  v4lmjpegsink->clock = NULL;  v4lmjpegsink->width = -1;  v4lmjpegsink->height = -1;  v4lmjpegsink->x_offset = -1;  v4lmjpegsink->y_offset = -1;  v4lmjpegsink->numbufs = 64;  v4lmjpegsink->bufsize = 256;  GST_OBJECT_FLAG_SET (v4lmjpegsink, GST_ELEMENT_THREAD_SUGGESTED);}
开发者ID:genesi,项目名称:gst-base-plugins,代码行数:27,


示例13: gst_tta_parse_init

static voidgst_tta_parse_init (GstTtaParse * ttaparse){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (ttaparse);  ttaparse->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "sink"), "sink");  ttaparse->srcpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "src"), "src");  gst_pad_use_fixed_caps (ttaparse->srcpad);  gst_pad_set_query_type_function (ttaparse->srcpad,      gst_tta_parse_get_query_types);  gst_pad_set_query_function (ttaparse->srcpad, gst_tta_parse_query);  gst_pad_set_event_function (ttaparse->srcpad, gst_tta_parse_src_event);  gst_element_add_pad (GST_ELEMENT (ttaparse), ttaparse->sinkpad);  gst_element_add_pad (GST_ELEMENT (ttaparse), ttaparse->srcpad);  gst_pad_set_activate_function (ttaparse->sinkpad, gst_tta_parse_activate);  gst_pad_set_activatepull_function (ttaparse->sinkpad,      gst_tta_parse_activate_pull);  gst_tta_parse_reset (ttaparse);}
开发者ID:GrokImageCompression,项目名称:gst-plugins-bad,代码行数:26,


示例14: gst_fake_h264_decoder_init

static voidgst_fake_h264_decoder_init (GstFakeH264Decoder * self){  GstPad *pad;  pad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (GST_ELEMENT_GET_CLASS (self), "sink"), "sink");  gst_pad_set_event_function (pad, gst_fake_h264_decoder_sink_event);  gst_pad_set_chain_function (pad, gst_fake_h264_decoder_sink_chain);  gst_element_add_pad (GST_ELEMENT (self), pad);  pad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (GST_ELEMENT_GET_CLASS (self), "src"), "src");  gst_element_add_pad (GST_ELEMENT (self), pad);}
开发者ID:thaytan,项目名称:gst-plugins-base,代码行数:17,


示例15: gst_stream_combiner_request_new_pad

static GstPad *gst_stream_combiner_request_new_pad (GstElement * element,    GstPadTemplate * templ, const gchar * name, const GstCaps * caps){  GstStreamCombiner *stream_combiner = (GstStreamCombiner *) element;  GstStreamCombinerPad *combiner_pad;  GstPad *sinkpad;  GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);  GstPadTemplate *template =
开发者ID:Distrotech,项目名称:gst-plugins-base,代码行数:9,


示例16: gst_dshowaudiodec_init

static voidgst_dshowaudiodec_init (GstDshowAudioDec * adec,    GstDshowAudioDecClass * adec_class){  GstElementClass *element_class = GST_ELEMENT_GET_CLASS (adec);  /* setup pads */  adec->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (element_class, "sink"), "sink");  gst_pad_set_setcaps_function (adec->sinkpad, gst_dshowaudiodec_sink_setcaps);  gst_pad_set_event_function (adec->sinkpad, gst_dshowaudiodec_sink_event);  gst_pad_set_chain_function (adec->sinkpad, gst_dshowaudiodec_chain);  gst_element_add_pad (GST_ELEMENT (adec), adec->sinkpad);  adec->srcpad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (element_class, "src"), "src");  gst_element_add_pad (GST_ELEMENT (adec), adec->srcpad);  adec->fakesrc = NULL;  adec->fakesink = NULL;  adec->decfilter = 0;  adec->filtergraph = 0;  adec->mediafilter = 0;  adec->timestamp = GST_CLOCK_TIME_NONE;  adec->segment = gst_segment_new ();  adec->setup = FALSE;  adec->depth = 0;  adec->bitrate = 0;  adec->block_align = 0;  adec->channels = 0;  adec->rate = 0;  adec->layer = 0;  adec->codec_data = NULL;  adec->last_ret = GST_FLOW_OK;  adec->com_init_lock = g_mutex_new();  adec->com_deinit_lock = g_mutex_new();  adec->com_initialized = g_cond_new();  adec->com_uninitialize = g_cond_new();  adec->com_uninitialized = g_cond_new();  g_mutex_lock (adec->com_init_lock);  /* create the COM initialization thread */  g_thread_create ((GThreadFunc)gst_dshowaudiodec_com_thread,      adec, FALSE, NULL);  /* wait until the COM thread signals that COM has been initialized */  g_cond_wait (adec->com_initialized, adec->com_init_lock);  g_mutex_unlock (adec->com_init_lock);}
开发者ID:Lachann,项目名称:gst-plugins-bad,代码行数:57,


示例17: gst_fake_h264_parser_init

static voidgst_fake_h264_parser_init (GstFakeH264Parser * self,    GstFakeH264ParserClass * klass){  GstPad *pad;  pad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (GST_ELEMENT_GET_CLASS (self), "sink"), "sink");  gst_pad_set_setcaps_function (pad, gst_fake_h264_parser_sink_setcaps);  gst_pad_set_chain_function (pad, gst_fake_h264_parser_sink_chain);  gst_element_add_pad (GST_ELEMENT (self), pad);  pad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (GST_ELEMENT_GET_CLASS (self), "src"), "src");  gst_element_add_pad (GST_ELEMENT (self), pad);}
开发者ID:adenexter,项目名称:gst-plugins-base,代码行数:18,


示例18: element_is_valid_filter

static gbooleanelement_is_valid_filter (GstElement * element, gboolean * isdynamic){  gboolean havesink = FALSE;  gboolean havesrc = FALSE;  gboolean done = FALSE;  GstIterator *pads;  GValue item = { 0, };  if (isdynamic)    *isdynamic = FALSE;  pads = gst_element_iterate_pads (element);  while (!done) {    switch (gst_iterator_next (pads, &item)) {      case GST_ITERATOR_OK:      {        GstPad *pad = g_value_get_object (&item);        if (gst_pad_get_direction (pad) == GST_PAD_SRC)          havesrc = TRUE;        else if (gst_pad_get_direction (pad) == GST_PAD_SINK)          havesink = TRUE;        g_value_reset (&item);        break;      }      case GST_ITERATOR_RESYNC:        gst_iterator_resync (pads);        havesrc = FALSE;        havesink = FALSE;        break;      default:        /* ERROR and DONE */        done = TRUE;        break;    }  }  g_value_unset (&item);  gst_iterator_free (pads);  /* just look at the element's class, not the factory, since there might   * not be a factory (in case of python elements) or the factory is the   * wrong one (in case of a GstBin sub-class) and doesn't have complete   * information. */  {    GList *tmp =        gst_element_class_get_pad_template_list (GST_ELEMENT_GET_CLASS        (element));    while (tmp) {      GstPadTemplate *template = (GstPadTemplate *) tmp->data;      if (template->direction == GST_PAD_SRC)
开发者ID:GStreamer,项目名称:gst-editing-services,代码行数:56,


示例19: gst_alsasink_getcaps

static GstCaps *gst_alsasink_getcaps (GstBaseSink * bsink, GstCaps * filter){  GstElementClass *element_class;  GstPadTemplate *pad_template;  GstAlsaSink *sink = GST_ALSA_SINK (bsink);  GstCaps *caps, *templ_caps;  if (sink->handle == NULL) {    GST_DEBUG_OBJECT (sink, "device not open, using template caps");    return NULL;                /* base class will get template caps for us */  }  if (sink->cached_caps) {    if (filter) {      caps = gst_caps_intersect_full (filter, sink->cached_caps,          GST_CAPS_INTERSECT_FIRST);      GST_LOG_OBJECT (sink, "Returning cached caps %" GST_PTR_FORMAT " with "          "filter %" GST_PTR_FORMAT " applied: %" GST_PTR_FORMAT,          sink->cached_caps, filter, caps);      return caps;    } else {      GST_LOG_OBJECT (sink, "Returning cached caps %" GST_PTR_FORMAT,          sink->cached_caps);      return gst_caps_ref (sink->cached_caps);    }  }  element_class = GST_ELEMENT_GET_CLASS (sink);  pad_template = gst_element_class_get_pad_template (element_class, "sink");  g_return_val_if_fail (pad_template != NULL, NULL);  templ_caps = gst_pad_template_get_caps (pad_template);  caps = gst_alsa_probe_supported_formats (GST_OBJECT (sink), sink->device,      sink->handle, templ_caps);  gst_caps_unref (templ_caps);  if (caps) {    sink->cached_caps = gst_caps_ref (caps);  }  GST_INFO_OBJECT (sink, "returning caps %" GST_PTR_FORMAT, caps);  if (filter) {    GstCaps *intersection;    intersection =        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);    gst_caps_unref (caps);    return intersection;  } else {    return caps;  }}
开发者ID:lubing521,项目名称:gst-embedded-builder,代码行数:54,


示例20: play_sink_multiple_seeks_send_event

static gbooleanplay_sink_multiple_seeks_send_event (GstElement * element, GstEvent * event){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);  GST_DEBUG ("%s", GST_EVENT_TYPE_NAME (event));  return      GST_ELEMENT_CLASS (g_type_class_peek_parent (klass))->send_event (element,      event);}
开发者ID:freesteph,项目名称:gst-editing-services,代码行数:11,


示例21: gst_vaapiencode_set_format

static gbooleangst_vaapiencode_set_format (GstVideoEncoder * venc, GstVideoCodecState * state){  GstVaapiEncode *const encode = GST_VAAPIENCODE_CAST (venc);  gboolean ret;  g_return_val_if_fail (state->caps != NULL, FALSE);  if (!set_codec_state (encode, state))    return FALSE;  if (!gst_vaapi_plugin_base_set_caps (GST_VAAPI_PLUGIN_BASE (encode),          state->caps, NULL))    return FALSE;  if (encode->input_state)    gst_video_codec_state_unref (encode->input_state);  encode->input_state = gst_video_codec_state_ref (state);  encode->input_state_changed = TRUE;  ret = gst_pad_start_task (GST_VAAPI_PLUGIN_BASE_SRC_PAD (encode),      (GstTaskFunction) gst_vaapiencode_buffer_loop, encode, NULL);  if (!ret)    return FALSE;  /* Store some tags */  {    GstTagList *tags = gst_tag_list_new_empty ();    const gchar *encoder, *codec;    guint bitrate = 0;    g_object_get (encode, "bitrate", &bitrate, NULL);    gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_NOMINAL_BITRATE,        bitrate, NULL);    if ((encoder =            gst_element_class_get_metadata (GST_ELEMENT_GET_CLASS (encode),                GST_ELEMENT_METADATA_LONGNAME)))      gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_ENCODER, encoder,          NULL);    if ((codec =            gst_vaapi_codec_get_name (gst_vaapi_profile_get_codec                (gst_vaapi_profile_from_caps (state->caps)))))      gst_tag_list_add (tags, GST_TAG_MERGE_REPLACE, GST_TAG_CODEC, codec,          NULL);    gst_video_encoder_merge_tags (venc, tags, GST_TAG_MERGE_REPLACE);    gst_tag_list_unref (tags);  }  return TRUE;}
开发者ID:rexxster,项目名称:gstreamer-vaapi,代码行数:54,


示例22: gst_xine_input_sub_init

static voidgst_xine_input_sub_init (GTypeInstance * instance, gpointer g_class){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (instance);  GstXineInput *xine = GST_XINE_INPUT (instance);  xine->srcpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "src"), "src");  gst_pad_set_get_function (xine->srcpad, gst_xine_input_get);  gst_element_add_pad (GST_ELEMENT (xine), xine->srcpad);}
开发者ID:JJCG,项目名称:gst-plugins-bad,代码行数:12,


示例23: gst_dshowvideodec_init

static voidgst_dshowvideodec_init (GstDshowVideoDec * vdec,    GstDshowVideoDecClass * vdec_class){  GstElementClass *element_class = GST_ELEMENT_GET_CLASS (vdec);  /* setup pads */  vdec->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (element_class, "sink"), "sink");  gst_pad_set_setcaps_function (vdec->sinkpad, gst_dshowvideodec_sink_setcaps);  gst_pad_set_event_function (vdec->sinkpad, gst_dshowvideodec_sink_event);  gst_pad_set_chain_function (vdec->sinkpad, gst_dshowvideodec_chain);  gst_element_add_pad (GST_ELEMENT (vdec), vdec->sinkpad);  vdec->srcpad =      gst_pad_new_from_template (gst_element_class_get_pad_template      (element_class, "src"), "src");/* needed to implement caps negociation on our src pad *//*  gst_pad_set_getcaps_function (vdec->srcpad, gst_dshowvideodec_src_getcaps);  gst_pad_set_setcaps_function (vdec->srcpad, gst_dshowvideodec_src_setcaps);*/  gst_element_add_pad (GST_ELEMENT (vdec), vdec->srcpad);  vdec->fakesrc = NULL;  vdec->fakesink = NULL;  vdec->decfilter = NULL;  vdec->last_ret = GST_FLOW_OK;  vdec->filtergraph = NULL;  vdec->mediafilter = NULL;  vdec->srccaps = NULL;  vdec->segment = gst_segment_new ();  vdec->setup = FALSE;  vdec->com_init_lock = g_mutex_new();  vdec->com_deinit_lock = g_mutex_new();  vdec->com_initialized = g_cond_new();  vdec->com_uninitialize = g_cond_new();  vdec->com_uninitialized = g_cond_new();  g_mutex_lock (vdec->com_init_lock);  /* create the COM initialization thread */  g_thread_create ((GThreadFunc)gst_dshowvideodec_com_thread,      vdec, FALSE, NULL);  /* wait until the COM thread signals that COM has been initialized */  g_cond_wait (vdec->com_initialized, vdec->com_init_lock);  g_mutex_unlock (vdec->com_init_lock);}
开发者ID:Lachann,项目名称:gst-plugins-bad,代码行数:53,


示例24: gst_alsasrc_getcaps

static GstCaps *gst_alsasrc_getcaps (GstBaseSrc * bsrc, GstCaps * filter){  GstElementClass *element_class;  GstPadTemplate *pad_template;  GstAlsaSrc *src;  GstCaps *caps, *templ_caps;  src = GST_ALSA_SRC (bsrc);  if (src->handle == NULL) {    GST_DEBUG_OBJECT (src, "device not open, using template caps");    return GST_BASE_SRC_CLASS (parent_class)->get_caps (bsrc, filter);  }  if (src->cached_caps) {    GST_LOG_OBJECT (src, "Returning cached caps");    if (filter)      return gst_caps_intersect_full (filter, src->cached_caps,          GST_CAPS_INTERSECT_FIRST);    else      return gst_caps_ref (src->cached_caps);  }  element_class = GST_ELEMENT_GET_CLASS (src);  pad_template = gst_element_class_get_pad_template (element_class, "src");  g_return_val_if_fail (pad_template != NULL, NULL);  templ_caps = gst_pad_template_get_caps (pad_template);  GST_INFO_OBJECT (src, "template caps %" GST_PTR_FORMAT, templ_caps);  caps = gst_alsa_probe_supported_formats (GST_OBJECT (src),      src->device, src->handle, templ_caps);  gst_caps_unref (templ_caps);  if (caps) {    src->cached_caps = gst_caps_ref (caps);  }  GST_INFO_OBJECT (src, "returning caps %" GST_PTR_FORMAT, caps);  if (filter) {    GstCaps *intersection;    intersection =        gst_caps_intersect_full (filter, caps, GST_CAPS_INTERSECT_FIRST);    gst_caps_unref (caps);    return intersection;  } else {    return caps;  }}
开发者ID:Distrotech,项目名称:gst-plugins-base,代码行数:52,


示例25: gst_insert_bin_init

static voidgst_insert_bin_init (GstInsertBin * self){  GstProxyPad *internal;  self->priv = G_TYPE_INSTANCE_GET_PRIVATE (self, GST_TYPE_INSERT_BIN,      GstInsertBinPrivate);  g_queue_init (&self->priv->change_queue);  self->priv->sinkpad = gst_ghost_pad_new_no_target_from_template ("sink",      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (self),          "sink"));  gst_element_add_pad (GST_ELEMENT (self), self->priv->sinkpad);  internal = gst_proxy_pad_get_internal (GST_PROXY_PAD (self->priv->sinkpad));  self->priv->srcpad = gst_ghost_pad_new_from_template ("src",      GST_PAD (internal),      gst_element_class_get_pad_template (GST_ELEMENT_GET_CLASS (self), "src"));  gst_object_unref (internal);  gst_element_add_pad (GST_ELEMENT (self), self->priv->srcpad);}
开发者ID:GrokImageCompression,项目名称:gst-plugins-bad,代码行数:22,


示例26: gst_faceblur_init

static voidgst_faceblur_init (GstFaceblur * faceblur, GstFaceblurClass * g_class){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (faceblur);  GST_DEBUG_OBJECT (faceblur, "gst_faceblur_init");  faceblur->storage = cvCreateMemStorage(0);  faceblur->cascade = (CvHaarClassifierCascade*)cvLoad(OPENCV_FACE_HAARCASCADE, 0, 0, 0 );  /* properties */  faceblur->face_width = DEFAULT_PROP_FACE_WIDTH;  faceblur->face_height = DEFAULT_PROP_FACE_HEIGHT;}
开发者ID:icosolera,项目名称:smartcut,代码行数:13,


示例27: has_sometimes_template

static gbooleanhas_sometimes_template (GstElement * element){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (element);  GList *l;  for (l = klass->padtemplates; l != NULL; l = l->next) {    if (GST_PAD_TEMPLATE (l->data)->presence == GST_PAD_SOMETIMES)      return TRUE;  }  return FALSE;}
开发者ID:Kurento,项目名称:gstreamer,代码行数:13,


示例28: gst_bin_iterate_recurse

static GstElement *find_xvimagesink() {	GstIterator *iterator = gst_bin_iterate_recurse(GST_BIN(pipeline));	GstElement *xvimagesink = NULL;	gboolean done = FALSE;#if GST_CHECK_VERSION(1, 0, 0)	GValue item = G_VALUE_INIT;#else	gpointer item;#endif	while (!done) {		switch (gst_iterator_next(iterator, &item)) {		case GST_ITERATOR_OK : {#if GST_CHECK_VERSION(1, 0, 0)			GstElement *element = g_value_get_object(&item);#else			GstElement *element = GST_ELEMENT(item);#endif			GstElementClass *klass = GST_ELEMENT_GET_CLASS(element);#if GST_CHECK_VERSION(1, 0, 0)			char *s = gst_element_class_get_metadata(klass, "description");#else			char *s = klass->details.description;#endif			/* This is not the best way to check. */			if (strstr(s, "A Xv based videosink") != NULL ||			strstr(GST_OBJECT_NAME(element), "xvimage") != NULL) {				xvimagesink = element;				done = TRUE;			}#if GST_CHECK_VERSION(1, 0, 0)			g_value_reset(&item);#endif        		break;		}		case GST_ITERATOR_RESYNC :			gst_iterator_resync(iterator);			xvimagesink = NULL;			done = FALSE;			break;		case GST_ITERATOR_DONE:		case GST_ITERATOR_ERROR:		default:			done = TRUE;		}	}#if GST_CHECK_VERSION(1, 0, 0)	g_value_unset(&item);#endif	gst_iterator_free(iterator);	return xvimagesink;}
开发者ID:BorodaZizitopa,项目名称:gstplay,代码行数:51,


示例29: gst_xine_audio_sink_sub_init

static voidgst_xine_audio_sink_sub_init (GTypeInstance * instance, gpointer g_class){  GstElementClass *klass = GST_ELEMENT_GET_CLASS (instance);  GstXineAudioSink *xine = GST_XINE_AUDIO_SINK (instance);  xine->sinkpad =      gst_pad_new_from_template (gst_element_class_get_pad_template (klass,          "sink"), "sink");  gst_pad_set_chain_function (xine->sinkpad, gst_xine_audio_sink_chain);  gst_pad_set_getcaps_function (xine->sinkpad, _xine_audio_sink_get_caps);  gst_pad_set_link_function (xine->sinkpad, _xine_audio_sink_link);  gst_element_add_pad (GST_ELEMENT (xine), xine->sinkpad);}
开发者ID:JJCG,项目名称:gst-plugins-bad,代码行数:14,


示例30: gst_alsa_device_property_probe_get_values

static GValueArray *gst_alsa_device_property_probe_get_values (GstPropertyProbe * probe,    guint prop_id, const GParamSpec * pspec){  GstElementClass *klass;  const GList *templates;  snd_pcm_stream_t mode = -1;  GValueArray *array;  GValue value = { 0, };  GList *l, *list;  if (!g_str_equal (pspec->name, "device")) {    G_OBJECT_WARN_INVALID_PROPERTY_ID (probe, prop_id, pspec);    return NULL;  }  klass = GST_ELEMENT_GET_CLASS (GST_ELEMENT (probe));  /* I'm pretty sure ALSA has a good way to do this. However, their cool   * auto-generated documentation is pretty much useless if you try to   * do function-wise look-ups. */  /* we assume one pad template at max [zero=mixer] */  templates = gst_element_class_get_pad_template_list (klass);  if (templates) {    if (GST_PAD_TEMPLATE_DIRECTION (templates->data) == GST_PAD_SRC)      mode = SND_PCM_STREAM_CAPTURE;    else      mode = SND_PCM_STREAM_PLAYBACK;  }  list = gst_alsa_get_device_list (mode);  if (list == NULL) {    GST_LOG_OBJECT (probe, "No devices found");    return NULL;  }  array = g_value_array_new (g_list_length (list));  g_value_init (&value, G_TYPE_STRING);  for (l = list; l != NULL; l = l->next) {    GST_LOG_OBJECT (probe, "Found device: %s", (gchar *) l->data);    g_value_take_string (&value, (gchar *) l->data);    l->data = NULL;    g_value_array_append (array, &value);  }  g_value_unset (&value);  g_list_free (list);  return array;}
开发者ID:matsu,项目名称:gst-plugins-base,代码行数:50,



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


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