<html><head></head><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">Well.. I found a quick fix for the moment..<div><br></div><div>just commented a few line out in gstglupload.c</div><div><br></div><div>I don't know is this is a good way to handle it , so I don't want to upload it as a patch.</div><div><br></div><div>Roland</div><div><br></div><div>------------------</div><div><br></div><div><div><div>static GstCaps *</div><div>gst_gl_upload_transform_caps (GstBaseTransform * bt,</div><div>&nbsp;&nbsp; &nbsp;GstPadDirection direction, GstCaps * caps)</div><div>{&nbsp;</div><div>&nbsp;&nbsp; //GstGLUpload* upload = GST_GL_UPLOAD (bt);</div><div>&nbsp;&nbsp;GstStructure *structure = gst_caps_get_structure (caps, 0);</div><div>&nbsp;&nbsp;GstCaps *newcaps = NULL;</div><div>&nbsp;&nbsp;const GValue *framerate_value = NULL;</div><div>&nbsp;&nbsp;const GValue *par_value = NULL;</div><div><br></div><div>&nbsp;&nbsp;GST_DEBUG ("transform caps %" GST_PTR_FORMAT, caps);</div><div>&nbsp;&nbsp;</div><div>&nbsp;&nbsp;framerate_value = gst_structure_get_value (structure, "framerate");</div><div>&nbsp;&nbsp;par_value = gst_structure_get_value (structure, "pixel-aspect-ratio");</div><div><br></div><div>&nbsp;&nbsp;if (direction == GST_PAD_SRC) {</div><div>&nbsp;&nbsp; &nbsp;GstCaps *newothercaps = gst_caps_new_simple ("video/x-raw-rgb", NULL);</div><div>&nbsp;&nbsp; &nbsp;newcaps = gst_caps_new_simple ("video/x-raw-yuv", NULL);</div><div>&nbsp;&nbsp; &nbsp;gst_caps_append (newcaps, newothercaps);</div><div>&nbsp;&nbsp;} else</div><div>&nbsp;&nbsp; &nbsp;newcaps = gst_caps_new_simple ("video/x-raw-gl", NULL);</div><div><br></div><div>&nbsp;&nbsp;structure = gst_caps_get_structure (newcaps, 0);</div><div><br></div><div>&nbsp;&nbsp;gst_structure_set (structure,</div><div>&nbsp;&nbsp; &nbsp; &nbsp;"width", GST_TYPE_INT_RANGE, 1, G_MAXINT,</div><div>&nbsp;&nbsp; &nbsp; &nbsp;"height", GST_TYPE_INT_RANGE, 1, G_MAXINT, NULL);</div><div><br></div><div>&nbsp;&nbsp;gst_structure_set_value (structure, "framerate", framerate_value);</div><div><font class="Apple-style-span" color="#FF0000">/* Commenting the code below out prevents problems with&nbsp;pixel-aspect-ratio not equal 1/1</font></div><div><font class="Apple-style-span" color="#FF0000">/* &nbsp;if (par_value)</font></div><div><font class="Apple-style-span" color="#FF0000">&nbsp;&nbsp; &nbsp;gst_structure_set_value (structure, "pixel-aspect-ratio", par_value);</font></div><div><font class="Apple-style-span" color="#FF0000">&nbsp;&nbsp;else</font></div><div><font class="Apple-style-span" color="#FF0000">&nbsp;&nbsp; &nbsp;gst_structure_set (structure, "pixel-aspect-ratio", GST_TYPE_FRACTION,</font></div><div><font class="Apple-style-span" color="#FF0000">&nbsp;&nbsp; &nbsp; &nbsp; &nbsp;1, 1, NULL);</font></div><div><font class="Apple-style-span" color="#FF0000">*/</font></div><div>&nbsp;&nbsp;gst_caps_merge_structure (newcaps, gst_structure_copy (structure));</div><div><br></div><div>&nbsp;&nbsp;GST_DEBUG ("new caps %" GST_PTR_FORMAT, newcaps);</div><div><br></div><div>&nbsp;&nbsp;return newcaps;</div><div>}</div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><br></div><div><div>On 23.03.2010, at 14:51, Julien Isorce wrote:</div><br class="Apple-interchange-newline">I just realized there is already an open bug about it : <a href="https://bugzilla.gnome.org/show_bug.cgi?id=593165">https://bugzilla.gnome.org/show_bug.cgi?id=593165</a><br><br><div class="gmail_quote">2010/3/23 Roland Peffer <span dir="ltr">&lt;<a href="mailto:gdevel@clixxun.com">gdevel@clixxun.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;"><div style=""><div>Hi Julien,</div><div><br></div><div>you are right! &nbsp;I just tried it....</div>
<div><br></div><div>feeding glupload with an &nbsp;pixel-aspect-ratio that is not 1/1 lets the pipeline fail.</div><div><br></div><div>Seems to be a bug in glupload, since linking with glimagesink without glupload in advance works fine.</div>
<div><br></div><div>Thx ,</div><div>Roland</div><div><br></div><div><br></div><div>gst-launch -v videotestsrc ! video/x-raw-yuv,format=\(fourcc\)I420,width=720,height=576,pixel-aspect-ratio=\(fraction\)64/45,framerate=\(fraction\)25/1,interlaced=true ! glupload ! glimagesink</div>
<div><br></div><div><br></div>gst-launch -v videotestsrc ! video/x-raw-yuv,format=\(fourcc\)I420,width=720,height=576,framerate=\(fraction\)25/1,interlaced=true ! glupload ! glimagesink<div><div></div><div class="h5"><div>
<br></div><div><br></div><div><br></div><div><br><div><div>On 23.03.2010, at 12:23, Julien Isorce wrote:</div><br>Hi,<br><br>I think this is due to the pixel aspect ratio that is not handled correctly by glupload.<br><br>
Could you try to reproduce the pb using videotestsrc (and playing with caps (aspect ratio, framerate etcc)<br><br>Sincerely<br>
Julien<br><br><div class="gmail_quote">2010/3/23 Roland Peffer <span dir="ltr">&lt;<a href="mailto:gdevel@clixxun.com" target="_blank">gdevel@clixxun.com</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">

Hi,<br>
<br>
I have a strange behavior regarding the glupload plugin.<br>
<br>
If I run:<br>
&gt; gst-launch -v filesrc location='/home/rpeffer/Videos/rec.mpeg' ! decodebin &nbsp;! queue max-size-buffers=0 max-size-time=0 ! glimagesink<br>
all works fine.<br>
<br>
But I want to use glupload to make use of the gldeinterlace plugin as well, so I tried<br>
<br>
st-launch -v filesrc location='/home/rpeffer/Videos/rec.mpeg' ! decodebin &nbsp;! queue max-size-buffers=0 max-size-time=0 ! glupload &nbsp;! glimagesink<br>
<br>
what as far as I understand should do the same playback. But I get an error<br>
<br>
gstbasesrc.c(2378): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:<br>
streaming task paused, reason not-negotiated (-4)<br>
ERROR: pipeline doesn't want to preroll.<br>
<br>
<br>
My first idea was that glupload may not like the interlaced flag. But even if I deinterlace the stream in advance the same error shows up.<br>
The strange thing is that on other movie files it works. The one mpeg file &nbsp;I just use for testing is a recording from a USB dvb-t dongle.<br>
<br>
Anyway, the question I have is why can it be that with only glimagesink the pipeline works without problems, but with glupload before glimagesink the pipeline won't run.<br>
<br>
Any hints are mostly welcome!<br>
<br>
Roland<br>
<br>
<br>
PS The compete gst-luanch output is listed below:<br>
<br>
<br>
<br>
--------------------------------------------------- this works -------------------------------------------------<br>
$ gst-launch -v filesrc location='/home/rpeffer/Videos/rec.mpeg' ! decodebin &nbsp;! queue max-size-buffers=0 max-size-time=0 ! glimagesink<br>
<br>
(gst-launch-0.10:20605): GLib-WARNING **: g_set_prgname() called multiple times<br>
Setting pipeline to PAUSED ...<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)1<br>
Pipeline is PREROLLING ...<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)1<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, parsed=(boolean)true, mpegversion=(int)2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45, interlaced=(boolean)true, codec_data=(buffer)000001b32d024033249f23821022222e262e383838383e3e4a444a545454505050585a5a5a6262627c7c7c6a6a6a626274748080888894a6a098989498b4b4bebebef8f8eeef3d3d47a9a9ff1111111713171c1c1c1c1f1f2522252a2a2a2828282c2d2d2d3131313e3e3e35353531313a3a404044444a53504c4c4a4c5a5a5f5f5f7c7c77779e9ea3d4d4ff000001b5148200010000<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, parsed=(boolean)true, mpegversion=(int)2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45, interlaced=(boolean)true, codec_data=(buffer)000001b32d024033249f23821022222e262e383838383e3e4a444a545454505050585a5a5a6262627c7c7c6a6a6a626274748080888894a6a098989498b4b4bebebef8f8eeef3d3d47a9a9ff1111111713171c1c1c1c1f1f2522252a2a2a2828282c2d2d2d3131313e3e3e35353531313a3a404044444a53504c4c4a4c5a5a5f5f5f7c7c77779e9ea3d4d4ff000001b5148200010000<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0.GstProxyPad:proxypad1: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>
/GstPipeline:pipeline0/GstGLImageSink:glimagesink0.GstPad:sink: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


