카테고리 없음
gstreamer source
jackyjung
2012. 11. 8. 18:17
gstremer plugin
1. 작성방법
2. 등록방법
사용방법
gst-launch-0.10 filesrc location="/home/jcjung/work/lighttpd/www/Discovery10.ts" ! mpegtsdemux program-number=1 ! mpeg2dec ! autovideosink
void on_recording_pad_added (GstElement *decoder, GstPad *pad, gpointer
data)
{
GstCaps *caps = gst_pad_get_caps(pad);
GstBin *bin = (GstBin *)data;
GstStructure *structure = gst_caps_get_structure(caps,0);
int ret = 0;
GstElement *element;
GstPad *targetsink;
gchar *structure_g = gst_structure_to_string(structure);
g_free(structure_g);
if(g_strrstr(gst_structure_get_string(structure,"media"), "video"))
{
element = gst_bin_get_by_name (bin,"recording-rtspvdepay");
targetsink = gst_element_get_pad(element,"sink");
ret = gst_pad_link(pad,targetsink);
if(ret != GST_PAD_LINK_OK)
log_pad_added(ret,pad,targetsink,"Unable to link video");
gst_object_unref(targetsink);
gst_object_unref(element);
}
if(g_strrstr(gst_structure_get_string(structure,"media"), "audio"))
{
element = gst_bin_get_by_name (bin,"recording-rtpmp4gdepay");
targetsink = gst_element_get_pad(element,"sink");
ret = gst_pad_link(pad,targetsink);
if(ret != GST_PAD_LINK_OK)
log_pad_added(ret,pad,targetsink,"Unable to link audio");
gst_object_unref(targetsink);//MW#11 unrefed here
gst_object_unref(element);
}
gst_caps_unref (caps);
return;
}
data)
{
GstCaps *caps = gst_pad_get_caps(pad);
GstBin *bin = (GstBin *)data;
GstStructure *structure = gst_caps_get_structure(caps,0);
int ret = 0;
GstElement *element;
GstPad *targetsink;
gchar *structure_g = gst_structure_to_string(structure);
g_free(structure_g);
if(g_strrstr(gst_structure_get_string(structure,"media"), "video"))
{
element = gst_bin_get_by_name (bin,"recording-rtspvdepay");
targetsink = gst_element_get_pad(element,"sink");
ret = gst_pad_link(pad,targetsink);
if(ret != GST_PAD_LINK_OK)
log_pad_added(ret,pad,targetsink,"Unable to link video");
gst_object_unref(targetsink);
gst_object_unref(element);
}
if(g_strrstr(gst_structure_get_string(structure,"media"), "audio"))
{
element = gst_bin_get_by_name (bin,"recording-rtpmp4gdepay");
targetsink = gst_element_get_pad(element,"sink");
ret = gst_pad_link(pad,targetsink);
if(ret != GST_PAD_LINK_OK)
log_pad_added(ret,pad,targetsink,"Unable to link audio");
gst_object_unref(targetsink);//MW#11 unrefed here
gst_object_unref(element);
}
gst_caps_unref (caps);
return;
}