Hello,
I am developing and application where i need to download a file over http protocol and then feed the file to an application via appsink. In the pipeline i need to use queue2 so that the file is saved and i can seek through the file. my application pipeline is as follows: httpsrc > queue2 > appsink queue2 has the following properties set. - use-buffering=1 - max-size-time=0 - max-size-buffers =0 - max-size-bytes= 2097152 (2 MB) - temp-template="/tmp/video-XXXXXX" I have found that when temp-template is specified, the queue2 element does not behave correctly and will behave differently with various versions of gstreamer. with version 0.10.29, every gst_app_sink_pull_buffer () call will return the first 4096 bytes. with version 0.10.31, it will return garbage. If temp-template is turned off, then queue2 works correctly. I tested this behaviour in the launch line using filesink to save the file as follows. gst-launch souphttpsrc location=<file-location> ! queue2 max-size-time=0 max-size-buffers=0 max-size-bytes=2097152 use-buffering=1 temp-template=/tmp/video-XXXXXX ! filesink location=outfile In gstreamer version 0.10.29, the saved file will grow indefinitely (pipeline never stops) and will have the first 4096 bytes throughout the file . In gstreamer version 0.10.31, the saved file will stop after downloading the file. Saved file won't be the same size as the source and is not playable. However, if the pipeline is constructed so that it is played out. For example. gst-launch souphttpsrc location=<file-location> ! queue2 max-size-time=0 max-size-buffers=0 max-size-bytes=2097152 use-buffering=1 temp-template=/tmp/video-XXXXXX ! demuxer ! video_decoder ! ffmpegcolorspace ! queue ! xvimagesink Then the file plays out correctly. I have no idea why this behaviour is occurring when filesink of appsink is used. I will be looking into the queue2 sources for possible issues. Any pointers in this regard would be really helpful Thanks and Regards ~Sameer _______________________________________________ gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Further to my investigation i have found that in gstreamer-0.10.31,
the first 4096 bytes are not written out to the file. Additionally a few bytes ( < 4096) will be missing from the end of the file. The length of the file saved by filesink will be a multiple of 4096 bytes. On Wed, Feb 16, 2011 at 8:23 AM, Sameer Naik <[hidden email]> wrote: > Hello, > > I am developing and application where i need to download a file over > http protocol and then feed the file to an application via appsink. In > the pipeline i need to use queue2 so that the file is saved and i can > seek through the file. > > my application pipeline is as follows: > > httpsrc > queue2 > appsink > > queue2 has the following properties set. > - use-buffering=1 > - max-size-time=0 > - max-size-buffers =0 > - max-size-bytes= 2097152 (2 MB) > - temp-template="/tmp/video-XXXXXX" > > I have found that when temp-template is specified, the queue2 element > does not behave correctly and will behave differently with various > versions of gstreamer. > > with version 0.10.29, every gst_app_sink_pull_buffer () call will > return the first 4096 bytes. > with version 0.10.31, it will return garbage. > > If temp-template is turned off, then queue2 works correctly. > > I tested this behaviour in the launch line using filesink to save the > file as follows. > > gst-launch souphttpsrc location=<file-location> ! queue2 > max-size-time=0 max-size-buffers=0 max-size-bytes=2097152 > use-buffering=1 temp-template=/tmp/video-XXXXXX ! filesink > location=outfile > > In gstreamer version 0.10.29, the saved file will grow indefinitely > (pipeline never stops) and will have the first 4096 bytes throughout > the file . > In gstreamer version 0.10.31, the saved file will stop after > downloading the file. Saved file won't be the same size as the source > and is not playable. > > However, if the pipeline is constructed so that it is played out. For example. > > gst-launch souphttpsrc location=<file-location> ! queue2 > max-size-time=0 max-size-buffers=0 max-size-bytes=2097152 > use-buffering=1 temp-template=/tmp/video-XXXXXX ! demuxer ! > video_decoder ! ffmpegcolorspace ! queue ! xvimagesink > > Then the file plays out correctly. > > I have no idea why this behaviour is occurring when filesink of > appsink is used. > I will be looking into the queue2 sources for possible issues. Any > pointers in this regard would be really helpful > > Thanks and Regards > ~Sameer > gstreamer-devel mailing list [hidden email] http://lists.freedesktop.org/mailman/listinfo/gstreamer-devel |
Free forum by Nabble | Edit this page |