Part Number: TMDXIDK57X-LCD
Tool/software: TI C/C++ Compiler
Hello everyone,
I am trying to add a probe to a pad in GStreamer in the following code, I can successfully compile and run the code on my vbox Ubuntu, but when I try to run it on my IDK nothing happens and LCD remains black,
#include <gst/gst.h> #include <iostream> static GstPadProbeReturn cb_onProbe(GstPad * Ipad , GstPadProbeInfo* Iinfo , gpointer userData ){ std::cout << "cb\n"; } int main(int argc , char* argv[]){ GstElement *myPipeline, *myTextOverlay , *myVideoSrc, *myVideoSink , *myCapsFilters; GMainLoop * myLoop; GstCaps *myCaps; GstPad * mySrcPad ; gst_init(&argc , &argv); myVideoSrc = gst_element_factory_make("videotestsrc", "mySrcVid"); myVideoSink = gst_element_factory_make("autovideosink", "mySinkVid"); myTextOverlay = gst_element_factory_make("textoverlay", "myTxtOvr"); myCapsFilters = gst_element_factory_make("capsfilter", "myCpsFltr"); myPipeline = gst_pipeline_new("myPipe"); if( !myPipeline || !myTextOverlay || !myVideoSrc || !myVideoSink || !myCapsFilters){ std::cout << "failed to create some elements!!\n"; return -1; } myCaps = gst_caps_new_simple("video/x-raw", "width",G_TYPE_INT, 640, "height",G_TYPE_INT, 480, "framerate",GST_TYPE_FRACTION, 1,1, NULL ); g_object_set(G_OBJECT(myCapsFilters) , "caps" , myCaps , NULL); gst_bin_add_many(GST_BIN(myPipeline) , myVideoSrc ,myCapsFilters, myTextOverlay ,myVideoSink, NULL ); if(gst_element_link_many(myVideoSrc , myCapsFilters , myTextOverlay ,myVideoSink, NULL) != true){ std::cout << "failed to link some elements!!\n"; return -1; } g_object_set(myTextOverlay , "text", "my text", NULL); mySrcPad = gst_element_get_static_pad(myVideoSrc , "src"); gst_pad_add_probe(mySrcPad , GST_PAD_PROBE_TYPE_BUFFER , (GstPadProbeCallback)cb_onProbe, NULL , NULL ); GstStateChangeReturn retVal = gst_element_set_state(myPipeline , GST_STATE_PLAYING); if(retVal == GST_STATE_CHANGE_FAILURE){ std::cout << "failed to playing!\n"; return -1; } myLoop = g_main_loop_new(NULL, false); std::cout << "running...\n"; g_main_loop_run(myLoop); return 0; }
even if I comment the line with gst_pad_add_probe (line 50), the program works correctly in IDK (without calling the callback function). I'm using processor sdk linux rt 4.9.
any help would be appriciated,
B.R,
Alex.