v4l2src fails allocation with io-mode=1 (RW)

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

v4l2src fails allocation with io-mode=1 (RW)

Marianna S. Buschle
root@qt5022:# gst-launch-1.0 v4l2src device=/dev/video5 io-mode=1
num-buffers=1 ! video/x-raw,format=RGB,width=1680,height=1248,framerate=24/1
! fakesink --gst-debug=*:3        
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.061089783   867       0x645450 ERROR         v4l2bufferpool
gstv4l2bufferpool.c:913:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src>
failed to queue buffers into the capture queue
0:00:00.061297961   867       0x645450 ERROR             bufferpool
gstbufferpool.c:564:gst_buffer_pool_set_active:<v4l2src0:pool:src> start
failed
0:00:00.061419398   867       0x645450 WARN                 v4l2src
gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Failed to
allocate required memory.
0:00:00.061481420   867       0x645450 WARN                 v4l2src
gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Buffer pool
activation failed
0:00:00.061791160   867       0x645450 WARN                 basesrc
gstbasesrc.c:3275:gst_base_src_prepare_allocation:<v4l2src0> Subclass failed
to decide allocation
0:00:00.061917479   867       0x645450 WARN                 basesrc
gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: Internal data stream
error.
0:00:00.061993188   867       0x645450 WARN                 basesrc
gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: streaming stopped,
reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to
allocate required memory.
Additional debug info:
../../../git/sys/v4l2/gstv4l2src.c(663): gst_v4l2src_decide_allocation ():
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.004947847
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
Setting pipeline to NULL ...
Freeing pipeline ...

Using io-mode 2 (mmap) or 4 (dmabuf) works

Doing cat /dev/video5 or using qv4l2 in read() mode both work

Tracing the v4l2 calls in the driver I couldn't really see any error
messages, so for me it seems like the problem is in gstreamer and not in our
driver.

Can anybody reproduce / confirm this as a bug?

Some more debug info from bufferpool:

