mirror of
https://github.com/xenia-project/FFmpeg.git
synced 2024-11-24 20:19:55 +00:00
Correct chroma vector calculation for RealVideo 3.
Old version divided it wrong, which resulted in chroma drift (visible on FATE sample too as dirty trails left by clouds). Signed-off-by: Ronald S. Bultje <rsbultje@gmail.com>
This commit is contained in:
parent
73e8e8dbf9
commit
6f7fe4723b
@ -737,8 +737,8 @@ static inline void rv34_mc(RV34DecContext *r, const int block_type,
|
|||||||
my = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + (3 << 24)) / 3 - (1 << 24);
|
my = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + (3 << 24)) / 3 - (1 << 24);
|
||||||
lx = (s->current_picture_ptr->f.motion_val[dir][mv_pos][0] + (3 << 24)) % 3;
|
lx = (s->current_picture_ptr->f.motion_val[dir][mv_pos][0] + (3 << 24)) % 3;
|
||||||
ly = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + (3 << 24)) % 3;
|
ly = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + (3 << 24)) % 3;
|
||||||
chroma_mx = (s->current_picture_ptr->f.motion_val[dir][mv_pos][0] + 1) >> 1;
|
chroma_mx = s->current_picture_ptr->f.motion_val[dir][mv_pos][0] / 2;
|
||||||
chroma_my = (s->current_picture_ptr->f.motion_val[dir][mv_pos][1] + 1) >> 1;
|
chroma_my = s->current_picture_ptr->f.motion_val[dir][mv_pos][1] / 2;
|
||||||
umx = (chroma_mx + (3 << 24)) / 3 - (1 << 24);
|
umx = (chroma_mx + (3 << 24)) / 3 - (1 << 24);
|
||||||
umy = (chroma_my + (3 << 24)) / 3 - (1 << 24);
|
umy = (chroma_my + (3 << 24)) / 3 - (1 << 24);
|
||||||
uvmx = chroma_coeffs[(chroma_mx + (3 << 24)) % 3];
|
uvmx = chroma_coeffs[(chroma_mx + (3 << 24)) % 3];
|
||||||
|
@ -16,31 +16,31 @@
|
|||||||
0, 112500, 126720, 0xe572dfc9
|
0, 112500, 126720, 0xe572dfc9
|
||||||
0, 120000, 126720, 0xbc3cc34f
|
0, 120000, 126720, 0xbc3cc34f
|
||||||
0, 127500, 126720, 0xcf8cb0e2
|
0, 127500, 126720, 0xcf8cb0e2
|
||||||
0, 135000, 126720, 0x6d1c630d
|
0, 135000, 126720, 0x75ae61b6
|
||||||
0, 142500, 126720, 0x4338e469
|
0, 142500, 126720, 0x554fe3e4
|
||||||
0, 150000, 126720, 0x9d82ea38
|
0, 150000, 126720, 0x72ecea95
|
||||||
0, 157500, 126720, 0x55e0b559
|
0, 157500, 126720, 0x5d00b5fe
|
||||||
0, 165000, 126720, 0x5eefb5ef
|
0, 165000, 126720, 0xe39bba0d
|
||||||
0, 172500, 126720, 0x4b10b746
|
0, 172500, 126720, 0x9c21bad8
|
||||||
0, 180000, 126720, 0x8b07a1db
|
0, 180000, 126720, 0x72f2a47d
|
||||||
0, 187500, 126720, 0x8c639b34
|
0, 187500, 126720, 0x4f639ebe
|
||||||
0, 195000, 126720, 0x63eb0b9f
|
0, 195000, 126720, 0x534a10cc
|
||||||
0, 202500, 126720, 0x31c80c83
|
0, 202500, 126720, 0xfdca11d3
|
||||||
0, 210000, 126720, 0x78495352
|
0, 210000, 126720, 0x0c735615
|
||||||
0, 217500, 126720, 0x63d609c4
|
0, 217500, 126720, 0x0eaf0c1b
|
||||||
0, 225000, 126720, 0xcd2a62d8
|
0, 225000, 126720, 0xce5e6794
|
||||||
0, 232500, 126720, 0x4aea732d
|
0, 232500, 126720, 0x14cf7974
|
||||||
0, 240000, 126720, 0xe3bb352c
|
0, 240000, 126720, 0xbc513f2a
|
||||||
0, 247500, 126720, 0x4b9036ad
|
0, 247500, 126720, 0xbc303fae
|
||||||
0, 255000, 126720, 0x88b66e2d
|
0, 255000, 126720, 0xd9f67585
|
||||||
0, 262500, 126720, 0x4a8a1b16
|
0, 262500, 126720, 0x3378251f
|
||||||
0, 270000, 126720, 0x2e014eac
|
0, 270000, 126720, 0xb3ed5911
|
||||||
0, 277500, 126720, 0x83212c67
|
0, 277500, 126720, 0xc15a3577
|
||||||
0, 285000, 126720, 0x4937e897
|
0, 285000, 126720, 0x0a24f256
|
||||||
0, 292500, 126720, 0x2d38babe
|
0, 292500, 126720, 0xfab9c45d
|
||||||
0, 300000, 126720, 0xbcb43c09
|
0, 300000, 126720, 0x45464610
|
||||||
0, 307500, 126720, 0x955ffaf4
|
0, 307500, 126720, 0xfe2e057d
|
||||||
0, 315000, 126720, 0x3337d4a2
|
0, 315000, 126720, 0x23efdc35
|
||||||
0, 322500, 126720, 0xe8f58c33
|
0, 322500, 126720, 0x4d888b2e
|
||||||
0, 330000, 126720, 0x3a7f771f
|
0, 330000, 126720, 0xdd0d74df
|
||||||
0, 337500, 126720, 0xb67c39b9
|
0, 337500, 126720, 0x08382b8e
|
||||||
|
Loading…
Reference in New Issue
Block a user