mmserv/thumbnailengine/TneProcessorInc/ctrcommon.h
changeset 0 71ca22bcf22a
equal deleted inserted replaced
-1:000000000000 0:71ca22bcf22a
       
     1 /*
       
     2 * Copyright (c) 2005 Nokia Corporation and/or its subsidiary(-ies).
       
     3 * All rights reserved.
       
     4 * This component and the accompanying materials are made available
       
     5 * under the terms of "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 * Nokia Corporation - initial contribution.
       
    11 *
       
    12 * Contributors:
       
    13 *
       
    14 * Description:   Common elements / data types
       
    15 *
       
    16 */
       
    17 
       
    18 
       
    19 
       
    20 #ifndef CTRCOMMON_H
       
    21 #define CTRCOMMON_H
       
    22 
       
    23 // INCLUDES
       
    24 #include <e32std.h>
       
    25 
       
    26 // Video data format
       
    27 enum TTRVideoDataType
       
    28 {
       
    29 	ETRDuCodedPicture = 0,  // Each data unit contains one coded video picture
       
    30 	ETRDuVideoSegment,  // Each data unit contains one coded video segment (according resync value (MPEG4) and GOB header in H.263)
       
    31 	ETRYuvRawData420,   // Each data unit represents uncompressed video picture in YUV 4:2:0 format
       
    32 	ETRYuvRawData422    // Each data unit represents uncompressed video picture in YUV 4:2:2 format
       
    33 };
       
    34 
       
    35 
       
    36 /**
       
    37 *  Video coding options
       
    38 *  @lib TRANSCODER.LIB
       
    39 *  @since 3.1
       
    40 */
       
    41 class TTRVideoCodingOptions
       
    42     {
       
    43     public:
       
    44         // Segment interval in picture. In H.263 baseline this means number of non-empty GOB headers 
       
    45         // (1=every GOB has a header), in MB-based systems number of MBs per segment. 
       
    46         // Default is 0 == no segments inside picture
       
    47         // Coding standard & used profile etc. limit the value.
       
    48         TInt iSyncIntervalInPicture;
       
    49         
       
    50         // Time between random access points (I-Frame)
       
    51         TUint iMinRandomAccessPeriodInSeconds;
       
    52 
       
    53         // Relevant to MPEG4 only. Specifies whether data partitioning is in use. 
       
    54         // When equal to ETrue, data partitioning is in use.
       
    55         TBool iDataPartitioning;
       
    56 
       
    57         // Relevant to MPEG4 only. Specifies whether reversible variable length coding is in use. 
       
    58         // When equal to ETrue, reversible variable length coding is in use. 
       
    59         // Valid only if iDataPartitioned is equal to ETrue.
       
    60         TBool iReversibleVLC;
       
    61 
       
    62         // Relevant to MPEG4 only. Header extension code. 
       
    63         TUint iHeaderExtension;
       
    64     };
       
    65 
       
    66 
       
    67 /**
       
    68 *  Video format
       
    69 *  @lib TRANSCODER.LIB
       
    70 *  @since 3.1
       
    71 */
       
    72 class TTRVideoFormat
       
    73     {
       
    74     public:
       
    75         // Video picture size
       
    76         TSize iSize;
       
    77 
       
    78         // Video data type
       
    79         TInt iDataType;
       
    80     };
       
    81 
       
    82 
       
    83 
       
    84 /**
       
    85 *  Video picture
       
    86 *  @lib TRANSCODER.LIB
       
    87 *  @since 3.1
       
    88 */
       
    89 class TTRVideoPicture
       
    90     {
       
    91     public:
       
    92         // Picture data
       
    93         TPtr8* iRawData;
       
    94 
       
    95         // Picture size in pixels
       
    96         TSize iDataSize;
       
    97 
       
    98         // Picture timestamp
       
    99         TTimeIntervalMicroSeconds iTimestamp;
       
   100 
       
   101         // Queue element
       
   102         TDblQueLink iLink; 
       
   103 
       
   104         // Misc user info
       
   105         TAny* iUser;
       
   106     };
       
   107 
       
   108 
       
   109 /**
       
   110 *  Display options
       
   111 *  @lib TRANSCODER.LIB
       
   112 *  @since 3.1
       
   113 */
       
   114 class TTRDisplayOptions
       
   115     {
       
   116     public:
       
   117         // The video output rectangle on screen
       
   118         TRect   iVideoRect;
       
   119 
       
   120         // Initial clipping region to use
       
   121         TRegion iClipRegion;
       
   122     };
       
   123 
       
   124 
       
   125 /**
       
   126 *  TTREventItem
       
   127 *  @lib TRANSCODER.LIB
       
   128 */
       
   129 class CTREventItem
       
   130     {
       
   131     public:
       
   132         // Timestamp from which to start iAction
       
   133         TTimeIntervalMicroSeconds iTimestamp;
       
   134         
       
   135         // EnableEncoder setting status
       
   136         TBool iEnableEncoderStatus; 
       
   137         
       
   138         // Enable PS setting status
       
   139         TBool iEnablePictureSinkStatus;
       
   140         
       
   141         // RandomAccess client's setting
       
   142         TBool iRandomAccessStatus;
       
   143         
       
   144         // Enable / Disable encoder client setting
       
   145         TBool iEnableEncoderClientSetting;
       
   146         
       
   147         // Enable / Disable picture sink client's setting
       
   148         TBool iEnablePictureSinkClientSetting;
       
   149         
       
   150         // Queue link
       
   151         TDblQueLink iLink;
       
   152         
       
   153     public:
       
   154         // Reset item's setting
       
   155         inline void Reset()
       
   156             {
       
   157             // Reset setting statuses & ts
       
   158             iTimestamp = -1;
       
   159             iEnableEncoderStatus = EFalse;
       
   160             iEnablePictureSinkStatus = EFalse;
       
   161             iRandomAccessStatus = EFalse;
       
   162             };
       
   163     };
       
   164 
       
   165 #endif