FS#35931 - [linux] 3.9.x firewire camera - DMA ring buffer being read/played twice

Attached to Project: Arch Linux
Opened by Stepan Salenikovich (ssalenik) - Tuesday, 25 June 2013, 17:33 GMT
Last edited by Tobias Powalowski (tpowa) - Monday, 05 August 2013, 20:41 GMT
Task Type Bug Report
Category Kernel
Status Closed
Assigned To Tobias Powalowski (tpowa)
Thomas Bächler (brain0)
Architecture x86_64
Severity High
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
I have a firewire camera (Imagingsource DFK 41BF02.h) and I am using Coriander to get images (video) from the camera. The issue is that on the video buffer seems to get played twice. That is, whatever happens in front of the camera is shown twice. The period of repetition depends on the size of the 'DMA ring buffer' which I can set in Coriander.

I'm not sure that its the kernel which is at fault, but I think I have eliminated the possibility of any relevant package being the culprit.

From my understanding, Coriander is basically a front end for the libdc1394 library which depends on libraw1394. The issue doesn't seem to be with Coriander, as an application which was developed in house has the same issue when built and run on my machine. If I boot into Ubuntu 12.04 on another partition, the camera works as it should in both Coriander and our application. That version of ubuntu seems to be using a slightly older version of the libdc1394 and libraw1394. However, I have tried downgrading these packages in Arch and compiling them from the latest source and the issue has persisted. I have also tried using Coriander 2.0.1-1 from the AUR and compiling 2.0.2 from the source.

Additional info:
* package version(s) tried:
linux 3.9.7-1
libdc1394 2.2.1-1, 2.1.3-2, (and 2.2.1 from source)
libraw1394 2.1.0-1, 2.0.5-1, (and 2.0.5 from source)
Coriander 2.0.1-1 (AUR), and 2.0.2 from source

Steps to reproduce:
Install libraw1394 and Coriander and make sure you have 'video' group permissions.
Plug in firewire (non DV) camera.
Launch Coriander and click on 'display' in the 'services' tab.
Display window should now repeat every X number of frames, where X is the DMA ring buffer size set in the 'capture options'
This task depends upon

Closed by  Tobias Powalowski (tpowa)
Monday, 05 August 2013, 20:41 GMT
Reason for closing:  Fixed
Additional comments about closing:  3.10.5
Comment by Stepan Salenikovich (ssalenik) - Tuesday, 25 June 2013, 22:26 GMT
Ok, another thing I noticed is that this problem doesn't occur if I put the camera into B&W mode, that is, if I switch the pixel mode from YUV422 to MONO8 (mono 8bpp), then the issue goes away.
Comment by Stepan Salenikovich (ssalenik) - Wednesday, 26 June 2013, 18:25 GMT
So I just tried switching to the 'linux-lts' package kernel (3.0.83-1)and the issue goes away...

I reported this upstream:
https://bugzilla.kernel.org/show_bug.cgi?id=60171
Comment by Tobias Powalowski (tpowa) - Tuesday, 30 July 2013, 10:40 GMT
Status on 3.10.x?
Comment by Stepan Salenikovich (ssalenik) - Wednesday, 31 July 2013, 19:43 GMT
A patch has been added to the 3.10-stable tree:

"http://www.mail-archive.com/stable@vger.kernel.org/msg48667.html"

EDIT: looks like this system doesn't like links with '@' in them

Loading...