[gst-devel] How to control pipeline frame rate when my camera needs some time to get one frame data

Zhao, Halley halley.zhao at intel.com
Wed Nov 18 09:57:24 CET 2009


Thanks all.

My camera src source code is at git://git.moblin.org/gst_mrst_camera_src.git
A little sorry that I haven't merge timestamp code into this git yet. :)

The gst-launch pipeline is like: 
gst-launch -v mycamsrc! video/x-raw-yuv , framerate=35/1 ! queue ! xvimagesink 

the frame I got with timestamp is something like:
#1 50ms
#2 53ms
#3 56ms
#4 140ms
#5 142ms
#6 144ms
#7 230ms
#8 233ms
#9 236

The above is some data derive from memory, since I tried queue some days ago.
And I will try to get some real data when I come back office.

mycamsrc is not a push source since hw don't have hard timing to create a frame of data.




-----Original Message-----
From: Edward Hervey [mailto:bilboed at gmail.com] 
Sent: 2009年11月18日 16:42
To: Discussion of the development of GStreamer
Subject: Re: [gst-devel] How to control pipeline frame rate when my camera needs some time to get one frame data

On Wed, 2009-11-18 at 16:24 +0800, Zhao, Halley wrote:
> But the timestamp will be mess.
> 
> You could get some frames in a short time, then idle some time, then
> another some frames.

  What thiagoss recomended is correct (you basically end up with one
thread dedicated to capture the image and the other threads doing the
extra processing).
  Timestamping is done at the source element (i.e. the timestamp will be
the moment at which the image is captured).

  If you were to give the gst-launch pipeline you're testing with we
could give you more info.


    Edward

> 
>  
> 
>  
> 
>                                    
> ______________________________________________________________________
> From:thiagossantos at gmail.com [mailto:thiagossantos at gmail.com] 
> Sent: 2009年11月18日7:19
> To: Discussion of the development of GStreamer
> Subject: Re: [gst-devel] How to control pipeline frame rate when my
> camera needs some time to get one frame data
> 
> 
>  
> 
>  
> 
> On Tue, Nov 17, 2009 at 8:11 PM, Zhao, Halley <halley.zhao at intel.com>
> wrote:
> 
> Hi all:
> 
> My camera needs ~20ms to get one frame of data, and a video sink in
> the pipeline needs ~4ms to render it.
> 
> But when I set pipeline fps to 35, I only got 20 fps (calculate by GST
> CLOCK). CPU is not busy at this time, only 60%.
> 
>  
> 
> I guess the reason is following:
> 
> When we got nth frame at time 0, gst framework schedule to get next
> frame after 30ms (1000/35), and when the camera src element got
> scheduled to create one frame, it needs 20ms to get the data.
> 
> Then the time between n frame and n+1 frame is 30+20=50ms, so I just
> got 20 fps.
> 
> Is my assumption right?
> 
> If yes, is there any way to adjust it?
> 
> 
> You can speed it up by adding a queue right after your source element.
> It will create another thread to push data after it, the thread used
> to request a frame from the camera will quickly return to the source
> and it will request another one.
>  
> 
> 
>          
>         
>         I had though to create another thread inside camera source,
>         and prepare the frame data in a buffer before it is schedule.
>         
>         However, I think it is hack, and make timestamp differ. I
>         think it’s better settled inside gst framework. 
>         
>          
>         
>          
>         
>         ZHAO, Halley (Aihua)
>         
>         Email: halley.zhao at intel.com
>         
>         Tel: +86(21)61166476
>         
>         iNet: 8821-6476
>         
>         SSG/OTC/Moblin 3W038 Pole: F4
>         
>         
>          
>         
>         
>         
>         ------------------------------------------------------------------------------
>         Let Crystal Reports handle the reporting - Free Crystal
>         Reports 2008 30-Day
>         trial. Simplify your report design, integration and deployment
>         - and focus on
>         what you do best, core application coding. Discover what's new
>         with
>         Crystal Reports now.  http://p.sf.net/sfu/bobj-july
>         _______________________________________________
>         gstreamer-devel mailing list
>         gstreamer-devel at lists.sourceforge.net
>         https://lists.sourceforge.net/lists/listinfo/gstreamer-devel
>         
> 
> 
> 
> -- 
> Thiago Sousa Santos
> 
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________ gstreamer-devel mailing list gstreamer-devel at lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/gstreamer-devel



------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
gstreamer-devel mailing list
gstreamer-devel at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/gstreamer-devel


More information about the gstreamer-devel mailing list