Pipeline is PREROLLED ...<br>
Setting pipeline to PLAYING ...<br>
New clock: GstSystemClock<br>
Got EOS from element "pipeline0".<br>
Execution ended after 15320225883 ns.<br>
Setting pipeline to PAUSED ...<br>
Setting pipeline to READY ...<br>
/GstPipeline:pipeline0/GstGLImageSink:glimagesink0.GstPad:sink: caps = NULL<br>
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:src: caps = NULL<br>
/GstPipeline:pipeline0/GstQueue:queue0.GstPad:sink: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:src: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:sink: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:src: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:sink: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL<br>
Setting pipeline to NULL ...<br>
Freeing pipeline ...<br>
<br>
<br>
--------------------------------------------------- this fails -------------------------------------------------<br>
&gt;$ gst-launch -v filesrc location='/home/rpeffer/Videos/rec.mpeg' ! decodebin &nbsp;! queue max-size-buffers=0 max-size-time=0 ! glupload &nbsp;! glimagesink<br>
<br>
(gst-launch-0.10:20595): GLib-WARNING **: g_set_prgname() called multiple times<br>
Setting pipeline to PAUSED ...<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)1<br>
Pipeline is PREROLLING ...<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, mpegversion=(int)1<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:src: caps = video/mpeg, systemstream=(boolean)false, parsed=(boolean)true, mpegversion=(int)2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45, interlaced=(boolean)true, codec_data=(buffer)000001b32d024033249f23821022222e262e383838383e3e4a444a545454505050585a5a5a6262627c7c7c6a6a6a626274748080888894a6a098989498b4b4bebebef8f8eeef3d3d47a9a9ff1111111713171c1c1c1c1f1f2522252a2a2a2828282c2d2d2d3131313e3e3e35353531313a3a404044444a53504c4c4a4c5a5a5f5f5f7c7c77779e9ea3d4d4ff000001b5148200010000<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:sink: caps = video/mpeg, systemstream=(boolean)false, parsed=(boolean)true, mpegversion=(int)2, width=(int)720, height=(int)576, framerate=(fraction)25/1, pixel-aspect-ratio=(fraction)64/45, interlaced=(boolean)true, codec_data=(buffer)000001b32d024033249f23821022222e262e383838383e3e4a444a545454505050585a5a5a6262627c7c7c6a6a6a626274748080888894a6a098989498b4b4bebebef8f8eeef3d3d47a9a9ff1111111713171c1c1c1c1f1f2522252a2a2a2828282c2d2d2d3131313e3e3e35353531313a3a404044444a53504c4c4a4c5a5a5f5f5f7c7c77779e9ea3d4d4ff000001b5148200010000<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:src: caps = video/x-raw-yuv, format=(fourcc)I420, width=(int)720, height=(int)576, pixel-aspect-ratio=(fraction)64/45, framerate=(fraction)25/1, interlaced=(boolean)true<br>


