• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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:
PvmfApicStruct()251         PvmfApicStruct()
252         {
253             iGraphicType = 0;
254             iGraphicMimeType = NULL;
255             iGraphicDescription = NULL;
256             iGraphicData = NULL;
257             iGraphicDataLen = 0;
258         };
259 
~PvmfApicStruct()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:
PvmfLyricsCommStruct()283         PvmfLyricsCommStruct()
284         {
285             iDescription = NULL;
286             iData = NULL;
287         };
~PvmfLyricsCommStruct()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:
PvmfAssetInfo3GPPLocationStruct()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         }
~PvmfAssetInfo3GPPLocationStruct()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 VIDEO_AVC_OUTPUT_SPS_CUR_QUERY ".../output/sps;attr=cur"
414 #define VIDEO_AVC_OUTPUT_SPS_CUR_VALUE ".../output/sps;valtype=key_specific_value"
415 
416 #define VIDEO_AVC_OUTPUT_PPS_CUR_QUERY ".../output/pps;attr=cur"
417 #define VIDEO_AVC_OUTPUT_PPS_CUR_VALUE ".../output/pps;valtype=key_specific_value"
418 #define TIMED_TEXT_OUTPUT_CONFIG_INFO_CUR_QUERY ".../output/timedtext;attr=cur"
419 #define TIMED_TEXT_OUTPUT_CONFIG_INFO_CUR_VALUE ".../output/timedtext;valtype=key_specific_value"
420 
421 // key for format type for any type of media
422 #define PVMF_FORMAT_TYPE_VALUE_KEY "x-pvmf/media/format-type;valtype=char*"
423 
424 // key for audio decoder format
425 #define PVMF_AUDIO_DEC_FORMAT_TYPE_VALUE_KEY "x-pvmf/audio/decoder/format-type;valtype=char*"
426 
427 // key for video decoder format
428 #define PVMF_VIDEO_DEC_FORMAT_TYPE_VALUE_KEY "x-pvmf/video/decoder/format-type;valtype=char*"
429 
430 // Keys for format specific info for any type of media
431 #define PVMF_FORMAT_SPECIFIC_INFO_KEY "x-pvmf/media/format_specific_info;valtype=key_specific_value"
432 
433 // Keys for format specific info for video media type
434 #define PVMF_FORMAT_SPECIFIC_INFO_KEY_YUV "x-pvmf/media/format_specific_info_yuv;valtype=key_specific_value"
435 
436 // Keys for format specific info for audio media type
437 #define PVMF_FORMAT_SPECIFIC_INFO_KEY_PCM "x-pvmf/media/format_specific_info_pcm;valtype=key_specific_value"
438 
439 // Keys for buffer allocator
440 #define PVMF_BUFFER_ALLOCATOR_KEY "x-pvmf/media/buffer_allocator;valtype=key_specific_value"
441 
442 // Keys for format specific info plus first media sample for any type of media
443 #define PVMF_FORMAT_SPECIFIC_INFO_PLUS_FIRST_SAMPLE_KEY "x-pvmf/media/format_specific_info_plus_first_sample;valtype=uint8*"
444 
445 #define PVMF_CLIENT_PLAYBACK_CLOCK_KEY "x-pvmf/player-clock-pointer;valtype=key_specific_value"
446 
447 // Keys for format bitrate info for any type of media
448 #define PVMF_BITRATE_VALUE_KEY "x-pvmf/media/bit-rate;valtype=uint32"
449 
450 // Keys for format framerate info for any type of media
451 #define PVMF_FRAMERATE_VALUE_KEY "x-pvmf/media/frame-rate;valtype=uint32"
452 
453 // Key for signalling max number of outstanding media msgs
454 #define PVMF_DATAPATH_PORT_MAX_NUM_MEDIA_MSGS_KEY "x-pvmf/datapath/port/max-num-media-msgs;valtype=uint32"
455 
456 
457 // Keys for media output components -- Audio
458 //
459 //audio format strings as defined in pvmf_format_type.h
460 #define MOUT_AUDIO_FORMAT_KEY "x-pvmf/audio/render/media_format;valtype=char*"
461 //audio sampling rate in Hz
462 #define MOUT_AUDIO_SAMPLING_RATE_KEY "x-pvmf/audio/render/sampling_rate;valtype=uint32"
463 //audio number of channels (1 for mono, 2 for stereo)
464 #define MOUT_AUDIO_NUM_CHANNELS_KEY "x-pvmf/audio/render/channels;valtype=uint32"
465 
466 // Key to configure the Number of frames required in a Media msg
467 #define PVMF_NUM_DECODED_FRAMES_CONFIG_KEY "x-pvmf/audio/render/num_decoded_frames;valtype=uint32"
468 
469 // Keys for media output components -- Video
470 //
471 //video format strings as defined in pvmf_format_type.h
472 #define MOUT_VIDEO_FORMAT_KEY "x-pvmf/video/render/media_format;valtype=char*"
473 // video sub-format (e.g. YUV420-planar etc.)
474 #define MOUT_VIDEO_SUBFORMAT_KEY "x-pvmf/video/render/media_subformat;valtype=char*"
475 
476 //video dimensions in pixels
477 #define MOUT_VIDEO_WIDTH_KEY "x-pvmf/video/render/width;valtype=uint32"
478 #define MOUT_VIDEO_HEIGHT_KEY "x-pvmf/video/render/height;valtype=uint32"
479 //video display dimensions in pixels.
480 #define MOUT_VIDEO_DISPLAY_WIDTH_KEY "x-pvmf/video/render/display_width;valtype=uint32"
481 #define MOUT_VIDEO_DISPLAY_HEIGHT_KEY "x-pvmf/video/render/display_height;valtype=uint32"
482 #define MOUT_VIDEO_OUTPUT_WIDTH_KEY "x-pvmf/video/render/output_width;valtype=uint32"
483 #define MOUT_VIDEO_OUTPUT_HEIGHT_KEY "x-pvmf/video/render/output_height;valtype=uint32"
484 #define MOUT_VIDEO_DISPLAY_ROTATION_KEY "x-pvmf/video/render/display_rotation;valtype=uint32"
485 #define MOUT_VIDEO_DISPLAY_BITMAP_KEY "x-pvmf/video/render/display_bitmap;valtype=uint32"
486 //video vol header info
487 #define MOUT_VIDEO_VOL_HEADER_KEY "x-pvmf/video/vol_header;valtype=uint8*"
488 
489 
490 // Keys for media output components -- Text
491 //
492 //text format strings as defined in pvmf_format_type.h
493 #define MOUT_TEXT_FORMAT_KEY "x-pvmf/text/render/media_format;valtype=char*"
494 
495 // Key for media output rate
496 #define MOUT_MEDIAXFER_OUTPUT_RATE "x-pvmf/mediaxfer/output/rate;type=rel;valtype=int32"
497 
498 
499 // Keys for media input components -- Audio
500 //
501 //audio sampling rate in Hz
502 #define MIN_AUDIO_SAMPLING_RATE_KEY "x-pvmf/encoder/audio/sampling_rate;valtype=uint32"
503 //audio number of channels (1 for mono, 2 for stereo)
504 #define MIN_AUDIO_NUM_CHANNELS_KEY "x-pvmf/encoder/audio/channels;valtype=uint32"
505 
506 // Keys for media input components -- Video
507 //
508 // Keys for media output components -- Text
509 //
510 #define TEXT_INPUT_WIDTH_CUR_QUERY ".../input/width;attr=cur"
511 #define TEXT_INPUT_WIDTH_CUR_VALUE ".../input/width;valtype=uint32"
512 #define TEXT_INPUT_HEIGHT_CUR_QUERY ".../input/height;attr=cur"
513 #define TEXT_INPUT_HEIGHT_CUR_VALUE ".../input/height;valtype=uint32"
514 
515 //AVC Encoder
516 #define PVMF_AVC_ENCODER_ENCODINGMODE_KEY   "x-pvmf/encoder/video/encoding_mode;valtype=uint32"
517 
518 #define INPUT_TIMESCALE_CUR_QUERY ".../input/timescale;attr=cur"
519 #define INPUT_TIMESCALE_CUR_VALUE ".../input/timescale;valtype=uint32"
520 
521 
522 
523 #endif // PVMI_KVP_H_INCLUDED
524 
525 
526 
527 
528