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