How to make the playbin2 to redraw frames in paused state.

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

How to make the playbin2 to redraw frames in paused state.

wl2776
Administrator
The playbin2 almost always doesn't redraw the frame, when it is in the paused state, and the seek issued to the end of file.

Example. Run Totem (linux movie player, a default movie player in Ubuntu), open a video file, put the player in a paused state and try to move slider of the movie progress indicator.
If you slowly move the slider from left to right to the rightmost video position, frames are redrawn, and probably, the last frame will be seen.

If you move the slider quickly outside of the progress bar area, then a frame somewhere from the middle of a movie will be shown, but the slider will stay near the end of the progress bar (the end of the movie). If you press play, the playing will continue from the position, which the slider reflects.

Same things happen in my application. Debug window shows that when the problem occurs, the player gets the command to seek to the end of the movie.

So, how can I make the playbin2 to draw the last frame?
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

michael smith-6-3
On Thu, Mar 18, 2010 at 6:54 AM, wl2776 <[hidden email]> wrote:

>
> The playbin2 almost always doesn't redraw the frame, when it is in the paused
> state, and the seek issued to the end of file.
>
> Example. Run Totem (linux movie player, a default movie player in Ubuntu),
> open a video file, put the player in a paused state and try to move slider
> of the movie progress indicator.
> If you slowly move the slider from left to right to the rightmost video
> position, frames are redrawn, and probably, the last frame will be seen.
>
> If you move the slider quickly outside of the progress bar area, then a
> frame somewhere from the middle of a movie will be shown, but the slider
> will stay near the end of the progress bar (the end of the movie). If you
> press play, the playing will continue from the position, which the slider
> reflects.
>
> Same things happen in my application. Debug window shows that when the
> problem occurs, the player gets the command to seek to the end of the movie.
>
> So, how can I make the playbin2 to draw the last frame?

This probably means that your video sink does not properly render the
preroll frame. You'll need to implement rendering the preroll frame in
it.

Mike

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

wl2776
Administrator
Totem uses xvimagesink, my application either directdrawsink or dshowvideosink.
The latter two have property "preroll-queue-len", which is 0 by default. I tried setting it to 1 or 10 - no effect.
What else can I do?
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

Andoni Morales
2010/3/18 wl2776 <[hidden email]>:
>
> Totem uses xvimagesink, my application either directdrawsink or
> dshowvideosink.
> The latter two have property "preroll-queue-len", which is 0 by default. I
> tried setting it to 1 or 10 - no effect.
> What else can I do?
The dshowvideosink element doesn't implement yet prerolling, there is
an opened bug with a patch in case you want to test it. (bugzilla is
down and I don't remember the bug #)
With directdrawsink it should work, it does at least for me.

Andoni

> --
> View this message in context: http://n4.nabble.com/How-to-make-the-playbin2-to-redraw-frames-in-paused-state-tp1597975p1598196.html
> Sent from the GStreamer-devel mailing list archive at Nabble.com.
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>



--
Andoni Morales Alastruey

LongoMatch:The Digital Coach
http://www.longomatch.ylatuya.es

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

michael smith-6-3
In reply to this post by wl2776
On Thu, Mar 18, 2010 at 9:02 AM, wl2776 <[hidden email]> wrote:
>
> Totem uses xvimagesink, my application either directdrawsink or
> dshowvideosink.
> The latter two have property "preroll-queue-len", which is 0 by default. I
> tried setting it to 1 or 10 - no effect.
> What else can I do?

dshowvideosink doesn't implement preroll in the latest releases. You
can look at the patches in bugzilla.

directdrawsink just generally doesn't work very well in my experience
-  I wouldn't use it.

Mike

------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

wl2776
Administrator
In reply to this post by Andoni Morales
Andoni Morales wrote
With directdrawsink it should work, it does at least for me.
Probably, yes, with the latest OSSBuild from svn trunk.
This will be clear after an issue with query duration will be resolved.
I've filed an issue - gst_element_query_duration always returns false now.
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

wl2776
Administrator
In reply to this post by Andoni Morales
Andoni Morales wrote
With directdrawsink it should work, it does at least for me.
No, it doesn't.
MPEG-2. If I issue a seek command to the end of file, it seeks there, but doesn't draw a frame from a tail.
Reply | Threaded
Open this post in threaded view
|

Re: How to make the playbin2 to redraw frames in paused state.

wl2776
Administrator
It works only for OGG video.