[ivtv-devel] cx18: Reprise of YUV frame alignment improvements

Devin Heitmueller dheitmueller at kernellabs.com
Mon Nov 23 04:04:06 CET 2009


On Tue, Nov 10, 2009 at 11:31 PM, Andy Walls <awalls at radix.net> wrote:
> OK, here's my second attempt at getting rid of cx18 YUV frame alignment
> and tearing issues.
>
>        http://linuxtv.org/hg/~awalls/cx18-yuv2

Hi Andy,

I did some testing of your tree, using the following command

mplayer /dev/video32 -demuxer rawvideo -rawvideo w=720:h=480:format=hm12:ntsc

and then in parallel run a series of make commands of the v4l-dvb tree

make -j2 && make unload && make -j2 && make unload && make -j2 && make
unload && make -j2 && make unload

I was definitely seeing the corruption by doing this test before your
patches (both frame alignment and colorspace problems as PCI frames
were being dropped).  After your change, I no longer see those
problems.  The picture never became misaligned.  However, it would
appear that some sort of regression may have been introduced with the
buffer handling.

I was seeing a continuous reporting of the following in dmesg, even
*after* I stopped generating the load by running the make commands.

[ 5175.703811] cx18-0: Could not find MDL 106 for stream encoder YUV
[ 5175.737380] cx18-0: Could not find MDL 111 for stream encoder YUV
[ 5175.804317] cx18-0: Skipped encoder YUV, MDL 96, 3 times - it must
have dropped out of rotation
[ 5175.804324] cx18-0: Skipped encoder YUV, MDL 101, 3 times - it must
have dropped out of rotation
[ 5175.904500] cx18-0: Skipped encoder YUV, MDL 96, 2 times - it must
have dropped out of rotation
[ 5176.204507] cx18-0: Skipped encoder YUV, MDL 101, 1 times - it must
have dropped out of rotation
[ 5176.204513] cx18-0: Skipped encoder YUV, MDL 96, 1 times - it must
have dropped out of rotation
[ 5176.204518] cx18-0: Could not find MDL 111 for stream encoder YUV

I would expect to see frame drops while the system was under high
load, but I would expect that the errors would stop once the load fell
back to something reasonable.  However, they continue to accumulate
even after the make commands stop and the only thing running on the
system is mplayer (with a CPU load of around 10%).

I think this tree is definitely on the right track, but it looks like
some edge case has been missed.

Devin

-- 
Devin J. Heitmueller - Kernel Labs
http://www.kernellabs.com



More information about the ivtv-devel mailing list