Seeking multifilesrc

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

Seeking multifilesrc

Jorge-2
Hi to all.

I'm trying to write a stop-motion creation app, in the vein of
http://developer.skolelinux.no/info/studentgrupper/2005-hig-stopmotion/index.php
but using python, gtk, and well, gstreamer. It's my first using all
three technologies, tough :p
What i'm stump on is on how step frame by frame forward and backwards in
a video loaded trough multifilesrc. I was trying to seek using
gst.FORMAT_BUFFERS as to move one frame at a time, but it doesn't work.
When i attempt a query_position on the pipeline, i get a "query failed".
My pipeline is

multifilesrc ! jpegdec ! cspvideo !videosink.

(multifilesrc has a "image/jpeg,framerate=15/1" cap for correct playing)

I've tried a queue right after multifilesrc, but no difference. Is there
something i have to do for a stream be seekable? Also, the idea is being
able to keep adding image frames without having to reprocess everything
each time...

Any pointer?

Jorge



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Seeking multifilesrc

Stefan Sauer
Jorge schrieb:

> Hi to all.
>
> I'm trying to write a stop-motion creation app, in the vein of
> http://developer.skolelinux.no/info/studentgrupper/2005-hig-stopmotion/index.php
> but using python, gtk, and well, gstreamer. It's my first using all
> three technologies, tough :p
> What i'm stump on is on how step frame by frame forward and backwards in
> a video loaded trough multifilesrc. I was trying to seek using
> gst.FORMAT_BUFFERS as to move one frame at a time, but it doesn't work.
> When i attempt a query_position on the pipeline, i get a "query failed".
>  
Can you try |GST_FORMAT_DEFAULT?

Stefan
|

> My pipeline is
>
> multifilesrc ! jpegdec ! cspvideo !videosink.
>
> (multifilesrc has a "image/jpeg,framerate=15/1" cap for correct playing)
>
> I've tried a queue right after multifilesrc, but no difference. Is there
> something i have to do for a stream be seekable? Also, the idea is being
> able to keep adding image frames without having to reprocess everything
> each time...
>
> Any pointer?
>
> Jorge
>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>  


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Seeking multifilesrc

Jorge-2
Hi.

Trying GST_FORMAT_DEFAULT i get the same behaviour
When querying position (hope it's ok posting python code):
pos = self.player.pipeline.query_position(gst.FORMAT_DEFAULT, None)[0]
gst.QueryError: query failed

When seeking: no errors, but nothing happens.

I can play and pause. Something i've found is that when you pause the
pipeline the multifilesrc's "index" property is valued as the current
frame. If i change its value and resume it starts playing from the new
value. I guess i could manipulate this value to advance frame  by frame,
but then i should have to feed a single frame by playing and pausing
inmediately... It would be much uglier that proper seek.

Jorge



On Wed, 2008-09-24 at 14:52 +0300, Stefan Kost wrote:

> Jorge schrieb:
> > Hi to all.
> >
> > I'm trying to write a stop-motion creation app, in the vein of
> > http://developer.skolelinux.no/info/studentgrupper/2005-hig-stopmotion/index.php
> > but using python, gtk, and well, gstreamer. It's my first using all
> > three technologies, tough :p
> > What i'm stump on is on how step frame by frame forward and backwards in
> > a video loaded trough multifilesrc. I was trying to seek using
> > gst.FORMAT_BUFFERS as to move one frame at a time, but it doesn't work.
> > When i attempt a query_position on the pipeline, i get a "query failed".
> >  
> Can you try |GST_FORMAT_DEFAULT?



-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Seeking multifilesrc

Stefan Sauer
Jorge schrieb:

> Hi.
>
> Trying GST_FORMAT_DEFAULT i get the same behaviour
> When querying position (hope it's ok posting python code):
> pos = self.player.pipeline.query_position(gst.FORMAT_DEFAULT, None)[0]
> gst.QueryError: query failed
>
> When seeking: no errors, but nothing happens.
>
> I can play and pause. Something i've found is that when you pause the
> pipeline the multifilesrc's "index" property is valued as the current
> frame. If i change its value and resume it starts playing from the new
> value. I guess i could manipulate this value to advance frame  by frame,
> but then i should have to feed a single frame by playing and pausing
> inmediately... It would be much uglier that proper seek.
>
> Jorge
>  
Please file a bug and attach the sample code. Looks like a bug in
multifilesrc.

Stefan


>
>
> On Wed, 2008-09-24 at 14:52 +0300, Stefan Kost wrote:
>  
>> Jorge schrieb:
>>    
>>> Hi to all.
>>>
>>> I'm trying to write a stop-motion creation app, in the vein of
>>> http://developer.skolelinux.no/info/studentgrupper/2005-hig-stopmotion/index.php
>>> but using python, gtk, and well, gstreamer. It's my first using all
>>> three technologies, tough :p
>>> What i'm stump on is on how step frame by frame forward and backwards in
>>> a video loaded trough multifilesrc. I was trying to seek using
>>> gst.FORMAT_BUFFERS as to move one frame at a time, but it doesn't work.
>>> When i attempt a query_position on the pipeline, i get a "query failed".
>>>  
>>>      
>> Can you try |GST_FORMAT_DEFAULT?
>>    
>
>
>
> -------------------------------------------------------------------------
> This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
> Build the coolest Linux based applications with Moblin SDK & win great prizes
> Grand prize is a trip for two to an Open Source event anywhere in the world
> http://moblin-contest.org/redirect.php?banner_id=100&url=/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>  


-------------------------------------------------------------------------
This SF.Net email is sponsored by the Moblin Your Move Developer's challenge
Build the coolest Linux based applications with Moblin SDK & win great prizes
Grand prize is a trip for two to an Open Source event anywhere in the world
http://moblin-contest.org/redirect.php?banner_id=100&url=/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: Seeking multifilesrc

gianks
Hi,
i'm having the same problem here.
I'm unable to seek all the time via multifilesrc but i can query correctly the position when the pipeline is playing and there is no file change in place.

I tried both QGSt::FormatDefault and QGst::FormatTime, the sendEvent function return always false.

                                    QGst::SeekEventPtr evt = QGst::SeekEvent::create(
                                            1.0, QGst::FormatDefault, QGst::SeekFlagFlush,
                                            QGst::SeekTypeSet, QGst::ClockTime::fromTime(QTime::fromMSecsSinceStartOfDay(QDateTime::fromTime_t(delay))),
                                            QGst::SeekTypeNone, QGst::ClockTime::None
                                            );
                                    Q_ASSERT(pipeline->sendEvent(evt));

The pipeline works well but cannot seek
Please Help!
Reply | Threaded
Open this post in threaded view
|

Re: Seeking multifilesrc

gianks
Hi community,
seems that the problem is confirmed:

0:00:12.061266773 10024      0x122e800 DEBUG                basesrc gstbasesrc.c:2031:gst_base_src_default_event:<mysource> is not seekable


So how can i know if a source element is seekable?