--- a/videoeditorengine/h263decoder/inc/VedVolReader.h Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,221 +0,0 @@
-/*
-* Copyright (c) 2010 Ixonos Plc.
-* All rights reserved.
-* This component and the accompanying materials are made available
-* under the terms of the "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:
-* Ixonos Plc
-*
-* Description:
-* Header for VOL header parser.
-*
-*/
-
-
-
-#ifndef __VEDVOLREADER_H__
-#define __VEDVOLREADER_H__
-
-
-// INCLUDES
-#include <e32base.h>
-#include <e32std.h>
-#include <vedcommon.h>
-
-
-
-
-
-// DATA TYPES
-
-/**
- * Structure for the Video Object Layer header data
- */
-struct TVolHeader
- {
- TInt iProfileLevelId; // Indicates the Level Id (0,1,2,3,4,8 or 9) of the Simple
- // Profile the Video Object conforms to
- TInt iVoPriority; // Priority assigned to the Video Object
- // a value between 1(lowest)-7(highest).
- // If not in the bitstream, set to zero
-
- TInt iVoId; // id of the Video Object
- TInt iVolId; // id of the Video Object Layer
- TInt iRandomAccessibleVol;// set to 1 if all the VOPs in the stream are I-VOP.
- TInt iPixelAspectRatio; // see MPEG-4 visual spec. pp. 71
-
- TInt iTimeIncrementResolution;
- // Resolution to interpret the time_increment
- // fields in the VOP headers
-
- TInt iLumWidth; // Frame width of the Y component in pixels
- TInt iLumHeight; // Frame height of the Y component in pixels
-
- TUint8 iErrorResDisable; // Flag ON if no resynchronization markers are
- // used inside frames.
- // When OFF it doesn't mean they ARE used.
- TUint8 iDataPartitioned; // Flag indicating if data partitioning inside
- // a VP is used or not.
- TUint8 iReversibleVlc; // flag indicating the usage of reversible
- // VLC codes
-
- // the following parameters concern the input video signal,
- // see MPEG-4 visual spec. pp. 66-70, and "Note" in viddemux_mpeg.c
- // Not used in the current implementatnion.
- TInt iVideoFormat;
- TInt iVideoRange;
- TInt iColourPrimaries;
- TInt iTransferCharacteristics;
- TInt iMatrixCoefficients;
-
- // the following parameters are used in the Video Buffering Verifier
- // (Annex D) to monitor the input bit buffer, complexity, memory buffer
- // used in the decoding process. The conformance of a stream can be checked
- // using these parameters.
- // Not used in the current implementatnion.
- TUint32 iBitRate;
- TUint32 iVbvBufferSize;
- TUint32 iVbvOccupancy;
-
- HBufC8* iUserData; // User Data if available
- };
-
-
-
-// CLASS DECLARATION
-
-/**
- * A class for parsing the Video Object Layer header
- */
-class CVedVolReader : public CBase
- {
-public:
-
- /**
- * Two-phased constructor.
- */
- IMPORT_C static CVedVolReader* NewL();
-
- /**
- * Destructor.
- */
- virtual ~CVedVolReader();
-
- /**
- * Parses given Video Object Layer header
- * @param aData Buffer from where to parse the header
- * @return error code
- */
- IMPORT_C TInt ParseVolHeaderL(TDesC8& aData);
-
- /**
- * Returns the time increment resolution that was read from the VOL header
- * @return time increment resolution
- */
- IMPORT_C TInt TimeIncrementResolution() const;
-
- /**
- * Returns the width of the video that was read from the VOL header
- * @return width
- */
- IMPORT_C TInt Width() const;
-
- /**
- * Returns the height of the video that was read from the VOL header
- * @return height
- */
- IMPORT_C TInt Height() const;
-
- /**
- * Returns the Level Id of the Simple Profile the Video Object conforms to
- * @return profile level Id
- */
- IMPORT_C TInt ProfileLevelId() const;
-
- /**
- * Returns the bitstream mode of the video
- * @return bitstream mode
- */
- IMPORT_C TVedVideoBitstreamMode BitstreamMode() const;
-
- /**
- * Returns the size of the VOL header
- * @return size of the header
- */
- IMPORT_C TInt HeaderSize() const;
-
-private:
-
- /**
- * Structure for internal buffer of the header sequence
- */
- struct TSeqHeaderBuffer
- {
- TDesC8& iData; // The actual data of the buffer
- TInt iGetIndex; // Index of getting from the buffer
- TInt iBitInOctet; // Bit index in the buffer
-
- TSeqHeaderBuffer(TDesC8& aData, TInt aGetIndex, TInt aBitInOctet) :
- iData(aData), iGetIndex(aGetIndex), iBitInOctet(aBitInOctet) {}
- };
-
- /**
- * C++ default constructor.
- */
- CVedVolReader();
-
- /**
- * By default Symbian OS constructor is private.
- */
- void ConstructL();
-
- /**
- * Reads requested bits from given buffer
- * @param aBuffer Buffer from where to read the bits
- * @param aNumBits Amount of bits to read
- * @param aFlush Discard the bits that were read
- * @return The bits that were read
- */
- TUint32 ReadSeqHeaderBits(TSeqHeaderBuffer& aBuffer, TInt aNumBits, TBool aFlush);
-
- /**
- * Reads user data from given buffer
- * @param aBuffer Buffer from where to read the user data
- */
- void ReadUserDataL(TSeqHeaderBuffer& aBuffer);
-
- /**
- * Checks what is the bit stream mode the video
- * @param aErd Flag error resilience disable used
- * @param aDp Flag data partitioned used
- * @param aRvlc Flag reversible vlc used
- * @return The bit stream mode
- */
- TVedVideoBitstreamMode CheckBitstreamMode(TUint8 aErd, TUint8 aDp, TUint8 aRvlc);
-
-private:
-
- // Member variables
-
- static const TInt KMaxUserDataLength; // The maximum allocated memory for
- // user data (UD). Only this much of the UD
- // from the bitstream is stored
-
- static const TUint8 KMsbMask[8]; // Mask for extracting the needed bits
- static const TUint8 KLsbMask[9];
-
- TVolHeader iHeader; // For storing the header data
-
- TVedVideoBitstreamMode iBitstreamMode;
- TInt iHeaderSize;
-
- };
-
-#endif // __VEDVOLREADER_H__
-