diff --git a/source/app/ViewArea.cpp b/source/app/ViewArea.cpp index da107b1..9f84703 100644 --- a/source/app/ViewArea.cpp +++ b/source/app/ViewArea.cpp @@ -268,7 +268,6 @@ void ViewArea::updateOffset() { m_xOffset = 0; } - if( height() > m_pixmap.height() * m_zoomFactor ) { m_yOffset = ( height() - m_pixmap.height() * m_zoomFactor ) / 2; @@ -373,9 +372,9 @@ void ViewArea::paintEvent( QPaintEvent *event ) QRect pixelRect( viewToWindow( pixelTopLeft ), QSize( m_zoomFactor, m_zoomFactor ) ); - Int frFormat = m_pcCurrFrame->getPelFormat(); + Int frFormat = m_pcCurrFrame->getColorSpace(); - if( (frFormat==PlaYUVerFrame::COLOR_YUV) || (frFormat==PlaYUVerFrame::COLOR_GRAY) ) + if( frFormat == PlaYUVerFrame::COLOR_YUV ) { sPixelValue = m_pcCurrFrame->getPixelValue( pixelTopLeft.x(), pixelTopLeft.y(), PlaYUVerFrame::COLOR_YUV ); @@ -384,32 +383,39 @@ void ViewArea::paintEvent( QPaintEvent *event ) else painter.setPen( QColor( Qt::black ) ); - painter.drawText( pixelRect, Qt::AlignCenter, "Y: " + QString::number( sPixelValue.Luma ) + "\n" + - "U: " + QString::number( sPixelValue.ChromaU ) + "\n" + - "V: " + QString::number( sPixelValue.ChromaV )); + painter.drawText( pixelRect, Qt::AlignCenter, + "Y: " + QString::number( sPixelValue.Luma ) + "\n" + "U: " + QString::number( sPixelValue.ChromaU ) + "\n" + "V: " + + QString::number( sPixelValue.ChromaV ) ); } - else + if( frFormat == PlaYUVerFrame::COLOR_GRAY ) { - if( (frFormat==PlaYUVerFrame::COLOR_RGB) ) - { - sPixelValue = m_pcCurrFrame->getPixelValue( pixelTopLeft.x(), pixelTopLeft.y(), PlaYUVerFrame::COLOR_RGB ); + sPixelValue = m_pcCurrFrame->getPixelValue( pixelTopLeft.x(), pixelTopLeft.y(), PlaYUVerFrame::COLOR_YUV ); - if( ( sPixelValue.ColorR + sPixelValue.ColorG + sPixelValue.ColorB ) < 128*3 ) - painter.setPen( QColor( Qt::white ) ); - else - painter.setPen( QColor( Qt::black ) ); - - painter.drawText( pixelRect, Qt::AlignCenter, "R: " + QString::number( sPixelValue.ColorR ) + "\n" + - "G: " + QString::number( sPixelValue.ColorG ) + "\n" + - "B: " + QString::number( sPixelValue.ColorB )); - } + if( sPixelValue.Luma < 128 ) + painter.setPen( QColor( Qt::white ) ); else - assert(0); + painter.setPen( QColor( Qt::black ) ); + + painter.drawText( pixelRect, Qt::AlignCenter, "Y: " + QString::number( sPixelValue.Luma ) ); } + if( ( frFormat == PlaYUVerFrame::COLOR_RGB ) ) + { + sPixelValue = m_pcCurrFrame->getPixelValue( pixelTopLeft.x(), pixelTopLeft.y(), PlaYUVerFrame::COLOR_RGB ); + + if( ( sPixelValue.ColorR + sPixelValue.ColorG + sPixelValue.ColorB ) < 128 * 3 ) + painter.setPen( QColor( Qt::white ) ); + else + painter.setPen( QColor( Qt::black ) ); + + painter.drawText( pixelRect, Qt::AlignCenter, + "R: " + QString::number( sPixelValue.ColorR ) + "\n" + "G: " + QString::number( sPixelValue.ColorG ) + "\n" + "B: " + + QString::number( sPixelValue.ColorB ) ); + } } } + QColor color( Qt::white ); QPen mainPen = QPen( color, 1, Qt::SolidLine ); painter.setPen( mainPen ); diff --git a/source/app/plaYUVerApp.cpp b/source/app/plaYUVerApp.cpp index bab0367..db0cc14 100644 --- a/source/app/plaYUVerApp.cpp +++ b/source/app/plaYUVerApp.cpp @@ -694,9 +694,13 @@ Void plaYUVerApp::seekEvent( Int direction ) { if( m_acPlayingSubWindows.contains( m_pcCurrentSubWindow ) ) { - for( Int i = 0; i < m_acPlayingSubWindows.size(); i++ ) + Int frame_num = m_pcCurrentSubWindow->getInputStream()->getCurrFrameNum(); + if( !( (frame_num + 1) >= getMaxFrameNumber() && direction > 0 ) ) { - m_acPlayingSubWindows.at( i )->seekRelativeEvent( direction > 0 ? true : false ); + for( Int i = 0; i < m_acPlayingSubWindows.size(); i++ ) + { + m_acPlayingSubWindows.at( i )->seekRelativeEvent( direction > 0 ? true : false ); + } } } else @@ -745,6 +749,8 @@ Void plaYUVerApp::lockButtonEvent() m_acPlayingSubWindows.clear(); } } + updateCurrFrameNum(); + updateTotalFrameNum(); } Void plaYUVerApp::videoSelectionButtonEvent() diff --git a/source/lib/PlaYUVerFrame.cpp b/source/lib/PlaYUVerFrame.cpp index b86df59..45d569f 100644 --- a/source/lib/PlaYUVerFrame.cpp +++ b/source/lib/PlaYUVerFrame.cpp @@ -390,12 +390,12 @@ Void PlaYUVerFrame::FrametoRGB8() for( UInt y = 0; y < m_uiHeight; y++ ) for( UInt x = 0; x < m_uiWidth; x++ ) { - iY = *pInputPelY++; - //yuvToRgb( iY, iY, iY, iR, iG, iB ); + iY = *pInputPelY; iR = iG = iB = iY; *pcRGBPelInterlaced++ = iR; *pcRGBPelInterlaced++ = iG; *pcRGBPelInterlaced++ = iB; + pInputPelY++; } break; case RGB8: