diff -r 826cea16efd9 -r 13a33d82ad98 dvrengine/CommonRecordingEngine/DvrRtpClipHandler/inc/CRtpClipRepairer.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/dvrengine/CommonRecordingEngine/DvrRtpClipHandler/inc/CRtpClipRepairer.h Wed Sep 01 12:20:37 2010 +0100 @@ -0,0 +1,206 @@ +/* +* Copyright (c) 2007 Nokia Corporation and/or its subsidiary(-ies). +* All rights reserved. +* This component and the accompanying materials are made available +* under the terms of the License "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: RTP clip repairer for common recording engine.* +*/ + + + + +#ifndef CRTPCLIPREPAIRER_H +#define CRTPCLIPREPAIRER_H + +// INCLUDES +#include +#include "CCRRtpFileSource.h" +#include + +// CONSTANTS +// None + +// MACROS +// None + +// DATA TYPES +// None + +// FORWARD DECLARATIONS +class CRtpMetaHeader; + +// CLASS DECLARATION + +/** +* Repairs corrupted DVB-H RTP clip. +* +* @lib DvrRtpClipHandler.lib +* @since Series 60 3.0 +*/ +class CRtpClipRepairer : public CRtpFileBase + { + +public: // Constructors and destructor + + /** + * Two-phased constructor. + * @since Series 60 3.0 + * @param aObs observer for repair status + * @return None. + */ + static CRtpClipRepairer* NewL( MRtpClipRepairObserver* aObs ); + + /** + * Destructor. + */ + virtual ~CRtpClipRepairer(); + +public: // New functions + + /** + * Check if corrupted meta header can be fixed. + * @since Series 60 3.0 + * @param aClipName a full path of the clip. + * @return None. + */ + void CheckMetaHeaderL( const TDesC& aClipName ); + + /** + * Getter for the clip name under repairing. + * @since Series 60 3.0 + * @return a full path of the clip under repairing. + */ + TPtrC CurrentClipName(); + +private: // Constructors and destructor + + /** + * C++ default constructor. + * @since Series 60 3.0 + * @param aObs observer for repair status + */ + CRtpClipRepairer( MRtpClipRepairObserver* aObs ); + + /** + * Symbian 2nd phase constructor can leave and is private by default. + */ + void ConstructL(); + +private: // Functions from base classes + + /** + * From CRtpFileBase. + * Called when request completion event occurs. + * @since Series 60 3.0 + * @param none. + * @return none. + */ + void RunL(); + + /** + * From CRtpFileBase. + * Handles a leave occurring in the request completion event handler RunL(). + * @since Series 60 3.0 + * @param aError the leave code. + * @return a status of function. + */ + TInt RunError( TInt aError ); + + /** + * From CRtpFileBase : Called when request completion event cancelled. + * @since Series 60 3.0 + * @param none. + * @return None. + */ + void DoCancel(); + +private: // New functions + + /** + * Veryfies that seek header and array are valid. + * @since Series 60 3.0 + * @param none. + * @return true if are, otherwise false. + */ + TBool ValidSeekHeaderL(); + + /** + * Scans whole clip and updates seek array for it. + * @since Series 60 3.0 + * @param none. + * @return none. + */ + void UpdateSeekArrayL(); + + /** + * Activates asyncronous group header reading. + * @since Series 60 3.0 + * @param none. + * @return none. + */ + void ReadNextGroupHeaderFromFileL(); + + /** + * Appends rec groups to seek array in 30s interval. + * @since Series 60 3.0 + * @param none. + * @return none. + */ + void GroupToSeekArrayL(); + + /** + * Adds special packet to the end. + * @since Series 60 3.0 + * @param aType a type of special packet. + * @return none. + */ + void AddSpecialPacketL( const MRtpFileWriteObserver::TRtpType aType ); + + /** + * Saves readed seek array. + * @since Series 60 3.0 + * @param aError a error code. + * @return none. + */ + void FinalizeSeekArrayL( const TInt aError ); + +private: // Data + + /** + * Repair observer. + */ + MRtpClipRepairObserver* iObs; + + /** + * File data buffer. + */ + HBufC8* iFileData; + + /** + * Meta header. + */ + CRtpMetaHeader* iMetaHeader; + + /** + * Last group time. + */ + TUint iLastGroupTime; + + /** + * Seek array point. + */ + TInt iSeekArrayPoint; + + }; + +#endif // CRTPCLIPREPAIRER_H + +// End of File