diff options
author | Gerd Knorr <devnull@localhost> | 2004-07-06 07:52:17 +0000 |
---|---|---|
committer | Gerd Knorr <devnull@localhost> | 2004-07-06 07:52:17 +0000 |
commit | 52dc3a0193dc7740cfcfcd71dc466ec2472b9050 (patch) | |
tree | 2794ba9312b12309700f76355c91dd04ea720ab1 | |
parent | 03c1f78cfb5abb16d0e6c16f1eeffd0d56e7a263 (diff) | |
download | mediapointer-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.c | 23 |
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)) { |