ERROR: from element /GstPipeline:pipeline0/GstFileSrc:filesrc0: Internal data flow error.<br>
Additional debug info:<br>
gstbasesrc.c(2378): gst_base_src_loop (): /GstPipeline:pipeline0/GstFileSrc:filesrc0:<br>
streaming task paused, reason not-negotiated (-4)<br>
ERROR: pipeline doesn't want to preroll.<br>
Setting pipeline to NULL ...<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0.GstGhostPad:src0: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:src: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstMpeg2dec:mpeg2dec0.GstPad:sink: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:src: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/MpegVideoParse:mpegvideoparse0.GstPad:sink: caps = NULL<br>
/GstPipeline:pipeline0/GstDecodeBin:decodebin0/GstTypeFindElement:typefind.GstPad:src: caps = NULL<br>
Freeing pipeline ...<br>
<br>
<br>
------------------------------------------------------------------------------<br>
Download Intel&amp;#174; Parallel Studio Eval<br>
Try the new software tools for yourself. Speed compiling, find bugs<br>
proactively, and fine-tune applications for parallel performance.<br>
See why Intel Parallel Studio got high marks during beta.<br>
<a href="http://p.sf.net/sfu/intel-sw-dev" target="_blank">http://p.sf.net/sfu/intel-sw-dev</a><br>
_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net" target="_blank">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
</blockquote></div><br>
------------------------------------------------------------------------------<br>Download Intel&amp;#174; Parallel Studio Eval<br>Try the new software tools for yourself. Speed compiling, find bugs<br>proactively, and fine-tune applications for parallel performance.<br>
See why Intel Parallel Studio got high marks during beta.<br><a href="http://p.sf.net/sfu/intel-sw-dev_______________________________________________" target="_blank">http://p.sf.net/sfu/intel-sw-dev_______________________________________________</a><br>
gstreamer-devel mailing list<br><a href="mailto:gstreamer-devel@lists.sourceforge.net" target="_blank">gstreamer-devel@lists.sourceforge.net</a><br><a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
</div><br></div></div></div></div><br>------------------------------------------------------------------------------<br>
Download Intel&amp;#174; Parallel Studio Eval<br>
Try the new software tools for yourself. Speed compiling, find bugs<br>
proactively, and fine-tune applications for parallel performance.<br>
See why Intel Parallel Studio got high marks during beta.<br>
<a href="http://p.sf.net/sfu/intel-sw-dev" target="_blank">http://p.sf.net/sfu/intel-sw-dev</a><br>_______________________________________________<br>
gstreamer-devel mailing list<br>
<a href="mailto:gstreamer-devel@lists.sourceforge.net">gstreamer-devel@lists.sourceforge.net</a><br>
<a href="https://lists.sourceforge.net/lists/listinfo/gstreamer-devel" target="_blank">https://lists.sourceforge.net/lists/listinfo/gstreamer-devel</a><br>
<br></blockquote></div><br>
------------------------------------------------------------------------------<br>Download Intel&amp;#174; Parallel Studio Eval<br>Try the new software tools for yourself. Speed compiling, find bugs<br>proactively, and fine-tune applications for parallel performance.<br>See why Intel Parallel Studio got high marks during beta.<br><a href="http://p.sf.net/sfu/intel-sw-dev_______________________________________________">http://p.sf.net/sfu/intel-sw-dev_______________________________________________</a><br>gstreamer-devel mailing list<br>gstreamer-devel@lists.sourceforge.net<br>https://lists.sourceforge.net/lists/listinfo/gstreamer-devel<br></div><br></div></div></body></html>