diff -ur v4l-dvb-old/linux/drivers/media/video/em28xx/em28xx-audio.c v4l-dvb-new/linux/drivers/media/video/em28xx/em28xx-audio.c --- v4l-dvb-old/linux/drivers/media/video/em28xx/em28xx-audio.c 2008-09-21 21:26:04.000000000 +0200 +++ v4l-dvb-new/linux/drivers/media/video/em28xx/em28xx-audio.c 2008-09-21 21:26:24.000000000 +0200 @@ -127,10 +127,10 @@ if (oldptr + length >= runtime->buffer_size) { unsigned int cnt = - runtime->buffer_size - oldptr - 1; + runtime->buffer_size - oldptr; memcpy(runtime->dma_area + oldptr * stride, cp, cnt * stride); - memcpy(runtime->dma_area, cp + cnt, + memcpy(runtime->dma_area, cp + cnt * stride, length * stride - cnt * stride); } else { memcpy(runtime->dma_area + oldptr * stride, cp, diff -ur v4l-dvb-old/linux/drivers/media/video/em28xx/em28xx-cards.c v4l-dvb-new/linux/drivers/media/video/em28xx/em28xx-cards.c --- v4l-dvb-old/linux/drivers/media/video/em28xx/em28xx-cards.c 2008-09-21 21:26:04.000000000 +0200 +++ v4l-dvb-new/linux/drivers/media/video/em28xx/em28xx-cards.c 2008-09-21 21:26:31.000000000 +0200 @@ -578,7 +578,7 @@ }, { .type = EM28XX_VMUX_COMPOSITE1, .vmux = TVP5150_COMPOSITE1, - .amux = 1, + .amux = 3, }, { .type = EM28XX_VMUX_SVIDEO, .vmux = TVP5150_SVIDEO,