Issue while using queue2 with temp-template

classic Classic list List threaded Threaded
2 messages Options
Reply | Threaded
Open this post in threaded view
|

Issue while using queue2 with temp-template

Sameer Naik
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
Reply | Threaded
Open this post in threaded view
|

Re: Issue while using queue2 with temp-template

Sameer Naik
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