카테고리 없음

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;