Problem with libpixman-1-0 on VS2010 / Qt build

Robin Aproskie raproskie at tellumat.com
Mon Mar 3 06:00:11 PST 2014


Hi

My objective is to recieve udp multicast rtp overlay and display in a Qt widget window. I am somewhat successful in my endeavours I can easily receive decode and display the stream without overlays. My first attempt was with  GdkPixbuf Overlay. In which I was constantly updating a .png file with simple vector drawing line on. although this worked  my machine ran out of memory after 15 minutes. "Cannot allocate  x bytes of data"  so I went the simple route and decided to incorporate a link of text overlays for my information which creates its own problem.

Oh the application is to prevention/monitor the poaching of rhino for a non profit org

I have the following problem when running the application . I have multiple textoverlays in series see pipeline below  (also if I only have one overlay it still fails) . I am successful in running the application once  every 10 times. But  When it fails I get this:

Unhandled exception at 0x035a93bc in VideoDisplay.exe: 0xC0000005: Access violation reading location 0x00000000.

When I break to recall the stack I get these messages in the Call Stack window

  libpixman-1-0.dll!034993bc()
  [Frames below may be incorrect and/or missing, no symbols loaded for libpixman-1-0.dll]
  libpixman-1-0.dll!0345a8a0()
  libcairo-2.dll!02f532f8()

I have the following Windows 7 64 bit setup.
I am using VS2010 with the Qt 1.2.2 addin and Qt 5.2.0 Win32 Angle installed  I have also installed. Gstreamer 1.2.3 (x86) as I am building for 32 bit machines.I am using the simple object calls to set the elements of the Plugins and not using callbacks or bus messages.

I am also NOT using QtGstreamer Yet as I have not been able to compile it .

C++ VS2010 version 10.0.40219.1 SP 1
1.2.3 installed to  C:\gstreamer\1.0\x86\
User Environment Variable is
GSTREAMER_1_0_ROOT_X86 = C:\gstreamer\1.0\x86\
System  Environment  Variable
PATH += c:\gstreamer\1.0\x86\bin; c:\gstreamer\1.0\x86\lib

My project has loaded the following .props under Debug | win32
C:\gstreamer\1.0\x86\share\vs\2010\libs\gstreamer-video-1.0
C:\gstreamer\1.0\x86\share\vs\2010\libs\gstreamer-1.0


Basic Pipeline but not all of the code ach overlay is updated every 500ms with information.

#defines

QWidget *videoWidget;
GstElement *pipeline, *source, *sink, *h264parse,*queue , *queue2 , *avdec , *autovideoconvet ,*videoscale,*rtpdepay,*queueRTP, *queue3;
GstElement *clockoverlay;
GstElement *textoverlayTN;
GstElement *textoverlayPAY;
GstElement *textoverlayUAV;
GstElement *textoverlayUAVInfo;
GstElement *textoverlayTARGET;
GstElement *textoverlayTARGETInfo;
GstVideoOverlay *winOverlay;
GstCaps *caps;
GstStateChangeReturn ret;


gst_init (&argc, &argv);
pipeline = gst_pipeline_new ("RTP-pipeline");

source = gst_element_factory_make ("udpsrc", NULL);
rtpdepay = gst_element_factory_make ("rtph264depay", NULL);
queueRTP = gst_element_factory_make ("queue", NULL);
caps = gst_caps_from_string("application/x-rtp,"
"media=(string)video,"
"clock-rate=90000,"
"encoding-name=(string)H264,"
"sprop-parameter-sets=(string)\"J2QAKqwXKgFAFuQA\\,KP4BriwA\","
"payload=(int)96,"
"framerate=(string)50/1");

g_object_set (G_OBJECT (source), "caps", caps, NULL);
g_object_set (G_OBJECT (source), "address", "224.0.1.3", NULL);
g_object_set (G_OBJECT (source), "port", 2006, NULL);
g_object_set (G_OBJECT (source), "buffer-size", 65000, NULL);

h264parse = gst_element_factory_make ("h264parse", NULL);
queue = gst_element_factory_make ("queue", NULL);
queue3 = gst_element_factory_make ("queue", NULL);
avdec = gst_element_factory_make ("avdec_h264", NULL);
queue2 = gst_element_factory_make ("queue", NULL);
autovideoconvet = gst_element_factory_make ("autovideoconvert", NULL);
sink = gst_element_factory_make ("d3dvideosink", NULL);
textoverlayTN =gst_element_factory_make("textoverlay", NULL);
textoverlayPAY =gst_element_factory_make("textoverlay", NULL);
textoverlayUAV =gst_element_factory_make("textoverlay", NULL);
textoverlayUAVInfo =gst_element_factory_make("textoverlay", NULL);
textoverlayTARGET = gst_element_factory_make("textoverlay", NULL);
textoverlayTARGETInfo = gst_element_factory_make("textoverlay", NULL);
clockoverlay = gst_element_factory_make("clockoverlay", NULL);


int error = 0;
gst_bin_add(GST_BIN (pipeline),rtpdepay);
gst_bin_add(GST_BIN (pipeline),queueRTP);

gst_bin_add_many (GST_BIN (pipeline),source \
,h264parse \
,queue \
,avdec \
,queue2 \
,queue3 \
,textoverlayTN \
,textoverlayUAV \
,textoverlayUAVInfo \
,textoverlayTARGET \
,textoverlayTARGETInfo \
,textoverlayPAY \
,clockoverlay \
,autovideoconvet \
,sink \
,NULL);

error += gst_element_link (source,rtpdepay);
error += gst_element_link (rtpdepay,queueRTP);
error += gst_element_link (queueRTP,h264parse);
error += gst_element_link (h264parse,queue);
error += gst_element_link (queue,avdec);
error += gst_element_link (avdec,queue2);
error += gst_element_link (queue2,autovideoconvet);
error += gst_element_link (autovideoconvet, clockoverlay);
error += gst_element_link (clockoverlay,textoverlayTN );
error += gst_element_link (textoverlayTN ,textoverlayTARGET);
error += gst_element_link (textoverlayTARGET,textoverlayTARGETInfo);
error += gst_element_link (textoverlayTARGETInfo,textoverlayUAV);
error += gst_element_link (textoverlayUAV,textoverlayUAVInfo);
error += gst_element_link (textoverlayUAVInfo,textoverlayPAY);
error += gst_element_link (textoverlayPAY,queue3);
error += gst_element_link (queue3,sink);

if( error < 0 )
{
g_printerr ("Elements could not be linked.\n");
gst_object_unref (pipeline);
}

initOverlaysStartPipeline ();


If anyone can shed light on the subject it would be most appreciative.

Thanks
Robin
**********************************************************************
Relevant company disclaimers are available at the following addresses:
  Tellumat (Pty) Ltd e-mail:  mailto:disclaimer at tellumat.com?Subject=Tellumat_Disclaimer
  Web:   http://www.tellumat.com/email.aspx
**********************************************************************
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freedesktop.org/archives/gstreamer-devel/attachments/20140303/98e230b4/attachment-0001.html>


More information about the gstreamer-devel mailing list