root@qt5022:# gst-launch-1.0 v4l2src device=/dev/video5 io-mode=1
num-buffers=1 ! video/x-raw,format=RGB,width=1680,height=1248,framerate=24/1
! fakesink --gst-debug=*:3,*bufferpool*:5
Setting pipeline to PAUSED ...
Pipeline is live and does not need PREROLL ...
Setting pipeline to PLAYING ...
New clock: GstSystemClock
0:00:00.060853896   923       0x645c50 DEBUG             bufferpool
gstbufferpool.c:185:gst_buffer_pool_init:<GstBufferPool@0x7f516800a0c0>
created
0:00:00.061482576   923       0x645c50 WARN               structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
to serialize field 'params' of type 'GstAllocationParams'
0:00:00.061589426   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:510:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool:src>
config GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\
format\=\(string\)RGB\,\ width\=\(int\)1680\,\ height\=\(int\)1248\,\
framerate\=\(fraction\)24/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\
colorimetry\=\(string\)sRGB\,\ interlace-mode\=\(string\)progressive",
size=(uint)6289920, min-buffers=(uint)0, max-buffers=(uint)0,
allocator=(GstAllocator)"NULL", params=(GstAllocationParams)NULL;
0:00:00.061822839   923       0x645c50 WARN               structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
to serialize field 'params' of type 'GstAllocationParams'
0:00:00.061910521   923       0x645c50 DEBUG             bufferpool
gstbufferpool.c:614:default_set_config:<v4l2src0:pool:src> config
GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)RGB\,\
width\=\(int\)1680\,\ height\=\(int\)1248\,\ framerate\=\(fraction\)24/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)sRGB\,\
interlace-mode\=\(string\)progressive", size=(uint)6289920,
min-buffers=(uint)0, max-buffers=(uint)0, allocator=(GstAllocator)"NULL",
params=(GstAllocationParams)NULL;
0:00:00.062634348   923       0x645c50 WARN               structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
to serialize field 'params' of type 'GstAllocationParams'
0:00:00.062751705   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:510:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool:src>
config GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\
format\=\(string\)RGB\,\ width\=\(int\)1680\,\ height\=\(int\)1248\,\
framerate\=\(fraction\)24/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\
colorimetry\=\(string\)sRGB\,\ interlace-mode\=\(string\)progressive",
size=(uint)6289920, min-buffers=(uint)4, max-buffers=(uint)0,
allocator=(GstAllocator)"NULL", params=(GstAllocationParams)NULL;
0:00:00.063024902   923       0x645c50 WARN               structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
to serialize field 'params' of type 'GstAllocationParams'
0:00:00.063104057   923       0x645c50 DEBUG             bufferpool
gstbufferpool.c:614:default_set_config:<v4l2src0:pool:src> config
GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)RGB\,\
width\=\(int\)1680\,\ height\=\(int\)1248\,\ framerate\=\(fraction\)24/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)sRGB\,\
interlace-mode\=\(string\)progressive", size=(uint)6289920,
min-buffers=(uint)4, max-buffers=(uint)0, allocator=(GstAllocator)"NULL",
params=(GstAllocationParams)NULL;
0:00:00.063265573   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:744:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src>
activating pool
0:00:00.063496816   923       0x645c50 WARN               structure
gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
to serialize field 'params' of type 'GstAllocationParams'
0:00:00.063588085   923       0x645c50 DEBUG             bufferpool
gstbufferpool.c:614:default_set_config:<v4l2src0:pool:src> config
GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)RGB\,\
width\=\(int\)1680\,\ height\=\(int\)1248\,\ framerate\=\(fraction\)24/1\,\
pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)sRGB\,\
interlace-mode\=\(string\)progressive", size=(uint)6289920,
min-buffers=(uint)4, max-buffers=(uint)0, allocator=(GstAllocator)"NULL",
params=(GstAllocationParams)NULL;
0:00:00.063787556   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
release buffer 0x7f5168011020
0:00:00.063962684   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
release buffer 0x7f5168011130
0:00:00.064109916   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
release buffer 0x7f5168011240
0:00:00.064225693   923       0x645c50 DEBUG         v4l2bufferpool
gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
release buffer 0x7f5168011350
0:00:00.064307775   923       0x645c50 ERROR         v4l2bufferpool
gstv4l2bufferpool.c:913:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src>
failed to queue buffers into the capture queue
0:00:00.064394334   923       0x645c50 ERROR             bufferpool
gstbufferpool.c:564:gst_buffer_pool_set_active:<v4l2src0:pool:src> start
failed
0:00:00.064486602   923       0x645c50 WARN                 v4l2src
gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Failed to
allocate required memory.
0:00:00.064558738   923       0x645c50 WARN                 v4l2src
gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Buffer pool
activation failed
0:00:00.064901094   923       0x645c50 WARN                 basesrc
gstbasesrc.c:3275:gst_base_src_prepare_allocation:<v4l2src0> Subclass failed
to decide allocation
0:00:00.065041810   923       0x645c50 WARN                 basesrc
gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: Internal data stream
error.
0:00:00.065117960   923       0x645c50 WARN                 basesrc
gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: streaming stopped,
reason not-negotiated (-4)
ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to
allocate required memory.
Additional debug info:
../../../git/sys/v4l2/gstv4l2src.c(663): gst_v4l2src_decide_allocation ():
/GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
Buffer pool activation failed
Execution ended after 0:00:00.007016015
Setting pipeline to PAUSED ...
Setting pipeline to READY ...
0:00:00.066706635   923       0x67fe30 DEBUG             bufferpool
gstbufferpool.c:552:gst_buffer_pool_set_active:<v4l2src0:pool:src> pool was
in the right state
0:00:00.067049135   923       0x67fe30 DEBUG             bufferpool
gstbufferpool.c:197:gst_buffer_pool_finalize:<v4l2src0:pool:src>
0x7f516800a0c0 finalize
0:00:00.067081249   923       0x67fe30 DEBUG             bufferpool
gstbufferpool.c:552:gst_buffer_pool_set_active:<v4l2src0:pool:src> pool was
in the right state
Setting pipeline to NULL ...
Freeing pipeline ...



--
Sent from: http://gstreamer-devel.966125.n4.nabble.com/
_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel
Reply | Threaded
Open this post in threaded view
|

Re: v4l2src fails allocation with io-mode=1 (RW)

Nicolas Dufresne-5
Le mercredi 17 octobre 2018 à 08:10 -0500, Marianna S. Buschle a écrit :

