Regarding Seek events.

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

Regarding Seek events.

Sumanth V
Hi

    I am writing a application which dose a TrickMode operation on the incoming LIVE MPEG Transport stream.
This LIVE stream is read by the filesrc. For doing Trick Mode i am writing my own plugin which dose the
following operation.
* sends the data down stream.
* stores this data localy on to a file.
* generates the IFrame from this data and stores in a file.

if i want to play in rewind/forward mode i do that by sending a seek event with setting the rate from my application.
My plugin reads the seek event dose the required operation. And at the same time if any LIVE data is read from the
file source it will be stored in the file localy.

But if i want to perform PAUSE operation can i do that by setting the rate to 0.0, is this allowed. I dont want PAUSE
the whole pipeline, since i want the LIVE data to be read by the file source and this data has to be stored by my
plugin .
How can i achive the PAUSE operation with out PAUSING the whole pipeline.


Thanks

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Regarding Seek events.

michael smith-6-3
On Tue, Dec 9, 2008 at 4:26 AM, Sumanth V <[hidden email]> wrote:

> But if i want to perform PAUSE operation can i do that by setting the rate
> to 0.0, is this allowed. I dont want PAUSE
> the whole pipeline, since i want the LIVE data to be read by the file source
> and this data has to be stored by my
> plugin .
> How can i achive the PAUSE operation with out PAUSING the whole pipeline.

Setting rate to 0 is not permitted. Pausing the pipeline is the right
thing to do - and does exactly what you want.

When paused, the sinks (e.g. audio and video sinks) do not play any
audio/video, but the rest of the pipeline continues to run - queues
fill up, etc. For your use-case, this should work fine - your filesrc
and your new element will behave identically in paused and playing.

Mike

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Regarding Seek events.

Sameer Naik

On Tuesday 09 December 2008 23:46:42 Michael Smith wrote:

> On Tue, Dec 9, 2008 at 4:26 AM, Sumanth V <[hidden email]> wrote:

> > But if i want to perform PAUSE operation can i do that by setting the

> > rate to 0.0, is this allowed. I dont want PAUSE

> > the whole pipeline, since i want the LIVE data to be read by the file

> > source and this data has to be stored by my

> > plugin .

> > How can i achive the PAUSE operation with out PAUSING the whole pipeline.

>

> Setting rate to 0 is not permitted. Pausing the pipeline is the right

> thing to do - and does exactly what you want.

>

> When paused, the sinks (e.g. audio and video sinks) do not play any

> audio/video, but the rest of the pipeline continues to run - queues

> fill up, etc. For your use-case, this should work fine - your filesrc

> and your new element will behave identically in paused and playing.

Are you implying that though the state of the pipeline is set to PAUSED, the filesrc will continue providing data to its peer. Is this the default behaviour of the plugin? Because if it is, then when a pipeline is in PAUSED state then an application would still be doing quite a lot of processing and also hogging the memory resources.

Please comment

Regards

~Sameer

>

> Mike

>

> ---------------------------------------------------------------------------

>--- SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas,

> Nevada. The future of the web can't happen without you. Join us at MIX09

> to help pave the way to the Next Web now. Learn more and register at

> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com

>/ _______________________________________________

> gstreamer-devel mailing list

> [hidden email]

> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Regarding Seek events.

michael smith-6-3
On Tue, Dec 9, 2008 at 10:41 PM, Sameer Naik
<[hidden email]> wrote:
>
> Are you implying that though the state of the pipeline is set to PAUSED, the
> filesrc will continue providing data to its peer. Is this the default
> behaviour of the plugin? Because if it is, then when a pipeline is in PAUSED
> state then an application would still be doing quite a lot of processing and
> also hogging the memory resources.

I was attempting to state that explicitly, not imply it, but yes.

This is how gstreamer is designed; elements other than sinks (and live
sources) should not treat PAUSED and PLAYING differently at all.

Note that in most pipelines, something will block after a relatively
short period of time - e.g. a downstream queue will become full, and
block - so it doesn't consume cpu resources for an unbounded period,
only for long enough to fill the downstream queues.

Mike

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Regarding Seek events.

ved kpl
Hi,

When PAUSED, the sinks do a preroll and then do a preroll_wait()
(basically wait on a cond). ,which means the streaming threads are
blocked and if there is a queue in between , the thread above the
queue wont stop until the queue is filled up.

Elements other than sinks and src are unaware of this and mostly do
not differentiate between PAUSED/PLAYING.

Ved

On Wed, Dec 10, 2008 at 11:40 PM, Michael Smith <[hidden email]> wrote:

> On Tue, Dec 9, 2008 at 10:41 PM, Sameer Naik
> <[hidden email]> wrote:
>>
>> Are you implying that though the state of the pipeline is set to PAUSED, the
>> filesrc will continue providing data to its peer. Is this the default
>> behaviour of the plugin? Because if it is, then when a pipeline is in PAUSED
>> state then an application would still be doing quite a lot of processing and
>> also hogging the memory resources.
>
> I was attempting to state that explicitly, not imply it, but yes.
>
> This is how gstreamer is designed; elements other than sinks (and live
> sources) should not treat PAUSED and PLAYING differently at all.
>
> Note that in most pipelines, something will block after a relatively
> short period of time - e.g. a downstream queue will become full, and
> block - so it doesn't consume cpu resources for an unbounded period,
> only for long enough to fill the downstream queues.
>
> Mike
>
> ------------------------------------------------------------------------------
> SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
> The future of the web can't happen without you.  Join us at MIX09 to help
> pave the way to the Next Web now. Learn more and register at
> http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>

------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Regarding Seek events.

Sameer Naik-2
In reply to this post by michael smith-6-3

Right! that makes a lot of sense.

Regards

~Sameer

--

Developement Lead

NextBiT Computing Pvt. Ltd.

Bangalore, India

On Wednesday 10 December 2008 23:40:24 Michael Smith wrote:

> On Tue, Dec 9, 2008 at 10:41 PM, Sameer Naik

>

> <[hidden email]> wrote:

> > Are you implying that though the state of the pipeline is set to PAUSED,

> > the filesrc will continue providing data to its peer. Is this the default

> > behaviour of the plugin? Because if it is, then when a pipeline is in

> > PAUSED state then an application would still be doing quite a lot of

> > processing and also hogging the memory resources.

>

> I was attempting to state that explicitly, not imply it, but yes.

>

> This is how gstreamer is designed; elements other than sinks (and live

> sources) should not treat PAUSED and PLAYING differently at all.

>

> Note that in most pipelines, something will block after a relatively

> short period of time - e.g. a downstream queue will become full, and

> block - so it doesn't consume cpu resources for an unbounded period,

> only for long enough to fill the downstream queues.

>

> Mike


------------------------------------------------------------------------------
SF.Net email is Sponsored by MIX09, March 18-20, 2009 in Las Vegas, Nevada.
The future of the web can't happen without you.  Join us at MIX09 to help
pave the way to the Next Web now. Learn more and register at
http://ad.doubleclick.net/clk;208669438;13503038;i?http://2009.visitmix.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel