On 02/07/2013 12:53 AM, Sylwester Nawrocki wrote:
root@mini2440:~ echo 100 > /sys/module/videobuf2_core/parameters/debug root@mini2440:~ gst-launch -v v4l2src device=/dev/video0 queue-size=2 ! video/x-raw-yuv,format='(fourcc)'YV12 ! ffmpegcolorspace ! fbdevsink root@mini2440:~ dmesg -c [ 1907.110000] s3c-camif s3c2440-camif: dma_alloc_coherent of size 12582912 failed [ 1907.115000] vb2: Failed allocating memory for buffer 1 The error is ignored here, it should all fail at this point. [ 1907.120000] vb2: Buffer 0, plane 0 offset 0x00000000 [ 1907.125000] vb2: Allocated 1 buffers, 1 plane(s) each [ 1907.220000] vb2: Buffer 0, plane 0 successfully mapped [ 1907.225000] vb2: qbuf of buffer 0 succeeded [ 1907.230000] vb2: Streamon successful
I've found there is a bug in the driver. It happens that only one buffer out of two gets allocated and the minimum required for the driver to start streaming is 2. I've pushed a patch fixing this bug [1] to the 3.7 based testing/s3c-camif branch. I'll post it to LMML in a minute. It won't really solve your problem, but at least there is now clear indication what's wrong, and the application should not get stuck. Please check you CMA memory region size. I suspect that you use the default 16 MB and it allows you to allocate only one buffer. 16 MB might still be sufficient for 1280x1024 - OV9650's maximum resolution. Anyway, it might be worth to check what CONFIG_CMA_SIZE_MBYTES is set to. (Device drivers -> Generic Driver Options -> Contiguous Memory Allocator)
[23:07]<KaKaRoTo> which is also why it freezes (doesn't output buffers) instead of giving an error when you try to set that resolution
Thanks, Sylwester -- To unsubscribe from this list: send the line "unsubscribe linux-media" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html