VPM: fix to coverity issues 10255-10258 (unintended sign extension).
Review URL: https://webrtc-codereview.appspot.com/532002 git-svn-id: http://webrtc.googlecode.com/svn/trunk@2140 4adac7df-926f-26a2-2b94-8c16560cd09d
This commit is contained in:
parent
ca08c41701
commit
2d0223286b
@ -64,10 +64,11 @@ VPMContentAnalysis::ComputeContentMetrics(const VideoFrame* inputFrame)
|
||||
}
|
||||
|
||||
// Init if needed (native dimension change)
|
||||
if (_width != inputFrame->Width() || _height != inputFrame->Height())
|
||||
if (_width != static_cast<int>(inputFrame->Width()) ||
|
||||
_height != static_cast<int>(inputFrame->Height()))
|
||||
{
|
||||
if (VPM_OK != Initialize((WebRtc_UWord16)inputFrame->Width(),
|
||||
(WebRtc_UWord16)inputFrame->Height()))
|
||||
if (VPM_OK != Initialize(static_cast<int>(inputFrame->Width()),
|
||||
static_cast<int>(inputFrame->Height())))
|
||||
{
|
||||
return NULL;
|
||||
}
|
||||
@ -114,7 +115,7 @@ VPMContentAnalysis::Release()
|
||||
}
|
||||
|
||||
WebRtc_Word32
|
||||
VPMContentAnalysis::Initialize(WebRtc_UWord16 width, WebRtc_UWord16 height)
|
||||
VPMContentAnalysis::Initialize(int width, int height)
|
||||
{
|
||||
_width = width;
|
||||
_height = height;
|
||||
@ -190,24 +191,23 @@ WebRtc_Word32
|
||||
VPMContentAnalysis::TemporalDiffMetric_C()
|
||||
{
|
||||
// size of original frame
|
||||
WebRtc_UWord16 sizei = _height;
|
||||
WebRtc_UWord16 sizej = _width;
|
||||
int sizei = _height;
|
||||
int sizej = _width;
|
||||
|
||||
WebRtc_UWord32 tempDiffSum = 0;
|
||||
WebRtc_UWord32 pixelSum = 0;
|
||||
WebRtc_UWord64 pixelSqSum = 0;
|
||||
|
||||
WebRtc_UWord32 numPixels = 0; // counter for # of pixels
|
||||
WebRtc_UWord32 ssn;
|
||||
|
||||
const WebRtc_Word32 width_end = ((_width - 2*_border) & -16) + _border;
|
||||
const int width_end = ((_width - 2*_border) & -16) + _border;
|
||||
|
||||
for(WebRtc_UWord16 i = _border; i < sizei - _border; i += _skipNum)
|
||||
for(int i = _border; i < sizei - _border; i += _skipNum)
|
||||
{
|
||||
for(WebRtc_UWord16 j = _border; j < width_end; j++)
|
||||
for(int j = _border; j < width_end; j++)
|
||||
{
|
||||
numPixels += 1;
|
||||
ssn = i * sizej + j;
|
||||
int ssn = i * sizej + j;
|
||||
|
||||
WebRtc_UWord8 currPixel = _origFrame[ssn];
|
||||
WebRtc_UWord8 prevPixel = _prevFrame[ssn];
|
||||
@ -254,8 +254,8 @@ WebRtc_Word32
|
||||
VPMContentAnalysis::ComputeSpatialMetrics_C()
|
||||
{
|
||||
//size of original frame
|
||||
const WebRtc_UWord16 sizei = _height;
|
||||
const WebRtc_UWord16 sizej = _width;
|
||||
const int sizei = _height;
|
||||
const int sizej = _width;
|
||||
|
||||
// pixel mean square average: used to normalize the spatial metrics
|
||||
WebRtc_UWord32 pixelMSA = 0;
|
||||
@ -265,19 +265,18 @@ VPMContentAnalysis::ComputeSpatialMetrics_C()
|
||||
WebRtc_UWord32 spatialErrHSum = 0;
|
||||
|
||||
// make sure work section is a multiple of 16
|
||||
const WebRtc_UWord32 width_end = ((sizej - 2*_border) & -16) + _border;
|
||||
const int width_end = ((sizej - 2*_border) & -16) + _border;
|
||||
|
||||
for(WebRtc_UWord16 i = _border; i < sizei - _border; i += _skipNum)
|
||||
for(int i = _border; i < sizei - _border; i += _skipNum)
|
||||
{
|
||||
for(WebRtc_UWord16 j = _border; j < width_end; j++)
|
||||
for(int j = _border; j < width_end; j++)
|
||||
{
|
||||
WebRtc_UWord32 ssn1,ssn2,ssn3,ssn4,ssn5;
|
||||
|
||||
ssn1= i * sizej + j;
|
||||
ssn2 = (i + 1) * sizej + j; // bottom
|
||||
ssn3 = (i - 1) * sizej + j; // top
|
||||
ssn4 = i * sizej + j + 1; // right
|
||||
ssn5 = i * sizej + j - 1; // left
|
||||
int ssn1= i * sizej + j;
|
||||
int ssn2 = (i + 1) * sizej + j; // bottom
|
||||
int ssn3 = (i - 1) * sizej + j; // top
|
||||
int ssn4 = i * sizej + j + 1; // right
|
||||
int ssn5 = i * sizej + j - 1; // left
|
||||
|
||||
WebRtc_UWord16 refPixel1 = _origFrame[ssn1] << 1;
|
||||
WebRtc_UWord16 refPixel2 = _origFrame[ssn1] << 2;
|
||||
|
@ -29,7 +29,7 @@ public:
|
||||
// extractContentFeature
|
||||
// Inputs: width, height
|
||||
// Return value: 0 if OK, negative value upon error
|
||||
WebRtc_Word32 Initialize(WebRtc_UWord16 width, WebRtc_UWord16 height);
|
||||
WebRtc_Word32 Initialize(int width, int height);
|
||||
|
||||
// Extract content Feature - main function of ContentAnalysis
|
||||
// Input: new frame
|
||||
@ -67,10 +67,10 @@ private:
|
||||
|
||||
const WebRtc_UWord8* _origFrame;
|
||||
WebRtc_UWord8* _prevFrame;
|
||||
WebRtc_UWord16 _width;
|
||||
WebRtc_UWord16 _height;
|
||||
WebRtc_UWord32 _skipNum;
|
||||
WebRtc_Word32 _border;
|
||||
int _width;
|
||||
int _height;
|
||||
int _skipNum;
|
||||
int _border;
|
||||
|
||||
// Content Metrics:
|
||||
// stores the local average of the metrics
|
||||
|
Loading…
x
Reference in New Issue
Block a user