コード例 #1
0
void
gst_raw_parse_class_set_src_pad_template (GstRawParseClass * klass,
    const GstCaps * allowed_caps)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);

  g_return_if_fail (GST_IS_RAW_PARSE_CLASS (klass));
  g_return_if_fail (allowed_caps != NULL);
  g_return_if_fail (GST_IS_CAPS (allowed_caps));

  gst_element_class_add_pad_template (element_class,
      gst_pad_template_new ("src", GST_PAD_SRC, GST_PAD_ALWAYS,
          gst_caps_copy (allowed_caps)));
}
コード例 #2
0
ファイル: gstappsrc.c プロジェクト: zsx/ossbuild
static void
gst_app_src_base_init (gpointer g_class)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);

  GST_DEBUG_CATEGORY_INIT (app_src_debug, "appsrc", 0, "appsrc element");

  gst_element_class_set_details_simple (element_class, "AppSrc",
      "Generic/Src", "Allow the application to feed buffers to a pipeline",
      "David Schleef <*****@*****.**>, Wim Taymans <*****@*****.**>");

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&gst_app_src_template));
}
コード例 #3
0
static void
gst_fbdev2sink_class_init (GstFbdev2sinkClass* klass)
{
  /* Setting up pads and setting metadata should be moved to
     base_class_init if you intend to subclass this class. */
  gst_element_class_add_pad_template (GST_ELEMENT_CLASS(klass),
      gst_static_pad_template_get (&gst_fbdev2sink_sink_template));

  gst_element_class_set_static_metadata (GST_ELEMENT_CLASS(klass),
      "Optimized Linux console framebuffer video sink",
      "Sink/Video",
      "fbdev2 framebuffer sink",
      "Harm Hanemaaijer <*****@*****.**>");
}
コード例 #4
0
static void
gst_png_parse_class_init (GstPngParseClass * klass)
{
  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
  GstBaseParseClass *parse_class = GST_BASE_PARSE_CLASS (klass);

  GST_DEBUG_CATEGORY_INIT (png_parse_debug, "pngparse", 0, "png parser");

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&srctemplate));
  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&sinktemplate));
  gst_element_class_set_static_metadata (gstelement_class, "PNG parser",
      "Codec/Parser/Video/Image",
      "Parses PNG files", "Olivier Crete <*****@*****.**>");

  /* Override BaseParse vfuncs */
  parse_class->start = GST_DEBUG_FUNCPTR (gst_png_parse_start);
  parse_class->sink_event = GST_DEBUG_FUNCPTR (gst_png_parse_event);
  parse_class->handle_frame = GST_DEBUG_FUNCPTR (gst_png_parse_handle_frame);
  parse_class->pre_push_frame =
      GST_DEBUG_FUNCPTR (gst_png_parse_pre_push_frame);
}
コード例 #5
0
ファイル: gstshmsrc.c プロジェクト: ChinnaSuhas/ossbuild
static void
gst_shm_src_base_init (gpointer g_class)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&srctemplate));

  gst_element_class_set_details_simple (element_class,
      "Shared Memory Source",
      "Source",
      "Receive data from the sharem memory sink",
      "Olivier Crete <*****@*****.**");
}
コード例 #6
0
static void
gst_asteriskh263_class_init (GstAsteriskh263Class * klass)
{
  GObjectClass *gobject_class;
  GstElementClass *gstelement_class;

  gobject_class = (GObjectClass *) klass;
  gstelement_class = (GstElementClass *) klass;

  gobject_class->finalize = gst_asteriskh263_finalize;

  gstelement_class->change_state = gst_asteriskh263_change_state;

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_asteriskh263_src_template));
  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_asteriskh263_sink_template));

  gst_element_class_set_static_metadata (gstelement_class,
      "RTP Asterisk H263 depayloader", "Codec/Depayloader/Network/RTP",
      "Extracts H263 video from RTP and encodes in Asterisk H263 format",
      "Neil Stratford <*****@*****.**>");
}
コード例 #7
0
/* GObject vmethod implementations */
static void
gst_openal_sink_base_init (gpointer gclass)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
  GstPadTemplate *pad_template;

  gst_element_class_set_metadata (element_class, "Audio sink (OpenAL)",
      "Sink/Audio",
      "Output to a sound device via OpenAL",
      "Chris Robinson <*****@*****.**>");

  pad_template = gst_static_pad_template_get (&openalsink_sink_factory);
  gst_element_class_add_pad_template (element_class, pad_template);
}
コード例 #8
0
ファイル: gstspotsrc.c プロジェクト: popdevelop/dogvibes_old
static void
gst_spot_src_base_init (gpointer g_class)
{

  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);

  gst_element_class_set_details_simple (gstelement_class,
      "Spot Source",
      "SPOTSRC, SPOTSRC_THREADS, SPOTSRC_AUDIO, SPOTSRC_CB",
      "Spotify source element",
      "[email protected] (http://hackr.se) & [email protected]");
  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&srctemplate));
}
コード例 #9
0
ファイル: gstgoovideoenc720p.c プロジェクト: mrchapp/gst-goo
static void
gst_goo_videoenc_720p_base_init (gpointer g_klass)
{
	GST_DEBUG_CATEGORY_INIT (gst_goo_videoenc_720p_debug, "goovideoenc720p", 0,
		"GStreamer-Goo parent class for 720p video encoders");

	GstElementClass* e_klass = GST_ELEMENT_CLASS (g_klass);

	gst_element_class_add_pad_template (e_klass,
					    gst_static_pad_template_get
					    (&sink_factory));

	return;
}
コード例 #10
0
static void
gst_alsasrc_class_init (GstAlsaSrcClass * klass)
{
  GObjectClass *gobject_class;
  GstElementClass *gstelement_class;
  GstBaseSrcClass *gstbasesrc_class;
  GstAudioSrcClass *gstaudiosrc_class;

  gobject_class = (GObjectClass *) klass;
  gstelement_class = (GstElementClass *) klass;
  gstbasesrc_class = (GstBaseSrcClass *) klass;
  gstaudiosrc_class = (GstAudioSrcClass *) klass;

  gobject_class->finalize = gst_alsasrc_finalize;
  gobject_class->get_property = gst_alsasrc_get_property;
  gobject_class->set_property = gst_alsasrc_set_property;

  gst_element_class_set_static_metadata (gstelement_class,
      "Audio source (ALSA)", "Source/Audio",
      "Read from a sound card via ALSA", "Wim Taymans <*****@*****.**>");

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&alsasrc_src_factory));

  gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_alsasrc_getcaps);

  gstaudiosrc_class->open = GST_DEBUG_FUNCPTR (gst_alsasrc_open);
  gstaudiosrc_class->prepare = GST_DEBUG_FUNCPTR (gst_alsasrc_prepare);
  gstaudiosrc_class->unprepare = GST_DEBUG_FUNCPTR (gst_alsasrc_unprepare);
  gstaudiosrc_class->close = GST_DEBUG_FUNCPTR (gst_alsasrc_close);
  gstaudiosrc_class->read = GST_DEBUG_FUNCPTR (gst_alsasrc_read);
  gstaudiosrc_class->delay = GST_DEBUG_FUNCPTR (gst_alsasrc_delay);
  gstaudiosrc_class->reset = GST_DEBUG_FUNCPTR (gst_alsasrc_reset);
  gstelement_class->change_state = GST_DEBUG_FUNCPTR (gst_alsasrc_change_state);

  g_object_class_install_property (gobject_class, PROP_DEVICE,
      g_param_spec_string ("device", "Device",
          "ALSA device, as defined in an asound configuration file",
          DEFAULT_PROP_DEVICE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (gobject_class, PROP_DEVICE_NAME,
      g_param_spec_string ("device-name", "Device name",
          "Human-readable name of the sound device",
          DEFAULT_PROP_DEVICE_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));

  g_object_class_install_property (gobject_class, PROP_CARD_NAME,
      g_param_spec_string ("card-name", "Card name",
          "Human-readable name of the sound card",
          DEFAULT_PROP_CARD_NAME, G_PARAM_READABLE | G_PARAM_STATIC_STRINGS));
}
コード例 #11
0
static void
gst_shagadelictv_class_init (GstShagadelicTVClass * klass)
{
    GObjectClass *gobject_class = (GObjectClass *) klass;
    GstElementClass *gstelement_class = (GstElementClass *) klass;
    GstVideoFilterClass *vfilter_class = (GstVideoFilterClass *) klass;

    gobject_class->finalize = gst_shagadelictv_finalize;

    gst_element_class_set_static_metadata (gstelement_class, "ShagadelicTV",
                                           "Filter/Effect/Video",
                                           "Oh behave, ShagedelicTV makes images shagadelic!",
                                           "Wim Taymans <*****@*****.**>");

    gst_element_class_add_pad_template (gstelement_class,
                                        gst_static_pad_template_get (&gst_shagadelictv_sink_template));
    gst_element_class_add_pad_template (gstelement_class,
                                        gst_static_pad_template_get (&gst_shagadelictv_src_template));

    vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_shagadelictv_set_info);
    vfilter_class->transform_frame =
        GST_DEBUG_FUNCPTR (gst_shagadelictv_transform_frame);
}
コード例 #12
0
static void
gst_vdp_mpeg_dec_base_init (gpointer gclass)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);

  gst_element_class_set_static_metadata (element_class,
      "VDPAU Mpeg Decoder",
      "Decoder",
      "Decode mpeg stream with vdpau",
      "Carl-Anton Ingmarsson <*****@*****.**>");

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&sink_template));
}
コード例 #13
0
static void
rsn_audiomunge_class_init (RsnAudioMungeClass * klass)
{
  GObjectClass *gobject_class = (GObjectClass *) (klass);
  GstElementClass *element_class = (GstElementClass *) (klass);

  GST_DEBUG_CATEGORY_INIT (rsn_audiomunge_debug, "rsnaudiomunge",
      0, "ResinDVD audio stream regulator");

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&src_template));
  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&sink_template));

  gst_element_class_set_details_simple (element_class, "RsnAudioMunge",
      "Audio/Filter",
      "Resin DVD audio stream regulator", "Jan Schmidt <*****@*****.**>");

  gobject_class->set_property = rsn_audiomunge_set_property;
  gobject_class->get_property = rsn_audiomunge_get_property;

  element_class->change_state = rsn_audiomunge_change_state;
}
コード例 #14
0
static void
gst_vdp_h264_dec_base_init (gpointer g_class)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);

  gst_element_class_set_details_simple (element_class,
      "VDPAU H264 Decoder",
      "Decoder",
      "Decode h264 stream with vdpau",
      "Carl-Anton Ingmarsson <*****@*****.**>");

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&sink_template));
}
コード例 #15
0
     static void gst_rtp_vraw_pay_class_init (GstRtpVRawPayClass * klass)
{
  GstRTPBasePayloadClass *gstrtpbasepayload_class;
  GstElementClass *gstelement_class;
  GObjectClass *gobject_class;

  gobject_class = (GObjectClass *) klass;
  gstelement_class = (GstElementClass *) klass;
  gstrtpbasepayload_class = (GstRTPBasePayloadClass *) klass;

  gobject_class->set_property = gst_rtp_vraw_pay_set_property;
  gobject_class->get_property = gst_rtp_vraw_pay_get_property;

  g_object_class_install_property (gobject_class,
      PROP_CHUNKS_PER_FRAME,
      g_param_spec_int ("chunks-per-frame", "Chunks per Frame",
          "Split and send out each frame in multiple chunks to reduce overhead",
          1, G_MAXINT, DEFAULT_CHUNKS_PER_FRAME,
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)
      );

  gstrtpbasepayload_class->set_caps = gst_rtp_vraw_pay_setcaps;
  gstrtpbasepayload_class->handle_buffer = gst_rtp_vraw_pay_handle_buffer;

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_rtp_vraw_pay_src_template));
  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_rtp_vraw_pay_sink_template));

  gst_element_class_set_static_metadata (gstelement_class,
      "RTP Raw Video payloader", "Codec/Payloader/Network/RTP",
      "Payload raw video as RTP packets (RFC 4175)",
      "Wim Taymans <*****@*****.**>");

  GST_DEBUG_CATEGORY_INIT (rtpvrawpay_debug, "rtpvrawpay", 0,
      "Raw video RTP Payloader");
}
コード例 #16
0
ファイル: gstcvlaplace.c プロジェクト: kittee/gst-plugins-bad
/* initialize the cvlaplace's class */
static void
gst_cv_laplace_class_init (GstCvLaplaceClass * klass)
{
    GObjectClass *gobject_class;
    GstBaseTransformClass *gstbasetransform_class;
    GstOpencvVideoFilterClass *gstopencvbasefilter_class;
    GstElementClass *element_class = GST_ELEMENT_CLASS (klass);

    gobject_class = (GObjectClass *) klass;
    gstbasetransform_class = (GstBaseTransformClass *) klass;
    gstopencvbasefilter_class = (GstOpencvVideoFilterClass *) klass;

    gobject_class->finalize = GST_DEBUG_FUNCPTR (gst_cv_laplace_finalize);
    gobject_class->set_property = gst_cv_laplace_set_property;
    gobject_class->get_property = gst_cv_laplace_get_property;

    gstbasetransform_class->transform_caps = gst_cv_laplace_transform_caps;

    gstopencvbasefilter_class->cv_trans_func = gst_cv_laplace_transform;
    gstopencvbasefilter_class->cv_set_caps = gst_cv_laplace_cv_set_caps;

    g_object_class_install_property (gobject_class, PROP_APERTURE_SIZE,
                                     g_param_spec_int ("aperture-size", "aperture size",
                                             "Size of the extended Laplace Kernel (1, 3, 5 or 7)", 1, 7,
                                             DEFAULT_APERTURE_SIZE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

    gst_element_class_add_pad_template (element_class,
                                        gst_static_pad_template_get (&src_factory));
    gst_element_class_add_pad_template (element_class,
                                        gst_static_pad_template_get (&sink_factory));

    gst_element_class_set_static_metadata (element_class,
                                           "cvlaplace",
                                           "Transform/Effect/Video",
                                           "Applies cvLaplace OpenCV function to the image",
                                           "Thiago Santos<*****@*****.**>");
}
コード例 #17
0
ファイル: gstdroidadec.c プロジェクト: rss351/gst-droid
static void
gst_droidadec_class_init (GstDroidADecClass * klass)
{
  GObjectClass *gobject_class;
  GstElementClass *gstelement_class;
  GstAudioDecoderClass *gstaudiodecoder_class;
  GstCaps *caps;
  GstPadTemplate *tpl;

  gobject_class = (GObjectClass *) klass;
  gstelement_class = (GstElementClass *) klass;
  gstaudiodecoder_class = (GstAudioDecoderClass *) klass;

  gst_element_class_set_static_metadata (gstelement_class,
      "Audio decoder", "Decoder/Audio/Device",
      "Android HAL decoder", "Mohammed Sameer <*****@*****.**>");

  caps = gst_droid_codec_get_all_caps (GST_DROID_CODEC_DECODER_AUDIO);
  tpl = gst_pad_template_new (GST_AUDIO_DECODER_SINK_NAME,
      GST_PAD_SINK, GST_PAD_ALWAYS, caps);
  gst_element_class_add_pad_template (gstelement_class, tpl);

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_droidadec_src_template_factory));

  gobject_class->finalize = gst_droidadec_finalize;

  gstaudiodecoder_class->open = GST_DEBUG_FUNCPTR (gst_droidadec_open);
  gstaudiodecoder_class->close = GST_DEBUG_FUNCPTR (gst_droidadec_close);
  gstaudiodecoder_class->start = GST_DEBUG_FUNCPTR (gst_droidadec_start);
  gstaudiodecoder_class->stop = GST_DEBUG_FUNCPTR (gst_droidadec_stop);
  gstaudiodecoder_class->set_format =
      GST_DEBUG_FUNCPTR (gst_droidadec_set_format);
  gstaudiodecoder_class->handle_frame =
      GST_DEBUG_FUNCPTR (gst_droidadec_handle_frame);
  gstaudiodecoder_class->flush = GST_DEBUG_FUNCPTR (gst_droidadec_flush);
}
コード例 #18
0
static void
gst_smooth_class_init (GstSmoothClass * klass)
{
  GObjectClass *gobject_class = (GObjectClass *) klass;
  GstElementClass *gstelement_class = (GstElementClass *) klass;
  GstVideoFilterClass *vfilter_class = (GstVideoFilterClass *) klass;

  gobject_class->set_property = gst_smooth_set_property;
  gobject_class->get_property = gst_smooth_get_property;

  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_ACTIVE,
      g_param_spec_boolean ("active", "active", "process video", TRUE,
          G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_TOLERANCE,
      g_param_spec_int ("tolerance",
          "tolerance", "contrast tolerance for smoothing", G_MININT,
          G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_FILTER_SIZE,
      g_param_spec_int ("filter-size", "filter-size", "size of media filter",
          G_MININT, G_MAXINT, 0, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
  g_object_class_install_property (G_OBJECT_CLASS (klass), PROP_LUMA_ONLY,
      g_param_spec_boolean ("luma-only", "luma-only", "only filter luma part",
          TRUE, G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_smooth_sink_template));
  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_smooth_src_template));
  gst_element_class_set_static_metadata (gstelement_class, "Smooth effect",
      "Filter/Effect/Video",
      "Apply a smooth filter to an image",
      "Wim Taymans <*****@*****.**>");

  vfilter_class->transform_frame =
      GST_DEBUG_FUNCPTR (gst_smooth_transform_frame);
  vfilter_class->set_info = GST_DEBUG_FUNCPTR (gst_smooth_set_info);
}
コード例 #19
0
ファイル: fs-rtcp-filter.c プロジェクト: kakaroto/farstream
static void
fs_rtcp_filter_class_init (FsRtcpFilterClass *klass)
{
    GObjectClass *gobject_class;
    GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
    GstBaseTransformClass *gstbasetransform_class;

    gobject_class = (GObjectClass *) klass;
    gstbasetransform_class = (GstBaseTransformClass *) klass;

    GST_DEBUG_CATEGORY_INIT
    (rtcp_filter_debug, "fsrtcpfilter", 0, "fsrtcpfilter");

    gst_element_class_add_pad_template (gstelement_class,
                                        gst_static_pad_template_get (&srctemplate));
    gst_element_class_add_pad_template (gstelement_class,
                                        gst_static_pad_template_get (&sinktemplate));

    gst_element_class_set_metadata (gstelement_class,
                                    "RTCP Filter element",
                                    "Filter",
                                    "This element removes unneeded parts of rtcp buffers",
                                    "Olivier Crete <*****@*****.**>");

    gobject_class->set_property = fs_rtcp_filter_set_property;
    gobject_class->get_property = fs_rtcp_filter_get_property;

    gstbasetransform_class->transform_ip = fs_rtcp_filter_transform_ip;

    g_object_class_install_property (gobject_class,
                                     PROP_SENDING,
                                     g_param_spec_boolean ("sending",
                                             "Sending RTP?",
                                             "If set to FALSE, it assumes that all RTP has been dropped",
                                             FALSE,
                                             G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
}
コード例 #20
0
static void
gst_phoenixsrc_class_init (GstPhoenixSrcClass * klass)
{
  GObjectClass *gobject_class = G_OBJECT_CLASS (klass);
  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
  GstBaseSrcClass *gstbasesrc_class = GST_BASE_SRC_CLASS (klass);
  GstPushSrcClass *gstpushsrc_class = GST_PUSH_SRC_CLASS (klass);

  gobject_class->set_property = gst_phoenixsrc_set_property;
  gobject_class->get_property = gst_phoenixsrc_get_property;
  gobject_class->dispose = gst_phoenixsrc_dispose;
  gobject_class->finalize = gst_phoenixsrc_finalize;

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_phoenixsrc_src_template));

  gst_element_class_set_static_metadata (gstelement_class,
      "Active Silicon Phoenix Video Source", "Source/Video",
      "Active Silicon Phoenix framegrabber video source",
      "Joshua M. Doe <*****@*****.**>");

  gstbasesrc_class->start = GST_DEBUG_FUNCPTR (gst_phoenixsrc_start);
  gstbasesrc_class->stop = GST_DEBUG_FUNCPTR (gst_phoenixsrc_stop);
  gstbasesrc_class->get_caps = GST_DEBUG_FUNCPTR (gst_phoenixsrc_get_caps);
  gstbasesrc_class->set_caps = GST_DEBUG_FUNCPTR (gst_phoenixsrc_set_caps);

  gstpushsrc_class->create = GST_DEBUG_FUNCPTR (gst_phoenixsrc_create);

  /* Install GObject properties */
  g_object_class_install_property (gobject_class, PROP_CAMERA_CONFIG_FILEPATH,
      g_param_spec_string ("config-file", "Config file",
          "Camera configuration filepath", DEFAULT_PROP_CAMERA_CONFIG_FILEPATH,
          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
  g_object_class_install_property (gobject_class, PROP_NUM_CAPTURE_BUFFERS,
      g_param_spec_uint ("num-capture-buffers", "Number of capture buffers",
          "Number of capture buffers", 1, G_MAXUINT,
          DEFAULT_PROP_NUM_CAPTURE_BUFFERS,
          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
  g_object_class_install_property (gobject_class, PROP_BOARD,
      g_param_spec_uint ("board", "Board",
          "Board number (0 for auto)", 0, 7,
          DEFAULT_PROP_BOARD,
          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
  g_object_class_install_property (gobject_class, PROP_CHANNEL,
      g_param_spec_uint ("channel", "Channel",
          "Channel number (0 for auto)", 0, 2,
          DEFAULT_PROP_CHANNEL,
          (GParamFlags) (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS)));
}
コード例 #21
0
static void
gst_egl_sink_base_init (gpointer g_class)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);
  GstCaps *capslist;
  GstPadTemplate *sink_template = NULL;
  gint i;
  guint32 formats[][2] = {
    {GST_MAKE_FOURCC ('N', 'V', '1', '2'), GST_VIDEO_FORMAT_NV12},
    {GST_MAKE_FOURCC ('Y', 'V', '1', '2'), GST_VIDEO_FORMAT_YV12},
    {GST_MAKE_FOURCC ('U', 'Y', 'V', 'Y'), GST_VIDEO_FORMAT_UYVY},
    {GST_MAKE_FOURCC ('I', '4', '2', '0'), GST_VIDEO_FORMAT_I420}
  };

  gst_element_class_set_details_simple (element_class, "OpenGL video sink",
      "Sink/Video", "A videosink based on OpenGL",
      "Julien Isorce <*****@*****.**>");
  /* make a list of all available caps */
  capslist = gst_caps_new_empty ();
  for (i = 0; i < G_N_ELEMENTS (formats); i++) {
    gst_caps_append_structure (capslist,
			gst_structure_new ("video/x-raw-yuv",
				"format",
				GST_TYPE_FOURCC,
				formats[i][0], "width",
				GST_TYPE_INT_RANGE, 1,
				G_MAXINT, "height",
				GST_TYPE_INT_RANGE, 1,
				G_MAXINT, "framerate",
				GST_TYPE_FRACTION_RANGE,
				0, 1, G_MAXINT, 1,
				"width_align", G_TYPE_INT, gst_egl_platform_get_alignment_h(formats[i][1]),
				"height_align", G_TYPE_INT, gst_egl_platform_get_alignment_v(formats[i][1]),
				NULL));
  }
  gst_caps_append_structure (capslist,
		  gst_structure_new ("video/x-raw-rgb",
			  "bpp", G_TYPE_INT, 32,
			  "depth", GST_TYPE_INT_RANGE, 24, 32,
			  "width_align", G_TYPE_INT, gst_egl_platform_get_alignment_h(GST_VIDEO_FORMAT_RGBA),
			  "height_align", G_TYPE_INT, gst_egl_platform_get_alignment_v(GST_VIDEO_FORMAT_RGBA),
			  NULL));

  sink_template = gst_pad_template_new ("sink",
		  GST_PAD_SINK, GST_PAD_ALWAYS,
		  capslist);

  gst_element_class_add_pad_template (element_class, sink_template);
}
コード例 #22
0
static void
gst_jack_audio_src_base_init (gpointer gclass)
{
  static GstElementDetails gst_jack_audio_src_details = {
    "Audio Source (Jack)",
    "Source/Audio",
    "Input from Jack",
    "Tristan Matthews <*****@*****.**>"
  };
  GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&src_factory));
  gst_element_class_set_details (element_class, &gst_jack_audio_src_details);
}
コード例 #23
0
static void
gst_rtp_gsm_depay_class_init (GstRTPGSMDepayClass * klass)
{
  GstElementClass *gstelement_class;
  GstRTPBaseDepayloadClass *gstrtpbase_depayload_class;

  gstelement_class = (GstElementClass *) klass;
  gstrtpbase_depayload_class = (GstRTPBaseDepayloadClass *) klass;

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_rtp_gsm_depay_src_template));
  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&gst_rtp_gsm_depay_sink_template));

  gst_element_class_set_static_metadata (gstelement_class,
      "RTP GSM depayloader", "Codec/Depayloader/Network/RTP",
      "Extracts GSM audio from RTP packets", "Zeeshan Ali <*****@*****.**>");

  gstrtpbase_depayload_class->process_rtp_packet = gst_rtp_gsm_depay_process;
  gstrtpbase_depayload_class->set_caps = gst_rtp_gsm_depay_setcaps;

  GST_DEBUG_CATEGORY_INIT (rtpgsmdepay_debug, "rtpgsmdepay", 0,
      "GSM Audio RTP Depayloader");
}
コード例 #24
0
static void
gst_slvideo_base_init (gpointer gclass)
{
	static GstElementDetails element_details = {
		"PluginTemplate",
		"Generic/PluginTemplate",
		"Generic Template Element",
		"Linden Lab"
	};
	GstElementClass *element_class = GST_ELEMENT_CLASS (gclass);
	
	gst_element_class_add_pad_template (element_class,
			      gst_static_pad_template_get (&sink_factory));
	gst_element_class_set_details (element_class, &element_details);
}
コード例 #25
0
static void
gst_wavpack_dec_class_init (GstWavpackDecClass * klass)
{
  GObjectClass *gobject_class = (GObjectClass *) klass;
  GstElementClass *element_class = (GstElementClass *) (klass);
  GstAudioDecoderClass *base_class = (GstAudioDecoderClass *) (klass);

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&src_factory));
  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&sink_factory));
  gst_element_class_set_static_metadata (element_class, "Wavpack audio decoder",
      "Codec/Decoder/Audio",
      "Decodes Wavpack audio data",
      "Arwed v. Merkatz <*****@*****.**>, "
      "Sebastian Dröge <*****@*****.**>");

  gobject_class->finalize = gst_wavpack_dec_finalize;

  base_class->start = GST_DEBUG_FUNCPTR (gst_wavpack_dec_start);
  base_class->stop = GST_DEBUG_FUNCPTR (gst_wavpack_dec_stop);
  base_class->set_format = GST_DEBUG_FUNCPTR (gst_wavpack_dec_set_format);
  base_class->handle_frame = GST_DEBUG_FUNCPTR (gst_wavpack_dec_handle_frame);
}
コード例 #26
0
static void
gst_dv1394src_base_init (gpointer g_class)
{
  GstElementClass *element_class = GST_ELEMENT_CLASS (g_class);

  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&src_factory));

  gst_element_class_set_details_simple (element_class,
      "Firewire (1394) DV video source", "Source/Video",
      "Source for DV video data from firewire port",
      "Erik Walthinsen <*****@*****.**>, "
      "Daniel Fischer <*****@*****.**>, " "Wim Taymans <*****@*****.**>, "
      "Zaheer Abbas Merali <zaheerabbas at merali dot org>");
}
コード例 #27
0
static void
type_base_init (gpointer g_class)
{
    GstElementClass *element_class;

    element_class = GST_ELEMENT_CLASS (g_class);

    {
        GstElementDetails details;

        details.longname = "OpenMAX IL JPEG image encoder";
        details.klass = "Codec/Encoder/Image";
        details.description = "Encodes image in JPEG format with OpenMAX IL";
        details.author = "Felipe Contreras";

        gst_element_class_set_details (element_class, &details);
    }

    gst_element_class_add_pad_template (element_class,
        gst_static_pad_template_get (&src_template));

    gst_element_class_add_pad_template (element_class,
        gst_static_pad_template_get (&sink_template));
}
コード例 #28
0
static void
ges_smart_mixer_class_init (GESSmartMixerClass * klass)
{
/*   GstBinClass *parent_class = GST_BIN_CLASS (klass);
 */
  GObjectClass *object_class = G_OBJECT_CLASS (klass);
  GstElementClass *element_class = GST_ELEMENT_CLASS (klass);

  /* FIXME Make sure the MixerClass doesn get destroy before ourself */
  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&src_template));
  gst_element_class_add_pad_template (element_class,
      gst_static_pad_template_get (&sink_template));
  gst_element_class_set_static_metadata (element_class, "GES Smart mixer",
      "Generic/Audio",
      "Use mixer making use of GES informations",
      "Thibault Saunier <*****@*****.**>");

  element_class->request_new_pad = GST_DEBUG_FUNCPTR (_request_new_pad);
  element_class->release_pad = GST_DEBUG_FUNCPTR (_release_pad);

  object_class->dispose = ges_smart_mixer_dispose;
  object_class->finalize = ges_smart_mixer_finalize;
}
コード例 #29
0
ファイル: parse-launch.c プロジェクト: Grobik1/gstreamer
static void
gst_parse_test_element_class_init (GstParseTestElementClass * klass)
{
  GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);

  gst_element_class_add_pad_template (gstelement_class,
      gst_static_pad_template_get (&test_element_pad_template));

  gst_element_class_set_metadata (gstelement_class,
      "Test element for parse launch tests", "Source",
      "Test element for parse launch tests in core",
      "GStreamer Devel <*****@*****.**>");

  gstelement_class->change_state = gst_parse_test_element_change_state;
}
コード例 #30
0
static void
gst_multi_file_sink_base_init (gpointer g_class)
{
    GstElementClass *gstelement_class = GST_ELEMENT_CLASS (g_class);

    GST_DEBUG_CATEGORY_INIT (gst_multi_file_sink_debug, "multifilesink", 0,
                             "multifilesink element");

    gst_element_class_add_pad_template (gstelement_class,
                                        gst_static_pad_template_get (&sinktemplate));
    gst_element_class_set_details_simple (gstelement_class, "Multi-File Sink",
                                          "Sink/File",
                                          "Write buffers to a sequentially named set of files",
                                          "David Schleef <*****@*****.**>");
}