> root@qt5022:# gst-launch-1.0 v4l2src device=/dev/video5 io-mode=1
> num-buffers=1 ! video/x-raw,format=RGB,width=1680,height=1248,framerate=24/1
> ! fakesink --gst-debug=*:3        
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> 0:00:00.061089783   867       0x645450 ERROR         v4l2bufferpool
> gstv4l2bufferpool.c:913:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src>
> failed to queue buffers into the capture queue
> 0:00:00.061297961   867       0x645450 ERROR             bufferpool
> gstbufferpool.c:564:gst_buffer_pool_set_active:<v4l2src0:pool:src> start
> failed
> 0:00:00.061419398   867       0x645450 WARN                 v4l2src
> gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Failed to
> allocate required memory.
> 0:00:00.061481420   867       0x645450 WARN                 v4l2src
> gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Buffer pool
> activation failed
> 0:00:00.061791160   867       0x645450 WARN                 basesrc
> gstbasesrc.c:3275:gst_base_src_prepare_allocation:<v4l2src0> Subclass failed
> to decide allocation
> 0:00:00.061917479   867       0x645450 WARN                 basesrc
> gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: Internal data stream
> error.
> 0:00:00.061993188   867       0x645450 WARN                 basesrc
> gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: streaming stopped,
> reason not-negotiated (-4)
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to
> allocate required memory.
> Additional debug info:
> ../../../git/sys/v4l2/gstv4l2src.c(663): gst_v4l2src_decide_allocation ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> Buffer pool activation failed
> Execution ended after 0:00:00.004947847
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
> Using io-mode 2 (mmap) or 4 (dmabuf) works
>
> Doing cat /dev/video5 or using qv4l2 in read() mode both work
>
> Tracing the v4l2 calls in the driver I couldn't really see any error
> messages, so for me it seems like the problem is in gstreamer and not in our
> driver.
>
> Can anybody reproduce / confirm this as a bug?
Yes, it looks like it is broken. Though, nobody uses this anymore, I
was more thinking in dropping support for that rather then fixing it.
Meanwhile, if you have a fix, I'll take it.

