summaryrefslogtreecommitdiff
path: root/libavcodec/vc1.c
diff options
context:
space:
mode:
authorKostya Shishkov <kostya.shishkov@gmail.com>2006-08-31 04:44:54 +0000
committerKostya Shishkov <kostya.shishkov@gmail.com>2006-08-31 04:44:54 +0000
commit74691b7bcb0f3a0e4fb3e15dcc1a3270237079b7 (patch)
treeaca962e181feb55b3e8a984e6dae4bc424062274 /libavcodec/vc1.c
parent2d5eadccb5c96b461861ad0a3434863615f80867 (diff)
downloadffmpeg-74691b7bcb0f3a0e4fb3e15dcc1a3270237079b7.tar.gz
New qpel MC functions conforming to VC-1 standard.
Existing DSPUtil functions cause chroma artifacts on some files. Originally committed as revision 6139 to svn://svn.ffmpeg.org/ffmpeg/trunk
Diffstat (limited to 'libavcodec/vc1.c')
-rw-r--r--libavcodec/vc1.c18
1 files changed, 4 insertions, 14 deletions
diff --git a/libavcodec/vc1.c b/libavcodec/vc1.c
index 8a5cf20b06..7e76ecdad9 100644
--- a/libavcodec/vc1.c
+++ b/libavcodec/vc1.c
@@ -879,13 +879,8 @@ static void vc1_mc_1mv(VC1Context *v, int dir)
if(s->flags & CODEC_FLAG_GRAY) return;
/* Chroma MC always uses qpel bilinear */
uvdxy = ((uvmy & 3) << 2) | (uvmx & 3);
- if(!v->rnd){
- dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
- dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
- }else{
- dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
- dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
- }
+ dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[1], srcU, s->uvlinesize, v->rnd);
+ dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[2], srcV, s->uvlinesize, v->rnd);
}
/** Do motion compensation for 4-MV macroblock - luminance block
@@ -1082,13 +1077,8 @@ static void vc1_mc_4mv_chroma(VC1Context *v)
/* Chroma MC always uses qpel bilinear */
uvdxy = ((uvmy & 3) << 2) | (uvmx & 3);
- if(!v->rnd){
- dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
- dsp->put_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
- }else{
- dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[1], srcU, s->uvlinesize);
- dsp->put_no_rnd_qpel_pixels_tab[1][uvdxy](s->dest[2], srcV, s->uvlinesize);
- }
+ dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[1], srcU, s->uvlinesize, v->rnd);
+ dsp->put_vc1_qpel_pixels_tab[uvdxy](s->dest[2], srcV, s->uvlinesize, v->rnd);
}
/**