[Theora-dev] 16 bits, cast on idct function
Felipe Portavales Goldstein
portavales at gmail.com
Tue May 30 23:07:03 PDT 2006
Just a stupid question
The IDctSlow function on file idct.c has this line :
ip = (ogg_int16_t)((_Gd + _Cd ) >> 0);
The ip , _Gd and _Cd are of type ogg_int32_t
My question is:
The result of (_Gd + _Cd) can be a number with more than 16 bits ?
(yes, it can be because they are int32, but the algorithm could
guarantee something about that... I dont know...)
If can, the cast (ogg_int16_t) will truncate the number to the 16 less
significant bits, and will get a wrong result...
the ip is 32 bits, so, why truncate to 16 bits ?
But I'm realy confused with the >> 0 ,
This shift right zero can do something or someone just forgot to delete it ?
More information about the Theora-dev