h264_enc/arih264enchwdevice/inc/arih264hwdeviceconstants.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 H264 encoder plugin.
       
    16 *
       
    17 */
       
    18 
       
    19 #ifndef ARIH264HWDEVICECONSTANTS_H
       
    20 #define ARIH264HWDEVICECONSTANTS_H
       
    21 
       
    22 // Compressed H264 Video Formats Supported
       
    23 _LIT8(KH264MimeType, "video/H264");
       
    24 _LIT8(KH264MimeType2, "video/H264; profile-level-id=42800A");
       
    25 _LIT8(KH264MimeType3, "video/H264; profile-level-id=42800B");
       
    26 _LIT8(KH264MimeType4, "video/H264; profile-level-id=42800C");
       
    27 _LIT8(KH264MimeType5, "video/H264; profile-level-id=42800D");
       
    28 _LIT8(KH264MimeType6, "video/H264; profile-level-id=428014");
       
    29 _LIT8(KH264MimeType7, "video/H264; profile-level-id=428015");
       
    30 _LIT8(KH264MimeType8, "video/H264; profile-level-id=428016");
       
    31 _LIT8(KH264MimeType9, "video/H264; profile-level-id=42801E");
       
    32 _LIT8(KH264MimeType10, "video/H264; profile-level-id=42900B");
       
    33 
       
    34 
       
    35 _LIT(KH264EncManufacturer,"Aricent");
       
    36 _LIT(KH264EncIdentifier, "ARM H264 Video Encoder Hw Device");
       
    37 
       
    38 // 1 SPS and 1 PPS
       
    39 const TInt KNumOfConfigParams		= 2;
       
    40 // 1 SPS, 1 PPS and 1 SEI
       
    41 const TInt KNumOfConfigParams_SEI	= 3;
       
    42 // 1 SPS, 1 PPS, 4SEI
       
    43 const TInt KNumOfNAL_SEI	        = 6;
       
    44 const TInt KWordLength				= 4;
       
    45 const TInt KDoubleWordLength		= 8;
       
    46 
       
    47 const TInt KH264ENCIMPL_MAJOR_VERSION =  1;
       
    48 const TInt KH264ENCIMPL_MINOR_VERSION =  0;
       
    49 const TInt KH264ENCIMPL_BUILD_VERSION =  0;
       
    50 
       
    51 // Size - width,height related
       
    52 const TInt KH264ENCIMPL_SQCIF_WIDTH  		 = 128;
       
    53 const TInt KH264ENCIMPL_SQCIF_HEIGHT 		 = 96;
       
    54 const TInt KH264ENCIMPL_QCIF_WIDTH   		 = 176;
       
    55 const TInt KH264ENCIMPL_QCIF_HEIGHT  		 = 144;
       
    56 const TInt KH264ENCIMPL_QVGA_WIDTH   		 = 320;
       
    57 const TInt KH264ENCIMPL_QVGA_HEIGHT  		 = 240;
       
    58 const TInt KH264ENCIMPL_CIF_WIDTH    		 = 352;
       
    59 const TInt KH264ENCIMPL_CIF_HEIGHT   		 = 288;
       
    60 const TInt KH264ENCIMPL_VGA_WIDTH   		 = 640;
       
    61 const TInt KH264ENCIMPL_VGA_HEIGHT   		 = 480;
       
    62 const TInt KH264ENCIMPL_SDTV_WIDTH   		 = 720;
       
    63 const TInt KH264ENCIMPL_SDTV_HEIGHT_PAL      = 576;
       
    64 const TInt KH264ENCIMPL_SDTV_HEIGHT_NTSC     = 480;
       
    65 const TInt KH264ENCIMPL_HALFSDTV_WIDTH       = 360;
       
    66 const TInt KH264ENCIMPL_HALFSDTV_HEIGHT_PAL  = 288;
       
    67 const TInt KH264ENCIMPL_HALFSDTV_HEIGHT_NTSC = 240;
       
    68 const TInt KH264ENCIMPL_720P_HEIGHT          = 720;
       
    69 const TInt KH264ENCIMPL_720P_WIDTH           = 1280;
       
    70 
       
    71 // Bitrate related (bits per second)
       
    72 const TInt KH264ENCIMPL_DEFAULT_BITRATE   =  64000;
       
    73 const TInt KH264ENCIMPL_BITRATE_LEVEL_1b  =  128000;
       
    74 const TInt KH264ENCIMPL_BITRATE_LEVEL_1   =  64000;
       
    75 const TInt KH264ENCIMPL_BITRATE_LEVEL_11  =  192000;
       
    76 const TInt KH264ENCIMPL_BITRATE_LEVEL_12  =  384000;
       
    77 const TInt KH264ENCIMPL_BITRATE_LEVEL_13  =  768000;
       
    78 const TInt KH264ENCIMPL_BITRATE_LEVEL_2   =  2000000;
       
    79 const TInt KH264ENCIMPL_BITRATE_LEVEL_21  =  4000000;
       
    80 const TInt KH264ENCIMPL_BITRATE_LEVEL_22  =  4000000;
       
    81 const TInt KH264ENCIMPL_BITRATE_LEVEL_3   =  10000000;
       
    82 
       
    83 // Level related mapping
       
    84 const TInt KH264ENCIMPL_LEVEL_UNKNOWN = 0;
       
    85 const TInt KH264ENCIMPL_LEVEL_1b      = 9;
       
    86 const TInt KH264ENCIMPL_LEVEL_1       = 10;
       
    87 const TInt KH264ENCIMPL_LEVEL_11      = 11;
       
    88 const TInt KH264ENCIMPL_LEVEL_12      = 12;
       
    89 const TInt KH264ENCIMPL_LEVEL_13      = 13;
       
    90 const TInt KH264ENCIMPL_LEVEL_2       = 20;
       
    91 const TInt KH264ENCIMPL_LEVEL_21      = 21;
       
    92 const TInt KH264ENCIMPL_LEVEL_22      = 22;
       
    93 const TInt KH264ENCIMPL_LEVEL_3       = 30;
       
    94 
       
    95 // o/p buffer related
       
    96 const TInt KH264ENCIMPL_MAXNUM_OUTPUTBUFFERS = 2;
       
    97 const TInt KH264ENCIMPL_MAXNUM_TEMPOUTPUTBUFFERS = 2;
       
    98 const TInt KH264ENCIMPL_MAXNUM_SEGMENTBUFFERS = 30;
       
    99 const TInt KH264ENCIMPL_FACTOR_FOR_OUTPUTBUFFERSIZE_IN_PACKETMODE = 2;
       
   100 
       
   101 // o/p buffer size related
       
   102 const TInt KH264ENCIMPL_DEFAULT_SEGMENTSIZE = 256;
       
   103 const TInt KH264ENCIMPL_MIN_SEGMENTSIZE     = 192;
       
   104 const TInt KH264ENCIMPL_MAX_SEGMENTSIZE     = 300;
       
   105 
       
   106 // Max coded picture size in case of Level 1b
       
   107 const TInt KH264ENCIMPL_LEVEL1b_MAXCPBSIZE  = 39375;
       
   108 // Max coded picture size in case of Level 1.1
       
   109 const TInt KH264ENCIMPL_LEVEL11_MAXCPBSIZE  = 56250;
       
   110 
       
   111 // picture rate related
       
   112 const TReal KH264ENCIMPL_MAX_PICTURERATE     = 30.0;
       
   113 const TReal KH264ENCIMPL_DEFAULT_PICTURERATE = 15.0;
       
   114 const TReal KH264ENCIMPL_PICTURERATE_12_5    = 12.5;
       
   115 const TReal KH264ENCIMPL_PICTURERATE_25      = 25.0;
       
   116 
       
   117 const TInt KH264ENCIMPL_NUM_COMPLEXITYLEVELS     = 3;
       
   118 const TInt KH264ENCIMPL_ENCODEAHEAD              = 0;
       
   119 const TInt KH264ENCIMPL_MAXNUM_REFERENCEPICTURES = 16;
       
   120 
       
   121 // Default random access rate - 1 per 3seconds ie 1 after 45 frames at 15 fps
       
   122 const TInt KH264ENCIMPL_DEFAULT_RANDOMACCESSRATE =  0.3333333;
       
   123 
       
   124 // Minimum size of slice in coded picture format.
       
   125 const TInt KH264ENCIMPL_MIN_SLICESIZE = 200;
       
   126 
       
   127 const TInt KPOLLINGINTERVAL  = 100000;
       
   128 const TUint KMAXSUPPBITRATE  = 10000000;
       
   129 
       
   130 #endif //ARIH264HWDEVICECONSTANTS_H