Merge branch 'master' into devel
This commit is contained in:
+28
-19
@@ -43,7 +43,8 @@ FrameShift::FrameShift()
|
||||
( "ShiftVertical", m_iShiftVer, "Amount of pixels to shift in vertical direction" );
|
||||
|
||||
m_pcProcessedFrame = NULL;
|
||||
m_iShiftHor = 10;
|
||||
m_iShiftHor = 0;
|
||||
m_iShiftVer = 0;
|
||||
}
|
||||
|
||||
Bool FrameShift::create( std::vector<PlaYUVerFrame*> apcFrameList )
|
||||
@@ -51,7 +52,8 @@ Bool FrameShift::create( std::vector<PlaYUVerFrame*> apcFrameList )
|
||||
_BASIC_MODULE_API_2_CHECK_
|
||||
m_pcProcessedFrame = new PlaYUVerFrame( apcFrameList[0], false );
|
||||
|
||||
m_iShiftHor = ( ( m_iShiftHor + 1 ) >> 1 ) << 1;
|
||||
// m_iShiftHor = ( ( m_iShiftHor + 1 ) >> 1 ) << 1;
|
||||
// m_iShiftVer = ( ( m_iShiftVer + 1 ) >> 1 ) << 1;
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -64,18 +66,16 @@ PlaYUVerFrame* FrameShift::process( std::vector<PlaYUVerFrame*> apcFrameList )
|
||||
UInt xStartIn = m_iShiftHor >= 0 ? 0 : -m_iShiftHor;
|
||||
UInt xEndOut = m_iShiftHor >= 0 ? m_pcProcessedFrame->getWidth() : m_pcProcessedFrame->getWidth() + m_iShiftHor;
|
||||
|
||||
UInt yStartOut = m_iShiftVer >= 0 ? 0 : -m_iShiftVer;
|
||||
UInt yStartIn = m_iShiftVer >= 0 ? m_iShiftVer : 0;
|
||||
UInt yEndOut = m_iShiftVer >= 0 ? m_pcProcessedFrame->getHeight() - m_iShiftVer : m_pcProcessedFrame->getHeight();
|
||||
|
||||
UInt numberLines = yEndOut - yStartOut;
|
||||
UInt yStartOut = m_iShiftVer >= 0 ? m_iShiftVer : 0;
|
||||
UInt yStartIn = m_iShiftVer >= 0 ? 0 : -m_iShiftVer;
|
||||
UInt yEndOut = m_iShiftVer >= 0 ? m_pcProcessedFrame->getHeight() : m_pcProcessedFrame->getHeight() + m_iShiftVer;
|
||||
|
||||
m_pcProcessedFrame->clear();
|
||||
|
||||
for( UInt y = 0; y < numberLines; y++ )
|
||||
for( UInt y = yStartOut, yIn = yStartIn; y < yEndOut; y++, yIn++ )
|
||||
{
|
||||
pPelInput = &( apcFrameList[0]->getPelBufferYUV()[LUMA][y + yStartIn][xStartIn] );
|
||||
pPelOut = &( m_pcProcessedFrame->getPelBufferYUV()[LUMA][y + yStartOut][xStartOut] );
|
||||
pPelInput = &( apcFrameList[0]->getPelBufferYUV()[LUMA][yIn][xStartIn] );
|
||||
pPelOut = &( m_pcProcessedFrame->getPelBufferYUV()[LUMA][y][xStartOut] );
|
||||
for( UInt x = xStartOut; x < xEndOut; x++ )
|
||||
{
|
||||
*pPelOut = *pPelInput;
|
||||
@@ -91,18 +91,17 @@ PlaYUVerFrame* FrameShift::process( std::vector<PlaYUVerFrame*> apcFrameList )
|
||||
xStartIn = iShiftHorChroma >= 0 ? 0 : -iShiftHorChroma;
|
||||
xEndOut = iShiftHorChroma >= 0 ? m_pcProcessedFrame->getChromaWidth() : m_pcProcessedFrame->getChromaWidth() + iShiftHorChroma;
|
||||
|
||||
yStartOut = iShiftVerChroma >= 0 ? 0 : -iShiftVerChroma;
|
||||
yStartIn = iShiftVerChroma >= 0 ? iShiftVerChroma : 0;
|
||||
yEndOut = iShiftVerChroma >= 0 ? m_pcProcessedFrame->getChromaHeight() - iShiftVerChroma : m_pcProcessedFrame->getChromaHeight();
|
||||
yStartOut = iShiftVerChroma >= 0 ? iShiftVerChroma : 0;
|
||||
yStartIn = iShiftVerChroma >= 0 ? 0 : -iShiftVerChroma;
|
||||
yEndOut = iShiftVerChroma >= 0 ? m_pcProcessedFrame->getChromaHeight() : m_pcProcessedFrame->getChromaHeight() + iShiftVerChroma;
|
||||
|
||||
numberLines = yEndOut - yStartOut;
|
||||
|
||||
for( UInt c = 1; c < m_pcProcessedFrame->getNumberChannels(); c++ )
|
||||
{
|
||||
for( UInt y = 0; y < numberLines; y++ )
|
||||
for( UInt y = yStartOut, yIn = yStartIn; y < yEndOut; y++, yIn++ )
|
||||
{
|
||||
pPelInput = &( apcFrameList[0]->getPelBufferYUV()[c][y + yStartIn][xStartIn] );
|
||||
pPelOut = &( m_pcProcessedFrame->getPelBufferYUV()[c][y + yStartOut][xStartOut] );
|
||||
pPelInput = &( apcFrameList[0]->getPelBufferYUV()[c][yIn][xStartIn] );
|
||||
pPelOut = &( m_pcProcessedFrame->getPelBufferYUV()[c][y][xStartOut] );
|
||||
for( UInt x = xStartOut; x < xEndOut; x++ )
|
||||
{
|
||||
*pPelOut = *pPelInput;
|
||||
@@ -118,12 +117,22 @@ Bool FrameShift::keyPressed( enum Module_Key_Supported value )
|
||||
{
|
||||
if( value == MODULE_KEY_LEFT )
|
||||
{
|
||||
m_iShiftHor -= 2;
|
||||
m_iShiftHor -= 1;
|
||||
return true;
|
||||
}
|
||||
if( value == MODULE_KEY_RIGHT )
|
||||
{
|
||||
m_iShiftHor += 2;
|
||||
m_iShiftHor += 1;
|
||||
return true;
|
||||
}
|
||||
if( value == MODULE_KEY_UP )
|
||||
{
|
||||
m_iShiftVer -= 1;
|
||||
return true;
|
||||
}
|
||||
if( value == MODULE_KEY_DOWN )
|
||||
{
|
||||
m_iShiftVer += 1;
|
||||
return true;
|
||||
}
|
||||
if( value == MODULE_KEY_DOWN )
|
||||
|
||||
Reference in New Issue
Block a user