[gst-devel] Question on the element who will have two pad types
Chen, Weian
weian.chen at intel.com
Wed Oct 14 15:31:21 CEST 2009
Hi
Currently, I will create two src pads, one is ALWAYS, and the other is SOMETIMES, but when both of the pads are created, it will hang on _chain() when calling gst_pad_push for the first src pad, seems something wrong with preproll. But it works well when the SOMETIMES pad is not created.
Could anybody here give me some hint?
Thanks in advance.
Following is some of the code:
static GstStaticPadTemplate src00_factory = GST_STATIC_PAD_TEMPLATE ("src_00",
GST_PAD_SRC,
GST_PAD_ALWAYS,
GST_STATIC_CAPS ("video/mpeg;"
"video/x-h264")
);
static GstStaticPadTemplate src01_factory = GST_STATIC_PAD_TEMPLATE ("src_01",
GST_PAD_SRC,
GST_PAD_SOMETIMES,
GST_STATIC_CAPS ("video/x-raw-yuv")
);
………
srcpad_00 = gst_pad_new_from_static_template (&src00_factory, "src_00");
gst_element_add_pad (GST_ELEMENT(filter), srcpad_00);
gst_pad_set_caps (srcpad_00, outcaps00);
if (create_sometime) {
srcpad_01 = gst_pad_new_from_static_template (&src01_factory, "src_01");
gst_element_add_pad (GST_ELEMENT(filter), srcpad_01);
gst_pad_set_caps (srcpad_01, outcaps01);
}
…….
_chain()
{
………
ret = gst_pad_push (mixvideoenc->srcpad_00, out_buf_00); //if will hang here, if both of the src pad is created.
if (srcpad_01 && create_sometim) {
ret = gst_pad_push (mixvideoenc->srcpad_01, out_buf_01);
}
………
}
thanks,
Weian
-----Original Message-----
From: Michael Smith [mailto:msmith at xiph.org]
Sent: 2009年10月14日 13:42
To: Discussion of the development of GStreamer
Subject: Re: [gst-devel] Question on the element who will have two pad types
>
> No way to give advice about that - we don't know anything about your
> element. But there's nothing intrinsically difficult about what you've
> described - just push data on the pads you have!
>
> I mean do we need two _chain functions or we can push data to the 2 pads in the same _chain function (the data push to the 2 pads is different).
No - what you've described is just like any normal demuxer. You
wouldn't have multiple chain functions, since you don't have multiple
sinkpads.
Mike
------------------------------------------------------------------------------
Come build with us! The BlackBerry(R) Developer Conference in SF, CA
is the only developer event you need to attend this year. Jumpstart your
developing skills, take BlackBerry mobile applications to market and stay
ahead of the curve. Join us from November 9 - 12, 2009. Register now!
http://p.sf.net/sfu/devconference
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20091014/5dc6c276/attachment.htm>
More information about the gstreamer-devel
mailing list