>
> Some more debug info from bufferpool:
>
> root@qt5022:# gst-launch-1.0 v4l2src device=/dev/video5 io-mode=1
> num-buffers=1 ! video/x-raw,format=RGB,width=1680,height=1248,framerate=24/1
> ! fakesink --gst-debug=*:3,*bufferpool*:5
> Setting pipeline to PAUSED ...
> Pipeline is live and does not need PREROLL ...
> Setting pipeline to PLAYING ...
> New clock: GstSystemClock
> 0:00:00.060853896   923       0x645c50 DEBUG             bufferpool
> gstbufferpool.c:185:gst_buffer_pool_init:<GstBufferPool@0x7f516800a0c0>
> created
> 0:00:00.061482576   923       0x645c50 WARN               structure
> gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
> to serialize field 'params' of type 'GstAllocationParams'
> 0:00:00.061589426   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:510:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool:src>
> config GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\
> format\=\(string\)RGB\,\ width\=\(int\)1680\,\ height\=\(int\)1248\,\
> framerate\=\(fraction\)24/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\
> colorimetry\=\(string\)sRGB\,\ interlace-mode\=\(string\)progressive",
> size=(uint)6289920, min-buffers=(uint)0, max-buffers=(uint)0,
> allocator=(GstAllocator)"NULL", params=(GstAllocationParams)NULL;
> 0:00:00.061822839   923       0x645c50 WARN               structure
> gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
> to serialize field 'params' of type 'GstAllocationParams'
> 0:00:00.061910521   923       0x645c50 DEBUG             bufferpool
> gstbufferpool.c:614:default_set_config:<v4l2src0:pool:src> config
> GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)RGB\,\
> width\=\(int\)1680\,\ height\=\(int\)1248\,\ framerate\=\(fraction\)24/1\,\
> pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)sRGB\,\
> interlace-mode\=\(string\)progressive", size=(uint)6289920,
> min-buffers=(uint)0, max-buffers=(uint)0, allocator=(GstAllocator)"NULL",
> params=(GstAllocationParams)NULL;
> 0:00:00.062634348   923       0x645c50 WARN               structure
> gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
> to serialize field 'params' of type 'GstAllocationParams'
> 0:00:00.062751705   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:510:gst_v4l2_buffer_pool_set_config:<v4l2src0:pool:src>
> config GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\
> format\=\(string\)RGB\,\ width\=\(int\)1680\,\ height\=\(int\)1248\,\
> framerate\=\(fraction\)24/1\,\ pixel-aspect-ratio\=\(fraction\)1/1\,\
> colorimetry\=\(string\)sRGB\,\ interlace-mode\=\(string\)progressive",
> size=(uint)6289920, min-buffers=(uint)4, max-buffers=(uint)0,
> allocator=(GstAllocator)"NULL", params=(GstAllocationParams)NULL;
> 0:00:00.063024902   923       0x645c50 WARN               structure
> gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
> to serialize field 'params' of type 'GstAllocationParams'
> 0:00:00.063104057   923       0x645c50 DEBUG             bufferpool
> gstbufferpool.c:614:default_set_config:<v4l2src0:pool:src> config
> GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)RGB\,\
> width\=\(int\)1680\,\ height\=\(int\)1248\,\ framerate\=\(fraction\)24/1\,\
> pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)sRGB\,\
> interlace-mode\=\(string\)progressive", size=(uint)6289920,
> min-buffers=(uint)4, max-buffers=(uint)0, allocator=(GstAllocator)"NULL",
> params=(GstAllocationParams)NULL;
> 0:00:00.063265573   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:744:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src>
> activating pool
> 0:00:00.063496816   923       0x645c50 WARN               structure
> gststructure.c:1832:priv_gst_structure_append_to_gstring: No value transform
> to serialize field 'params' of type 'GstAllocationParams'
> 0:00:00.063588085   923       0x645c50 DEBUG             bufferpool
> gstbufferpool.c:614:default_set_config:<v4l2src0:pool:src> config
> GstBufferPoolConfig, caps=(GstCaps)"video/x-raw\,\ format\=\(string\)RGB\,\
> width\=\(int\)1680\,\ height\=\(int\)1248\,\ framerate\=\(fraction\)24/1\,\
> pixel-aspect-ratio\=\(fraction\)1/1\,\ colorimetry\=\(string\)sRGB\,\
> interlace-mode\=\(string\)progressive", size=(uint)6289920,
> min-buffers=(uint)4, max-buffers=(uint)0, allocator=(GstAllocator)"NULL",
> params=(GstAllocationParams)NULL;
> 0:00:00.063787556   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
> release buffer 0x7f5168011020
> 0:00:00.063962684   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
> release buffer 0x7f5168011130
> 0:00:00.064109916   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
> release buffer 0x7f5168011240
> 0:00:00.064225693   923       0x645c50 DEBUG         v4l2bufferpool
> gstv4l2bufferpool.c:1380:gst_v4l2_buffer_pool_release_buffer:<v4l2src0:pool:src>
> release buffer 0x7f5168011350
> 0:00:00.064307775   923       0x645c50 ERROR         v4l2bufferpool
> gstv4l2bufferpool.c:913:gst_v4l2_buffer_pool_start:<v4l2src0:pool:src>
> failed to queue buffers into the capture queue
> 0:00:00.064394334   923       0x645c50 ERROR             bufferpool
> gstbufferpool.c:564:gst_buffer_pool_set_active:<v4l2src0:pool:src> start
> failed
> 0:00:00.064486602   923       0x645c50 WARN                 v4l2src
> gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Failed to
> allocate required memory.
> 0:00:00.064558738   923       0x645c50 WARN                 v4l2src
> gstv4l2src.c:663:gst_v4l2src_decide_allocation:<v4l2src0> error: Buffer pool
> activation failed
> 0:00:00.064901094   923       0x645c50 WARN                 basesrc
> gstbasesrc.c:3275:gst_base_src_prepare_allocation:<v4l2src0> Subclass failed
> to decide allocation
> 0:00:00.065041810   923       0x645c50 WARN                 basesrc
> gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: Internal data stream
> error.
> 0:00:00.065117960   923       0x645c50 WARN                 basesrc
> gstbasesrc.c:3055:gst_base_src_loop:<v4l2src0> error: streaming stopped,
> reason not-negotiated (-4)
> ERROR: from element /GstPipeline:pipeline0/GstV4l2Src:v4l2src0: Failed to
> allocate required memory.
> Additional debug info:
> ../../../git/sys/v4l2/gstv4l2src.c(663): gst_v4l2src_decide_allocation ():
> /GstPipeline:pipeline0/GstV4l2Src:v4l2src0:
> Buffer pool activation failed
> Execution ended after 0:00:00.007016015
> Setting pipeline to PAUSED ...
> Setting pipeline to READY ...
> 0:00:00.066706635   923       0x67fe30 DEBUG             bufferpool
> gstbufferpool.c:552:gst_buffer_pool_set_active:<v4l2src0:pool:src> pool was
> in the right state
> 0:00:00.067049135   923       0x67fe30 DEBUG             bufferpool
> gstbufferpool.c:197:gst_buffer_pool_finalize:<v4l2src0:pool:src>
> 0x7f516800a0c0 finalize
> 0:00:00.067081249   923       0x67fe30 DEBUG             bufferpool
> gstbufferpool.c:552:gst_buffer_pool_set_active:<v4l2src0:pool:src> pool was
> in the right state
> Setting pipeline to NULL ...
> Freeing pipeline ...
>
>
>
> --
> Sent from: http://gstreamer-devel.966125.n4.nabble.com/
> _______________________________________________
> gstreamer-devel mailing list
> [hidden email]
> https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

_______________________________________________
gstreamer-devel mailing list
[hidden email]
https://lists.freedesktop.org/mailman/listinfo/gstreamer-devel

signature.asc (201 bytes) Download Attachment