Home | History | Annotate | Download | only in include
      1 /* ------------------------------------------------------------------
      2  * Copyright (C) 1998-2009 PacketVideo
      3  *
      4  * Licensed under the Apache License, Version 2.0 (the "License");
      5  * you may not use this file except in compliance with the License.
      6  * You may obtain a copy of the License at
      7  *
      8  *      http://www.apache.org/licenses/LICENSE-2.0
      9  *
     10  * Unless required by applicable law or agreed to in writing, software
     11  * distributed under the License is distributed on an "AS IS" BASIS,
     12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either
     13  * express or implied.
     14  * See the License for the specific language governing permissions
     15  * and limitations under the License.
     16  * -------------------------------------------------------------------
     17  */
     18 /**
     19  *  @file pvmi_kvp.h
     20  *  @brief This files defines a key-value pair type for PVMI component capability exchange
     21  */
     22 
     23 #ifndef PVMI_KVP_H_INCLUDED
     24 #define PVMI_KVP_H_INCLUDED
     25 
     26 typedef void* PvmiMIOSession;
     27 typedef char* PvmiKeyType; //Mime String
     28 
     29 typedef enum
     30 {
     31     PVMI_KVPTYPE_UNKNOWN,
     32     PVMI_KVPTYPE_VALUE,
     33     PVMI_KVPTYPE_POINTER,
     34     PVMI_KVPTYPE_AGGREGATE
     35 } PvmiKvpType;
     36 
     37 #define PVMI_KVPTYPE_STRING "type="
     38 static const char PVMI_KVPTYPE_STRING_CONSTCHAR[] = PVMI_KVPTYPE_STRING;
     39 
     40 #define PVMI_KVPTYPE_VALUE_STRING "value"
     41 static const char PVMI_KVPTYPE_VALUE_STRING_CONSTCHAR[] = PVMI_KVPTYPE_VALUE_STRING;
     42 
     43 #define PVMI_KVPTYPE_POINTER_STRING "pointer"
     44 static const char PVMI_KVPTYPE_POINTER_STRING_CONSTCHAR[] = PVMI_KVPTYPE_POINTER_STRING;
     45 
     46 #define PVMI_KVPTYPE_AGGREGATE_STRING "aggregate"
     47 static const char PVMI_KVPTYPE_AGGREGATE_STRING_CONSTCHAR[] = PVMI_KVPTYPE_AGGREGATE_STRING;
     48 
     49 #include "oscl_string_containers.h"
     50 
     51 typedef enum
     52 {
     53     PVMI_KVPATTR_UNKNOWN,
     54     PVMI_KVPATTR_CAP,
     55     PVMI_KVPATTR_DEF,
     56     PVMI_KVPATTR_CUR
     57 } PvmiKvpAttr;
     58 
     59 #define PVMI_KVPATTR_STRING "attr="
     60 static const char PVMI_KVPATTR_STRING_CONSTCHAR[] = PVMI_KVPATTR_STRING;
     61 
     62 #define PVMI_KVPATTR_CAP_STRING "cap"
     63 static const char PVMI_KVPATTR_CAP_STRING_CONSTCHAR[] = PVMI_KVPATTR_CAP_STRING;
     64 
     65 #define PVMI_KVPATTR_DEF_STRING "def"
     66 static const char PVMI_KVPATTR_DEF_STRING_CONSTCHAR[] = PVMI_KVPATTR_DEF_STRING;
     67 
     68 #define PVMI_KVPATTR_CUR_STRING "cur"
     69 static const char PVMI_KVPATTR_CUR_STRING_CONSTCHAR[] = PVMI_KVPATTR_CUR_STRING;
     70 
     71 typedef enum
     72 {
     73     PVMI_KVPVALTYPE_UNKNOWN,
     74     PVMI_KVPVALTYPE_BOOL,
     75     PVMI_KVPVALTYPE_FLOAT,
     76     PVMI_KVPVALTYPE_DOUBLE,
     77     PVMI_KVPVALTYPE_UINT8,
     78     PVMI_KVPVALTYPE_INT32,
     79     PVMI_KVPVALTYPE_UINT32,
     80     PVMI_KVPVALTYPE_INT64,
     81     PVMI_KVPVALTYPE_UINT64,
     82     PVMI_KVPVALTYPE_WCHARPTR,
     83     PVMI_KVPVALTYPE_CHARPTR,
     84     PVMI_KVPVALTYPE_UINT8PTR,
     85     PVMI_KVPVALTYPE_INT32PTR,
     86     PVMI_KVPVALTYPE_UINT32PTR,
     87     PVMI_KVPVALTYPE_INT64PTR,
     88     PVMI_KVPVALTYPE_UINT64PTR,
     89     PVMI_KVPVALTYPE_FLOATPTR,
     90     PVMI_KVPVALTYPE_DOUBLEPTR,
     91     PVMI_KVPVALTYPE_KSV,
     92     PVMI_KVPVALTYPE_PKVP,
     93     PVMI_KVPVALTYPE_PPKVP,
     94     PVMI_KVPVALTYPE_RANGE_FLOAT,
     95     PVMI_KVPVALTYPE_RANGE_DOUBLE,
     96     PVMI_KVPVALTYPE_RANGE_UINT8,
     97     PVMI_KVPVALTYPE_RANGE_INT32,
     98     PVMI_KVPVALTYPE_RANGE_UINT32,
     99     PVMI_KVPVALTYPE_RANGE_INT64,
    100     PVMI_KVPVALTYPE_RANGE_UINT64,
    101     PVMI_KVPVALTYPE_BITARRAY32,
    102     PVMI_KVPVALTYPE_BITARRAY64
    103 } PvmiKvpValueType;
    104 
    105 
    106 #define PVMI_KVP_SEMICOLON_STRING ";"
    107 static const char PVMI_KVP_SEMICOLON_STRING_CONSTCHAR[] = ";";
    108 
    109 #define PVMI_KVPVALTYPE_STRING "valtype="
    110 static const char PVMI_KVPVALTYPE_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_STRING;
    111 
    112 #define PVMI_KVPVALTYPE_BOOL_STRING "bool"
    113 static const char PVMI_KVPVALTYPE_BOOL_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_BOOL_STRING;
    114 
    115 #define PVMI_KVPVALTYPE_FLOAT_STRING "float"
    116 static const char PVMI_KVPVALTYPE_FLOAT_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_FLOAT_STRING;
    117 
    118 #define PVMI_KVPVALTYPE_DOUBLE_STRING "double"
    119 static const char PVMI_KVPVALTYPE_DOUBLE_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_DOUBLE_STRING;
    120 
    121 #define PVMI_KVPVALTYPE_UINT8_STRING "uint8"
    122 static const char PVMI_KVPVALTYPE_UINT8_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT8_STRING;
    123 
    124 #define PVMI_KVPVALTYPE_INT32_STRING "int32"
    125 static const char PVMI_KVPVALTYPE_INT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT32_STRING;
    126 
    127 #define PVMI_KVPVALTYPE_UINT32_STRING "uint32"
    128 static const char PVMI_KVPVALTYPE_UINT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT32_STRING;
    129 
    130 #define PVMI_KVPVALTYPE_INT64_STRING "int64"
    131 static const char PVMI_KVPVALTYPE_INT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT64_STRING;
    132 
    133 #define PVMI_KVPVALTYPE_UINT64_STRING "uint64"
    134 static const char PVMI_KVPVALTYPE_UINT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT64_STRING;
    135 
    136 #define PVMI_KVPVALTYPE_WCHARPTR_STRING "wchar*"
    137 static const char PVMI_KVPVALTYPE_WCHARPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_WCHARPTR_STRING;
    138 
    139 #define PVMI_KVPVALTYPE_CHARPTR_STRING "char*"
    140 static const char PVMI_KVPVALTYPE_CHARPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_CHARPTR_STRING;
    141 
    142 #define PVMI_KVPVALTYPE_UINT8PTR_STRING "uint8*"
    143 static const char PVMI_KVPVALTYPE_UINT8PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT8PTR_STRING;
    144 
    145 #define PVMI_KVPVALTYPE_INT32PTR_STRING "int32*"
    146 static const char PVMI_KVPVALTYPE_INT32PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT32PTR_STRING;
    147 
    148 #define PVMI_KVPVALTYPE_UINT32PTR_STRING "uint32*"
    149 static const char PVMI_KVPVALTYPE_UINT32PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT32PTR_STRING;
    150 
    151 #define PVMI_KVPVALTYPE_INT64PTR_STRING "int64*"
    152 static const char PVMI_KVPVALTYPE_INT64PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT64PTR_STRING;
    153 
    154 #define PVMI_KVPVALTYPE_UINT64PTR_STRING "uint64*"
    155 static const char PVMI_KVPVALTYPE_UINT64PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT64PTR_STRING;
    156 
    157 #define PVMI_KVPVALTYPE_FLOATPTR_STRING "float*"
    158 static const char PVMI_KVPVALTYPE_FLOATPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_FLOATPTR_STRING;
    159 
    160 #define PVMI_KVPVALTYPE_DOUBLEPTR_STRING "double*"
    161 static const char PVMI_KVPVALTYPE_DOUBLEPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_DOUBLEPTR_STRING;
    162 
    163 #define PVMI_KVPVALTYPE_KSV_STRING "ksv"
    164 static const char PVMI_KVPVALTYPE_KSV_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_KSV_STRING;
    165 
    166 #define PVMI_KVPVALTYPE_PKVP_STRING "pKvp"
    167 static const char PVMI_KVPVALTYPE_PKVP_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_PKVP_STRING;
    168 
    169 #define PVMI_KVPVALTYPE_PPKVP_STRING "ppKvp"
    170 static const char PVMI_KVPVALTYPE_PPKVP_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_PPKVP_STRING;
    171 
    172 #define PVMI_KVPVALTYPE_RANGE_FLOAT_STRING "range_float"
    173 static const char PVMI_KVPVALTYPE_RANGE_FLOAT_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_FLOAT_STRING;
    174 
    175 #define PVMI_KVPVALTYPE_RANGE_DOUBLE_STRING "range_double"
    176 static const char PVMI_KVPVALTYPE_RANGE_DOUBLE_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_DOUBLE_STRING;
    177 
    178 #define PVMI_KVPVALTYPE_RANGE_UINT8_STRING "range_uint8"
    179 static const char PVMI_KVPVALTYPE_RANGE_UINT8_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_UINT8_STRING;
    180 
    181 #define PVMI_KVPVALTYPE_RANGE_INT32_STRING "range_int32"
    182 static const char PVMI_KVPVALTYPE_RANGE_INT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_INT32_STRING;
    183 
    184 #define PVMI_KVPVALTYPE_RANGE_UINT32_STRING "range_uint32"
    185 static const char PVMI_KVPVALTYPE_RANGE_UINT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_UINT32_STRING;
    186 
    187 #define PVMI_KVPVALTYPE_RANGE_INT64_STRING "range_int64"
    188 static const char PVMI_KVPVALTYPE_RANGE_INT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_INT64_STRING;
    189 
    190 #define PVMI_KVPVALTYPE_RANGE_UINT64_STRING "range_uint64"
    191 static const char PVMI_KVPVALTYPE_RANGE_UINT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_UINT64_STRING;
    192 
    193 #define PVMI_KVPVALTYPE_BITARRAY32_STRING "bitarray32"
    194 static const char PVMI_KVPVALTYPE_BITARRAY32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_BITARRAY32_STRING;
    195 
    196 #define PVMI_KVPVALTYPE_BITARRAY64_STRING "bitarray64"
    197 static const char PVMI_KVPVALTYPE_BITARRAY64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_BITARRAY64_STRING;
    198 
    199 typedef struct PvmiKvpRangeInt32
    200 {
    201     int32 min;
    202     int32 max;
    203 } range_int32;
    204 
    205 typedef struct PvmiKvpRangeUint32
    206 {
    207     uint32 min;
    208     uint32 max;
    209 } range_uint32;
    210 
    211 typedef union
    212 {
    213 #ifdef __cplusplus
    214     bool  bool_value;
    215 #else
    216     c_bool bool_value;
    217 #endif
    218     float float_value;
    219     double double_value;
    220     uint8 uint8_value;
    221     int32 int32_value;
    222     uint32 uint32_value;
    223     oscl_wchar* pWChar_value;
    224     char* pChar_value;
    225     uint8* pUint8_value;
    226     int32* pInt32_value;
    227     uint32* pUint32_value;
    228     int64* pInt64_value;
    229     uint64*  pUint64_value;
    230     float* pFloat_value;
    231     double* pDouble_value;
    232     void *key_specific_value;
    233     /* pointer to another key/value pair */
    234     struct __PvmiKvp*  pKvp;
    235     /* pointer to an array of key/value pairs */
    236     struct __PvmiKvp**  ppKvp;
    237 } PvmiKvpUnion;
    238 
    239 typedef struct __PvmiKvp
    240 {
    241     PvmiKeyType key;
    242     int32 length;
    243     int32 capacity;
    244     PvmiKvpUnion value;
    245 } PvmiKvp;
    246 
    247 #ifdef __cplusplus
    248 class PvmfApicStruct
    249 {
    250     public:
    251         PvmfApicStruct()
    252         {
    253             iGraphicType = 0;
    254             iGraphicMimeType = NULL;
    255             iGraphicDescription = NULL;
    256             iGraphicData = NULL;
    257             iGraphicDataLen = 0;
    258         };
    259 
    260         virtual ~PvmfApicStruct()
    261         {
    262             iGraphicType = 0;
    263             iGraphicMimeType = NULL;
    264             iGraphicDescription = NULL;
    265             iGraphicData = NULL;
    266             iGraphicDataLen = 0;
    267         };
    268 
    269         uint8        iGraphicType;
    270         // var length null-terminated unicode string for the picture mime type
    271         oscl_wchar* iGraphicMimeType;
    272         // var length null-terminated unicode string for picture description
    273         oscl_wchar* iGraphicDescription;
    274         // picture data
    275         uint8*       iGraphicData;
    276         // picture data length
    277         uint32      iGraphicDataLen;
    278 };
    279 
    280 class PvmfLyricsCommStruct
    281 {
    282     public:
    283         PvmfLyricsCommStruct()
    284         {
    285             iDescription = NULL;
    286             iData = NULL;
    287         };
    288         virtual ~PvmfLyricsCommStruct()
    289         {
    290             iDescription = NULL;
    291             iData = NULL;
    292 
    293         }
    294 
    295         oscl_wchar *iDescription;
    296         oscl_wchar *iData;
    297 };
    298 
    299 
    300 class PvmfAssetInfo3GPPLocationStruct
    301 {
    302     public:
    303         PvmfAssetInfo3GPPLocationStruct()
    304         {
    305             _location_name = NULL;
    306             _astronomical_body = NULL;
    307             _additional_notes = NULL;
    308             _role = 0;
    309             _longitude = 0;
    310             _latitude = 0;
    311             _altitude = 0;
    312             _langCode = 0;
    313             Lang_code = NULL;
    314         }
    315         virtual ~PvmfAssetInfo3GPPLocationStruct()
    316         {
    317             _location_name = NULL;
    318             _astronomical_body = NULL;
    319             _additional_notes = NULL;
    320             _role = 0;
    321             _longitude = 0;
    322             _latitude = 0;
    323             _altitude = 0;
    324             _langCode = 0;
    325             Lang_code = NULL;
    326         }
    327 
    328         oscl_wchar* _location_name;
    329         oscl_wchar* _astronomical_body;
    330         oscl_wchar* _additional_notes;
    331         OSCL_HeapString<OsclMemAllocator> Lang_code;
    332         uint8   _role;
    333 
    334         uint32  _longitude;//fixed-point 16.16 number indicating the longitude in degrees.
    335         //Negative values represent western longitude
    336 
    337         uint32  _latitude;//fixed-point 16.16 number indicating the latitude in degrees.
    338         //Negative values represent southern latitude
    339 
    340         uint32  _altitude;//fixed-point 16.16 number indicating the altitude in meters.
    341         //The reference altitude, indicated by zero, is set to the sea level.
    342         uint16 _langCode;
    343 };
    344 
    345 #endif // __cplusplus
    346 
    347 // String used with the termination key value
    348 #define PVMI_KVP_END "kvp_end"
    349 
    350 // Capability mime strings
    351 #define INPUT_FORMATS_CAP_QUERY ".../input_formats;attr=cap"
    352 #define INPUT_FORMATS_CUR_QUERY ".../input_formats;attr=cur"
    353 #define INPUT_FORMATS_VALTYPE ".../input_formats;valtype=char*"
    354 #define OUTPUT_FORMATS_CAP_QUERY ".../output_formats;attr=cap"
    355 #define OUTPUT_FORMATS_CUR_QUERY ".../output_formats;attr=cur"
    356 #define OUTPUT_FORMATS_VALTYPE ".../output_formats;valtype=char*"
    357 
    358 #define VIDEO_INPUT_WIDTH_CAP_QUERY ".../input/width;attr=cap"
    359 #define VIDEO_INPUT_WIDTH_CAP_RANGE ".../input/width;valtype=range_uint32"
    360 #define VIDEO_INPUT_WIDTH_CUR_QUERY ".../input/width;attr=cur"
    361 #define VIDEO_INPUT_WIDTH_CUR_VALUE ".../input/width;valtype=uint32"
    362 
    363 #define VIDEO_INPUT_HEIGHT_CAP_QUERY ".../input/height;attr=cap"
    364 #define VIDEO_INPUT_HEIGHT_CAP_RANGE ".../input/height;valtype=range_uint32"
    365 #define VIDEO_INPUT_HEIGHT_CUR_QUERY ".../input/height;attr=cur"
    366 #define VIDEO_INPUT_HEIGHT_CUR_VALUE ".../input/height;valtype=uint32"
    367 
    368 #define VIDEO_INPUT_FRAME_RATE_CUR_QUERY ".../input/frame_rate;attr=cur"
    369 #define VIDEO_INPUT_FRAME_RATE_CUR_VALUE ".../input/frame_rate;valtype=uint32"
    370 
    371 #define VIDEO_INPUT_BITRATE_CUR_QUERY ".../input/bitrate;attr=cur"
    372 #define VIDEO_INPUT_BITRATE_CUR_VALUE ".../input/bitrate;valtype=uint32"
    373 
    374 #define VIDEO_OUTPUT_WIDTH_CAP_QUERY ".../output/width;attr=cap"
    375 #define VIDEO_OUTPUT_WIDTH_CAP_RANGE ".../output/width;valtype=range_uint32"
    376 #define VIDEO_OUTPUT_WIDTH_CUR_QUERY ".../output/width;attr=cur"
    377 #define VIDEO_OUTPUT_WIDTH_CUR_VALUE ".../output/width;valtype=uint32"
    378 
    379 #define VIDEO_FRAME_ORIENTATION_CUR_QUERY ".../output/frame_orientation;attr=cur"
    380 #define VIDEO_FRAME_ORIENTATION_CUR_VALUE ".../output/frame_orientation;valtype=uint8"
    381 #define VIDEO_OUTPUT_HEIGHT_CAP_QUERY ".../output/height;attr=cap"
    382 #define VIDEO_OUTPUT_HEIGHT_CAP_RANGE ".../output/height;valtype=range_uint32"
    383 #define VIDEO_OUTPUT_HEIGHT_CUR_QUERY ".../output/height;attr=cur"
    384 #define VIDEO_OUTPUT_HEIGHT_CUR_VALUE ".../output/height;valtype=uint32"
    385 
    386 #define VIDEO_OUTPUT_FRAME_RATE_CUR_QUERY ".../output/frame_rate;attr=cur"
    387 #define VIDEO_OUTPUT_FRAME_RATE_CUR_VALUE ".../output/frame_rate;valtype=uint32"
    388 
    389 #define VIDEO_OUTPUT_IFRAME_INTERVAL_CUR_QUERY ".../output/iframe_interval;attr=cur"
    390 #define VIDEO_OUTPUT_IFRAME_INTERVAL_CUR_VALUE ".../output/iframe_interval;valtype=uint32"
    391 
    392 #define TEXT_OUTPUT_WIDTH_CUR_QUERY ".../output/width;attr=cur"
    393 #define TEXT_OUTPUT_WIDTH_CUR_VALUE ".../output/width;valtype=uint32"
    394 #define TEXT_OUTPUT_HEIGHT_CUR_QUERY ".../output/height;attr=cur"
    395 #define TEXT_OUTPUT_HEIGHT_CUR_VALUE ".../output/height;valtype=uint32"
    396 
    397 
    398 #define OUTPUT_BITRATE_CUR_QUERY ".../output/bitrate;attr=cur"
    399 #define OUTPUT_BITRATE_CUR_VALUE ".../output/bitrate;valtype=uint32"
    400 
    401 #define OUTPUT_TIMESCALE_CUR_QUERY ".../output/timescale;attr=cur"
    402 #define OUTPUT_TIMESCALE_CUR_VALUE ".../output/timescale;valtype=uint32"
    403 
    404 #define AUDIO_INPUT_SAMPLING_RATE_CUR_QUERY ".../input/sampling_rate;attr=cur"
    405 #define AUDIO_INPUT_SAMPLING_RATE_CUR_VALUE ".../input/sampling_rate;valtype=uint32"
    406 
    407 #define AUDIO_OUTPUT_SAMPLING_RATE_CUR_QUERY ".../output/sampling_rate;attr=cur"
    408 #define AUDIO_OUTPUT_SAMPLING_RATE_CUR_VALUE ".../output/sampling_rate;valtype=uint32"
    409 
    410 #define AUDIO_OUTPUT_NUM_CHANNELS_CUR_QUERY ".../num_channels;attr=cur"
    411 #define AUDIO_OUTPUT_NUM_CHANNELS_CUR_VALUE ".../num_channels;valtype=uint32"
    412 
    413 #define AUDIO_OUTPUT_BITS_PER_SAMPLE_CUR_QUERY ".../bits_per_sample;attr=cur"
    414 #define AUDIO_OUTPUT_BITS_PER_SAMPLE_CUR_VALUE ".../bits_per_sample;valtype=uint32"
    415 
    416 #define VIDEO_AVC_OUTPUT_SPS_CUR_QUERY ".../output/sps;attr=cur"
    417 #define VIDEO_AVC_OUTPUT_SPS_CUR_VALUE ".../output/sps;valtype=key_specific_value"
    418 
    419 #define VIDEO_AVC_OUTPUT_PPS_CUR_QUERY ".../output/pps;attr=cur"
    420 #define VIDEO_AVC_OUTPUT_PPS_CUR_VALUE ".../output/pps;valtype=key_specific_value"
    421 #define TIMED_TEXT_OUTPUT_CONFIG_INFO_CUR_QUERY ".../output/timedtext;attr=cur"
    422 #define TIMED_TEXT_OUTPUT_CONFIG_INFO_CUR_VALUE ".../output/timedtext;valtype=key_specific_value"
    423 
    424 // key for format type for any type of media
    425 #define PVMF_FORMAT_TYPE_VALUE_KEY "x-pvmf/media/format-type;valtype=char*"
    426 
    427 // key for audio decoder format
    428 #define PVMF_AUDIO_DEC_FORMAT_TYPE_VALUE_KEY "x-pvmf/audio/decoder/format-type;valtype=char*"
    429 
    430 // key for video decoder format
    431 #define PVMF_VIDEO_DEC_FORMAT_TYPE_VALUE_KEY "x-pvmf/video/decoder/format-type;valtype=char*"
    432 
    433 // Keys for format specific info for any type of media
    434 #define PVMF_FORMAT_SPECIFIC_INFO_KEY "x-pvmf/media/format_specific_info;valtype=key_specific_value"
    435 
    436 // Keys for format specific info for video media type
    437 #define PVMF_FORMAT_SPECIFIC_INFO_KEY_YUV "x-pvmf/media/format_specific_info_yuv;valtype=key_specific_value"
    438 
    439 // Keys for format specific info for audio media type
    440 #define PVMF_FORMAT_SPECIFIC_INFO_KEY_PCM "x-pvmf/media/format_specific_info_pcm;valtype=key_specific_value"
    441 
    442 // Keys for buffer allocator
    443 #define PVMF_BUFFER_ALLOCATOR_KEY "x-pvmf/media/buffer_allocator;valtype=key_specific_value"
    444 
    445 // Keys for format specific info plus first media sample for any type of media
    446 #define PVMF_FORMAT_SPECIFIC_INFO_PLUS_FIRST_SAMPLE_KEY "x-pvmf/media/format_specific_info_plus_first_sample;valtype=uint8*"
    447 
    448 #define PVMF_CLIENT_PLAYBACK_CLOCK_KEY "x-pvmf/player-clock-pointer;valtype=key_specific_value"
    449 
    450 #define PVMF_AUTHORING_CLOCK_KEY "x-pvmf/authoring-clock-pointer;valtype=key_specific_value"
    451 
    452 // Keys for format bitrate info for any type of media
    453 #define PVMF_BITRATE_VALUE_KEY "x-pvmf/media/bit-rate;valtype=uint32"
    454 
    455 // Keys for format framerate info for any type of media
    456 #define PVMF_FRAMERATE_VALUE_KEY "x-pvmf/media/frame-rate;valtype=uint32"
    457 
    458 // Key for signalling max number of outstanding media msgs
    459 #define PVMF_DATAPATH_PORT_MAX_NUM_MEDIA_MSGS_KEY "x-pvmf/datapath/port/max-num-media-msgs;valtype=uint32"
    460 
    461 // Key for media input node to provide its cap-config interface to media input compnent
    462 #define PVMF_MEDIA_INPUT_NODE_CAP_CONFIG_INTERFACE_KEY "x-pvmf/media-input-node/cap-config-interface;valtype=key_specific_value"
    463 
    464 // Key for media output node to provide its cap-config interface to media output compnent
    465 #define PVMF_MEDIA_OUTPUT_NODE_CAP_CONFIG_INTERFACE_KEY "x-pvmf/media-output-node/cap-config-interface;valtype=key_specific_value"
    466 
    467 // Keys for media output components -- Audio
    468 //
    469 //audio format strings as defined in pvmf_format_type.h
    470 #define MOUT_AUDIO_FORMAT_KEY "x-pvmf/audio/render/media_format;valtype=char*"
    471 //audio sampling rate in Hz
    472 #define MOUT_AUDIO_SAMPLING_RATE_KEY "x-pvmf/audio/render/sampling_rate;valtype=uint32"
    473 //audio number of channels (1 for mono, 2 for stereo)
    474 #define MOUT_AUDIO_NUM_CHANNELS_KEY "x-pvmf/audio/render/channels;valtype=uint32"
    475 
    476 // Key to configure the Number of frames required in a Media msg
    477 #define PVMF_NUM_DECODED_FRAMES_CONFIG_KEY "x-pvmf/audio/render/num_decoded_frames;valtype=uint32"
    478 
    479 // Keys for media output components -- Video
    480 //
    481 //video format strings as defined in pvmf_format_type.h
    482 #define MOUT_VIDEO_FORMAT_KEY "x-pvmf/video/render/media_format;valtype=char*"
    483 // video sub-format (e.g. YUV420-planar etc.)
    484 #define MOUT_VIDEO_SUBFORMAT_KEY "x-pvmf/video/render/media_subformat;valtype=char*"
    485 
    486 //video dimensions in pixels
    487 #define MOUT_VIDEO_WIDTH_KEY "x-pvmf/video/render/width;valtype=uint32"
    488 #define MOUT_VIDEO_HEIGHT_KEY "x-pvmf/video/render/height;valtype=uint32"
    489 //video display dimensions in pixels.
    490 #define MOUT_VIDEO_DISPLAY_WIDTH_KEY "x-pvmf/video/render/display_width;valtype=uint32"
    491 #define MOUT_VIDEO_DISPLAY_HEIGHT_KEY "x-pvmf/video/render/display_height;valtype=uint32"
    492 #define MOUT_VIDEO_OUTPUT_WIDTH_KEY "x-pvmf/video/render/output_width;valtype=uint32"
    493 #define MOUT_VIDEO_OUTPUT_HEIGHT_KEY "x-pvmf/video/render/output_height;valtype=uint32"
    494 #define MOUT_VIDEO_DISPLAY_ROTATION_KEY "x-pvmf/video/render/display_rotation;valtype=uint32"
    495 #define MOUT_VIDEO_DISPLAY_BITMAP_KEY "x-pvmf/video/render/display_bitmap;valtype=uint32"
    496 //video vol header info
    497 #define MOUT_VIDEO_VOL_HEADER_KEY "x-pvmf/video/vol_header;valtype=uint8*"
    498 
    499 
    500 // Keys for media output components -- Text
    501 //
    502 //text format strings as defined in pvmf_format_type.h
    503 #define MOUT_TEXT_FORMAT_KEY "x-pvmf/text/render/media_format;valtype=char*"
    504 
    505 // Key for media output rate
    506 #define MOUT_MEDIAXFER_OUTPUT_RATE "x-pvmf/mediaxfer/output/rate;type=rel;valtype=int32"
    507 
    508 
    509 // Keys for media input components -- Audio
    510 //
    511 //audio sampling rate in Hz
    512 #define MIN_AUDIO_SAMPLING_RATE_KEY "x-pvmf/encoder/audio/sampling_rate;valtype=uint32"
    513 //audio number of channels (1 for mono, 2 for stereo)
    514 #define MIN_AUDIO_NUM_CHANNELS_KEY "x-pvmf/encoder/audio/channels;valtype=uint32"
    515 
    516 // Keys for media input components -- Video
    517 //
    518 // Keys for media output components -- Text
    519 //
    520 #define TEXT_INPUT_WIDTH_CUR_QUERY ".../input/width;attr=cur"
    521 #define TEXT_INPUT_WIDTH_CUR_VALUE ".../input/width;valtype=uint32"
    522 #define TEXT_INPUT_HEIGHT_CUR_QUERY ".../input/height;attr=cur"
    523 #define TEXT_INPUT_HEIGHT_CUR_VALUE ".../input/height;valtype=uint32"
    524 
    525 //AVC Encoder
    526 #define PVMF_AVC_ENCODER_ENCODINGMODE_KEY   "x-pvmf/encoder/video/encoding_mode;valtype=uint32"
    527 
    528 #define INPUT_TIMESCALE_CUR_QUERY ".../input/timescale;attr=cur"
    529 #define INPUT_TIMESCALE_CUR_VALUE ".../input/timescale;valtype=uint32"
    530 
    531 
    532 
    533 #endif // PVMI_KVP_H_INCLUDED
    534 
    535 
    536 
    537 
    538