camcordermmfplugin/mediarecorder/Inc/CCMRVideoCodecDataH264AVC.h
changeset 0 9b3e960ffc8a
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/camcordermmfplugin/mediarecorder/Inc/CCMRVideoCodecDataH264AVC.h	Thu Dec 17 08:51:24 2009 +0200
@@ -0,0 +1,113 @@
+/*
+* 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 "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:  Header file for H.264 AVC video codec data class
+*
+*/
+
+
+#ifndef CCMRVIDEOCODECDATAH264AVC_H
+#define CCMRVIDEOCODECDATAH264AVC_H
+
+// INCLUDES
+#include "CCMRVideoCodecData.h"
+#include <e32base.h>
+
+// CLASS DECLARATION
+
+/**
+*  Base class for audio codec data
+*
+*  @lib 
+*  @since 3.2
+*/
+class CCMRVideoCodecDataH264AVC : public CCMRVideoCodecData
+    {
+    public:  // Constructors and destructor
+        
+        /**
+        * C++ default constructor.
+        */
+        inline CCMRVideoCodecDataH264AVC(TInt aVideoCodecLevel) : CCMRVideoCodecData( CCMRMediaBuffer::EVideoH264NAL, aVideoCodecLevel ) {};
+
+        /**
+        * Destructor.
+        */
+        virtual ~CCMRVideoCodecDataH264AVC() {};
+       
+    public: // functions from base classes
+
+        /**                     
+        * Get the max bitrate for the used level
+        * @return TInt bitrate in bps
+        */
+        TInt MaxBitRate() const;
+
+        /**                     
+        * Get the max framerate for the used level
+        * @return TReal32 framerate in fps
+        */
+        TReal32 MaxFrameRate(const TSize& aFrameSize) const;
+
+        /**                     
+        * Get the max frame size for the used level
+        * @param TSize& framesize
+        */
+        TBool MaxFrameSize(const TSize& aFrameSize) const;
+
+        /**                     
+        * Returns the max used buffer length for this codec. Client can then e.g. allocate buffers based on it
+        * @return TInt Max frame length in bytes
+        */
+        TInt MaxBufferLength(const TSize& aFrameSize) const;
+
+        /**
+        * Check if codec level indicates we are recording for MMS; then some tighter restrictions apply
+        * @return ETrue if level is a typical MMS level
+        */
+        TBool LevelForMMS() const;
+
+        /**
+        * Check if decoder configuration info is needed in separate buffer
+        * @return ETrue since this is MPEG-4
+        */
+        inline TBool DecoderConfigInfoUsed() const { return ETrue; };
+
+        /**
+        * Set misc video coding options
+        * @param  aOptions      video coding options
+        * @return void
+        */
+        void SetVideoCodingOptionsL(const TCCMRVideoCodingOptions& aOptions);
+  
+        /**
+        * Set codec-specific video coding options to DevVideoRecord before initialize
+        * @param  aDevVideoRecord
+        * @return void
+        */
+        void SetPreInitParamsL(CMMFDevVideoRecord* aDevVideoRecord) const;
+        
+        /**
+        * Set codec-specific video coding options to DevVideoRecord after initialize
+        * @param  aDevVideoRecord
+        * @return void
+        */
+        void SetPostInitParamsL(CMMFDevVideoRecord* aDevVideoRecord) const;
+  
+    };  
+    
+
+
+#endif      // CCMRVIDEOCODECDATAH264AVC_H
+    
+// End of File