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