diff -r 951a5db380a0 -r d87d32eab1a9 videoeditorengine/avcedit/inc/vedavcedit.h --- a/videoeditorengine/avcedit/inc/vedavcedit.h Fri Jan 29 14:08:33 2010 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,181 +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: -* A header file defining the AVC editing API. -* -* -*/ - - - -#ifndef VEDAVCEDIT_H -#define VEDAVCEDIT_H - -#include - -/** -* CVedAVCEdit abstract base class for AVC editing class -* -* @lib vedAVCEdit -* @since -*/ -class CVedAVCEdit : public CBase - { - - public: // Constants - - public: // Constructors and destructor - - /** - * Two-phased constructor. - * - */ - IMPORT_C static CVedAVCEdit* NewL(); - - /** - * Destructor. - */ - virtual ~CVedAVCEdit(); - - public: // New functions - - /* - * Add MDF specific NAL headers to input AVC frame - * - * @param aBuf Input/output buffer - * @param aFrameLen Input/output frame length - * @param aDecInfoSize Decoder specific info size - * @param aFirstFrame ETrue for first frame in sequence - */ - virtual void ProcessAVCBitStreamL(TDes8& aBuf, TInt& aFrameLen, TInt aDecInfoSize, TBool aFirstFrame) = 0; - - /* - * Calculate default value for no. of buffered frames according to - * H.264 spec Annex A - * - * @param aLevel AVC level - * @param aResolution Video resolution - */ - virtual TInt GetMaxAVCFrameBuffering(TInt aLevel, TSize aResolution) = 0; - - /* - * Get input bitstream level from SPS. Note: SPS Nal unit must be at the - * beginning of the input buffer - * - * @param aBuf Input buffer containing SPS - * @param aLevel Output: Baseline profile level - */ - virtual TInt GetLevel(TDesC8& aBuf, TInt& aLevel) = 0; - - /* - * Get input bitstream video resolution from SPS. Note: SPS Nal unit must - * be at the beginning of the input buffer - * - * @param aBuf Input buffer containing SPS - * @param aResolution Output: Resolution - */ - virtual TInt GetResolution(TDesC8& aBuf, TSize& aResolution) = 0; - -#ifdef VIDEOEDITORENGINE_AVC_EDITING - - /* - * Convert AVC specific decoder config info to AVCDecoderConfigurationRecord -format - * - * @param aSrcBuf Source buffer containing SPS/PPS NAL units in AVC MDF buffer format - * @param aDstBuf Destination buffer for AVCDecoderConfigurationRecord - */ - virtual void ConvertAVCHeaderL(TDesC8& aSrcBuf, TDes8& aDstBuf ) = 0; - - /* - * Save SPS/PPS NAL units from AVCDecoderConfigurationRecord - * for later use - * - * @param aBuf Input buffer containing AVCDecoderConfigurationRecord - */ - virtual void SaveAVCDecoderConfigurationRecordL(TDes8& aBuf, TBool aFromEncoder) = 0; - - /* - * Update slice header information: frame number and PPS id - * - * @param aBuf Buffer containing input frame - * @param aContainsDCR ETrue if AVC decoder config. record is included - * @param aFromEncoder ETrue if frame comes from the encoder - */ - virtual TInt ParseFrame(HBufC8*& aBuf, TBool aContainsDCR, TBool aFromEncoder) = 0; - - /* - * Constructs AVCDecoderConfigurationRecord for the whole sequence, taking - * into account all input DCR's - * - * @param aDstBuf Destination buffer for AVCDecoderConfigurationRecord - * @param aLevel Level output sequence - */ - virtual void ConstructAVCDecoderConfigurationRecordL( TDes8& aDstBuf ) = 0; - - /* - * Set length of NAL size field of output sequence - * - * @param aSize Length of size field in bytes - */ - virtual void SetNALLengthSize( TInt aSize ) = 0; - - /* - * Set output level for constructing AVCDecoderConfigurationRecord - * - * @param aLevel Output level - */ - virtual void SetOutputLevel(TInt aLevel) = 0; - - /* - * Check if encoding is required until the next IDR unit - * - */ - virtual TBool EncodeUntilIDR() = 0; - - /* - * Check if NAL unit is an IDR NAL - * - * @param aNalBuf buffer containing NAL unit - */ - virtual TBool IsNALUnitIDR( TDes8& aNalBuf ) = 0; - - /* - * Store PPS id from the current slice - * - * @param aNalBuf buffer containing NAL unit - */ - virtual void StoreCurrentPPSId( TDes8& aNalBuf ) = 0; - - /* - * Generate a not coded frame - * - * @param aNalBuf buffer containing NAL unit - */ - virtual TInt GenerateNotCodedFrame( TDes8& aNalBuf, TUint aFrameNumber ) = 0; - - /* - * Modify the frame number of the NAL unit - * - * @param aNalBuf buffer containing NAL unit - */ - virtual void ModifyFrameNumber( TDes8& aNalBuf, TUint aFrameNumber ) = 0; -#endif - -}; - - -#endif - -// End of File