vtprotocolplugins/DisplaySink/src/CDisplaySinkDP.cpp
changeset 18 d9b6a8729acd
parent 4 6dc066157ed4
child 23 c378a0498b84
child 27 dcbddbbaf8fd
--- a/vtprotocolplugins/DisplaySink/src/CDisplaySinkDP.cpp	Tue Jan 26 12:01:21 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,309 +0,0 @@
-/*
-* Copyright (c) 2004 Nokia Corporation and/or its subsidiary(-ies).
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of "Eclipse Public License v1.0"
-* which accompanies this distribution, and is available
-* at the URL "http://www.eclipse.org/legal/epl-v10.html".
-*
-* Initial Contributors:
-* Nokia Corporation - initial contribution.
-*
-* Contributors:
-*
-* Description:  Display Sink subsystem for Display Posting.
-*
-*/
-
-
-// INCLUDE FILES
-
-#include "CDisplaySinkDP.h"
-#include "vtyuvconverter.h"
-
-// MACROS
-
-#ifdef _DEBUG
-    #include <e32debug.h>
-    #define PRINT RDebug::Print
-    #define _IFDBG(a) a
-#else
-    #define PRINT
-    #define _IFDBG(a)
-#endif
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::NewL
-// -----------------------------------------------------------------------------
-//
-CDisplaySinkDP* CDisplaySinkDP::NewL( TDisplaySinkParams& aParams,
-        const TDesC8& aInitData )
-    {
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NewL()<"), RThread().Id().operator TUint()));
-    CDisplaySinkDP* self = new ( ELeave ) CDisplaySinkDP();
-    CleanupStack::PushL( self );
-    self->ConstructL( aParams, aInitData );
-    CleanupStack::Pop(); // self
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NewL()>"), RThread().Id().operator TUint()));
-    return self;
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::CDisplaySinkDP
-// -----------------------------------------------------------------------------
-//
-CDisplaySinkDP::CDisplaySinkDP()
-    {
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::Ctor<"), RThread().Id().operator TUint()));
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::Ctor>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::~CDisplaySinkDP
-// -----------------------------------------------------------------------------
-//
-CDisplaySinkDP::~CDisplaySinkDP()
-    {
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::~<"), RThread().Id().operator TUint()));
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::~>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseConstructL
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseConstructL( TDisplaySinkParams& aParams,
-    const TDesC8& )
-    {
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConstructL()<"), RThread().Id().operator TUint()));
-    iNewParams = static_cast< const TDisplaySinkParamsDP& >( aParams );
-	if ( !iNewParams.iPostingBuffer1 || !iNewParams.iPostingBuffer2 )
-	    {
-        _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConstructL() posting buffer is NULL!")));
-	    User::Leave( KErrArgument );
-	    }
-    iBitmapTable[EFirstBitmap].iBuffer = iNewParams.iPostingBuffer1;
-	iBitmapTable[ESecondBitmap].iBuffer = iNewParams.iPostingBuffer2;
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConstructL()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseConvert
-// -----------------------------------------------------------------------------
-//
-TBool CDisplaySinkDP::BaseConvert( const TVtMMFDataBuffer& aBuffer )
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert()<"), RThread().Id().operator TUint()));
-
-    TBool consumed( ETrue );
-    TBitmapNo bitmapNo( iBitmapTable[ EFirstBitmap ].iIsFree ? EFirstBitmap : ESecondBitmap );
-    if ( iBitmapTable[ bitmapNo ].iIsFree &&
-         !iReleased &&
-         ( *iRequestStatusPtr == KRequestPending ) )
-		{
-        CPostingSurface::TPostingBuff* postingBuffer =
-            *iBitmapTable[ bitmapNo ].iBuffer;
-
-        TInt bufferLength(
-            postingBuffer->GetSize().iHeight * postingBuffer->GetStride() );
-
-        TPtr8 ptrBuffer(
-            static_cast< TUint8* >( postingBuffer->GetBuffer() ),
-            bufferLength,
-            bufferLength
-            );
-
-        _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): buffer %d: $%x %d bytes"), RThread().Id().operator TUint(), bitmapNo, postingBuffer->GetBuffer(), bufferLength));
-
-        // Determine wether to convert or copy (420 will be just copied)
-        if ( iNewParams.iPostingFormat ==
-             CPostingSurface::EYuv422LeBt601Range0 )
-            {
-            _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): converting to 422"), RThread().Id().operator TUint()));
-            VtYuvConverter::ConvertFrom420PlanarTo422Interleaved(
-                aBuffer.Data(),
-                aBuffer.GetFrameSize(),
-                ptrBuffer,
-                postingBuffer->GetStride() );
-            }
-        else
-            {
-            _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): copying as 420"), RThread().Id().operator TUint()));
-            ptrBuffer = aBuffer.Data();
-            }
-
-		iBitmapTable[ bitmapNo ].iIsFree = EFalse;
-		TRequestStatus* statusP = iRequestStatusPtr;
-		iThread.RequestComplete( statusP, bitmapNo );
-		}
-    else
-        {
-        consumed = EFalse;
-    	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert(): could not find free buffer"), RThread().Id().operator TUint()));
-        }
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseConvert()>"), RThread().Id().operator TUint()));
-    return consumed;
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseSinkThreadLogonL
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseSinkThreadLogonL()
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogonL()<"), RThread().Id().operator TUint()));
-    UpdateExpectedFrameSizeL();
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogonL()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseSinkThreadLogoff
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseSinkThreadLogoff()
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogoff()<"), RThread().Id().operator TUint()));
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSinkThreadLogoff()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseUpdateSinkParamsL
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseUpdateSinkParamsL( const TDisplaySinkParams& aParams )
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseUpdateSinkParamsL()<"), RThread().Id().operator TUint()));
-    iNewParams = static_cast< const TDisplaySinkParamsDP& >( aParams );
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseUpdateSinkParamsL()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseDoUpdateParamsL
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseDoUpdateParamsL()
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseDoUpdateParamsL()<"), RThread().Id().operator TUint()));
-    iBitmapTable[ EFirstBitmap ].iBuffer = iNewParams.iPostingBuffer1;
-    iBitmapTable[ ESecondBitmap ].iBuffer = iNewParams.iPostingBuffer2;
-    UpdateExpectedFrameSizeL();
-    if( iNewParams.iFrameRateLimit != iFrameRateInterval )
-        {
-        SetFrameRateLimit( iNewParams.iFrameRateLimit );
-        ResetFrameRateLimitter();
-        }
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseDoUpdateParamsL()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseSetVideoFrameSizeL
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseSetVideoFrameSizeL( const TSize& )
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetVideoFrameSizeL()<"), RThread().Id().operator TUint()));
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetVideoFrameSizeL()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseSizesMatch
-// -----------------------------------------------------------------------------
-//
-TBool CDisplaySinkDP::BaseSizesMatch( const TSize& aSize )
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSizesMatch()<"), RThread().Id().operator TUint()));
-    TBool sizesMatch( iExpectedFrameSize == aSize );
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSizesMatch() %d>"), RThread().Id().operator TUint(), sizesMatch));
-    return sizesMatch;
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BitmapEntry
-// -----------------------------------------------------------------------------
-//
-CDisplaySink::TBitmapEntry& CDisplaySinkDP::BitmapEntry( TInt aIndex )
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BitmapEntry(%d)<"), RThread().Id().operator TUint(), aIndex));
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BitmapEntry()>"), RThread().Id().operator TUint()));
-    return iBitmapTable[ aIndex ];
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseEmptyBufferL
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseEmptyBufferL( TVtMMFDataBuffer& aVTMMFBuffer )
-    {
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseEmptyBufferL()<"), RThread().Id().operator TUint()));
-    if ( BaseConvert( aVTMMFBuffer ) )
-        {
-        CleanupStack::PopAndDestroy(); // iBitmapCS.Signal();
-        iSupplier->BufferEmptiedL( iBuffer );
-        }
-    else
-        {
-        if ( iVideoFrameQueue->IsStored() || !IsOkToSendFrame() )
-            {
-            CleanupStack::PopAndDestroy(); // iBitmapCS.Signal();
-            iSupplier->BufferEmptiedL( iBuffer );
-            }
-        else
-            {
-            iVideoFrameQueue->Store( *iSupplier, static_cast<CMMFDataBuffer*>(aVTMMFBuffer.GetMMFBuffer()), aVTMMFBuffer.GetFrameSize(), aVTMMFBuffer.Data() );
-            CleanupStack::PopAndDestroy(); // iBitmapCS.Signal();
-            }
-        }
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseEmptyBufferL()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseSetBitmapAvailable( TBitmapNo aBitmapNo )
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseSetBitmapAvailable( TBitmapNo )
-	{
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetBitmapAvailable()<"), RThread().Id().operator TUint()));
-	NextFrame();
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseSetBitmapAvailable()>"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::BaseVideoFrameSizeChangedL( const TSize& )
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::BaseVideoFrameSizeChangedL( const TSize& )
-	{
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseVideoFrameSizeChangedL()<"), RThread().Id().operator TUint()));
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::BaseVideoFrameSizeChangedL()>"), RThread().Id().operator TUint()));
-	}
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::NextFrame
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::NextFrame()
-    {
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NextFrame()<"), RThread().Id().operator TUint()));
-    if ( iVideoFrameQueue->IsStored() )
-        {
-        if ( IsOkToSendFrame() )
-        	{
-        	BaseConvert( iVideoFrameQueue->Buffer() );
-        	}
-        iVideoFrameQueue->Release();
-        }
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::NextFrame()>"), RThread().Id().operator TUint()));
-    }
-
-// -----------------------------------------------------------------------------
-// CDisplaySinkDP::UpdateExpectedFrameSizeL()
-// -----------------------------------------------------------------------------
-//
-void CDisplaySinkDP::UpdateExpectedFrameSizeL()
-    {
-	_IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::UpdateExpectedFrameSizeL()<"), RThread().Id().operator TUint()));
-    iExpectedFrameSize = iNewParams.iFrameSize;
-    _IFDBG(PRINT(_L("VideoSource[%d]: CDisplaySinkDP::UpdateExpectedFrameSizeL()>"), RThread().Id().operator TUint()));
-    }
-
-// End of File