videoeditorengine/vedengine/inc/vedqualitysettingsvariation.h
author Mikael Laine <mikael.laine@ixonos.com>
Fri, 29 Jan 2010 14:08:33 +0200
changeset 0 951a5db380a0
permissions -rw-r--r--
Committing the Video Editor package under the Eclipse Public License

/*
* 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 __VEDQUALITYSETTINGSVARIATION_H__
#define __VEDQUALITYSETTINGSVARIATION_H__


#include "vedqualitysettingsapi.h"

#if 0

/*
 *  This is a sample configuration
 */

/*
 *  Enumerations for video levels.
 *  Each configuration MUST have the following enumerations defined. They can be overlapping, but they must exist. Otherwise the compiling of
 *  of video applications will fail.
 */
enum TVideoInternalQualityLevels
    {
    EQualityLegacy = 0,     // If a set exist that is lower than the default MMS, e.g. subQCIF
    EQualityLow = 0,        // Low / MMS quality
    EQualityMedium = 1,     // Medium/normal quality
    EQualityHigh = 2,       // Highest quality
    ENumberOfQualitySets = 3
    };

/*
 *  Definition of video quality sets.
 *  Each configuration MUST have the following variable with size ENumberOfQualitySets
 *  For explanation of the members, please see vedqualitysettingsapi.h
 */
