videoeditorengine/vedengine/inc/vedqualitysettingsapi.h
branchRCL_3
changeset 3 e0b5df5c0969
parent 0 951a5db380a0
child 7 4c409de21d23
--- a/videoeditorengine/vedengine/inc/vedqualitysettingsapi.h	Fri Jan 29 14:08:33 2010 +0200
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,152 +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:  
-*
-*/
-
-
-#ifndef __VEDQUALITYSETTINGSAPI_H__
-#define __VEDQUALITYSETTINGSAPI_H__
-
-#include <e32base.h>
-#include "imagingconfigmanager.h"
-
-
-
-const TUint KQSMaxShortStringLength = 16;
-const TUint KQSMaxLongStringLength = 256;
-
-
-
-/*
- * Video quality set structure
- */
-struct SVideoQualitySet
-    {
-    public:
-        // Video aspect ratio: normal means one of the standard resolutions like QCIF, QVGA, CIF, VGA, if something else, like 16:9
-        TBool iVideoAspectRatioNormal;
-        // Video file format mime type, e.g. "video/3gpp"
-        TText8 iVideoFileMimeType[KQSMaxShortStringLength];
-        // Video codec mime type, e.g. "video/mp4v-es"
-        TText8 iVideoCodecMimeType[KQSMaxLongStringLength];
-        // Video picture width in pixels (luminance)
-        TInt iVideoWidth;
-        // Video picture height in pixels (luminance)
-        TInt iVideoHeight;
-        // Video framerate in fps
-        TReal iVideoFrameRate;
-        // Video bitrate in bps
-        TInt iVideoBitRate;
-        // Random access point rate, in pictures per second. For example, to request a random access point every ten seconds, set the value to 0.1
-        TReal iRandomAccessRate;
-        // Audio codec FourCC, e.g. " AMR"
-        TText8 iAudioFourCCType[KQSMaxShortStringLength];
-        // Audio bitrate in bps
-        TInt iAudioBitRate;
-        // Audio sampling rate in Hz
-        TInt iAudioSamplingRate;
-        // Number of audio channels; in practice mono(1) vs stereo(2)
-        TInt iAudioChannels;
-    };
-
-
-/*
- * API class for getting a quality set for a given level or given resolution
- */
-class CVideoQualitySelector : public CBase
-    {
-    public:
-        /*
-         * Enumeration for nominal video quality levels. Client must use these enumerations to get quality sets.
-         * However, if NumberOfQualityLevels() below indicates there are more than ENumberOfNominalLevels, client
-         * can use values in-between the nominal values to get set for some other quality level. 
-         * It is however up to the implementation of the API to map such intermediate values to actual levels
-         */
-        enum TVideoQualityLevels
-            {
-            // client can try asking values in between these but the class may round the values depending on the availability
-            EVideoQualityMin = 0,       // if there are several MMS compatible settings, EVideoQualityMMS is not the lowest. However level cannot go below this value
-            EVideoQualityMMS = 10,      // use this when MMS compatible settings are needed
-            EVideoQualityNormal = 20,   // use this when normal quality settings are needed, i.e. typically higher quality than MMS, but possibly not the highest still
-            EVideoQualityHigh = 30,     // use this when highest possible quality settings are needed
-            EVideoQualityNominalGranularity = 10,
-            ENumberOfNominalLevels = 3
-            };
-
-    public:
-        /*
-         * Create new CVideoQualitySelector object
-         */
-        static CVideoQualitySelector* NewL();
-
-        static CVideoQualitySelector* NewLC();
-        
-        /*
-         * Destructor
-         */
-        ~CVideoQualitySelector();   
-
-        /*
-         *  Get number of defined quality levels. This is always at least ENumberOfNominalLevels but can be higher
-         */
-        TInt NumberOfQualityLevels();
-        /*
-         *  Get quality set associated with the given level. The level should be between EVideoQualityHigh and EVideoQualityMin.
-         *  One the defined nominal levels should be used especially if NumberOfQualityLevels() == ENumberOfNominalLevels.
-         *  If there is no set associated with given intermediate level, then set from a nearest level is returned.
-         */
-        void GetVideoQualitySetL( SVideoQualitySet& aSet, TInt aLevel );
-        /*
-         *  Get quality set associated with the given level. Otherwise the same as above but if aAspectRatioWide == ETrue, 
-         *  tries to find 16:9 aspect ratio settings, otherwise returns a set from the normal aspect ratio as above.
-         */
-        void GetVideoQualitySetL( SVideoQualitySet& aSet, TInt aLevel, TBool aAspectRatioWide );
-        /*
-         *  Get quality set associated with the given video resolution. Leaves if there is no defined set for the resolution.
-         *  E.g. if product configuration prefers QVGA over CIF, but client asks for CIF, this function leaves. The CIF settings
-         *  can then be requested using the MIME-type
-         */
-        void GetVideoQualitySetL( SVideoQualitySet& aSet, const TSize& aVideoResolution );
-        /*
-         *  Get quality set associated with the given video codec MIME-type. Leaves if there is no defined set for the MIME-type.
-         */
-        void GetVideoQualitySetL( SVideoQualitySet& aSet, const TPtrC8& aVideoCodecMimeType );
-        
-    private:
-        /*
-         * Default constructor
-         */
-        CVideoQualitySelector();
-
-        /*
-         * Actual constructor
-         */
-        void ConstructL();
-        
-        /*
-         * Copies the values from the source set to the target set
-         */
-        void MapQualitySet( SVideoQualitySet& aTargetSet, TVideoQualitySet& aSourceSet );
-        
-    private: // Data
-    
-        CImagingConfigManager* iConfigManager;
-        
-        CArrayFixFlat<TUint>* iQualityLevels;
-
-    };
-
-#endif