summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGerd Knorr <devnull@localhost>2004-07-06 07:52:17 +0000
committerGerd Knorr <devnull@localhost>2004-07-06 07:52:17 +0000
commit52dc3a0193dc7740cfcfcd71dc466ec2472b9050 (patch)
tree2794ba9312b12309700f76355c91dd04ea720ab1
parent03c1f78cfb5abb16d0e6c16f1eeffd0d56e7a263 (diff)
downloadmediapointer-dvb-s2-52dc3a0193dc7740cfcfcd71dc466ec2472b9050.tar.gz
mediapointer-dvb-s2-52dc3a0193dc7740cfcfcd71dc466ec2472b9050.tar.bz2
- bttv: finetune chroma lines used for yuv planar modes (based on patch
by Michael Niedermayer).
-rw-r--r--linux/drivers/media/video/bttv-risc.c23
1 files changed, 19 insertions, 4 deletions
diff --git a/linux/drivers/media/video/bttv-risc.c b/linux/drivers/media/video/bttv-risc.c
index 769c7e365..523f77ad4 100644
--- a/linux/drivers/media/video/bttv-risc.c
+++ b/linux/drivers/media/video/bttv-risc.c
@@ -145,11 +145,26 @@ bttv_risc_planar(struct bttv *btv, struct btcx_riscmem *risc,
(line >= (ylines - VCR_HACK_LINES)))
continue;
switch (vshift) {
- case 0: chroma = 1; break;
- case 1: chroma = !(line & 1); break;
- case 2: chroma = !(line & 3); break;
- default: chroma = 0;
+ case 0:
+ chroma = 1;
+ break;
+ case 1:
+ if (!yoffset)
+ chroma = (line & 1) == 0;
+ else
+ chroma = (line & 1) == 1;
+ break;
+ case 2:
+ if (!yoffset)
+ chroma = (line & 3) == 0;
+ else
+ chroma = (line & 3) == 2;
+ break;
+ default:
+ chroma = 0;
+ break;
}
+
for (todo = ybpl; todo > 0; todo -= ylen) {
/* go to next sg entry if needed */
while (yoffset && yoffset >= sg_dma_len(ysg)) {