static const SVideoQualitySet KVideoQualitySets[ENumberOfQualitySets] =
    {
        //a sample set for MMS == EQualityLow
        { ETrue, "video/3gpp", "video/H263-2000", 176, 144, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
            // other sets for other levels
    };


#endif









/*
 *  Actual variations of video settings for different configurations
 */
 
#ifdef NCP_COMMON_TEFLON_FAMILY
// Quality sets for 

enum TVideoInternalQualityLevels
    {
    EQualityLegacy = 0,
    EQualityLow = 1,
    EQualityMedium = 2,
    EQualityHigh = 6,
    ENumberOfQualitySets = 7,
    ENumberOfWideQualitySets = 0
    };

static const SVideoQualitySet KVideoQualitySets[ENumberOfQualitySets] =
    {
        // Legacy subQCIF support
        { ETrue, "video/3gpp", "video/H263-2000", 128, 96, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
        // MMS
        { ETrue, "video/3gpp", "video/H263-2000", 176, 144, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
        // Normal
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=2", 320, 240, 15.0, 512000, 0.5, " AAC", 48000, 16000, 1 },
        // Normal+
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=3", 320, 240, 30.0, 1024000, 0.5, " AAC", 48000, 16000, 1 },
        // CIF settings in case of CIF input is dominating, to avoid transcoding to QVGA
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=2", 352, 288, 15.0, 512000, 0.5, " AAC", 48000, 16000, 1 },
        // HighMinus; level 4a
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 480, 15.0, 2048000, 1.0, " AAC", 96000, 48000, 1 },
        // High; level 4a
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 480, 30.0, 3072000, 1.0, " AAC", 96000, 48000, 1 }
    };

static const SVideoQualitySet KVideoQualitySetsWide[1] = {{ EFalse, "", "", 0, 0, 0.0, 0, 0, "", 0, 0, 0 }};

#else
// Quality sets e.g. for , WINSCW

#ifndef SPP_VSW_VIDEOEDITORENGINE_AVC_EDITING
enum TVideoInternalQualityLevels
    {
    EQualityLegacy = 0,
    EQualityLow = 1,
    EQualityMedium = 2,
    EQualityHigh = 3,
    ENumberOfQualitySets = 5,
    ENumberOfWideQualitySets = 4
    };

static const SVideoQualitySet KVideoQualitySets[ENumberOfQualitySets] =
    {
        // Legacy subQCIF support
        { ETrue, "video/3gpp", "video/H263-2000", 128, 96, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
        // MMS
        { ETrue, "video/3gpp", "video/H263-2000", 176, 144, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
        // Normal; H.263 level 45
        { ETrue, "video/3gpp", "video/H263-2000; profile=0; level=45", 176, 144, 15.0, 124000, 0.2, " AMR", 12200, 8000, 1 },
        // High
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=2", 320, 240, 15.0, 512000, 0.5, " AAC", 72000, 48000, 1 },
        // High+
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=2", 352, 288, 15.0, 512000, 0.5, " AAC", 72000, 48000, 1 },
    };
    
static const SVideoQualitySet KVideoQualitySetsWide[ENumberOfWideQualitySets] =
    {
        // Legacy 
        { ETrue, "video/3gpp", "video/H263-2000", 128, 96, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },        
        // Low
        { EFalse, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 352, 10.0, 256000, 1.0, " AAC", 72000, 48000, 1 },        
        // Medium
        { EFalse, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 352, 15.0, 1024000, 1.0, " AAC", 72000, 48000, 1 },        
        // High
        { EFalse, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 352, 15.0, 2048000, 1.0, " AAC", 72000, 48000, 1 },
    };    

    
#else // AVC support

enum TVideoInternalQualityLevels
    {
    EQualityLegacy = 0,
    EQualityLow = 1,
    EQualityMedium = 3,
    EQualityHigh = 7,
    ENumberOfQualitySets = 9,
    ENumberOfWideQualitySets = 8
    };

static const SVideoQualitySet KVideoQualitySets[ENumberOfQualitySets] =
    {
    
        // Legacy subQCIF support
        { ETrue, "video/3gpp", "video/H263-2000", 128, 96, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
        // MMS
        { ETrue, "video/3gpp", "video/H263-2000", 176, 144, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },
        // MMS+1
        { ETrue, "video/3gpp", "video/H264; profile-level-id=42900B", 176, 144, 15.0, 124000, 0.2, " AMR", 12200, 8000, 1 },
        // Medium
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=2", 320, 240, 15.0, 512000, 0.5, " AAC", 72000, 48000, 1 },
        // Medium+
        { ETrue, "video/mp4", "video/H264; profile-level-id=42800C", 320, 240, 15.0, 384000, 0.5, " AAC", 72000, 48000, 1 },
        // Medium++
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=2", 352, 288, 15.0, 512000, 0.5, " AAC", 72000, 48000, 1 },
        // Medium+++
        { ETrue, "video/mp4", "video/H264; profile-level-id=42800C", 352, 288, 15.0, 384000, 0.5, " AAC", 72000, 48000, 1 },
        // High
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 480, 15.0, 2048000, 1.0, " AAC", 72000, 48000, 1 },
        // High+
        { ETrue, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 480, 30.0, 3072000, 1.0, " AAC", 72000, 48000, 1 },
        
    };
    
static const SVideoQualitySet KVideoQualitySetsWide[ENumberOfWideQualitySets] =
    {        
        
        // Legacy 
        { ETrue, "video/3gpp", "video/H263-2000", 128, 96, 15.0, 60000, 0.2, " AMR", 12200, 8000, 1 },        
        // Low
        { EFalse, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 352, 10.0, 256000, 1.0, " AAC", 72000, 48000, 1 },
        // dummy       
        { EFalse, "", "", 0, 0, 0.0, 0, 0, "", 0, 0, 0 },        
        // Medium
        { EFalse, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 352, 15.0, 1024000, 1.0, " AAC", 72000, 48000, 1 },
        // dummy
        { EFalse, "", "", 0, 0, 0.0, 0, 0, "", 0, 0, 0 },
        // dummy
        { EFalse, "", "", 0, 0, 0.0, 0, 0, "", 0, 0, 0 },
        // dummy
        { EFalse, "", "", 0, 0, 0.0, 0, 0, "", 0, 0, 0 },                
        // High
        { EFalse, "video/mp4", "video/mp4v-es; profile-level-id=4", 640, 352, 25.0, 2048000, 1.0, " AAC", 72000, 48000, 1 },                
        
    };    

#endif


//static const SVideoQualitySet KVideoQualitySetsWide[1] = {{ EFalse, "", "", 0, 0, 0.0, 0, 0, "", 0, 0, 0 }};

#endif

#endif