glimagesink FPS client-redraw

Arnaud Loonstra arnaud at sphaero.org
Mon Nov 17 07:51:21 PST 2014


On 11/17/2014 03:30 PM, Nicolas Dufresne wrote:
[snip]

>> Could it be color conversion?
>
> 20 fps seems rather normal if this is a cheap webcam, 7 is way too low.
> Don't you get traces about dropped frames from the video sink ? What
> rate do you get if you don't synchronize to the clock (sync=false) ?
> Also, what camera, GST version, kernel version is this ? I have a camera
> here on my laptop that outputs broken TS, hence would give me very bad
> results. In git master I've currently experimenting with code to ignore
> HW TS if they are clearly broken.
>
> Nicolas
>

I tested with a HP CKA7240.

I get a warning about the clock:
0:00:02.968306023 19098      0x33204f0 WARN                 v4l2src 
gstv4l2src.c:726:gst_v4l2src_create:<videotestsrc0> Timestamp does not 
correlate with any clock, ignoring driver timestamps


I've now tested with a Logitech C910 which runs smoother.

FPS: 24.018714227222098
FPS: 23.98236846175464
FPS: 24.001380236843378
FPS: 24.011999404609696
FPS: 23.995706944825315
FPS: 23.991413138055123
FPS: 23.999517069043964
FPS: 24.395840056551126

Setting sync to False or True doesn't matter.

I'm only getting:
0:00:10.539796847 18969      0x162dcf0 FIXME                   v4l2 
gstv4l2bufferpool.c:1122:gst_v4l2_buffer_pool_dqbuf:<videotestsrc0:pool:src> 
Unhandled enum v4l2_field 0 - treating as progressive
0:00:10.539947637 18969      0x162dcf0 INFO                 v4l2src 
gstv4l2src.c:774:gst_v4l2src_create:<videotestsrc0> sync to 
0:00:07.266666594 out ts 0:00:10.383582177

GLimagesink gets 30fps:
0:00:01.261976169 19054      0x170f4f0 DEBUG            glimagesink 
gstglimagesink.c:764:gst_glimage_sink_set_caps: set caps with 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, 
framerate=(fraction)30/1

v4l2src gets 30 fps for all selected caps then streams normally:
0:00:01.265476388 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:318:gst_v4l2src_negotiate:<videotestsrc0> caps of peer: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
framerate=(fraction)30/1
0:00:01.265549863 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:319:gst_v4l2src_negotiate:<videotestsrc0> peercaps: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
framerate=(fraction)30/1
0:00:01.265623267 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:329:gst_v4l2src_negotiate:<videotestsrc0> peer: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
framerate=(fraction)30/1
0:00:01.265686614 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:330:gst_v4l2src_negotiate:<videotestsrc0> ipcaps: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
framerate=(fraction)30/1
0:00:01.265834261 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:342:gst_v4l2src_negotiate:<videotestsrc0> intersect: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string){ progressive, 
progressive }, framerate=(fraction)30/1
0:00:01.265912694 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:343:gst_v4l2src_negotiate:<videotestsrc0> icaps: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string){ progressive, 
progressive }, framerate=(fraction)30/1
0:00:01.265996016 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:256:gst_v4l2src_fixate:<videotestsrc0> fixating caps 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string){ progressive, 
progressive }, framerate=(fraction)30/1
0:00:01.266085554 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:282:gst_v4l2src_fixate:<videotestsrc0> fixated caps 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, 
framerate=(fraction)30/1
0:00:01.266161752 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:393:gst_v4l2src_negotiate:<videotestsrc0> fixated to: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, 
framerate=(fraction)30/1
0:00:01.266232014 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:394:gst_v4l2src_negotiate:<videotestsrc0> caps: 
video/x-raw, format=(string)YUY2, width=(int)640, height=(int)480, 
pixel-aspect-ratio=(fraction)1/1, interlace-mode=(string)progressive, 
framerate=(fraction)30/1
0:00:01.498558686 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:736:gst_v4l2src_create:<videotestsrc0> ts: 
161:26:12.420759000 now 161:26:12.457184216 delay 0:00:00.036425216
0:00:01.498675462 19075      0x1feb0f0 INFO                 v4l2src 
gstv4l2src.c:774:gst_v4l2src_create:<videotestsrc0> sync to 
0:00:00.033333333 out ts 0:00:01.343290101
0:00:01.542513408 19075 0x7fbb800034f0 DEBUG                v4l2src 
gstv4l2src.c:533:gst_v4l2src_query:<videotestsrc0> report latency min 
0:00:00.033333333 max 0:00:01.066666656
0:00:01.547622874 19075      0x1feb0f0 DEBUG                v4l2src 
gstv4l2src.c:736:gst_v4l2src_create:<videotestsrc0> ts: 
161:26:12.463169000 now 161:26:12.506267123 delay 0:00:00.043098123
0:00:01.547667434 19075      0x1feb0f0 INFO                 v4l2src 
gstv4l2src.c:774:gst_v4l2src_create:<videotestsrc0> sync to 
0:00:00.066666666 out ts 0:00:01.385703452

I guess it's normal?

GST version 1.5.0.1
kernel: Debian 3.16.5-1 (2014-10-10) x86_64 GNU/Linux


-- 
w: http://www.sphaero.org
t: http://twitter.com/sphaero
g: http://github.com/sphaero
i: freenode: sphaero_z25


More information about the gstreamer-devel mailing list