mp4sp_enc/arimp4spenchwdevice/inc/arimp4sphwdeviceconstants.h
changeset 0 bb31fbe78861
equal deleted inserted replaced
-1:000000000000 0:bb31fbe78861
       
     1 /*
       
     2 * Copyright (c) 2009 Aricent and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of the License "Eclipse Public License v1.0"
       
     6 * which accompanies this distribution, and is available
       
     7 * at the URL "http://www.eclipse.org/legal/epl-v10.html".
       
     8 *
       
     9 * Initial Contributors:
       
    10 * Aricent - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:
       
    15 * This file defines the constants used in Mpeg4SP/H263 encoder plugin.
       
    16 *
       
    17 */
       
    18 
       
    19 
       
    20 #ifndef ARIMP4SPENCHWDEVICECONSTANTS_H
       
    21 #define ARIMP4SPENCHWDEVICECONSTANTS_H
       
    22 
       
    23 // Compressed Mpeg4 Video Formats Supported
       
    24 _LIT8(KMPEG4MimeType, "video/mp4v-es");
       
    25 _LIT8(KMPEG4VTMimeType, "video/MP4V-ES");
       
    26 _LIT8(KMPEG4MimeTypeLevel0, "video/mp4v-es; profile-level-id=8");
       
    27 _LIT8(KMPEG4MimeTypeLevel0B, "video/mp4v-es; profile-level-id=9");
       
    28 _LIT8(KMPEG4MimeTypeLevel1, "video/mp4v-es; profile-level-id=1");
       
    29 _LIT8(KMPEG4MimeTypeLevel2, "video/mp4v-es; profile-level-id=2");
       
    30 _LIT8(KMPEG4MimeTypeLevel3, "video/mp4v-es; profile-level-id=3");
       
    31 _LIT8(KMPEG4MimeTypeLevel4, "video/mp4v-es; profile-level-id=4");
       
    32 _LIT8(KMPEG4MimeTypeLevel5, "video/mp4v-es; profile-level-id=5");
       
    33 _LIT8(KMPEG4MimeTypeLevel6, "video/mp4v-es; profile-level-id=6");
       
    34 _LIT8(KMPEG4MimeTypeLevel7, "video/mp4v-es; profile-level-id=7");
       
    35 
       
    36 
       
    37 // Compressed H263 Video Formats Supported
       
    38 _LIT8(KH263MimeType, "video/H263-2000");
       
    39 _LIT8(KH263MimeTypeProfile0, "video/H263-2000; profile=0");
       
    40 _LIT8(KH263MimeTypeLevel10, "video/H263-2000; profile=0; level=10");
       
    41 _LIT8(KH263MimeTypeLevel20, "video/H263-2000; profile=0; level=20");
       
    42 _LIT8(KH263MimeTypeLevel30, "video/H263-2000; profile=0; level=30");
       
    43 _LIT8(KH263MimeTypeLevel40, "video/H263-2000; profile=0; level=40");
       
    44 _LIT8(KH263MimeTypeLevel45, "video/H263-2000; profile=0; level=45");
       
    45 
       
    46 
       
    47 // Mpeg4 and H263 Levels
       
    48 #define KMPEG4_LEVEL_UNKNOWN   200
       
    49 #define KMPEG4_LEVEL_0         0
       
    50 #define KMPEG4_LEVEL_0B        10
       
    51 #define KMPEG4_LEVEL_1         1
       
    52 #define KMPEG4_LEVEL_2         2
       
    53 #define KMPEG4_LEVEL_3         3
       
    54 #define KMPEG4_LEVEL_4         4
       
    55 #define KMPEG4_LEVEL_5         5
       
    56 #define KMPEG4_LEVEL_6         6
       
    57 #define KMPEG4_LEVEL_7         7
       
    58 
       
    59 #define KH263_LEVEL_UNKNOWN    300
       
    60 #define KH263_LEVEL_10         10
       
    61 #define KH263_LEVEL_20         20
       
    62 #define KH263_LEVEL_30         30
       
    63 #define KH263_LEVEL_40         40
       
    64 #define KH263_LEVEL_45         45
       
    65 
       
    66 
       
    67 _LIT(KMPEG4H263EncManufacturer,"Aricent");
       
    68 _LIT(KMPEG4H263EncIdentifier, "ARM MPEG4 H263 Video Encoder Hw Device");
       
    69 
       
    70 // 1 SPS and 1 PPS
       
    71 const TInt KWordLength				= 4;
       
    72 const TInt KDoubleWordLength		= 8;
       
    73 
       
    74 
       
    75 const TInt KMPEG4H263ENCIMPL_MAJOR_VERSION = 1;
       
    76 const TInt KMPEG4H263ENCIMPL_MINOR_VERSION = 0;
       
    77 const TInt KMPEG4H263ENCIMPL_BUILD_VERSION = 0;
       
    78 
       
    79 // Size - width,height related
       
    80 
       
    81 const TInt KMPEG4H263ENCIMPL_CIF_WIDTH    = 352;
       
    82 const TInt KMPEG4H263ENCIMPL_CIF_HEIGHT   = 288;
       
    83 
       
    84 const TInt KMPEG4H263ENCIMPL_QCIF_WIDTH   = 176;
       
    85 const TInt KMPEG4H263ENCIMPL_QCIF_HEIGHT  = 144;
       
    86 
       
    87 const TInt KMPEG4H263ENCIMPL_SQCIF_WIDTH  = 128;
       
    88 const TInt KMPEG4H263ENCIMPL_SQCIF_HEIGHT = 96;
       
    89 
       
    90 const TInt KMPEG4H263ENCIMPL_QVGA_WIDTH   = 320;
       
    91 const TInt KMPEG4H263ENCIMPL_QVGA_HEIGHT  = 240;
       
    92 
       
    93 const TInt KMPEG4H263ENCIMPL_VGA_WIDTH    = 640;
       
    94 const TInt KMPEG4H263ENCIMPL_VGA_HEIGHT   = 480;
       
    95 
       
    96 const TInt KMPEG4H263ENCIMPL_720P_WIDTH   = 1280;
       
    97 const TInt KMPEG4H263ENCIMPL_720P_HEIGHT  = 720;
       
    98 
       
    99 //Level for H263
       
   100 const TInt KH263ENCIMPL_LEVEL10 = 10;
       
   101 const TInt KH263ENCIMPL_LEVEL20 = 20;
       
   102 const TInt KH263ENCIMPL_LEVEL30 = 30;
       
   103 const TInt KH263ENCIMPL_LEVEL40 = 40;
       
   104 const TInt KH263ENCIMPL_LEVEL45 = 45;
       
   105 
       
   106 //Level for MPEG4
       
   107 const TInt KMPEG4ENCIMPL_LEVEL_0  = 0;
       
   108 const TInt KMPEG4ENCIMPL_LEVEL_1  = 1;
       
   109 const TInt KMPEG4ENCIMPL_LEVEL_2  = 2;
       
   110 const TInt KMPEG4ENCIMPL_LEVEL_3  = 3;
       
   111 const TInt KMPEG4ENCIMPL_LEVEL_4A = 4;
       
   112 const TInt KMPEG4ENCIMPL_LEVEL_5  = 5;
       
   113 const TInt KMPEG4ENCIMPL_LEVEL_6  = 6;
       
   114 const TInt KMPEG4ENCIMPL_LEVEL_7  = 7;
       
   115 const TInt KMPEG4ENCIMPL_LEVEL_0B = 10;
       
   116 
       
   117 // Bitrate related (bits per second) for H263
       
   118 const TInt KH263ENCIMPL_DEFAULT_BITRATE = 64000;
       
   119 const TInt KH263ENCIMPL_BITRATE_LEVEL_10 = 64000;
       
   120 const TInt KH263ENCIMPL_BITRATE_LEVEL_20 = 128000;
       
   121 const TInt KH263ENCIMPL_BITRATE_LEVEL_30 = 384000;
       
   122 const TInt KH263ENCIMPL_BITRATE_LEVEL_40 = 2048000;
       
   123 const TInt KH263ENCIMPL_BITRATE_LEVEL_45 = 128000;
       
   124 
       
   125 // Bitrate (bits per second) for MPEG4
       
   126 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_0  = 64000;
       
   127 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_1  = 64000;
       
   128 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_2  = 128000;
       
   129 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_3  = 384000;
       
   130 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_4A = 4000000;
       
   131 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_5  = 8000000;
       
   132 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_6  = 12000000;
       
   133 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_7  = 38400000;
       
   134 const TInt KMPEG4ENCIMPL_BITRATE_LEVEL_0B = 128000;
       
   135 
       
   136 // Level related mapping
       
   137 const TInt KH263ENCIMPL_LEVEL_UNKNOWN = 0;
       
   138 
       
   139 // o/p buffer related
       
   140 const TInt KMPEG4H263ENCIMPL_MAXNUM_OUTPUTBUFFERS                      = 2;
       
   141 const TInt KMPEG4H263ENCIMPL_MAXNUM_TEMPOUTPUTBUFFERS                  = 2;
       
   142 const TInt KMPEG4H263ENCIMPL_MAXNUM_SEGMENTBUFFERS                     = 30;
       
   143 const TInt KMPEG4H263ENCIMPL_FACTOR_FOR_OUTPUTBUFFERSIZE_IN_PACKETMODE = 2;
       
   144 
       
   145 // o/p buffer size related
       
   146 const TInt KMPEG4H263ENCIMPL_DEFAULT_SEGMENTSIZE = 256;
       
   147 const TInt KMPEG4H263ENCIMPL_MIN_SEGMENTSIZE     = 192;
       
   148 const TInt KMPEG4H263ENCIMPL_MAX_SEGMENTSIZE     = 300;
       
   149 
       
   150 // Max coded picture size in case of Level 1b
       
   151 const TInt KH263ENCIMPL_LEVEL1b_MAXCPBSIZE = 39375;
       
   152 
       
   153 // Max coded picture size in case of Level 1.1
       
   154 const TInt KH263ENCIMPL_LEVEL11_MAXCPBSIZE = 56250;
       
   155 
       
   156 // picture rate related
       
   157 const TReal KMPEG4H263ENCIMPL_MAX_PICTURERATE     = 30.0;
       
   158 const TReal KMPEG4H263ENCIMPL_DEFAULT_PICTURERATE = 15.0;
       
   159 
       
   160 const TInt KMPEG4H263ENCIMPL_NUM_COMPLEXITYLEVELS     = 4;
       
   161 const TInt KMPEG4H263ENCIMPL_MAXNUM_REFERENCEPICTURES = 1;
       
   162 
       
   163 // Default random access rate- 1 per 3 seconds i.e.1 after 45 frames at 15 fps
       
   164 const TReal KMPEG4H263ENCIMPL_DEFAULT_RANDOMACCESSRATE = 0.3333333;
       
   165 
       
   166 const TInt KMPEG4SUPPMIMEARRAYMAXINDEXVALUE = 10;
       
   167 const TInt KH263SUPPMIMEARRAYMAXINDEXVALUE  = 17;
       
   168 
       
   169 const TUint KMaxSupportedBitRate = 38400000;
       
   170 
       
   171 const TUint KDefaultTimerResolution  = 30000;
       
   172 
       
   173 #endif //ARIMP4SPENCHWDEVICECONSTANTS_H