block at line 1547 in gstqueue2.c

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

block at line 1547 in gstqueue2.c

Wang Xuefeng-W20711
Hi all,

Who can tell me why the following code segment in gstqueue2.c is needed?
When I use queue2 for local playback, it's OK to seek forward/rewind.
But When I use queue2 for network playback, such as progressive
download, I meet a problem, it will block at line 1547 if seeking to the
position where data hasn't been downloaded yet. I expect it to return
immediately, not block.

   1543       GST_QUEUE_MUTEX_LOCK (queue);
   1544       /* we have to wait until the upstream element is at least
paused, which
   1545        * happened when we received a first item. */
   1546       while (gst_queue_is_empty (queue)) {
   1547         GST_QUEUE_WAIT_ADD_CHECK (queue, flushing);
   1548       }
   1549       GST_QUEUE_MUTEX_UNLOCK (queue);


Best Regards
Wang Xuefeng


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: block at line 1547 in gstqueue2.c

Wim Taymans
On Tue, 2008-04-01 at 10:54 +0800, Wang Xuefeng-W20711 wrote:

> Hi all,
>
> Who can tell me why the following code segment in gstqueue2.c is needed?
> When I use queue2 for local playback, it's OK to seek forward/rewind.
> But When I use queue2 for network playback, such as progressive
> download, I meet a problem, it will block at line 1547 if seeking to the
> position where data hasn't been downloaded yet. I expect it to return
> immediately, not block.
>
>    1543       GST_QUEUE_MUTEX_LOCK (queue);
>    1544       /* we have to wait until the upstream element is at least
> paused, which
>    1545        * happened when we received a first item. */
>    1546       while (gst_queue_is_empty (queue)) {
>    1547         GST_QUEUE_WAIT_ADD_CHECK (queue, flushing);
>    1548       }
>    1549       GST_QUEUE_MUTEX_UNLOCK (queue);

It's was an experiment and will be removed soon.

Wim

>
>
> Best Regards
> Wang Xuefeng
>
>
> -------------------------------------------------------------------------
> Check out the new SourceForge.net Marketplace.
> It's the best place to buy or sell services for
> just about anything Open Source.
> http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


-------------------------------------------------------------------------
Check out the new SourceForge.net Marketplace.
It's the best place to buy or sell services for
just about anything Open Source.
http://ad.doubleclick.net/clk;164216239;13503038;w?http://sf.net/marketplace
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel