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 26typedef void* PvmiMIOSession; 27typedef char* PvmiKeyType; //Mime String 28 29typedef 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=" 38static const char PVMI_KVPTYPE_STRING_CONSTCHAR[] = PVMI_KVPTYPE_STRING; 39 40#define PVMI_KVPTYPE_VALUE_STRING "value" 41static const char PVMI_KVPTYPE_VALUE_STRING_CONSTCHAR[] = PVMI_KVPTYPE_VALUE_STRING; 42 43#define PVMI_KVPTYPE_POINTER_STRING "pointer" 44static const char PVMI_KVPTYPE_POINTER_STRING_CONSTCHAR[] = PVMI_KVPTYPE_POINTER_STRING; 45 46#define PVMI_KVPTYPE_AGGREGATE_STRING "aggregate" 47static const char PVMI_KVPTYPE_AGGREGATE_STRING_CONSTCHAR[] = PVMI_KVPTYPE_AGGREGATE_STRING; 48 49#include "oscl_string_containers.h" 50 51typedef 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=" 60static const char PVMI_KVPATTR_STRING_CONSTCHAR[] = PVMI_KVPATTR_STRING; 61 62#define PVMI_KVPATTR_CAP_STRING "cap" 63static const char PVMI_KVPATTR_CAP_STRING_CONSTCHAR[] = PVMI_KVPATTR_CAP_STRING; 64 65#define PVMI_KVPATTR_DEF_STRING "def" 66static const char PVMI_KVPATTR_DEF_STRING_CONSTCHAR[] = PVMI_KVPATTR_DEF_STRING; 67 68#define PVMI_KVPATTR_CUR_STRING "cur" 69static const char PVMI_KVPATTR_CUR_STRING_CONSTCHAR[] = PVMI_KVPATTR_CUR_STRING; 70 71typedef 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 ";" 107static const char PVMI_KVP_SEMICOLON_STRING_CONSTCHAR[] = ";"; 108 109#define PVMI_KVPVALTYPE_STRING "valtype=" 110static const char PVMI_KVPVALTYPE_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_STRING; 111 112#define PVMI_KVPVALTYPE_BOOL_STRING "bool" 113static const char PVMI_KVPVALTYPE_BOOL_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_BOOL_STRING; 114 115#define PVMI_KVPVALTYPE_FLOAT_STRING "float" 116static const char PVMI_KVPVALTYPE_FLOAT_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_FLOAT_STRING; 117 118#define PVMI_KVPVALTYPE_DOUBLE_STRING "double" 119static const char PVMI_KVPVALTYPE_DOUBLE_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_DOUBLE_STRING; 120 121#define PVMI_KVPVALTYPE_UINT8_STRING "uint8" 122static const char PVMI_KVPVALTYPE_UINT8_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT8_STRING; 123 124#define PVMI_KVPVALTYPE_INT32_STRING "int32" 125static const char PVMI_KVPVALTYPE_INT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT32_STRING; 126 127#define PVMI_KVPVALTYPE_UINT32_STRING "uint32" 128static const char PVMI_KVPVALTYPE_UINT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT32_STRING; 129 130#define PVMI_KVPVALTYPE_INT64_STRING "int64" 131static const char PVMI_KVPVALTYPE_INT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT64_STRING; 132 133#define PVMI_KVPVALTYPE_UINT64_STRING "uint64" 134static const char PVMI_KVPVALTYPE_UINT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT64_STRING; 135 136#define PVMI_KVPVALTYPE_WCHARPTR_STRING "wchar*" 137static const char PVMI_KVPVALTYPE_WCHARPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_WCHARPTR_STRING; 138 139#define PVMI_KVPVALTYPE_CHARPTR_STRING "char*" 140static const char PVMI_KVPVALTYPE_CHARPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_CHARPTR_STRING; 141 142#define PVMI_KVPVALTYPE_UINT8PTR_STRING "uint8*" 143static const char PVMI_KVPVALTYPE_UINT8PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT8PTR_STRING; 144 145#define PVMI_KVPVALTYPE_INT32PTR_STRING "int32*" 146static const char PVMI_KVPVALTYPE_INT32PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT32PTR_STRING; 147 148#define PVMI_KVPVALTYPE_UINT32PTR_STRING "uint32*" 149static const char PVMI_KVPVALTYPE_UINT32PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT32PTR_STRING; 150 151#define PVMI_KVPVALTYPE_INT64PTR_STRING "int64*" 152static const char PVMI_KVPVALTYPE_INT64PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_INT64PTR_STRING; 153 154#define PVMI_KVPVALTYPE_UINT64PTR_STRING "uint64*" 155static const char PVMI_KVPVALTYPE_UINT64PTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_UINT64PTR_STRING; 156 157#define PVMI_KVPVALTYPE_FLOATPTR_STRING "float*" 158static const char PVMI_KVPVALTYPE_FLOATPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_FLOATPTR_STRING; 159 160#define PVMI_KVPVALTYPE_DOUBLEPTR_STRING "double*" 161static const char PVMI_KVPVALTYPE_DOUBLEPTR_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_DOUBLEPTR_STRING; 162 163#define PVMI_KVPVALTYPE_KSV_STRING "ksv" 164static const char PVMI_KVPVALTYPE_KSV_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_KSV_STRING; 165 166#define PVMI_KVPVALTYPE_PKVP_STRING "pKvp" 167static const char PVMI_KVPVALTYPE_PKVP_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_PKVP_STRING; 168 169#define PVMI_KVPVALTYPE_PPKVP_STRING "ppKvp" 170static const char PVMI_KVPVALTYPE_PPKVP_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_PPKVP_STRING; 171 172#define PVMI_KVPVALTYPE_RANGE_FLOAT_STRING "range_float" 173static const char PVMI_KVPVALTYPE_RANGE_FLOAT_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_FLOAT_STRING; 174 175#define PVMI_KVPVALTYPE_RANGE_DOUBLE_STRING "range_double" 176static const char PVMI_KVPVALTYPE_RANGE_DOUBLE_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_DOUBLE_STRING; 177 178#define PVMI_KVPVALTYPE_RANGE_UINT8_STRING "range_uint8" 179static const char PVMI_KVPVALTYPE_RANGE_UINT8_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_UINT8_STRING; 180 181#define PVMI_KVPVALTYPE_RANGE_INT32_STRING "range_int32" 182static const char PVMI_KVPVALTYPE_RANGE_INT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_INT32_STRING; 183 184#define PVMI_KVPVALTYPE_RANGE_UINT32_STRING "range_uint32" 185static const char PVMI_KVPVALTYPE_RANGE_UINT32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_UINT32_STRING; 186 187#define PVMI_KVPVALTYPE_RANGE_INT64_STRING "range_int64" 188static const char PVMI_KVPVALTYPE_RANGE_INT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_INT64_STRING; 189 190#define PVMI_KVPVALTYPE_RANGE_UINT64_STRING "range_uint64" 191static const char PVMI_KVPVALTYPE_RANGE_UINT64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_RANGE_UINT64_STRING; 192 193#define PVMI_KVPVALTYPE_BITARRAY32_STRING "bitarray32" 194static const char PVMI_KVPVALTYPE_BITARRAY32_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_BITARRAY32_STRING; 195 196#define PVMI_KVPVALTYPE_BITARRAY64_STRING "bitarray64" 197static const char PVMI_KVPVALTYPE_BITARRAY64_STRING_CONSTCHAR[] = PVMI_KVPVALTYPE_BITARRAY64_STRING; 198 199typedef struct PvmiKvpRangeInt32 200{ 201 int32 min; 202 int32 max; 203} range_int32; 204 205typedef struct PvmiKvpRangeUint32 206{ 207 uint32 min; 208 uint32 max; 209} range_uint32; 210 211typedef 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 239typedef struct __PvmiKvp 240{ 241 PvmiKeyType key; 242 int32 length; 243 int32 capacity; 244 PvmiKvpUnion value; 245} PvmiKvp; 246 247#ifdef __cplusplus 248class 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 280class 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 300class 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