Utilise new MergeSym feature to no longer overwrite the source .DEF file when buildin...
[openh323.git] / src / h245_3.cxx
blob4f85421c559645821f2aa55cf98b18fd3eaa9668
1 //
2 // h245_3.cxx
3 //
4 // Code automatically generated by asnparse.
5 //
7 #include <ptlib.h>
8 #include "h245.h"
10 #define new PNEW
13 #if ! H323_DISABLE_H245
16 // FECData_rfc2733_pktMode_rfc2733diffport
19 H245_FECData_rfc2733_pktMode_rfc2733diffport::H245_FECData_rfc2733_pktMode_rfc2733diffport(unsigned tag, PASN_Object::TagClass tagClass)
20 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
25 #ifndef PASN_NOPRINTON
26 void H245_FECData_rfc2733_pktMode_rfc2733diffport::PrintOn(ostream & strm) const
28 int indent = strm.precision() + 2;
29 strm << "{\n";
30 strm << setw(indent+19) << "protectedChannel = " << setprecision(indent) << m_protectedChannel << '\n';
31 strm << setw(indent-1) << setprecision(indent-2) << "}";
33 #endif
36 PObject::Comparison H245_FECData_rfc2733_pktMode_rfc2733diffport::Compare(const PObject & obj) const
38 #ifndef PASN_LEANANDMEAN
39 PAssert(PIsDescendant(&obj, H245_FECData_rfc2733_pktMode_rfc2733diffport), PInvalidCast);
40 #endif
41 const H245_FECData_rfc2733_pktMode_rfc2733diffport & other = (const H245_FECData_rfc2733_pktMode_rfc2733diffport &)obj;
43 Comparison result;
45 if ((result = m_protectedChannel.Compare(other.m_protectedChannel)) != EqualTo)
46 return result;
48 return PASN_Sequence::Compare(other);
52 PINDEX H245_FECData_rfc2733_pktMode_rfc2733diffport::GetDataLength() const
54 PINDEX length = 0;
55 length += m_protectedChannel.GetObjectLength();
56 return length;
60 BOOL H245_FECData_rfc2733_pktMode_rfc2733diffport::Decode(PASN_Stream & strm)
62 if (!PreambleDecode(strm))
63 return FALSE;
65 if (!m_protectedChannel.Decode(strm))
66 return FALSE;
68 return UnknownExtensionsDecode(strm);
72 void H245_FECData_rfc2733_pktMode_rfc2733diffport::Encode(PASN_Stream & strm) const
74 PreambleEncode(strm);
76 m_protectedChannel.Encode(strm);
78 UnknownExtensionsEncode(strm);
82 PObject * H245_FECData_rfc2733_pktMode_rfc2733diffport::Clone() const
84 #ifndef PASN_LEANANDMEAN
85 PAssert(IsClass(H245_FECData_rfc2733_pktMode_rfc2733diffport::Class()), PInvalidCast);
86 #endif
87 return new H245_FECData_rfc2733_pktMode_rfc2733diffport(*this);
92 #ifndef PASN_NOPRINTON
93 const static PASN_Names Names_H245_DepFECMode_rfc2733Mode_mode_separateStream[]={
94 {"differentPort",0}
95 ,{"samePort",1}
97 #endif
99 // DepFECMode_rfc2733Mode_mode_separateStream
102 H245_DepFECMode_rfc2733Mode_mode_separateStream::H245_DepFECMode_rfc2733Mode_mode_separateStream(unsigned tag, PASN_Object::TagClass tagClass)
103 : PASN_Choice(tag, tagClass, 2, TRUE
104 #ifndef PASN_NOPRINTON
105 ,(const PASN_Names *)Names_H245_DepFECMode_rfc2733Mode_mode_separateStream,2
106 #endif
112 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
113 H245_DepFECMode_rfc2733Mode_mode_separateStream::operator H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort &() const
114 #else
115 H245_DepFECMode_rfc2733Mode_mode_separateStream::operator H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort &()
117 #ifndef PASN_LEANANDMEAN
118 PAssert(PIsDescendant(PAssertNULL(choice), H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort), PInvalidCast);
119 #endif
120 return *(H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort *)choice;
124 H245_DepFECMode_rfc2733Mode_mode_separateStream::operator const H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort &() const
125 #endif
127 #ifndef PASN_LEANANDMEAN
128 PAssert(PIsDescendant(PAssertNULL(choice), H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort), PInvalidCast);
129 #endif
130 return *(H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort *)choice;
134 #if defined(__GNUC__) && __GNUC__ <= 2 && __GNUC_MINOR__ < 9
135 H245_DepFECMode_rfc2733Mode_mode_separateStream::operator H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort &() const
136 #else
137 H245_DepFECMode_rfc2733Mode_mode_separateStream::operator H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort &()
139 #ifndef PASN_LEANANDMEAN
140 PAssert(PIsDescendant(PAssertNULL(choice), H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort), PInvalidCast);
141 #endif
142 return *(H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort *)choice;
146 H245_DepFECMode_rfc2733Mode_mode_separateStream::operator const H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort &() const
147 #endif
149 #ifndef PASN_LEANANDMEAN
150 PAssert(PIsDescendant(PAssertNULL(choice), H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort), PInvalidCast);
151 #endif
152 return *(H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort *)choice;
156 BOOL H245_DepFECMode_rfc2733Mode_mode_separateStream::CreateObject()
158 switch (tag) {
159 case e_differentPort :
160 choice = new H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort();
161 return TRUE;
162 case e_samePort :
163 choice = new H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort();
164 return TRUE;
167 choice = NULL;
168 return FALSE;
172 PObject * H245_DepFECMode_rfc2733Mode_mode_separateStream::Clone() const
174 #ifndef PASN_LEANANDMEAN
175 PAssert(IsClass(H245_DepFECMode_rfc2733Mode_mode_separateStream::Class()), PInvalidCast);
176 #endif
177 return new H245_DepFECMode_rfc2733Mode_mode_separateStream(*this);
182 #ifndef PASN_NOPRINTON
183 const static PASN_Names Names_H245_MultilinkResponse_addConnection_responseCode_rejected[]={
184 {"connectionsNotAvailable",0}
185 ,{"userRejected",1}
187 #endif
189 // MultilinkResponse_addConnection_responseCode_rejected
192 H245_MultilinkResponse_addConnection_responseCode_rejected::H245_MultilinkResponse_addConnection_responseCode_rejected(unsigned tag, PASN_Object::TagClass tagClass)
193 : PASN_Choice(tag, tagClass, 2, TRUE
194 #ifndef PASN_NOPRINTON
195 ,(const PASN_Names *)Names_H245_MultilinkResponse_addConnection_responseCode_rejected,2
196 #endif
202 BOOL H245_MultilinkResponse_addConnection_responseCode_rejected::CreateObject()
204 choice = (tag <= e_userRejected) ? new PASN_Null() : NULL;
205 return choice != NULL;
209 PObject * H245_MultilinkResponse_addConnection_responseCode_rejected::Clone() const
211 #ifndef PASN_LEANANDMEAN
212 PAssert(IsClass(H245_MultilinkResponse_addConnection_responseCode_rejected::Class()), PInvalidCast);
213 #endif
214 return new H245_MultilinkResponse_addConnection_responseCode_rejected(*this);
219 #ifndef PASN_NOPRINTON
220 const static PASN_Names Names_H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount[]={
221 {"doOneProgression",0}
222 ,{"doContinuousProgressions",1}
223 ,{"doOneIndependentProgression",2}
224 ,{"doContinuousIndependentProgressions",3}
226 #endif
228 // MiscellaneousCommand_type_progressiveRefinementStart_repeatCount
231 H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount::H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(unsigned tag, PASN_Object::TagClass tagClass)
232 : PASN_Choice(tag, tagClass, 4, TRUE
233 #ifndef PASN_NOPRINTON
234 ,(const PASN_Names *)Names_H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount,4
235 #endif
241 BOOL H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount::CreateObject()
243 choice = (tag <= e_doContinuousIndependentProgressions) ? new PASN_Null() : NULL;
244 return choice != NULL;
248 PObject * H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount::Clone() const
250 #ifndef PASN_LEANANDMEAN
251 PAssert(IsClass(H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount::Class()), PInvalidCast);
252 #endif
253 return new H245_MiscellaneousCommand_type_progressiveRefinementStart_repeatCount(*this);
258 #ifndef PASN_NOPRINTON
259 const static PASN_Names Names_H245_NewATMVCCommand_aal_aal1_clockRecovery[]={
260 {"nullClockRecovery",0}
261 ,{"srtsClockRecovery",1}
262 ,{"adaptiveClockRecovery",2}
264 #endif
266 // NewATMVCCommand_aal_aal1_clockRecovery
269 H245_NewATMVCCommand_aal_aal1_clockRecovery::H245_NewATMVCCommand_aal_aal1_clockRecovery(unsigned tag, PASN_Object::TagClass tagClass)
270 : PASN_Choice(tag, tagClass, 3, TRUE
271 #ifndef PASN_NOPRINTON
272 ,(const PASN_Names *)Names_H245_NewATMVCCommand_aal_aal1_clockRecovery,3
273 #endif
279 BOOL H245_NewATMVCCommand_aal_aal1_clockRecovery::CreateObject()
281 choice = (tag <= e_adaptiveClockRecovery) ? new PASN_Null() : NULL;
282 return choice != NULL;
286 PObject * H245_NewATMVCCommand_aal_aal1_clockRecovery::Clone() const
288 #ifndef PASN_LEANANDMEAN
289 PAssert(IsClass(H245_NewATMVCCommand_aal_aal1_clockRecovery::Class()), PInvalidCast);
290 #endif
291 return new H245_NewATMVCCommand_aal_aal1_clockRecovery(*this);
296 #ifndef PASN_NOPRINTON
297 const static PASN_Names Names_H245_NewATMVCCommand_aal_aal1_errorCorrection[]={
298 {"nullErrorCorrection",0}
299 ,{"longInterleaver",1}
300 ,{"shortInterleaver",2}
301 ,{"errorCorrectionOnly",3}
303 #endif
305 // NewATMVCCommand_aal_aal1_errorCorrection
308 H245_NewATMVCCommand_aal_aal1_errorCorrection::H245_NewATMVCCommand_aal_aal1_errorCorrection(unsigned tag, PASN_Object::TagClass tagClass)
309 : PASN_Choice(tag, tagClass, 4, TRUE
310 #ifndef PASN_NOPRINTON
311 ,(const PASN_Names *)Names_H245_NewATMVCCommand_aal_aal1_errorCorrection,4
312 #endif
318 BOOL H245_NewATMVCCommand_aal_aal1_errorCorrection::CreateObject()
320 choice = (tag <= e_errorCorrectionOnly) ? new PASN_Null() : NULL;
321 return choice != NULL;
325 PObject * H245_NewATMVCCommand_aal_aal1_errorCorrection::Clone() const
327 #ifndef PASN_LEANANDMEAN
328 PAssert(IsClass(H245_NewATMVCCommand_aal_aal1_errorCorrection::Class()), PInvalidCast);
329 #endif
330 return new H245_NewATMVCCommand_aal_aal1_errorCorrection(*this);
335 #ifndef PASN_NOPRINTON
336 const static PASN_Names Names_H245_NewATMVCIndication_aal_aal1_clockRecovery[]={
337 {"nullClockRecovery",0}
338 ,{"srtsClockRecovery",1}
339 ,{"adaptiveClockRecovery",2}
341 #endif
343 // NewATMVCIndication_aal_aal1_clockRecovery
346 H245_NewATMVCIndication_aal_aal1_clockRecovery::H245_NewATMVCIndication_aal_aal1_clockRecovery(unsigned tag, PASN_Object::TagClass tagClass)
347 : PASN_Choice(tag, tagClass, 3, TRUE
348 #ifndef PASN_NOPRINTON
349 ,(const PASN_Names *)Names_H245_NewATMVCIndication_aal_aal1_clockRecovery,3
350 #endif
356 BOOL H245_NewATMVCIndication_aal_aal1_clockRecovery::CreateObject()
358 choice = (tag <= e_adaptiveClockRecovery) ? new PASN_Null() : NULL;
359 return choice != NULL;
363 PObject * H245_NewATMVCIndication_aal_aal1_clockRecovery::Clone() const
365 #ifndef PASN_LEANANDMEAN
366 PAssert(IsClass(H245_NewATMVCIndication_aal_aal1_clockRecovery::Class()), PInvalidCast);
367 #endif
368 return new H245_NewATMVCIndication_aal_aal1_clockRecovery(*this);
373 #ifndef PASN_NOPRINTON
374 const static PASN_Names Names_H245_NewATMVCIndication_aal_aal1_errorCorrection[]={
375 {"nullErrorCorrection",0}
376 ,{"longInterleaver",1}
377 ,{"shortInterleaver",2}
378 ,{"errorCorrectionOnly",3}
380 #endif
382 // NewATMVCIndication_aal_aal1_errorCorrection
385 H245_NewATMVCIndication_aal_aal1_errorCorrection::H245_NewATMVCIndication_aal_aal1_errorCorrection(unsigned tag, PASN_Object::TagClass tagClass)
386 : PASN_Choice(tag, tagClass, 4, TRUE
387 #ifndef PASN_NOPRINTON
388 ,(const PASN_Names *)Names_H245_NewATMVCIndication_aal_aal1_errorCorrection,4
389 #endif
395 BOOL H245_NewATMVCIndication_aal_aal1_errorCorrection::CreateObject()
397 choice = (tag <= e_errorCorrectionOnly) ? new PASN_Null() : NULL;
398 return choice != NULL;
402 PObject * H245_NewATMVCIndication_aal_aal1_errorCorrection::Clone() const
404 #ifndef PASN_LEANANDMEAN
405 PAssert(IsClass(H245_NewATMVCIndication_aal_aal1_errorCorrection::Class()), PInvalidCast);
406 #endif
407 return new H245_NewATMVCIndication_aal_aal1_errorCorrection(*this);
412 // DepFECData_rfc2733_mode_separateStream_differentPort
415 H245_DepFECData_rfc2733_mode_separateStream_differentPort::H245_DepFECData_rfc2733_mode_separateStream_differentPort(unsigned tag, PASN_Object::TagClass tagClass)
416 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
418 m_protectedSessionID.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
419 m_protectedPayloadType.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
423 #ifndef PASN_NOPRINTON
424 void H245_DepFECData_rfc2733_mode_separateStream_differentPort::PrintOn(ostream & strm) const
426 int indent = strm.precision() + 2;
427 strm << "{\n";
428 strm << setw(indent+21) << "protectedSessionID = " << setprecision(indent) << m_protectedSessionID << '\n';
429 if (HasOptionalField(e_protectedPayloadType))
430 strm << setw(indent+23) << "protectedPayloadType = " << setprecision(indent) << m_protectedPayloadType << '\n';
431 strm << setw(indent-1) << setprecision(indent-2) << "}";
433 #endif
436 PObject::Comparison H245_DepFECData_rfc2733_mode_separateStream_differentPort::Compare(const PObject & obj) const
438 #ifndef PASN_LEANANDMEAN
439 PAssert(PIsDescendant(&obj, H245_DepFECData_rfc2733_mode_separateStream_differentPort), PInvalidCast);
440 #endif
441 const H245_DepFECData_rfc2733_mode_separateStream_differentPort & other = (const H245_DepFECData_rfc2733_mode_separateStream_differentPort &)obj;
443 Comparison result;
445 if ((result = m_protectedSessionID.Compare(other.m_protectedSessionID)) != EqualTo)
446 return result;
447 if ((result = m_protectedPayloadType.Compare(other.m_protectedPayloadType)) != EqualTo)
448 return result;
450 return PASN_Sequence::Compare(other);
454 PINDEX H245_DepFECData_rfc2733_mode_separateStream_differentPort::GetDataLength() const
456 PINDEX length = 0;
457 length += m_protectedSessionID.GetObjectLength();
458 if (HasOptionalField(e_protectedPayloadType))
459 length += m_protectedPayloadType.GetObjectLength();
460 return length;
464 BOOL H245_DepFECData_rfc2733_mode_separateStream_differentPort::Decode(PASN_Stream & strm)
466 if (!PreambleDecode(strm))
467 return FALSE;
469 if (!m_protectedSessionID.Decode(strm))
470 return FALSE;
471 if (HasOptionalField(e_protectedPayloadType) && !m_protectedPayloadType.Decode(strm))
472 return FALSE;
474 return UnknownExtensionsDecode(strm);
478 void H245_DepFECData_rfc2733_mode_separateStream_differentPort::Encode(PASN_Stream & strm) const
480 PreambleEncode(strm);
482 m_protectedSessionID.Encode(strm);
483 if (HasOptionalField(e_protectedPayloadType))
484 m_protectedPayloadType.Encode(strm);
486 UnknownExtensionsEncode(strm);
490 PObject * H245_DepFECData_rfc2733_mode_separateStream_differentPort::Clone() const
492 #ifndef PASN_LEANANDMEAN
493 PAssert(IsClass(H245_DepFECData_rfc2733_mode_separateStream_differentPort::Class()), PInvalidCast);
494 #endif
495 return new H245_DepFECData_rfc2733_mode_separateStream_differentPort(*this);
500 // DepFECData_rfc2733_mode_separateStream_samePort
503 H245_DepFECData_rfc2733_mode_separateStream_samePort::H245_DepFECData_rfc2733_mode_separateStream_samePort(unsigned tag, PASN_Object::TagClass tagClass)
504 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
506 m_protectedPayloadType.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
510 #ifndef PASN_NOPRINTON
511 void H245_DepFECData_rfc2733_mode_separateStream_samePort::PrintOn(ostream & strm) const
513 int indent = strm.precision() + 2;
514 strm << "{\n";
515 strm << setw(indent+23) << "protectedPayloadType = " << setprecision(indent) << m_protectedPayloadType << '\n';
516 strm << setw(indent-1) << setprecision(indent-2) << "}";
518 #endif
521 PObject::Comparison H245_DepFECData_rfc2733_mode_separateStream_samePort::Compare(const PObject & obj) const
523 #ifndef PASN_LEANANDMEAN
524 PAssert(PIsDescendant(&obj, H245_DepFECData_rfc2733_mode_separateStream_samePort), PInvalidCast);
525 #endif
526 const H245_DepFECData_rfc2733_mode_separateStream_samePort & other = (const H245_DepFECData_rfc2733_mode_separateStream_samePort &)obj;
528 Comparison result;
530 if ((result = m_protectedPayloadType.Compare(other.m_protectedPayloadType)) != EqualTo)
531 return result;
533 return PASN_Sequence::Compare(other);
537 PINDEX H245_DepFECData_rfc2733_mode_separateStream_samePort::GetDataLength() const
539 PINDEX length = 0;
540 length += m_protectedPayloadType.GetObjectLength();
541 return length;
545 BOOL H245_DepFECData_rfc2733_mode_separateStream_samePort::Decode(PASN_Stream & strm)
547 if (!PreambleDecode(strm))
548 return FALSE;
550 if (!m_protectedPayloadType.Decode(strm))
551 return FALSE;
553 return UnknownExtensionsDecode(strm);
557 void H245_DepFECData_rfc2733_mode_separateStream_samePort::Encode(PASN_Stream & strm) const
559 PreambleEncode(strm);
561 m_protectedPayloadType.Encode(strm);
563 UnknownExtensionsEncode(strm);
567 PObject * H245_DepFECData_rfc2733_mode_separateStream_samePort::Clone() const
569 #ifndef PASN_LEANANDMEAN
570 PAssert(IsClass(H245_DepFECData_rfc2733_mode_separateStream_samePort::Class()), PInvalidCast);
571 #endif
572 return new H245_DepFECData_rfc2733_mode_separateStream_samePort(*this);
577 // DepFECMode_rfc2733Mode_mode_separateStream_differentPort
580 H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort(unsigned tag, PASN_Object::TagClass tagClass)
581 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
583 m_protectedSessionID.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
584 m_protectedPayloadType.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
588 #ifndef PASN_NOPRINTON
589 void H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::PrintOn(ostream & strm) const
591 int indent = strm.precision() + 2;
592 strm << "{\n";
593 strm << setw(indent+21) << "protectedSessionID = " << setprecision(indent) << m_protectedSessionID << '\n';
594 if (HasOptionalField(e_protectedPayloadType))
595 strm << setw(indent+23) << "protectedPayloadType = " << setprecision(indent) << m_protectedPayloadType << '\n';
596 strm << setw(indent-1) << setprecision(indent-2) << "}";
598 #endif
601 PObject::Comparison H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::Compare(const PObject & obj) const
603 #ifndef PASN_LEANANDMEAN
604 PAssert(PIsDescendant(&obj, H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort), PInvalidCast);
605 #endif
606 const H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort & other = (const H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort &)obj;
608 Comparison result;
610 if ((result = m_protectedSessionID.Compare(other.m_protectedSessionID)) != EqualTo)
611 return result;
612 if ((result = m_protectedPayloadType.Compare(other.m_protectedPayloadType)) != EqualTo)
613 return result;
615 return PASN_Sequence::Compare(other);
619 PINDEX H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::GetDataLength() const
621 PINDEX length = 0;
622 length += m_protectedSessionID.GetObjectLength();
623 if (HasOptionalField(e_protectedPayloadType))
624 length += m_protectedPayloadType.GetObjectLength();
625 return length;
629 BOOL H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::Decode(PASN_Stream & strm)
631 if (!PreambleDecode(strm))
632 return FALSE;
634 if (!m_protectedSessionID.Decode(strm))
635 return FALSE;
636 if (HasOptionalField(e_protectedPayloadType) && !m_protectedPayloadType.Decode(strm))
637 return FALSE;
639 return UnknownExtensionsDecode(strm);
643 void H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::Encode(PASN_Stream & strm) const
645 PreambleEncode(strm);
647 m_protectedSessionID.Encode(strm);
648 if (HasOptionalField(e_protectedPayloadType))
649 m_protectedPayloadType.Encode(strm);
651 UnknownExtensionsEncode(strm);
655 PObject * H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::Clone() const
657 #ifndef PASN_LEANANDMEAN
658 PAssert(IsClass(H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort::Class()), PInvalidCast);
659 #endif
660 return new H245_DepFECMode_rfc2733Mode_mode_separateStream_differentPort(*this);
665 // DepFECMode_rfc2733Mode_mode_separateStream_samePort
668 H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort(unsigned tag, PASN_Object::TagClass tagClass)
669 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
674 #ifndef PASN_NOPRINTON
675 void H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::PrintOn(ostream & strm) const
677 int indent = strm.precision() + 2;
678 strm << "{\n";
679 strm << setw(indent+16) << "protectedType = " << setprecision(indent) << m_protectedType << '\n';
680 strm << setw(indent-1) << setprecision(indent-2) << "}";
682 #endif
685 PObject::Comparison H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::Compare(const PObject & obj) const
687 #ifndef PASN_LEANANDMEAN
688 PAssert(PIsDescendant(&obj, H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort), PInvalidCast);
689 #endif
690 const H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort & other = (const H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort &)obj;
692 Comparison result;
694 if ((result = m_protectedType.Compare(other.m_protectedType)) != EqualTo)
695 return result;
697 return PASN_Sequence::Compare(other);
701 PINDEX H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::GetDataLength() const
703 PINDEX length = 0;
704 length += m_protectedType.GetObjectLength();
705 return length;
709 BOOL H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::Decode(PASN_Stream & strm)
711 if (!PreambleDecode(strm))
712 return FALSE;
714 if (!m_protectedType.Decode(strm))
715 return FALSE;
717 return UnknownExtensionsDecode(strm);
721 void H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::Encode(PASN_Stream & strm) const
723 PreambleEncode(strm);
725 m_protectedType.Encode(strm);
727 UnknownExtensionsEncode(strm);
731 PObject * H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::Clone() const
733 #ifndef PASN_LEANANDMEAN
734 PAssert(IsClass(H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort::Class()), PInvalidCast);
735 #endif
736 return new H245_DepFECMode_rfc2733Mode_mode_separateStream_samePort(*this);
741 // GenericMessage
744 H245_GenericMessage::H245_GenericMessage(unsigned tag, PASN_Object::TagClass tagClass)
745 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
747 m_subMessageIdentifier.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
751 #ifndef PASN_NOPRINTON
752 void H245_GenericMessage::PrintOn(ostream & strm) const
754 int indent = strm.precision() + 2;
755 strm << "{\n";
756 strm << setw(indent+20) << "messageIdentifier = " << setprecision(indent) << m_messageIdentifier << '\n';
757 if (HasOptionalField(e_subMessageIdentifier))
758 strm << setw(indent+23) << "subMessageIdentifier = " << setprecision(indent) << m_subMessageIdentifier << '\n';
759 if (HasOptionalField(e_messageContent))
760 strm << setw(indent+17) << "messageContent = " << setprecision(indent) << m_messageContent << '\n';
761 strm << setw(indent-1) << setprecision(indent-2) << "}";
763 #endif
766 PObject::Comparison H245_GenericMessage::Compare(const PObject & obj) const
768 #ifndef PASN_LEANANDMEAN
769 PAssert(PIsDescendant(&obj, H245_GenericMessage), PInvalidCast);
770 #endif
771 const H245_GenericMessage & other = (const H245_GenericMessage &)obj;
773 Comparison result;
775 if ((result = m_messageIdentifier.Compare(other.m_messageIdentifier)) != EqualTo)
776 return result;
777 if ((result = m_subMessageIdentifier.Compare(other.m_subMessageIdentifier)) != EqualTo)
778 return result;
779 if ((result = m_messageContent.Compare(other.m_messageContent)) != EqualTo)
780 return result;
782 return PASN_Sequence::Compare(other);
786 PINDEX H245_GenericMessage::GetDataLength() const
788 PINDEX length = 0;
789 length += m_messageIdentifier.GetObjectLength();
790 if (HasOptionalField(e_subMessageIdentifier))
791 length += m_subMessageIdentifier.GetObjectLength();
792 if (HasOptionalField(e_messageContent))
793 length += m_messageContent.GetObjectLength();
794 return length;
798 BOOL H245_GenericMessage::Decode(PASN_Stream & strm)
800 if (!PreambleDecode(strm))
801 return FALSE;
803 if (!m_messageIdentifier.Decode(strm))
804 return FALSE;
805 if (HasOptionalField(e_subMessageIdentifier) && !m_subMessageIdentifier.Decode(strm))
806 return FALSE;
807 if (HasOptionalField(e_messageContent) && !m_messageContent.Decode(strm))
808 return FALSE;
810 return UnknownExtensionsDecode(strm);
814 void H245_GenericMessage::Encode(PASN_Stream & strm) const
816 PreambleEncode(strm);
818 m_messageIdentifier.Encode(strm);
819 if (HasOptionalField(e_subMessageIdentifier))
820 m_subMessageIdentifier.Encode(strm);
821 if (HasOptionalField(e_messageContent))
822 m_messageContent.Encode(strm);
824 UnknownExtensionsEncode(strm);
828 PObject * H245_GenericMessage::Clone() const
830 #ifndef PASN_LEANANDMEAN
831 PAssert(IsClass(H245_GenericMessage::Class()), PInvalidCast);
832 #endif
833 return new H245_GenericMessage(*this);
838 // GenericInformation
841 H245_GenericInformation::H245_GenericInformation(unsigned tag, PASN_Object::TagClass tagClass)
842 : H245_GenericMessage(tag, tagClass)
847 PObject * H245_GenericInformation::Clone() const
849 #ifndef PASN_LEANANDMEAN
850 PAssert(IsClass(H245_GenericInformation::Class()), PInvalidCast);
851 #endif
852 return new H245_GenericInformation(*this);
857 // NonStandardParameter
860 H245_NonStandardParameter::H245_NonStandardParameter(unsigned tag, PASN_Object::TagClass tagClass)
861 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
866 #ifndef PASN_NOPRINTON
867 void H245_NonStandardParameter::PrintOn(ostream & strm) const
869 int indent = strm.precision() + 2;
870 strm << "{\n";
871 strm << setw(indent+24) << "nonStandardIdentifier = " << setprecision(indent) << m_nonStandardIdentifier << '\n';
872 strm << setw(indent+7) << "data = " << setprecision(indent) << m_data << '\n';
873 strm << setw(indent-1) << setprecision(indent-2) << "}";
875 #endif
878 PObject::Comparison H245_NonStandardParameter::Compare(const PObject & obj) const
880 #ifndef PASN_LEANANDMEAN
881 PAssert(PIsDescendant(&obj, H245_NonStandardParameter), PInvalidCast);
882 #endif
883 const H245_NonStandardParameter & other = (const H245_NonStandardParameter &)obj;
885 Comparison result;
887 if ((result = m_nonStandardIdentifier.Compare(other.m_nonStandardIdentifier)) != EqualTo)
888 return result;
889 if ((result = m_data.Compare(other.m_data)) != EqualTo)
890 return result;
892 return PASN_Sequence::Compare(other);
896 PINDEX H245_NonStandardParameter::GetDataLength() const
898 PINDEX length = 0;
899 length += m_nonStandardIdentifier.GetObjectLength();
900 length += m_data.GetObjectLength();
901 return length;
905 BOOL H245_NonStandardParameter::Decode(PASN_Stream & strm)
907 if (!PreambleDecode(strm))
908 return FALSE;
910 if (!m_nonStandardIdentifier.Decode(strm))
911 return FALSE;
912 if (!m_data.Decode(strm))
913 return FALSE;
915 return UnknownExtensionsDecode(strm);
919 void H245_NonStandardParameter::Encode(PASN_Stream & strm) const
921 PreambleEncode(strm);
923 m_nonStandardIdentifier.Encode(strm);
924 m_data.Encode(strm);
926 UnknownExtensionsEncode(strm);
930 PObject * H245_NonStandardParameter::Clone() const
932 #ifndef PASN_LEANANDMEAN
933 PAssert(IsClass(H245_NonStandardParameter::Class()), PInvalidCast);
934 #endif
935 return new H245_NonStandardParameter(*this);
940 // MasterSlaveDeterminationAck
943 H245_MasterSlaveDeterminationAck::H245_MasterSlaveDeterminationAck(unsigned tag, PASN_Object::TagClass tagClass)
944 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
949 #ifndef PASN_NOPRINTON
950 void H245_MasterSlaveDeterminationAck::PrintOn(ostream & strm) const
952 int indent = strm.precision() + 2;
953 strm << "{\n";
954 strm << setw(indent+11) << "decision = " << setprecision(indent) << m_decision << '\n';
955 strm << setw(indent-1) << setprecision(indent-2) << "}";
957 #endif
960 PObject::Comparison H245_MasterSlaveDeterminationAck::Compare(const PObject & obj) const
962 #ifndef PASN_LEANANDMEAN
963 PAssert(PIsDescendant(&obj, H245_MasterSlaveDeterminationAck), PInvalidCast);
964 #endif
965 const H245_MasterSlaveDeterminationAck & other = (const H245_MasterSlaveDeterminationAck &)obj;
967 Comparison result;
969 if ((result = m_decision.Compare(other.m_decision)) != EqualTo)
970 return result;
972 return PASN_Sequence::Compare(other);
976 PINDEX H245_MasterSlaveDeterminationAck::GetDataLength() const
978 PINDEX length = 0;
979 length += m_decision.GetObjectLength();
980 return length;
984 BOOL H245_MasterSlaveDeterminationAck::Decode(PASN_Stream & strm)
986 if (!PreambleDecode(strm))
987 return FALSE;
989 if (!m_decision.Decode(strm))
990 return FALSE;
992 return UnknownExtensionsDecode(strm);
996 void H245_MasterSlaveDeterminationAck::Encode(PASN_Stream & strm) const
998 PreambleEncode(strm);
1000 m_decision.Encode(strm);
1002 UnknownExtensionsEncode(strm);
1006 PObject * H245_MasterSlaveDeterminationAck::Clone() const
1008 #ifndef PASN_LEANANDMEAN
1009 PAssert(IsClass(H245_MasterSlaveDeterminationAck::Class()), PInvalidCast);
1010 #endif
1011 return new H245_MasterSlaveDeterminationAck(*this);
1016 // MasterSlaveDeterminationReject
1019 H245_MasterSlaveDeterminationReject::H245_MasterSlaveDeterminationReject(unsigned tag, PASN_Object::TagClass tagClass)
1020 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
1025 #ifndef PASN_NOPRINTON
1026 void H245_MasterSlaveDeterminationReject::PrintOn(ostream & strm) const
1028 int indent = strm.precision() + 2;
1029 strm << "{\n";
1030 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
1031 strm << setw(indent-1) << setprecision(indent-2) << "}";
1033 #endif
1036 PObject::Comparison H245_MasterSlaveDeterminationReject::Compare(const PObject & obj) const
1038 #ifndef PASN_LEANANDMEAN
1039 PAssert(PIsDescendant(&obj, H245_MasterSlaveDeterminationReject), PInvalidCast);
1040 #endif
1041 const H245_MasterSlaveDeterminationReject & other = (const H245_MasterSlaveDeterminationReject &)obj;
1043 Comparison result;
1045 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
1046 return result;
1048 return PASN_Sequence::Compare(other);
1052 PINDEX H245_MasterSlaveDeterminationReject::GetDataLength() const
1054 PINDEX length = 0;
1055 length += m_cause.GetObjectLength();
1056 return length;
1060 BOOL H245_MasterSlaveDeterminationReject::Decode(PASN_Stream & strm)
1062 if (!PreambleDecode(strm))
1063 return FALSE;
1065 if (!m_cause.Decode(strm))
1066 return FALSE;
1068 return UnknownExtensionsDecode(strm);
1072 void H245_MasterSlaveDeterminationReject::Encode(PASN_Stream & strm) const
1074 PreambleEncode(strm);
1076 m_cause.Encode(strm);
1078 UnknownExtensionsEncode(strm);
1082 PObject * H245_MasterSlaveDeterminationReject::Clone() const
1084 #ifndef PASN_LEANANDMEAN
1085 PAssert(IsClass(H245_MasterSlaveDeterminationReject::Class()), PInvalidCast);
1086 #endif
1087 return new H245_MasterSlaveDeterminationReject(*this);
1092 // TerminalCapabilitySet
1095 H245_TerminalCapabilitySet::H245_TerminalCapabilitySet(unsigned tag, PASN_Object::TagClass tagClass)
1096 : PASN_Sequence(tag, tagClass, 3, TRUE, 1)
1098 m_capabilityTable.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
1099 m_capabilityDescriptors.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
1103 #ifndef PASN_NOPRINTON
1104 void H245_TerminalCapabilitySet::PrintOn(ostream & strm) const
1106 int indent = strm.precision() + 2;
1107 strm << "{\n";
1108 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
1109 strm << setw(indent+21) << "protocolIdentifier = " << setprecision(indent) << m_protocolIdentifier << '\n';
1110 if (HasOptionalField(e_multiplexCapability))
1111 strm << setw(indent+22) << "multiplexCapability = " << setprecision(indent) << m_multiplexCapability << '\n';
1112 if (HasOptionalField(e_capabilityTable))
1113 strm << setw(indent+18) << "capabilityTable = " << setprecision(indent) << m_capabilityTable << '\n';
1114 if (HasOptionalField(e_capabilityDescriptors))
1115 strm << setw(indent+24) << "capabilityDescriptors = " << setprecision(indent) << m_capabilityDescriptors << '\n';
1116 if (HasOptionalField(e_genericInformation))
1117 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
1118 strm << setw(indent-1) << setprecision(indent-2) << "}";
1120 #endif
1123 PObject::Comparison H245_TerminalCapabilitySet::Compare(const PObject & obj) const
1125 #ifndef PASN_LEANANDMEAN
1126 PAssert(PIsDescendant(&obj, H245_TerminalCapabilitySet), PInvalidCast);
1127 #endif
1128 const H245_TerminalCapabilitySet & other = (const H245_TerminalCapabilitySet &)obj;
1130 Comparison result;
1132 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
1133 return result;
1134 if ((result = m_protocolIdentifier.Compare(other.m_protocolIdentifier)) != EqualTo)
1135 return result;
1136 if ((result = m_multiplexCapability.Compare(other.m_multiplexCapability)) != EqualTo)
1137 return result;
1138 if ((result = m_capabilityTable.Compare(other.m_capabilityTable)) != EqualTo)
1139 return result;
1140 if ((result = m_capabilityDescriptors.Compare(other.m_capabilityDescriptors)) != EqualTo)
1141 return result;
1143 return PASN_Sequence::Compare(other);
1147 PINDEX H245_TerminalCapabilitySet::GetDataLength() const
1149 PINDEX length = 0;
1150 length += m_sequenceNumber.GetObjectLength();
1151 length += m_protocolIdentifier.GetObjectLength();
1152 if (HasOptionalField(e_multiplexCapability))
1153 length += m_multiplexCapability.GetObjectLength();
1154 if (HasOptionalField(e_capabilityTable))
1155 length += m_capabilityTable.GetObjectLength();
1156 if (HasOptionalField(e_capabilityDescriptors))
1157 length += m_capabilityDescriptors.GetObjectLength();
1158 return length;
1162 BOOL H245_TerminalCapabilitySet::Decode(PASN_Stream & strm)
1164 if (!PreambleDecode(strm))
1165 return FALSE;
1167 if (!m_sequenceNumber.Decode(strm))
1168 return FALSE;
1169 if (!m_protocolIdentifier.Decode(strm))
1170 return FALSE;
1171 if (HasOptionalField(e_multiplexCapability) && !m_multiplexCapability.Decode(strm))
1172 return FALSE;
1173 if (HasOptionalField(e_capabilityTable) && !m_capabilityTable.Decode(strm))
1174 return FALSE;
1175 if (HasOptionalField(e_capabilityDescriptors) && !m_capabilityDescriptors.Decode(strm))
1176 return FALSE;
1177 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
1178 return FALSE;
1180 return UnknownExtensionsDecode(strm);
1184 void H245_TerminalCapabilitySet::Encode(PASN_Stream & strm) const
1186 PreambleEncode(strm);
1188 m_sequenceNumber.Encode(strm);
1189 m_protocolIdentifier.Encode(strm);
1190 if (HasOptionalField(e_multiplexCapability))
1191 m_multiplexCapability.Encode(strm);
1192 if (HasOptionalField(e_capabilityTable))
1193 m_capabilityTable.Encode(strm);
1194 if (HasOptionalField(e_capabilityDescriptors))
1195 m_capabilityDescriptors.Encode(strm);
1196 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
1198 UnknownExtensionsEncode(strm);
1202 PObject * H245_TerminalCapabilitySet::Clone() const
1204 #ifndef PASN_LEANANDMEAN
1205 PAssert(IsClass(H245_TerminalCapabilitySet::Class()), PInvalidCast);
1206 #endif
1207 return new H245_TerminalCapabilitySet(*this);
1212 // CapabilityTableEntry
1215 H245_CapabilityTableEntry::H245_CapabilityTableEntry(unsigned tag, PASN_Object::TagClass tagClass)
1216 : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
1221 #ifndef PASN_NOPRINTON
1222 void H245_CapabilityTableEntry::PrintOn(ostream & strm) const
1224 int indent = strm.precision() + 2;
1225 strm << "{\n";
1226 strm << setw(indent+29) << "capabilityTableEntryNumber = " << setprecision(indent) << m_capabilityTableEntryNumber << '\n';
1227 if (HasOptionalField(e_capability))
1228 strm << setw(indent+13) << "capability = " << setprecision(indent) << m_capability << '\n';
1229 strm << setw(indent-1) << setprecision(indent-2) << "}";
1231 #endif
1234 PObject::Comparison H245_CapabilityTableEntry::Compare(const PObject & obj) const
1236 #ifndef PASN_LEANANDMEAN
1237 PAssert(PIsDescendant(&obj, H245_CapabilityTableEntry), PInvalidCast);
1238 #endif
1239 const H245_CapabilityTableEntry & other = (const H245_CapabilityTableEntry &)obj;
1241 Comparison result;
1243 if ((result = m_capabilityTableEntryNumber.Compare(other.m_capabilityTableEntryNumber)) != EqualTo)
1244 return result;
1245 if ((result = m_capability.Compare(other.m_capability)) != EqualTo)
1246 return result;
1248 return PASN_Sequence::Compare(other);
1252 PINDEX H245_CapabilityTableEntry::GetDataLength() const
1254 PINDEX length = 0;
1255 length += m_capabilityTableEntryNumber.GetObjectLength();
1256 if (HasOptionalField(e_capability))
1257 length += m_capability.GetObjectLength();
1258 return length;
1262 BOOL H245_CapabilityTableEntry::Decode(PASN_Stream & strm)
1264 if (!PreambleDecode(strm))
1265 return FALSE;
1267 if (!m_capabilityTableEntryNumber.Decode(strm))
1268 return FALSE;
1269 if (HasOptionalField(e_capability) && !m_capability.Decode(strm))
1270 return FALSE;
1272 return UnknownExtensionsDecode(strm);
1276 void H245_CapabilityTableEntry::Encode(PASN_Stream & strm) const
1278 PreambleEncode(strm);
1280 m_capabilityTableEntryNumber.Encode(strm);
1281 if (HasOptionalField(e_capability))
1282 m_capability.Encode(strm);
1284 UnknownExtensionsEncode(strm);
1288 PObject * H245_CapabilityTableEntry::Clone() const
1290 #ifndef PASN_LEANANDMEAN
1291 PAssert(IsClass(H245_CapabilityTableEntry::Class()), PInvalidCast);
1292 #endif
1293 return new H245_CapabilityTableEntry(*this);
1298 // CapabilityDescriptor
1301 H245_CapabilityDescriptor::H245_CapabilityDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
1302 : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
1304 m_simultaneousCapabilities.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
1308 #ifndef PASN_NOPRINTON
1309 void H245_CapabilityDescriptor::PrintOn(ostream & strm) const
1311 int indent = strm.precision() + 2;
1312 strm << "{\n";
1313 strm << setw(indent+29) << "capabilityDescriptorNumber = " << setprecision(indent) << m_capabilityDescriptorNumber << '\n';
1314 if (HasOptionalField(e_simultaneousCapabilities))
1315 strm << setw(indent+27) << "simultaneousCapabilities = " << setprecision(indent) << m_simultaneousCapabilities << '\n';
1316 strm << setw(indent-1) << setprecision(indent-2) << "}";
1318 #endif
1321 PObject::Comparison H245_CapabilityDescriptor::Compare(const PObject & obj) const
1323 #ifndef PASN_LEANANDMEAN
1324 PAssert(PIsDescendant(&obj, H245_CapabilityDescriptor), PInvalidCast);
1325 #endif
1326 const H245_CapabilityDescriptor & other = (const H245_CapabilityDescriptor &)obj;
1328 Comparison result;
1330 if ((result = m_capabilityDescriptorNumber.Compare(other.m_capabilityDescriptorNumber)) != EqualTo)
1331 return result;
1332 if ((result = m_simultaneousCapabilities.Compare(other.m_simultaneousCapabilities)) != EqualTo)
1333 return result;
1335 return PASN_Sequence::Compare(other);
1339 PINDEX H245_CapabilityDescriptor::GetDataLength() const
1341 PINDEX length = 0;
1342 length += m_capabilityDescriptorNumber.GetObjectLength();
1343 if (HasOptionalField(e_simultaneousCapabilities))
1344 length += m_simultaneousCapabilities.GetObjectLength();
1345 return length;
1349 BOOL H245_CapabilityDescriptor::Decode(PASN_Stream & strm)
1351 if (!PreambleDecode(strm))
1352 return FALSE;
1354 if (!m_capabilityDescriptorNumber.Decode(strm))
1355 return FALSE;
1356 if (HasOptionalField(e_simultaneousCapabilities) && !m_simultaneousCapabilities.Decode(strm))
1357 return FALSE;
1359 return UnknownExtensionsDecode(strm);
1363 void H245_CapabilityDescriptor::Encode(PASN_Stream & strm) const
1365 PreambleEncode(strm);
1367 m_capabilityDescriptorNumber.Encode(strm);
1368 if (HasOptionalField(e_simultaneousCapabilities))
1369 m_simultaneousCapabilities.Encode(strm);
1371 UnknownExtensionsEncode(strm);
1375 PObject * H245_CapabilityDescriptor::Clone() const
1377 #ifndef PASN_LEANANDMEAN
1378 PAssert(IsClass(H245_CapabilityDescriptor::Class()), PInvalidCast);
1379 #endif
1380 return new H245_CapabilityDescriptor(*this);
1385 // TerminalCapabilitySetAck
1388 H245_TerminalCapabilitySetAck::H245_TerminalCapabilitySetAck(unsigned tag, PASN_Object::TagClass tagClass)
1389 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
1394 #ifndef PASN_NOPRINTON
1395 void H245_TerminalCapabilitySetAck::PrintOn(ostream & strm) const
1397 int indent = strm.precision() + 2;
1398 strm << "{\n";
1399 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
1400 if (HasOptionalField(e_genericInformation))
1401 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
1402 strm << setw(indent-1) << setprecision(indent-2) << "}";
1404 #endif
1407 PObject::Comparison H245_TerminalCapabilitySetAck::Compare(const PObject & obj) const
1409 #ifndef PASN_LEANANDMEAN
1410 PAssert(PIsDescendant(&obj, H245_TerminalCapabilitySetAck), PInvalidCast);
1411 #endif
1412 const H245_TerminalCapabilitySetAck & other = (const H245_TerminalCapabilitySetAck &)obj;
1414 Comparison result;
1416 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
1417 return result;
1419 return PASN_Sequence::Compare(other);
1423 PINDEX H245_TerminalCapabilitySetAck::GetDataLength() const
1425 PINDEX length = 0;
1426 length += m_sequenceNumber.GetObjectLength();
1427 return length;
1431 BOOL H245_TerminalCapabilitySetAck::Decode(PASN_Stream & strm)
1433 if (!PreambleDecode(strm))
1434 return FALSE;
1436 if (!m_sequenceNumber.Decode(strm))
1437 return FALSE;
1438 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
1439 return FALSE;
1441 return UnknownExtensionsDecode(strm);
1445 void H245_TerminalCapabilitySetAck::Encode(PASN_Stream & strm) const
1447 PreambleEncode(strm);
1449 m_sequenceNumber.Encode(strm);
1450 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
1452 UnknownExtensionsEncode(strm);
1456 PObject * H245_TerminalCapabilitySetAck::Clone() const
1458 #ifndef PASN_LEANANDMEAN
1459 PAssert(IsClass(H245_TerminalCapabilitySetAck::Class()), PInvalidCast);
1460 #endif
1461 return new H245_TerminalCapabilitySetAck(*this);
1466 // TerminalCapabilitySetReject
1469 H245_TerminalCapabilitySetReject::H245_TerminalCapabilitySetReject(unsigned tag, PASN_Object::TagClass tagClass)
1470 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
1475 #ifndef PASN_NOPRINTON
1476 void H245_TerminalCapabilitySetReject::PrintOn(ostream & strm) const
1478 int indent = strm.precision() + 2;
1479 strm << "{\n";
1480 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
1481 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
1482 if (HasOptionalField(e_genericInformation))
1483 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
1484 strm << setw(indent-1) << setprecision(indent-2) << "}";
1486 #endif
1489 PObject::Comparison H245_TerminalCapabilitySetReject::Compare(const PObject & obj) const
1491 #ifndef PASN_LEANANDMEAN
1492 PAssert(PIsDescendant(&obj, H245_TerminalCapabilitySetReject), PInvalidCast);
1493 #endif
1494 const H245_TerminalCapabilitySetReject & other = (const H245_TerminalCapabilitySetReject &)obj;
1496 Comparison result;
1498 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
1499 return result;
1500 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
1501 return result;
1503 return PASN_Sequence::Compare(other);
1507 PINDEX H245_TerminalCapabilitySetReject::GetDataLength() const
1509 PINDEX length = 0;
1510 length += m_sequenceNumber.GetObjectLength();
1511 length += m_cause.GetObjectLength();
1512 return length;
1516 BOOL H245_TerminalCapabilitySetReject::Decode(PASN_Stream & strm)
1518 if (!PreambleDecode(strm))
1519 return FALSE;
1521 if (!m_sequenceNumber.Decode(strm))
1522 return FALSE;
1523 if (!m_cause.Decode(strm))
1524 return FALSE;
1525 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
1526 return FALSE;
1528 return UnknownExtensionsDecode(strm);
1532 void H245_TerminalCapabilitySetReject::Encode(PASN_Stream & strm) const
1534 PreambleEncode(strm);
1536 m_sequenceNumber.Encode(strm);
1537 m_cause.Encode(strm);
1538 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
1540 UnknownExtensionsEncode(strm);
1544 PObject * H245_TerminalCapabilitySetReject::Clone() const
1546 #ifndef PASN_LEANANDMEAN
1547 PAssert(IsClass(H245_TerminalCapabilitySetReject::Class()), PInvalidCast);
1548 #endif
1549 return new H245_TerminalCapabilitySetReject(*this);
1554 // TerminalCapabilitySetRelease
1557 H245_TerminalCapabilitySetRelease::H245_TerminalCapabilitySetRelease(unsigned tag, PASN_Object::TagClass tagClass)
1558 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
1563 #ifndef PASN_NOPRINTON
1564 void H245_TerminalCapabilitySetRelease::PrintOn(ostream & strm) const
1566 int indent = strm.precision() + 2;
1567 strm << "{\n";
1568 if (HasOptionalField(e_genericInformation))
1569 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
1570 strm << setw(indent-1) << setprecision(indent-2) << "}";
1572 #endif
1575 PINDEX H245_TerminalCapabilitySetRelease::GetDataLength() const
1577 PINDEX length = 0;
1578 return length;
1582 BOOL H245_TerminalCapabilitySetRelease::Decode(PASN_Stream & strm)
1584 if (!PreambleDecode(strm))
1585 return FALSE;
1587 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
1588 return FALSE;
1590 return UnknownExtensionsDecode(strm);
1594 void H245_TerminalCapabilitySetRelease::Encode(PASN_Stream & strm) const
1596 PreambleEncode(strm);
1598 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
1600 UnknownExtensionsEncode(strm);
1604 PObject * H245_TerminalCapabilitySetRelease::Clone() const
1606 #ifndef PASN_LEANANDMEAN
1607 PAssert(IsClass(H245_TerminalCapabilitySetRelease::Class()), PInvalidCast);
1608 #endif
1609 return new H245_TerminalCapabilitySetRelease(*this);
1614 // H222Capability
1617 H245_H222Capability::H245_H222Capability(unsigned tag, PASN_Object::TagClass tagClass)
1618 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
1620 m_numberOfVCs.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
1624 #ifndef PASN_NOPRINTON
1625 void H245_H222Capability::PrintOn(ostream & strm) const
1627 int indent = strm.precision() + 2;
1628 strm << "{\n";
1629 strm << setw(indent+14) << "numberOfVCs = " << setprecision(indent) << m_numberOfVCs << '\n';
1630 strm << setw(indent+15) << "vcCapability = " << setprecision(indent) << m_vcCapability << '\n';
1631 strm << setw(indent-1) << setprecision(indent-2) << "}";
1633 #endif
1636 PObject::Comparison H245_H222Capability::Compare(const PObject & obj) const
1638 #ifndef PASN_LEANANDMEAN
1639 PAssert(PIsDescendant(&obj, H245_H222Capability), PInvalidCast);
1640 #endif
1641 const H245_H222Capability & other = (const H245_H222Capability &)obj;
1643 Comparison result;
1645 if ((result = m_numberOfVCs.Compare(other.m_numberOfVCs)) != EqualTo)
1646 return result;
1647 if ((result = m_vcCapability.Compare(other.m_vcCapability)) != EqualTo)
1648 return result;
1650 return PASN_Sequence::Compare(other);
1654 PINDEX H245_H222Capability::GetDataLength() const
1656 PINDEX length = 0;
1657 length += m_numberOfVCs.GetObjectLength();
1658 length += m_vcCapability.GetObjectLength();
1659 return length;
1663 BOOL H245_H222Capability::Decode(PASN_Stream & strm)
1665 if (!PreambleDecode(strm))
1666 return FALSE;
1668 if (!m_numberOfVCs.Decode(strm))
1669 return FALSE;
1670 if (!m_vcCapability.Decode(strm))
1671 return FALSE;
1673 return UnknownExtensionsDecode(strm);
1677 void H245_H222Capability::Encode(PASN_Stream & strm) const
1679 PreambleEncode(strm);
1681 m_numberOfVCs.Encode(strm);
1682 m_vcCapability.Encode(strm);
1684 UnknownExtensionsEncode(strm);
1688 PObject * H245_H222Capability::Clone() const
1690 #ifndef PASN_LEANANDMEAN
1691 PAssert(IsClass(H245_H222Capability::Class()), PInvalidCast);
1692 #endif
1693 return new H245_H222Capability(*this);
1698 // H223Capability
1701 H245_H223Capability::H245_H223Capability(unsigned tag, PASN_Object::TagClass tagClass)
1702 : PASN_Sequence(tag, tagClass, 0, TRUE, 6)
1704 m_maximumAl2SDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
1705 m_maximumAl3SDUSize.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
1706 m_maximumDelayJitter.SetConstraints(PASN_Object::FixedConstraint, 0, 1023);
1707 IncludeOptionalField(e_maxMUXPDUSizeCapability);
1708 IncludeOptionalField(e_nsrpSupport);
1709 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 19200);
1713 #ifndef PASN_NOPRINTON
1714 void H245_H223Capability::PrintOn(ostream & strm) const
1716 int indent = strm.precision() + 2;
1717 strm << "{\n";
1718 strm << setw(indent+24) << "transportWithI_frames = " << setprecision(indent) << m_transportWithI_frames << '\n';
1719 strm << setw(indent+15) << "videoWithAL1 = " << setprecision(indent) << m_videoWithAL1 << '\n';
1720 strm << setw(indent+15) << "videoWithAL2 = " << setprecision(indent) << m_videoWithAL2 << '\n';
1721 strm << setw(indent+15) << "videoWithAL3 = " << setprecision(indent) << m_videoWithAL3 << '\n';
1722 strm << setw(indent+15) << "audioWithAL1 = " << setprecision(indent) << m_audioWithAL1 << '\n';
1723 strm << setw(indent+15) << "audioWithAL2 = " << setprecision(indent) << m_audioWithAL2 << '\n';
1724 strm << setw(indent+15) << "audioWithAL3 = " << setprecision(indent) << m_audioWithAL3 << '\n';
1725 strm << setw(indent+14) << "dataWithAL1 = " << setprecision(indent) << m_dataWithAL1 << '\n';
1726 strm << setw(indent+14) << "dataWithAL2 = " << setprecision(indent) << m_dataWithAL2 << '\n';
1727 strm << setw(indent+14) << "dataWithAL3 = " << setprecision(indent) << m_dataWithAL3 << '\n';
1728 strm << setw(indent+20) << "maximumAl2SDUSize = " << setprecision(indent) << m_maximumAl2SDUSize << '\n';
1729 strm << setw(indent+20) << "maximumAl3SDUSize = " << setprecision(indent) << m_maximumAl3SDUSize << '\n';
1730 strm << setw(indent+21) << "maximumDelayJitter = " << setprecision(indent) << m_maximumDelayJitter << '\n';
1731 strm << setw(indent+31) << "h223MultiplexTableCapability = " << setprecision(indent) << m_h223MultiplexTableCapability << '\n';
1732 if (HasOptionalField(e_maxMUXPDUSizeCapability))
1733 strm << setw(indent+26) << "maxMUXPDUSizeCapability = " << setprecision(indent) << m_maxMUXPDUSizeCapability << '\n';
1734 if (HasOptionalField(e_nsrpSupport))
1735 strm << setw(indent+14) << "nsrpSupport = " << setprecision(indent) << m_nsrpSupport << '\n';
1736 if (HasOptionalField(e_mobileOperationTransmitCapability))
1737 strm << setw(indent+36) << "mobileOperationTransmitCapability = " << setprecision(indent) << m_mobileOperationTransmitCapability << '\n';
1738 if (HasOptionalField(e_h223AnnexCCapability))
1739 strm << setw(indent+23) << "h223AnnexCCapability = " << setprecision(indent) << m_h223AnnexCCapability << '\n';
1740 if (HasOptionalField(e_bitRate))
1741 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
1742 if (HasOptionalField(e_mobileMultilinkFrameCapability))
1743 strm << setw(indent+33) << "mobileMultilinkFrameCapability = " << setprecision(indent) << m_mobileMultilinkFrameCapability << '\n';
1744 strm << setw(indent-1) << setprecision(indent-2) << "}";
1746 #endif
1749 PObject::Comparison H245_H223Capability::Compare(const PObject & obj) const
1751 #ifndef PASN_LEANANDMEAN
1752 PAssert(PIsDescendant(&obj, H245_H223Capability), PInvalidCast);
1753 #endif
1754 const H245_H223Capability & other = (const H245_H223Capability &)obj;
1756 Comparison result;
1758 if ((result = m_transportWithI_frames.Compare(other.m_transportWithI_frames)) != EqualTo)
1759 return result;
1760 if ((result = m_videoWithAL1.Compare(other.m_videoWithAL1)) != EqualTo)
1761 return result;
1762 if ((result = m_videoWithAL2.Compare(other.m_videoWithAL2)) != EqualTo)
1763 return result;
1764 if ((result = m_videoWithAL3.Compare(other.m_videoWithAL3)) != EqualTo)
1765 return result;
1766 if ((result = m_audioWithAL1.Compare(other.m_audioWithAL1)) != EqualTo)
1767 return result;
1768 if ((result = m_audioWithAL2.Compare(other.m_audioWithAL2)) != EqualTo)
1769 return result;
1770 if ((result = m_audioWithAL3.Compare(other.m_audioWithAL3)) != EqualTo)
1771 return result;
1772 if ((result = m_dataWithAL1.Compare(other.m_dataWithAL1)) != EqualTo)
1773 return result;
1774 if ((result = m_dataWithAL2.Compare(other.m_dataWithAL2)) != EqualTo)
1775 return result;
1776 if ((result = m_dataWithAL3.Compare(other.m_dataWithAL3)) != EqualTo)
1777 return result;
1778 if ((result = m_maximumAl2SDUSize.Compare(other.m_maximumAl2SDUSize)) != EqualTo)
1779 return result;
1780 if ((result = m_maximumAl3SDUSize.Compare(other.m_maximumAl3SDUSize)) != EqualTo)
1781 return result;
1782 if ((result = m_maximumDelayJitter.Compare(other.m_maximumDelayJitter)) != EqualTo)
1783 return result;
1784 if ((result = m_h223MultiplexTableCapability.Compare(other.m_h223MultiplexTableCapability)) != EqualTo)
1785 return result;
1787 return PASN_Sequence::Compare(other);
1791 PINDEX H245_H223Capability::GetDataLength() const
1793 PINDEX length = 0;
1794 length += m_transportWithI_frames.GetObjectLength();
1795 length += m_videoWithAL1.GetObjectLength();
1796 length += m_videoWithAL2.GetObjectLength();
1797 length += m_videoWithAL3.GetObjectLength();
1798 length += m_audioWithAL1.GetObjectLength();
1799 length += m_audioWithAL2.GetObjectLength();
1800 length += m_audioWithAL3.GetObjectLength();
1801 length += m_dataWithAL1.GetObjectLength();
1802 length += m_dataWithAL2.GetObjectLength();
1803 length += m_dataWithAL3.GetObjectLength();
1804 length += m_maximumAl2SDUSize.GetObjectLength();
1805 length += m_maximumAl3SDUSize.GetObjectLength();
1806 length += m_maximumDelayJitter.GetObjectLength();
1807 length += m_h223MultiplexTableCapability.GetObjectLength();
1808 return length;
1812 BOOL H245_H223Capability::Decode(PASN_Stream & strm)
1814 if (!PreambleDecode(strm))
1815 return FALSE;
1817 if (!m_transportWithI_frames.Decode(strm))
1818 return FALSE;
1819 if (!m_videoWithAL1.Decode(strm))
1820 return FALSE;
1821 if (!m_videoWithAL2.Decode(strm))
1822 return FALSE;
1823 if (!m_videoWithAL3.Decode(strm))
1824 return FALSE;
1825 if (!m_audioWithAL1.Decode(strm))
1826 return FALSE;
1827 if (!m_audioWithAL2.Decode(strm))
1828 return FALSE;
1829 if (!m_audioWithAL3.Decode(strm))
1830 return FALSE;
1831 if (!m_dataWithAL1.Decode(strm))
1832 return FALSE;
1833 if (!m_dataWithAL2.Decode(strm))
1834 return FALSE;
1835 if (!m_dataWithAL3.Decode(strm))
1836 return FALSE;
1837 if (!m_maximumAl2SDUSize.Decode(strm))
1838 return FALSE;
1839 if (!m_maximumAl3SDUSize.Decode(strm))
1840 return FALSE;
1841 if (!m_maximumDelayJitter.Decode(strm))
1842 return FALSE;
1843 if (!m_h223MultiplexTableCapability.Decode(strm))
1844 return FALSE;
1845 if (!KnownExtensionDecode(strm, e_maxMUXPDUSizeCapability, m_maxMUXPDUSizeCapability))
1846 return FALSE;
1847 if (!KnownExtensionDecode(strm, e_nsrpSupport, m_nsrpSupport))
1848 return FALSE;
1849 if (!KnownExtensionDecode(strm, e_mobileOperationTransmitCapability, m_mobileOperationTransmitCapability))
1850 return FALSE;
1851 if (!KnownExtensionDecode(strm, e_h223AnnexCCapability, m_h223AnnexCCapability))
1852 return FALSE;
1853 if (!KnownExtensionDecode(strm, e_bitRate, m_bitRate))
1854 return FALSE;
1855 if (!KnownExtensionDecode(strm, e_mobileMultilinkFrameCapability, m_mobileMultilinkFrameCapability))
1856 return FALSE;
1858 return UnknownExtensionsDecode(strm);
1862 void H245_H223Capability::Encode(PASN_Stream & strm) const
1864 PreambleEncode(strm);
1866 m_transportWithI_frames.Encode(strm);
1867 m_videoWithAL1.Encode(strm);
1868 m_videoWithAL2.Encode(strm);
1869 m_videoWithAL3.Encode(strm);
1870 m_audioWithAL1.Encode(strm);
1871 m_audioWithAL2.Encode(strm);
1872 m_audioWithAL3.Encode(strm);
1873 m_dataWithAL1.Encode(strm);
1874 m_dataWithAL2.Encode(strm);
1875 m_dataWithAL3.Encode(strm);
1876 m_maximumAl2SDUSize.Encode(strm);
1877 m_maximumAl3SDUSize.Encode(strm);
1878 m_maximumDelayJitter.Encode(strm);
1879 m_h223MultiplexTableCapability.Encode(strm);
1880 KnownExtensionEncode(strm, e_maxMUXPDUSizeCapability, m_maxMUXPDUSizeCapability);
1881 KnownExtensionEncode(strm, e_nsrpSupport, m_nsrpSupport);
1882 KnownExtensionEncode(strm, e_mobileOperationTransmitCapability, m_mobileOperationTransmitCapability);
1883 KnownExtensionEncode(strm, e_h223AnnexCCapability, m_h223AnnexCCapability);
1884 KnownExtensionEncode(strm, e_bitRate, m_bitRate);
1885 KnownExtensionEncode(strm, e_mobileMultilinkFrameCapability, m_mobileMultilinkFrameCapability);
1887 UnknownExtensionsEncode(strm);
1891 PObject * H245_H223Capability::Clone() const
1893 #ifndef PASN_LEANANDMEAN
1894 PAssert(IsClass(H245_H223Capability::Class()), PInvalidCast);
1895 #endif
1896 return new H245_H223Capability(*this);
1901 // V76Capability
1904 H245_V76Capability::H245_V76Capability(unsigned tag, PASN_Object::TagClass tagClass)
1905 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
1907 m_numOfDLCS.SetConstraints(PASN_Object::FixedConstraint, 2, 8191);
1908 m_n401Capability.SetConstraints(PASN_Object::FixedConstraint, 1, 4095);
1909 m_maxWindowSizeCapability.SetConstraints(PASN_Object::FixedConstraint, 1, 127);
1913 #ifndef PASN_NOPRINTON
1914 void H245_V76Capability::PrintOn(ostream & strm) const
1916 int indent = strm.precision() + 2;
1917 strm << "{\n";
1918 strm << setw(indent+34) << "suspendResumeCapabilitywAddress = " << setprecision(indent) << m_suspendResumeCapabilitywAddress << '\n';
1919 strm << setw(indent+35) << "suspendResumeCapabilitywoAddress = " << setprecision(indent) << m_suspendResumeCapabilitywoAddress << '\n';
1920 strm << setw(indent+16) << "rejCapability = " << setprecision(indent) << m_rejCapability << '\n';
1921 strm << setw(indent+17) << "sREJCapability = " << setprecision(indent) << m_sREJCapability << '\n';
1922 strm << setw(indent+17) << "mREJCapability = " << setprecision(indent) << m_mREJCapability << '\n';
1923 strm << setw(indent+20) << "crc8bitCapability = " << setprecision(indent) << m_crc8bitCapability << '\n';
1924 strm << setw(indent+21) << "crc16bitCapability = " << setprecision(indent) << m_crc16bitCapability << '\n';
1925 strm << setw(indent+21) << "crc32bitCapability = " << setprecision(indent) << m_crc32bitCapability << '\n';
1926 strm << setw(indent+16) << "uihCapability = " << setprecision(indent) << m_uihCapability << '\n';
1927 strm << setw(indent+12) << "numOfDLCS = " << setprecision(indent) << m_numOfDLCS << '\n';
1928 strm << setw(indent+33) << "twoOctetAddressFieldCapability = " << setprecision(indent) << m_twoOctetAddressFieldCapability << '\n';
1929 strm << setw(indent+25) << "loopBackTestCapability = " << setprecision(indent) << m_loopBackTestCapability << '\n';
1930 strm << setw(indent+17) << "n401Capability = " << setprecision(indent) << m_n401Capability << '\n';
1931 strm << setw(indent+26) << "maxWindowSizeCapability = " << setprecision(indent) << m_maxWindowSizeCapability << '\n';
1932 strm << setw(indent+16) << "v75Capability = " << setprecision(indent) << m_v75Capability << '\n';
1933 strm << setw(indent-1) << setprecision(indent-2) << "}";
1935 #endif
1938 PObject::Comparison H245_V76Capability::Compare(const PObject & obj) const
1940 #ifndef PASN_LEANANDMEAN
1941 PAssert(PIsDescendant(&obj, H245_V76Capability), PInvalidCast);
1942 #endif
1943 const H245_V76Capability & other = (const H245_V76Capability &)obj;
1945 Comparison result;
1947 if ((result = m_suspendResumeCapabilitywAddress.Compare(other.m_suspendResumeCapabilitywAddress)) != EqualTo)
1948 return result;
1949 if ((result = m_suspendResumeCapabilitywoAddress.Compare(other.m_suspendResumeCapabilitywoAddress)) != EqualTo)
1950 return result;
1951 if ((result = m_rejCapability.Compare(other.m_rejCapability)) != EqualTo)
1952 return result;
1953 if ((result = m_sREJCapability.Compare(other.m_sREJCapability)) != EqualTo)
1954 return result;
1955 if ((result = m_mREJCapability.Compare(other.m_mREJCapability)) != EqualTo)
1956 return result;
1957 if ((result = m_crc8bitCapability.Compare(other.m_crc8bitCapability)) != EqualTo)
1958 return result;
1959 if ((result = m_crc16bitCapability.Compare(other.m_crc16bitCapability)) != EqualTo)
1960 return result;
1961 if ((result = m_crc32bitCapability.Compare(other.m_crc32bitCapability)) != EqualTo)
1962 return result;
1963 if ((result = m_uihCapability.Compare(other.m_uihCapability)) != EqualTo)
1964 return result;
1965 if ((result = m_numOfDLCS.Compare(other.m_numOfDLCS)) != EqualTo)
1966 return result;
1967 if ((result = m_twoOctetAddressFieldCapability.Compare(other.m_twoOctetAddressFieldCapability)) != EqualTo)
1968 return result;
1969 if ((result = m_loopBackTestCapability.Compare(other.m_loopBackTestCapability)) != EqualTo)
1970 return result;
1971 if ((result = m_n401Capability.Compare(other.m_n401Capability)) != EqualTo)
1972 return result;
1973 if ((result = m_maxWindowSizeCapability.Compare(other.m_maxWindowSizeCapability)) != EqualTo)
1974 return result;
1975 if ((result = m_v75Capability.Compare(other.m_v75Capability)) != EqualTo)
1976 return result;
1978 return PASN_Sequence::Compare(other);
1982 PINDEX H245_V76Capability::GetDataLength() const
1984 PINDEX length = 0;
1985 length += m_suspendResumeCapabilitywAddress.GetObjectLength();
1986 length += m_suspendResumeCapabilitywoAddress.GetObjectLength();
1987 length += m_rejCapability.GetObjectLength();
1988 length += m_sREJCapability.GetObjectLength();
1989 length += m_mREJCapability.GetObjectLength();
1990 length += m_crc8bitCapability.GetObjectLength();
1991 length += m_crc16bitCapability.GetObjectLength();
1992 length += m_crc32bitCapability.GetObjectLength();
1993 length += m_uihCapability.GetObjectLength();
1994 length += m_numOfDLCS.GetObjectLength();
1995 length += m_twoOctetAddressFieldCapability.GetObjectLength();
1996 length += m_loopBackTestCapability.GetObjectLength();
1997 length += m_n401Capability.GetObjectLength();
1998 length += m_maxWindowSizeCapability.GetObjectLength();
1999 length += m_v75Capability.GetObjectLength();
2000 return length;
2004 BOOL H245_V76Capability::Decode(PASN_Stream & strm)
2006 if (!PreambleDecode(strm))
2007 return FALSE;
2009 if (!m_suspendResumeCapabilitywAddress.Decode(strm))
2010 return FALSE;
2011 if (!m_suspendResumeCapabilitywoAddress.Decode(strm))
2012 return FALSE;
2013 if (!m_rejCapability.Decode(strm))
2014 return FALSE;
2015 if (!m_sREJCapability.Decode(strm))
2016 return FALSE;
2017 if (!m_mREJCapability.Decode(strm))
2018 return FALSE;
2019 if (!m_crc8bitCapability.Decode(strm))
2020 return FALSE;
2021 if (!m_crc16bitCapability.Decode(strm))
2022 return FALSE;
2023 if (!m_crc32bitCapability.Decode(strm))
2024 return FALSE;
2025 if (!m_uihCapability.Decode(strm))
2026 return FALSE;
2027 if (!m_numOfDLCS.Decode(strm))
2028 return FALSE;
2029 if (!m_twoOctetAddressFieldCapability.Decode(strm))
2030 return FALSE;
2031 if (!m_loopBackTestCapability.Decode(strm))
2032 return FALSE;
2033 if (!m_n401Capability.Decode(strm))
2034 return FALSE;
2035 if (!m_maxWindowSizeCapability.Decode(strm))
2036 return FALSE;
2037 if (!m_v75Capability.Decode(strm))
2038 return FALSE;
2040 return UnknownExtensionsDecode(strm);
2044 void H245_V76Capability::Encode(PASN_Stream & strm) const
2046 PreambleEncode(strm);
2048 m_suspendResumeCapabilitywAddress.Encode(strm);
2049 m_suspendResumeCapabilitywoAddress.Encode(strm);
2050 m_rejCapability.Encode(strm);
2051 m_sREJCapability.Encode(strm);
2052 m_mREJCapability.Encode(strm);
2053 m_crc8bitCapability.Encode(strm);
2054 m_crc16bitCapability.Encode(strm);
2055 m_crc32bitCapability.Encode(strm);
2056 m_uihCapability.Encode(strm);
2057 m_numOfDLCS.Encode(strm);
2058 m_twoOctetAddressFieldCapability.Encode(strm);
2059 m_loopBackTestCapability.Encode(strm);
2060 m_n401Capability.Encode(strm);
2061 m_maxWindowSizeCapability.Encode(strm);
2062 m_v75Capability.Encode(strm);
2064 UnknownExtensionsEncode(strm);
2068 PObject * H245_V76Capability::Clone() const
2070 #ifndef PASN_LEANANDMEAN
2071 PAssert(IsClass(H245_V76Capability::Class()), PInvalidCast);
2072 #endif
2073 return new H245_V76Capability(*this);
2078 // MediaPacketizationCapability
2081 H245_MediaPacketizationCapability::H245_MediaPacketizationCapability(unsigned tag, PASN_Object::TagClass tagClass)
2082 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
2084 m_rtpPayloadType.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
2088 #ifndef PASN_NOPRINTON
2089 void H245_MediaPacketizationCapability::PrintOn(ostream & strm) const
2091 int indent = strm.precision() + 2;
2092 strm << "{\n";
2093 strm << setw(indent+26) << "h261aVideoPacketization = " << setprecision(indent) << m_h261aVideoPacketization << '\n';
2094 if (HasOptionalField(e_rtpPayloadType))
2095 strm << setw(indent+17) << "rtpPayloadType = " << setprecision(indent) << m_rtpPayloadType << '\n';
2096 strm << setw(indent-1) << setprecision(indent-2) << "}";
2098 #endif
2101 PObject::Comparison H245_MediaPacketizationCapability::Compare(const PObject & obj) const
2103 #ifndef PASN_LEANANDMEAN
2104 PAssert(PIsDescendant(&obj, H245_MediaPacketizationCapability), PInvalidCast);
2105 #endif
2106 const H245_MediaPacketizationCapability & other = (const H245_MediaPacketizationCapability &)obj;
2108 Comparison result;
2110 if ((result = m_h261aVideoPacketization.Compare(other.m_h261aVideoPacketization)) != EqualTo)
2111 return result;
2113 return PASN_Sequence::Compare(other);
2117 PINDEX H245_MediaPacketizationCapability::GetDataLength() const
2119 PINDEX length = 0;
2120 length += m_h261aVideoPacketization.GetObjectLength();
2121 return length;
2125 BOOL H245_MediaPacketizationCapability::Decode(PASN_Stream & strm)
2127 if (!PreambleDecode(strm))
2128 return FALSE;
2130 if (!m_h261aVideoPacketization.Decode(strm))
2131 return FALSE;
2132 if (!KnownExtensionDecode(strm, e_rtpPayloadType, m_rtpPayloadType))
2133 return FALSE;
2135 return UnknownExtensionsDecode(strm);
2139 void H245_MediaPacketizationCapability::Encode(PASN_Stream & strm) const
2141 PreambleEncode(strm);
2143 m_h261aVideoPacketization.Encode(strm);
2144 KnownExtensionEncode(strm, e_rtpPayloadType, m_rtpPayloadType);
2146 UnknownExtensionsEncode(strm);
2150 PObject * H245_MediaPacketizationCapability::Clone() const
2152 #ifndef PASN_LEANANDMEAN
2153 PAssert(IsClass(H245_MediaPacketizationCapability::Class()), PInvalidCast);
2154 #endif
2155 return new H245_MediaPacketizationCapability(*this);
2160 // RSVPParameters
2163 H245_RSVPParameters::H245_RSVPParameters(unsigned tag, PASN_Object::TagClass tagClass)
2164 : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
2166 m_tokenRate.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2167 m_bucketSize.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2168 m_peakRate.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2169 m_minPoliced.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2170 m_maxPktSize.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2174 #ifndef PASN_NOPRINTON
2175 void H245_RSVPParameters::PrintOn(ostream & strm) const
2177 int indent = strm.precision() + 2;
2178 strm << "{\n";
2179 if (HasOptionalField(e_qosMode))
2180 strm << setw(indent+10) << "qosMode = " << setprecision(indent) << m_qosMode << '\n';
2181 if (HasOptionalField(e_tokenRate))
2182 strm << setw(indent+12) << "tokenRate = " << setprecision(indent) << m_tokenRate << '\n';
2183 if (HasOptionalField(e_bucketSize))
2184 strm << setw(indent+13) << "bucketSize = " << setprecision(indent) << m_bucketSize << '\n';
2185 if (HasOptionalField(e_peakRate))
2186 strm << setw(indent+11) << "peakRate = " << setprecision(indent) << m_peakRate << '\n';
2187 if (HasOptionalField(e_minPoliced))
2188 strm << setw(indent+13) << "minPoliced = " << setprecision(indent) << m_minPoliced << '\n';
2189 if (HasOptionalField(e_maxPktSize))
2190 strm << setw(indent+13) << "maxPktSize = " << setprecision(indent) << m_maxPktSize << '\n';
2191 strm << setw(indent-1) << setprecision(indent-2) << "}";
2193 #endif
2196 PObject::Comparison H245_RSVPParameters::Compare(const PObject & obj) const
2198 #ifndef PASN_LEANANDMEAN
2199 PAssert(PIsDescendant(&obj, H245_RSVPParameters), PInvalidCast);
2200 #endif
2201 const H245_RSVPParameters & other = (const H245_RSVPParameters &)obj;
2203 Comparison result;
2205 if ((result = m_qosMode.Compare(other.m_qosMode)) != EqualTo)
2206 return result;
2207 if ((result = m_tokenRate.Compare(other.m_tokenRate)) != EqualTo)
2208 return result;
2209 if ((result = m_bucketSize.Compare(other.m_bucketSize)) != EqualTo)
2210 return result;
2211 if ((result = m_peakRate.Compare(other.m_peakRate)) != EqualTo)
2212 return result;
2213 if ((result = m_minPoliced.Compare(other.m_minPoliced)) != EqualTo)
2214 return result;
2215 if ((result = m_maxPktSize.Compare(other.m_maxPktSize)) != EqualTo)
2216 return result;
2218 return PASN_Sequence::Compare(other);
2222 PINDEX H245_RSVPParameters::GetDataLength() const
2224 PINDEX length = 0;
2225 if (HasOptionalField(e_qosMode))
2226 length += m_qosMode.GetObjectLength();
2227 if (HasOptionalField(e_tokenRate))
2228 length += m_tokenRate.GetObjectLength();
2229 if (HasOptionalField(e_bucketSize))
2230 length += m_bucketSize.GetObjectLength();
2231 if (HasOptionalField(e_peakRate))
2232 length += m_peakRate.GetObjectLength();
2233 if (HasOptionalField(e_minPoliced))
2234 length += m_minPoliced.GetObjectLength();
2235 if (HasOptionalField(e_maxPktSize))
2236 length += m_maxPktSize.GetObjectLength();
2237 return length;
2241 BOOL H245_RSVPParameters::Decode(PASN_Stream & strm)
2243 if (!PreambleDecode(strm))
2244 return FALSE;
2246 if (HasOptionalField(e_qosMode) && !m_qosMode.Decode(strm))
2247 return FALSE;
2248 if (HasOptionalField(e_tokenRate) && !m_tokenRate.Decode(strm))
2249 return FALSE;
2250 if (HasOptionalField(e_bucketSize) && !m_bucketSize.Decode(strm))
2251 return FALSE;
2252 if (HasOptionalField(e_peakRate) && !m_peakRate.Decode(strm))
2253 return FALSE;
2254 if (HasOptionalField(e_minPoliced) && !m_minPoliced.Decode(strm))
2255 return FALSE;
2256 if (HasOptionalField(e_maxPktSize) && !m_maxPktSize.Decode(strm))
2257 return FALSE;
2259 return UnknownExtensionsDecode(strm);
2263 void H245_RSVPParameters::Encode(PASN_Stream & strm) const
2265 PreambleEncode(strm);
2267 if (HasOptionalField(e_qosMode))
2268 m_qosMode.Encode(strm);
2269 if (HasOptionalField(e_tokenRate))
2270 m_tokenRate.Encode(strm);
2271 if (HasOptionalField(e_bucketSize))
2272 m_bucketSize.Encode(strm);
2273 if (HasOptionalField(e_peakRate))
2274 m_peakRate.Encode(strm);
2275 if (HasOptionalField(e_minPoliced))
2276 m_minPoliced.Encode(strm);
2277 if (HasOptionalField(e_maxPktSize))
2278 m_maxPktSize.Encode(strm);
2280 UnknownExtensionsEncode(strm);
2284 PObject * H245_RSVPParameters::Clone() const
2286 #ifndef PASN_LEANANDMEAN
2287 PAssert(IsClass(H245_RSVPParameters::Class()), PInvalidCast);
2288 #endif
2289 return new H245_RSVPParameters(*this);
2294 // ServicePriorityValue
2297 H245_ServicePriorityValue::H245_ServicePriorityValue(unsigned tag, PASN_Object::TagClass tagClass)
2298 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
2303 #ifndef PASN_NOPRINTON
2304 void H245_ServicePriorityValue::PrintOn(ostream & strm) const
2306 int indent = strm.precision() + 2;
2307 strm << "{\n";
2308 if (HasOptionalField(e_nonStandardParameter))
2309 strm << setw(indent+23) << "nonStandardParameter = " << setprecision(indent) << m_nonStandardParameter << '\n';
2310 strm << setw(indent-1) << setprecision(indent-2) << "}";
2312 #endif
2315 PObject::Comparison H245_ServicePriorityValue::Compare(const PObject & obj) const
2317 #ifndef PASN_LEANANDMEAN
2318 PAssert(PIsDescendant(&obj, H245_ServicePriorityValue), PInvalidCast);
2319 #endif
2320 const H245_ServicePriorityValue & other = (const H245_ServicePriorityValue &)obj;
2322 Comparison result;
2324 if ((result = m_nonStandardParameter.Compare(other.m_nonStandardParameter)) != EqualTo)
2325 return result;
2327 return PASN_Sequence::Compare(other);
2331 PINDEX H245_ServicePriorityValue::GetDataLength() const
2333 PINDEX length = 0;
2334 if (HasOptionalField(e_nonStandardParameter))
2335 length += m_nonStandardParameter.GetObjectLength();
2336 return length;
2340 BOOL H245_ServicePriorityValue::Decode(PASN_Stream & strm)
2342 if (!PreambleDecode(strm))
2343 return FALSE;
2345 if (HasOptionalField(e_nonStandardParameter) && !m_nonStandardParameter.Decode(strm))
2346 return FALSE;
2348 return UnknownExtensionsDecode(strm);
2352 void H245_ServicePriorityValue::Encode(PASN_Stream & strm) const
2354 PreambleEncode(strm);
2356 if (HasOptionalField(e_nonStandardParameter))
2357 m_nonStandardParameter.Encode(strm);
2359 UnknownExtensionsEncode(strm);
2363 PObject * H245_ServicePriorityValue::Clone() const
2365 #ifndef PASN_LEANANDMEAN
2366 PAssert(IsClass(H245_ServicePriorityValue::Class()), PInvalidCast);
2367 #endif
2368 return new H245_ServicePriorityValue(*this);
2373 // ServicePriority
2376 H245_ServicePriority::H245_ServicePriority(unsigned tag, PASN_Object::TagClass tagClass)
2377 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
2382 #ifndef PASN_NOPRINTON
2383 void H245_ServicePriority::PrintOn(ostream & strm) const
2385 int indent = strm.precision() + 2;
2386 strm << "{\n";
2387 if (HasOptionalField(e_nonStandardData))
2388 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
2389 strm << setw(indent+27) << "servicePrioritySignalled = " << setprecision(indent) << m_servicePrioritySignalled << '\n';
2390 if (HasOptionalField(e_servicePriorityValue))
2391 strm << setw(indent+23) << "servicePriorityValue = " << setprecision(indent) << m_servicePriorityValue << '\n';
2392 strm << setw(indent-1) << setprecision(indent-2) << "}";
2394 #endif
2397 PObject::Comparison H245_ServicePriority::Compare(const PObject & obj) const
2399 #ifndef PASN_LEANANDMEAN
2400 PAssert(PIsDescendant(&obj, H245_ServicePriority), PInvalidCast);
2401 #endif
2402 const H245_ServicePriority & other = (const H245_ServicePriority &)obj;
2404 Comparison result;
2406 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
2407 return result;
2408 if ((result = m_servicePrioritySignalled.Compare(other.m_servicePrioritySignalled)) != EqualTo)
2409 return result;
2410 if ((result = m_servicePriorityValue.Compare(other.m_servicePriorityValue)) != EqualTo)
2411 return result;
2413 return PASN_Sequence::Compare(other);
2417 PINDEX H245_ServicePriority::GetDataLength() const
2419 PINDEX length = 0;
2420 if (HasOptionalField(e_nonStandardData))
2421 length += m_nonStandardData.GetObjectLength();
2422 length += m_servicePrioritySignalled.GetObjectLength();
2423 if (HasOptionalField(e_servicePriorityValue))
2424 length += m_servicePriorityValue.GetObjectLength();
2425 return length;
2429 BOOL H245_ServicePriority::Decode(PASN_Stream & strm)
2431 if (!PreambleDecode(strm))
2432 return FALSE;
2434 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
2435 return FALSE;
2436 if (!m_servicePrioritySignalled.Decode(strm))
2437 return FALSE;
2438 if (HasOptionalField(e_servicePriorityValue) && !m_servicePriorityValue.Decode(strm))
2439 return FALSE;
2441 return UnknownExtensionsDecode(strm);
2445 void H245_ServicePriority::Encode(PASN_Stream & strm) const
2447 PreambleEncode(strm);
2449 if (HasOptionalField(e_nonStandardData))
2450 m_nonStandardData.Encode(strm);
2451 m_servicePrioritySignalled.Encode(strm);
2452 if (HasOptionalField(e_servicePriorityValue))
2453 m_servicePriorityValue.Encode(strm);
2455 UnknownExtensionsEncode(strm);
2459 PObject * H245_ServicePriority::Clone() const
2461 #ifndef PASN_LEANANDMEAN
2462 PAssert(IsClass(H245_ServicePriority::Class()), PInvalidCast);
2463 #endif
2464 return new H245_ServicePriority(*this);
2469 // AuthorizationParameters
2472 H245_AuthorizationParameters::H245_AuthorizationParameters(unsigned tag, PASN_Object::TagClass tagClass)
2473 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
2478 #ifndef PASN_NOPRINTON
2479 void H245_AuthorizationParameters::PrintOn(ostream & strm) const
2481 int indent = strm.precision() + 2;
2482 strm << "{\n";
2483 if (HasOptionalField(e_nonStandardData))
2484 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
2485 strm << setw(indent-1) << setprecision(indent-2) << "}";
2487 #endif
2490 PObject::Comparison H245_AuthorizationParameters::Compare(const PObject & obj) const
2492 #ifndef PASN_LEANANDMEAN
2493 PAssert(PIsDescendant(&obj, H245_AuthorizationParameters), PInvalidCast);
2494 #endif
2495 const H245_AuthorizationParameters & other = (const H245_AuthorizationParameters &)obj;
2497 Comparison result;
2499 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
2500 return result;
2502 return PASN_Sequence::Compare(other);
2506 PINDEX H245_AuthorizationParameters::GetDataLength() const
2508 PINDEX length = 0;
2509 if (HasOptionalField(e_nonStandardData))
2510 length += m_nonStandardData.GetObjectLength();
2511 return length;
2515 BOOL H245_AuthorizationParameters::Decode(PASN_Stream & strm)
2517 if (!PreambleDecode(strm))
2518 return FALSE;
2520 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
2521 return FALSE;
2523 return UnknownExtensionsDecode(strm);
2527 void H245_AuthorizationParameters::Encode(PASN_Stream & strm) const
2529 PreambleEncode(strm);
2531 if (HasOptionalField(e_nonStandardData))
2532 m_nonStandardData.Encode(strm);
2534 UnknownExtensionsEncode(strm);
2538 PObject * H245_AuthorizationParameters::Clone() const
2540 #ifndef PASN_LEANANDMEAN
2541 PAssert(IsClass(H245_AuthorizationParameters::Class()), PInvalidCast);
2542 #endif
2543 return new H245_AuthorizationParameters(*this);
2548 // QOSDescriptor
2551 H245_QOSDescriptor::H245_QOSDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
2552 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
2557 #ifndef PASN_NOPRINTON
2558 void H245_QOSDescriptor::PrintOn(ostream & strm) const
2560 int indent = strm.precision() + 2;
2561 strm << "{\n";
2562 if (HasOptionalField(e_nonStandardData))
2563 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
2564 strm << setw(indent+10) << "qosType = " << setprecision(indent) << m_qosType << '\n';
2565 strm << setw(indent+11) << "qosClass = " << setprecision(indent) << m_qosClass << '\n';
2566 strm << setw(indent-1) << setprecision(indent-2) << "}";
2568 #endif
2571 PObject::Comparison H245_QOSDescriptor::Compare(const PObject & obj) const
2573 #ifndef PASN_LEANANDMEAN
2574 PAssert(PIsDescendant(&obj, H245_QOSDescriptor), PInvalidCast);
2575 #endif
2576 const H245_QOSDescriptor & other = (const H245_QOSDescriptor &)obj;
2578 Comparison result;
2580 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
2581 return result;
2582 if ((result = m_qosType.Compare(other.m_qosType)) != EqualTo)
2583 return result;
2584 if ((result = m_qosClass.Compare(other.m_qosClass)) != EqualTo)
2585 return result;
2587 return PASN_Sequence::Compare(other);
2591 PINDEX H245_QOSDescriptor::GetDataLength() const
2593 PINDEX length = 0;
2594 if (HasOptionalField(e_nonStandardData))
2595 length += m_nonStandardData.GetObjectLength();
2596 length += m_qosType.GetObjectLength();
2597 length += m_qosClass.GetObjectLength();
2598 return length;
2602 BOOL H245_QOSDescriptor::Decode(PASN_Stream & strm)
2604 if (!PreambleDecode(strm))
2605 return FALSE;
2607 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
2608 return FALSE;
2609 if (!m_qosType.Decode(strm))
2610 return FALSE;
2611 if (!m_qosClass.Decode(strm))
2612 return FALSE;
2614 return UnknownExtensionsDecode(strm);
2618 void H245_QOSDescriptor::Encode(PASN_Stream & strm) const
2620 PreambleEncode(strm);
2622 if (HasOptionalField(e_nonStandardData))
2623 m_nonStandardData.Encode(strm);
2624 m_qosType.Encode(strm);
2625 m_qosClass.Encode(strm);
2627 UnknownExtensionsEncode(strm);
2631 PObject * H245_QOSDescriptor::Clone() const
2633 #ifndef PASN_LEANANDMEAN
2634 PAssert(IsClass(H245_QOSDescriptor::Class()), PInvalidCast);
2635 #endif
2636 return new H245_QOSDescriptor(*this);
2641 // GenericTransportParameters
2644 H245_GenericTransportParameters::H245_GenericTransportParameters(unsigned tag, PASN_Object::TagClass tagClass)
2645 : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
2647 m_averageRate.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2648 m_burst.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2649 m_peakRate.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2650 m_maxPktSize.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
2654 #ifndef PASN_NOPRINTON
2655 void H245_GenericTransportParameters::PrintOn(ostream & strm) const
2657 int indent = strm.precision() + 2;
2658 strm << "{\n";
2659 if (HasOptionalField(e_nonStandardData))
2660 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
2661 if (HasOptionalField(e_averageRate))
2662 strm << setw(indent+14) << "averageRate = " << setprecision(indent) << m_averageRate << '\n';
2663 if (HasOptionalField(e_burst))
2664 strm << setw(indent+8) << "burst = " << setprecision(indent) << m_burst << '\n';
2665 if (HasOptionalField(e_peakRate))
2666 strm << setw(indent+11) << "peakRate = " << setprecision(indent) << m_peakRate << '\n';
2667 if (HasOptionalField(e_maxPktSize))
2668 strm << setw(indent+13) << "maxPktSize = " << setprecision(indent) << m_maxPktSize << '\n';
2669 strm << setw(indent-1) << setprecision(indent-2) << "}";
2671 #endif
2674 PObject::Comparison H245_GenericTransportParameters::Compare(const PObject & obj) const
2676 #ifndef PASN_LEANANDMEAN
2677 PAssert(PIsDescendant(&obj, H245_GenericTransportParameters), PInvalidCast);
2678 #endif
2679 const H245_GenericTransportParameters & other = (const H245_GenericTransportParameters &)obj;
2681 Comparison result;
2683 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
2684 return result;
2685 if ((result = m_averageRate.Compare(other.m_averageRate)) != EqualTo)
2686 return result;
2687 if ((result = m_burst.Compare(other.m_burst)) != EqualTo)
2688 return result;
2689 if ((result = m_peakRate.Compare(other.m_peakRate)) != EqualTo)
2690 return result;
2691 if ((result = m_maxPktSize.Compare(other.m_maxPktSize)) != EqualTo)
2692 return result;
2694 return PASN_Sequence::Compare(other);
2698 PINDEX H245_GenericTransportParameters::GetDataLength() const
2700 PINDEX length = 0;
2701 if (HasOptionalField(e_nonStandardData))
2702 length += m_nonStandardData.GetObjectLength();
2703 if (HasOptionalField(e_averageRate))
2704 length += m_averageRate.GetObjectLength();
2705 if (HasOptionalField(e_burst))
2706 length += m_burst.GetObjectLength();
2707 if (HasOptionalField(e_peakRate))
2708 length += m_peakRate.GetObjectLength();
2709 if (HasOptionalField(e_maxPktSize))
2710 length += m_maxPktSize.GetObjectLength();
2711 return length;
2715 BOOL H245_GenericTransportParameters::Decode(PASN_Stream & strm)
2717 if (!PreambleDecode(strm))
2718 return FALSE;
2720 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
2721 return FALSE;
2722 if (HasOptionalField(e_averageRate) && !m_averageRate.Decode(strm))
2723 return FALSE;
2724 if (HasOptionalField(e_burst) && !m_burst.Decode(strm))
2725 return FALSE;
2726 if (HasOptionalField(e_peakRate) && !m_peakRate.Decode(strm))
2727 return FALSE;
2728 if (HasOptionalField(e_maxPktSize) && !m_maxPktSize.Decode(strm))
2729 return FALSE;
2731 return UnknownExtensionsDecode(strm);
2735 void H245_GenericTransportParameters::Encode(PASN_Stream & strm) const
2737 PreambleEncode(strm);
2739 if (HasOptionalField(e_nonStandardData))
2740 m_nonStandardData.Encode(strm);
2741 if (HasOptionalField(e_averageRate))
2742 m_averageRate.Encode(strm);
2743 if (HasOptionalField(e_burst))
2744 m_burst.Encode(strm);
2745 if (HasOptionalField(e_peakRate))
2746 m_peakRate.Encode(strm);
2747 if (HasOptionalField(e_maxPktSize))
2748 m_maxPktSize.Encode(strm);
2750 UnknownExtensionsEncode(strm);
2754 PObject * H245_GenericTransportParameters::Clone() const
2756 #ifndef PASN_LEANANDMEAN
2757 PAssert(IsClass(H245_GenericTransportParameters::Class()), PInvalidCast);
2758 #endif
2759 return new H245_GenericTransportParameters(*this);
2764 // QOSCapability
2767 H245_QOSCapability::H245_QOSCapability(unsigned tag, PASN_Object::TagClass tagClass)
2768 : PASN_Sequence(tag, tagClass, 3, TRUE, 6)
2770 m_dscpValue.SetConstraints(PASN_Object::FixedConstraint, 0, 63);
2774 #ifndef PASN_NOPRINTON
2775 void H245_QOSCapability::PrintOn(ostream & strm) const
2777 int indent = strm.precision() + 2;
2778 strm << "{\n";
2779 if (HasOptionalField(e_nonStandardData))
2780 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
2781 if (HasOptionalField(e_rsvpParameters))
2782 strm << setw(indent+17) << "rsvpParameters = " << setprecision(indent) << m_rsvpParameters << '\n';
2783 if (HasOptionalField(e_atmParameters))
2784 strm << setw(indent+16) << "atmParameters = " << setprecision(indent) << m_atmParameters << '\n';
2785 if (HasOptionalField(e_localQoS))
2786 strm << setw(indent+11) << "localQoS = " << setprecision(indent) << m_localQoS << '\n';
2787 if (HasOptionalField(e_genericTransportParameters))
2788 strm << setw(indent+29) << "genericTransportParameters = " << setprecision(indent) << m_genericTransportParameters << '\n';
2789 if (HasOptionalField(e_servicePriority))
2790 strm << setw(indent+18) << "servicePriority = " << setprecision(indent) << m_servicePriority << '\n';
2791 if (HasOptionalField(e_authorizationParameter))
2792 strm << setw(indent+25) << "authorizationParameter = " << setprecision(indent) << m_authorizationParameter << '\n';
2793 if (HasOptionalField(e_qosDescriptor))
2794 strm << setw(indent+16) << "qosDescriptor = " << setprecision(indent) << m_qosDescriptor << '\n';
2795 if (HasOptionalField(e_dscpValue))
2796 strm << setw(indent+12) << "dscpValue = " << setprecision(indent) << m_dscpValue << '\n';
2797 strm << setw(indent-1) << setprecision(indent-2) << "}";
2799 #endif
2802 PObject::Comparison H245_QOSCapability::Compare(const PObject & obj) const
2804 #ifndef PASN_LEANANDMEAN
2805 PAssert(PIsDescendant(&obj, H245_QOSCapability), PInvalidCast);
2806 #endif
2807 const H245_QOSCapability & other = (const H245_QOSCapability &)obj;
2809 Comparison result;
2811 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
2812 return result;
2813 if ((result = m_rsvpParameters.Compare(other.m_rsvpParameters)) != EqualTo)
2814 return result;
2815 if ((result = m_atmParameters.Compare(other.m_atmParameters)) != EqualTo)
2816 return result;
2818 return PASN_Sequence::Compare(other);
2822 PINDEX H245_QOSCapability::GetDataLength() const
2824 PINDEX length = 0;
2825 if (HasOptionalField(e_nonStandardData))
2826 length += m_nonStandardData.GetObjectLength();
2827 if (HasOptionalField(e_rsvpParameters))
2828 length += m_rsvpParameters.GetObjectLength();
2829 if (HasOptionalField(e_atmParameters))
2830 length += m_atmParameters.GetObjectLength();
2831 return length;
2835 BOOL H245_QOSCapability::Decode(PASN_Stream & strm)
2837 if (!PreambleDecode(strm))
2838 return FALSE;
2840 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
2841 return FALSE;
2842 if (HasOptionalField(e_rsvpParameters) && !m_rsvpParameters.Decode(strm))
2843 return FALSE;
2844 if (HasOptionalField(e_atmParameters) && !m_atmParameters.Decode(strm))
2845 return FALSE;
2846 if (!KnownExtensionDecode(strm, e_localQoS, m_localQoS))
2847 return FALSE;
2848 if (!KnownExtensionDecode(strm, e_genericTransportParameters, m_genericTransportParameters))
2849 return FALSE;
2850 if (!KnownExtensionDecode(strm, e_servicePriority, m_servicePriority))
2851 return FALSE;
2852 if (!KnownExtensionDecode(strm, e_authorizationParameter, m_authorizationParameter))
2853 return FALSE;
2854 if (!KnownExtensionDecode(strm, e_qosDescriptor, m_qosDescriptor))
2855 return FALSE;
2856 if (!KnownExtensionDecode(strm, e_dscpValue, m_dscpValue))
2857 return FALSE;
2859 return UnknownExtensionsDecode(strm);
2863 void H245_QOSCapability::Encode(PASN_Stream & strm) const
2865 PreambleEncode(strm);
2867 if (HasOptionalField(e_nonStandardData))
2868 m_nonStandardData.Encode(strm);
2869 if (HasOptionalField(e_rsvpParameters))
2870 m_rsvpParameters.Encode(strm);
2871 if (HasOptionalField(e_atmParameters))
2872 m_atmParameters.Encode(strm);
2873 KnownExtensionEncode(strm, e_localQoS, m_localQoS);
2874 KnownExtensionEncode(strm, e_genericTransportParameters, m_genericTransportParameters);
2875 KnownExtensionEncode(strm, e_servicePriority, m_servicePriority);
2876 KnownExtensionEncode(strm, e_authorizationParameter, m_authorizationParameter);
2877 KnownExtensionEncode(strm, e_qosDescriptor, m_qosDescriptor);
2878 KnownExtensionEncode(strm, e_dscpValue, m_dscpValue);
2880 UnknownExtensionsEncode(strm);
2884 PObject * H245_QOSCapability::Clone() const
2886 #ifndef PASN_LEANANDMEAN
2887 PAssert(IsClass(H245_QOSCapability::Class()), PInvalidCast);
2888 #endif
2889 return new H245_QOSCapability(*this);
2894 // TransportCapability
2897 H245_TransportCapability::H245_TransportCapability(unsigned tag, PASN_Object::TagClass tagClass)
2898 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
2900 m_qOSCapabilities.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
2901 m_mediaChannelCapabilities.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
2905 #ifndef PASN_NOPRINTON
2906 void H245_TransportCapability::PrintOn(ostream & strm) const
2908 int indent = strm.precision() + 2;
2909 strm << "{\n";
2910 if (HasOptionalField(e_nonStandard))
2911 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
2912 if (HasOptionalField(e_qOSCapabilities))
2913 strm << setw(indent+18) << "qOSCapabilities = " << setprecision(indent) << m_qOSCapabilities << '\n';
2914 if (HasOptionalField(e_mediaChannelCapabilities))
2915 strm << setw(indent+27) << "mediaChannelCapabilities = " << setprecision(indent) << m_mediaChannelCapabilities << '\n';
2916 strm << setw(indent-1) << setprecision(indent-2) << "}";
2918 #endif
2921 PObject::Comparison H245_TransportCapability::Compare(const PObject & obj) const
2923 #ifndef PASN_LEANANDMEAN
2924 PAssert(PIsDescendant(&obj, H245_TransportCapability), PInvalidCast);
2925 #endif
2926 const H245_TransportCapability & other = (const H245_TransportCapability &)obj;
2928 Comparison result;
2930 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
2931 return result;
2932 if ((result = m_qOSCapabilities.Compare(other.m_qOSCapabilities)) != EqualTo)
2933 return result;
2934 if ((result = m_mediaChannelCapabilities.Compare(other.m_mediaChannelCapabilities)) != EqualTo)
2935 return result;
2937 return PASN_Sequence::Compare(other);
2941 PINDEX H245_TransportCapability::GetDataLength() const
2943 PINDEX length = 0;
2944 if (HasOptionalField(e_nonStandard))
2945 length += m_nonStandard.GetObjectLength();
2946 if (HasOptionalField(e_qOSCapabilities))
2947 length += m_qOSCapabilities.GetObjectLength();
2948 if (HasOptionalField(e_mediaChannelCapabilities))
2949 length += m_mediaChannelCapabilities.GetObjectLength();
2950 return length;
2954 BOOL H245_TransportCapability::Decode(PASN_Stream & strm)
2956 if (!PreambleDecode(strm))
2957 return FALSE;
2959 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
2960 return FALSE;
2961 if (HasOptionalField(e_qOSCapabilities) && !m_qOSCapabilities.Decode(strm))
2962 return FALSE;
2963 if (HasOptionalField(e_mediaChannelCapabilities) && !m_mediaChannelCapabilities.Decode(strm))
2964 return FALSE;
2966 return UnknownExtensionsDecode(strm);
2970 void H245_TransportCapability::Encode(PASN_Stream & strm) const
2972 PreambleEncode(strm);
2974 if (HasOptionalField(e_nonStandard))
2975 m_nonStandard.Encode(strm);
2976 if (HasOptionalField(e_qOSCapabilities))
2977 m_qOSCapabilities.Encode(strm);
2978 if (HasOptionalField(e_mediaChannelCapabilities))
2979 m_mediaChannelCapabilities.Encode(strm);
2981 UnknownExtensionsEncode(strm);
2985 PObject * H245_TransportCapability::Clone() const
2987 #ifndef PASN_LEANANDMEAN
2988 PAssert(IsClass(H245_TransportCapability::Class()), PInvalidCast);
2989 #endif
2990 return new H245_TransportCapability(*this);
2995 // RedundancyEncodingCapability
2998 H245_RedundancyEncodingCapability::H245_RedundancyEncodingCapability(unsigned tag, PASN_Object::TagClass tagClass)
2999 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
3001 m_secondaryEncoding.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
3005 #ifndef PASN_NOPRINTON
3006 void H245_RedundancyEncodingCapability::PrintOn(ostream & strm) const
3008 int indent = strm.precision() + 2;
3009 strm << "{\n";
3010 strm << setw(indent+27) << "redundancyEncodingMethod = " << setprecision(indent) << m_redundancyEncodingMethod << '\n';
3011 strm << setw(indent+18) << "primaryEncoding = " << setprecision(indent) << m_primaryEncoding << '\n';
3012 if (HasOptionalField(e_secondaryEncoding))
3013 strm << setw(indent+20) << "secondaryEncoding = " << setprecision(indent) << m_secondaryEncoding << '\n';
3014 strm << setw(indent-1) << setprecision(indent-2) << "}";
3016 #endif
3019 PObject::Comparison H245_RedundancyEncodingCapability::Compare(const PObject & obj) const
3021 #ifndef PASN_LEANANDMEAN
3022 PAssert(PIsDescendant(&obj, H245_RedundancyEncodingCapability), PInvalidCast);
3023 #endif
3024 const H245_RedundancyEncodingCapability & other = (const H245_RedundancyEncodingCapability &)obj;
3026 Comparison result;
3028 if ((result = m_redundancyEncodingMethod.Compare(other.m_redundancyEncodingMethod)) != EqualTo)
3029 return result;
3030 if ((result = m_primaryEncoding.Compare(other.m_primaryEncoding)) != EqualTo)
3031 return result;
3032 if ((result = m_secondaryEncoding.Compare(other.m_secondaryEncoding)) != EqualTo)
3033 return result;
3035 return PASN_Sequence::Compare(other);
3039 PINDEX H245_RedundancyEncodingCapability::GetDataLength() const
3041 PINDEX length = 0;
3042 length += m_redundancyEncodingMethod.GetObjectLength();
3043 length += m_primaryEncoding.GetObjectLength();
3044 if (HasOptionalField(e_secondaryEncoding))
3045 length += m_secondaryEncoding.GetObjectLength();
3046 return length;
3050 BOOL H245_RedundancyEncodingCapability::Decode(PASN_Stream & strm)
3052 if (!PreambleDecode(strm))
3053 return FALSE;
3055 if (!m_redundancyEncodingMethod.Decode(strm))
3056 return FALSE;
3057 if (!m_primaryEncoding.Decode(strm))
3058 return FALSE;
3059 if (HasOptionalField(e_secondaryEncoding) && !m_secondaryEncoding.Decode(strm))
3060 return FALSE;
3062 return UnknownExtensionsDecode(strm);
3066 void H245_RedundancyEncodingCapability::Encode(PASN_Stream & strm) const
3068 PreambleEncode(strm);
3070 m_redundancyEncodingMethod.Encode(strm);
3071 m_primaryEncoding.Encode(strm);
3072 if (HasOptionalField(e_secondaryEncoding))
3073 m_secondaryEncoding.Encode(strm);
3075 UnknownExtensionsEncode(strm);
3079 PObject * H245_RedundancyEncodingCapability::Clone() const
3081 #ifndef PASN_LEANANDMEAN
3082 PAssert(IsClass(H245_RedundancyEncodingCapability::Class()), PInvalidCast);
3083 #endif
3084 return new H245_RedundancyEncodingCapability(*this);
3089 // RTPH263VideoRedundancyEncoding
3092 H245_RTPH263VideoRedundancyEncoding::H245_RTPH263VideoRedundancyEncoding(unsigned tag, PASN_Object::TagClass tagClass)
3093 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
3095 m_numberOfThreads.SetConstraints(PASN_Object::FixedConstraint, 1, 16);
3096 m_framesBetweenSyncPoints.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
3100 #ifndef PASN_NOPRINTON
3101 void H245_RTPH263VideoRedundancyEncoding::PrintOn(ostream & strm) const
3103 int indent = strm.precision() + 2;
3104 strm << "{\n";
3105 strm << setw(indent+18) << "numberOfThreads = " << setprecision(indent) << m_numberOfThreads << '\n';
3106 strm << setw(indent+26) << "framesBetweenSyncPoints = " << setprecision(indent) << m_framesBetweenSyncPoints << '\n';
3107 strm << setw(indent+23) << "frameToThreadMapping = " << setprecision(indent) << m_frameToThreadMapping << '\n';
3108 if (HasOptionalField(e_containedThreads))
3109 strm << setw(indent+19) << "containedThreads = " << setprecision(indent) << m_containedThreads << '\n';
3110 strm << setw(indent-1) << setprecision(indent-2) << "}";
3112 #endif
3115 PObject::Comparison H245_RTPH263VideoRedundancyEncoding::Compare(const PObject & obj) const
3117 #ifndef PASN_LEANANDMEAN
3118 PAssert(PIsDescendant(&obj, H245_RTPH263VideoRedundancyEncoding), PInvalidCast);
3119 #endif
3120 const H245_RTPH263VideoRedundancyEncoding & other = (const H245_RTPH263VideoRedundancyEncoding &)obj;
3122 Comparison result;
3124 if ((result = m_numberOfThreads.Compare(other.m_numberOfThreads)) != EqualTo)
3125 return result;
3126 if ((result = m_framesBetweenSyncPoints.Compare(other.m_framesBetweenSyncPoints)) != EqualTo)
3127 return result;
3128 if ((result = m_frameToThreadMapping.Compare(other.m_frameToThreadMapping)) != EqualTo)
3129 return result;
3130 if ((result = m_containedThreads.Compare(other.m_containedThreads)) != EqualTo)
3131 return result;
3133 return PASN_Sequence::Compare(other);
3137 PINDEX H245_RTPH263VideoRedundancyEncoding::GetDataLength() const
3139 PINDEX length = 0;
3140 length += m_numberOfThreads.GetObjectLength();
3141 length += m_framesBetweenSyncPoints.GetObjectLength();
3142 length += m_frameToThreadMapping.GetObjectLength();
3143 if (HasOptionalField(e_containedThreads))
3144 length += m_containedThreads.GetObjectLength();
3145 return length;
3149 BOOL H245_RTPH263VideoRedundancyEncoding::Decode(PASN_Stream & strm)
3151 if (!PreambleDecode(strm))
3152 return FALSE;
3154 if (!m_numberOfThreads.Decode(strm))
3155 return FALSE;
3156 if (!m_framesBetweenSyncPoints.Decode(strm))
3157 return FALSE;
3158 if (!m_frameToThreadMapping.Decode(strm))
3159 return FALSE;
3160 if (HasOptionalField(e_containedThreads) && !m_containedThreads.Decode(strm))
3161 return FALSE;
3163 return UnknownExtensionsDecode(strm);
3167 void H245_RTPH263VideoRedundancyEncoding::Encode(PASN_Stream & strm) const
3169 PreambleEncode(strm);
3171 m_numberOfThreads.Encode(strm);
3172 m_framesBetweenSyncPoints.Encode(strm);
3173 m_frameToThreadMapping.Encode(strm);
3174 if (HasOptionalField(e_containedThreads))
3175 m_containedThreads.Encode(strm);
3177 UnknownExtensionsEncode(strm);
3181 PObject * H245_RTPH263VideoRedundancyEncoding::Clone() const
3183 #ifndef PASN_LEANANDMEAN
3184 PAssert(IsClass(H245_RTPH263VideoRedundancyEncoding::Class()), PInvalidCast);
3185 #endif
3186 return new H245_RTPH263VideoRedundancyEncoding(*this);
3191 // RTPH263VideoRedundancyFrameMapping
3194 H245_RTPH263VideoRedundancyFrameMapping::H245_RTPH263VideoRedundancyFrameMapping(unsigned tag, PASN_Object::TagClass tagClass)
3195 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
3197 m_threadNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
3201 #ifndef PASN_NOPRINTON
3202 void H245_RTPH263VideoRedundancyFrameMapping::PrintOn(ostream & strm) const
3204 int indent = strm.precision() + 2;
3205 strm << "{\n";
3206 strm << setw(indent+15) << "threadNumber = " << setprecision(indent) << m_threadNumber << '\n';
3207 strm << setw(indent+16) << "frameSequence = " << setprecision(indent) << m_frameSequence << '\n';
3208 strm << setw(indent-1) << setprecision(indent-2) << "}";
3210 #endif
3213 PObject::Comparison H245_RTPH263VideoRedundancyFrameMapping::Compare(const PObject & obj) const
3215 #ifndef PASN_LEANANDMEAN
3216 PAssert(PIsDescendant(&obj, H245_RTPH263VideoRedundancyFrameMapping), PInvalidCast);
3217 #endif
3218 const H245_RTPH263VideoRedundancyFrameMapping & other = (const H245_RTPH263VideoRedundancyFrameMapping &)obj;
3220 Comparison result;
3222 if ((result = m_threadNumber.Compare(other.m_threadNumber)) != EqualTo)
3223 return result;
3224 if ((result = m_frameSequence.Compare(other.m_frameSequence)) != EqualTo)
3225 return result;
3227 return PASN_Sequence::Compare(other);
3231 PINDEX H245_RTPH263VideoRedundancyFrameMapping::GetDataLength() const
3233 PINDEX length = 0;
3234 length += m_threadNumber.GetObjectLength();
3235 length += m_frameSequence.GetObjectLength();
3236 return length;
3240 BOOL H245_RTPH263VideoRedundancyFrameMapping::Decode(PASN_Stream & strm)
3242 if (!PreambleDecode(strm))
3243 return FALSE;
3245 if (!m_threadNumber.Decode(strm))
3246 return FALSE;
3247 if (!m_frameSequence.Decode(strm))
3248 return FALSE;
3250 return UnknownExtensionsDecode(strm);
3254 void H245_RTPH263VideoRedundancyFrameMapping::Encode(PASN_Stream & strm) const
3256 PreambleEncode(strm);
3258 m_threadNumber.Encode(strm);
3259 m_frameSequence.Encode(strm);
3261 UnknownExtensionsEncode(strm);
3265 PObject * H245_RTPH263VideoRedundancyFrameMapping::Clone() const
3267 #ifndef PASN_LEANANDMEAN
3268 PAssert(IsClass(H245_RTPH263VideoRedundancyFrameMapping::Class()), PInvalidCast);
3269 #endif
3270 return new H245_RTPH263VideoRedundancyFrameMapping(*this);
3275 // MultipointCapability
3278 H245_MultipointCapability::H245_MultipointCapability(unsigned tag, PASN_Object::TagClass tagClass)
3279 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
3284 #ifndef PASN_NOPRINTON
3285 void H245_MultipointCapability::PrintOn(ostream & strm) const
3287 int indent = strm.precision() + 2;
3288 strm << "{\n";
3289 strm << setw(indent+22) << "multicastCapability = " << setprecision(indent) << m_multicastCapability << '\n';
3290 strm << setw(indent+25) << "multiUniCastConference = " << setprecision(indent) << m_multiUniCastConference << '\n';
3291 strm << setw(indent+30) << "mediaDistributionCapability = " << setprecision(indent) << m_mediaDistributionCapability << '\n';
3292 strm << setw(indent-1) << setprecision(indent-2) << "}";
3294 #endif
3297 PObject::Comparison H245_MultipointCapability::Compare(const PObject & obj) const
3299 #ifndef PASN_LEANANDMEAN
3300 PAssert(PIsDescendant(&obj, H245_MultipointCapability), PInvalidCast);
3301 #endif
3302 const H245_MultipointCapability & other = (const H245_MultipointCapability &)obj;
3304 Comparison result;
3306 if ((result = m_multicastCapability.Compare(other.m_multicastCapability)) != EqualTo)
3307 return result;
3308 if ((result = m_multiUniCastConference.Compare(other.m_multiUniCastConference)) != EqualTo)
3309 return result;
3310 if ((result = m_mediaDistributionCapability.Compare(other.m_mediaDistributionCapability)) != EqualTo)
3311 return result;
3313 return PASN_Sequence::Compare(other);
3317 PINDEX H245_MultipointCapability::GetDataLength() const
3319 PINDEX length = 0;
3320 length += m_multicastCapability.GetObjectLength();
3321 length += m_multiUniCastConference.GetObjectLength();
3322 length += m_mediaDistributionCapability.GetObjectLength();
3323 return length;
3327 BOOL H245_MultipointCapability::Decode(PASN_Stream & strm)
3329 if (!PreambleDecode(strm))
3330 return FALSE;
3332 if (!m_multicastCapability.Decode(strm))
3333 return FALSE;
3334 if (!m_multiUniCastConference.Decode(strm))
3335 return FALSE;
3336 if (!m_mediaDistributionCapability.Decode(strm))
3337 return FALSE;
3339 return UnknownExtensionsDecode(strm);
3343 void H245_MultipointCapability::Encode(PASN_Stream & strm) const
3345 PreambleEncode(strm);
3347 m_multicastCapability.Encode(strm);
3348 m_multiUniCastConference.Encode(strm);
3349 m_mediaDistributionCapability.Encode(strm);
3351 UnknownExtensionsEncode(strm);
3355 PObject * H245_MultipointCapability::Clone() const
3357 #ifndef PASN_LEANANDMEAN
3358 PAssert(IsClass(H245_MultipointCapability::Class()), PInvalidCast);
3359 #endif
3360 return new H245_MultipointCapability(*this);
3365 // MediaDistributionCapability
3368 H245_MediaDistributionCapability::H245_MediaDistributionCapability(unsigned tag, PASN_Object::TagClass tagClass)
3369 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
3374 #ifndef PASN_NOPRINTON
3375 void H245_MediaDistributionCapability::PrintOn(ostream & strm) const
3377 int indent = strm.precision() + 2;
3378 strm << "{\n";
3379 strm << setw(indent+21) << "centralizedControl = " << setprecision(indent) << m_centralizedControl << '\n';
3380 strm << setw(indent+21) << "distributedControl = " << setprecision(indent) << m_distributedControl << '\n';
3381 strm << setw(indent+19) << "centralizedAudio = " << setprecision(indent) << m_centralizedAudio << '\n';
3382 strm << setw(indent+19) << "distributedAudio = " << setprecision(indent) << m_distributedAudio << '\n';
3383 strm << setw(indent+19) << "centralizedVideo = " << setprecision(indent) << m_centralizedVideo << '\n';
3384 strm << setw(indent+19) << "distributedVideo = " << setprecision(indent) << m_distributedVideo << '\n';
3385 if (HasOptionalField(e_centralizedData))
3386 strm << setw(indent+18) << "centralizedData = " << setprecision(indent) << m_centralizedData << '\n';
3387 if (HasOptionalField(e_distributedData))
3388 strm << setw(indent+18) << "distributedData = " << setprecision(indent) << m_distributedData << '\n';
3389 strm << setw(indent-1) << setprecision(indent-2) << "}";
3391 #endif
3394 PObject::Comparison H245_MediaDistributionCapability::Compare(const PObject & obj) const
3396 #ifndef PASN_LEANANDMEAN
3397 PAssert(PIsDescendant(&obj, H245_MediaDistributionCapability), PInvalidCast);
3398 #endif
3399 const H245_MediaDistributionCapability & other = (const H245_MediaDistributionCapability &)obj;
3401 Comparison result;
3403 if ((result = m_centralizedControl.Compare(other.m_centralizedControl)) != EqualTo)
3404 return result;
3405 if ((result = m_distributedControl.Compare(other.m_distributedControl)) != EqualTo)
3406 return result;
3407 if ((result = m_centralizedAudio.Compare(other.m_centralizedAudio)) != EqualTo)
3408 return result;
3409 if ((result = m_distributedAudio.Compare(other.m_distributedAudio)) != EqualTo)
3410 return result;
3411 if ((result = m_centralizedVideo.Compare(other.m_centralizedVideo)) != EqualTo)
3412 return result;
3413 if ((result = m_distributedVideo.Compare(other.m_distributedVideo)) != EqualTo)
3414 return result;
3415 if ((result = m_centralizedData.Compare(other.m_centralizedData)) != EqualTo)
3416 return result;
3417 if ((result = m_distributedData.Compare(other.m_distributedData)) != EqualTo)
3418 return result;
3420 return PASN_Sequence::Compare(other);
3424 PINDEX H245_MediaDistributionCapability::GetDataLength() const
3426 PINDEX length = 0;
3427 length += m_centralizedControl.GetObjectLength();
3428 length += m_distributedControl.GetObjectLength();
3429 length += m_centralizedAudio.GetObjectLength();
3430 length += m_distributedAudio.GetObjectLength();
3431 length += m_centralizedVideo.GetObjectLength();
3432 length += m_distributedVideo.GetObjectLength();
3433 if (HasOptionalField(e_centralizedData))
3434 length += m_centralizedData.GetObjectLength();
3435 if (HasOptionalField(e_distributedData))
3436 length += m_distributedData.GetObjectLength();
3437 return length;
3441 BOOL H245_MediaDistributionCapability::Decode(PASN_Stream & strm)
3443 if (!PreambleDecode(strm))
3444 return FALSE;
3446 if (!m_centralizedControl.Decode(strm))
3447 return FALSE;
3448 if (!m_distributedControl.Decode(strm))
3449 return FALSE;
3450 if (!m_centralizedAudio.Decode(strm))
3451 return FALSE;
3452 if (!m_distributedAudio.Decode(strm))
3453 return FALSE;
3454 if (!m_centralizedVideo.Decode(strm))
3455 return FALSE;
3456 if (!m_distributedVideo.Decode(strm))
3457 return FALSE;
3458 if (HasOptionalField(e_centralizedData) && !m_centralizedData.Decode(strm))
3459 return FALSE;
3460 if (HasOptionalField(e_distributedData) && !m_distributedData.Decode(strm))
3461 return FALSE;
3463 return UnknownExtensionsDecode(strm);
3467 void H245_MediaDistributionCapability::Encode(PASN_Stream & strm) const
3469 PreambleEncode(strm);
3471 m_centralizedControl.Encode(strm);
3472 m_distributedControl.Encode(strm);
3473 m_centralizedAudio.Encode(strm);
3474 m_distributedAudio.Encode(strm);
3475 m_centralizedVideo.Encode(strm);
3476 m_distributedVideo.Encode(strm);
3477 if (HasOptionalField(e_centralizedData))
3478 m_centralizedData.Encode(strm);
3479 if (HasOptionalField(e_distributedData))
3480 m_distributedData.Encode(strm);
3482 UnknownExtensionsEncode(strm);
3486 PObject * H245_MediaDistributionCapability::Clone() const
3488 #ifndef PASN_LEANANDMEAN
3489 PAssert(IsClass(H245_MediaDistributionCapability::Class()), PInvalidCast);
3490 #endif
3491 return new H245_MediaDistributionCapability(*this);
3496 // ExtendedVideoCapability
3499 H245_ExtendedVideoCapability::H245_ExtendedVideoCapability(unsigned tag, PASN_Object::TagClass tagClass)
3500 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
3505 #ifndef PASN_NOPRINTON
3506 void H245_ExtendedVideoCapability::PrintOn(ostream & strm) const
3508 int indent = strm.precision() + 2;
3509 strm << "{\n";
3510 strm << setw(indent+18) << "videoCapability = " << setprecision(indent) << m_videoCapability << '\n';
3511 if (HasOptionalField(e_videoCapabilityExtension))
3512 strm << setw(indent+27) << "videoCapabilityExtension = " << setprecision(indent) << m_videoCapabilityExtension << '\n';
3513 strm << setw(indent-1) << setprecision(indent-2) << "}";
3515 #endif
3518 PObject::Comparison H245_ExtendedVideoCapability::Compare(const PObject & obj) const
3520 #ifndef PASN_LEANANDMEAN
3521 PAssert(PIsDescendant(&obj, H245_ExtendedVideoCapability), PInvalidCast);
3522 #endif
3523 const H245_ExtendedVideoCapability & other = (const H245_ExtendedVideoCapability &)obj;
3525 Comparison result;
3527 if ((result = m_videoCapability.Compare(other.m_videoCapability)) != EqualTo)
3528 return result;
3529 if ((result = m_videoCapabilityExtension.Compare(other.m_videoCapabilityExtension)) != EqualTo)
3530 return result;
3532 return PASN_Sequence::Compare(other);
3536 PINDEX H245_ExtendedVideoCapability::GetDataLength() const
3538 PINDEX length = 0;
3539 length += m_videoCapability.GetObjectLength();
3540 if (HasOptionalField(e_videoCapabilityExtension))
3541 length += m_videoCapabilityExtension.GetObjectLength();
3542 return length;
3546 BOOL H245_ExtendedVideoCapability::Decode(PASN_Stream & strm)
3548 if (!PreambleDecode(strm))
3549 return FALSE;
3551 if (!m_videoCapability.Decode(strm))
3552 return FALSE;
3553 if (HasOptionalField(e_videoCapabilityExtension) && !m_videoCapabilityExtension.Decode(strm))
3554 return FALSE;
3556 return UnknownExtensionsDecode(strm);
3560 void H245_ExtendedVideoCapability::Encode(PASN_Stream & strm) const
3562 PreambleEncode(strm);
3564 m_videoCapability.Encode(strm);
3565 if (HasOptionalField(e_videoCapabilityExtension))
3566 m_videoCapabilityExtension.Encode(strm);
3568 UnknownExtensionsEncode(strm);
3572 PObject * H245_ExtendedVideoCapability::Clone() const
3574 #ifndef PASN_LEANANDMEAN
3575 PAssert(IsClass(H245_ExtendedVideoCapability::Class()), PInvalidCast);
3576 #endif
3577 return new H245_ExtendedVideoCapability(*this);
3582 // EnhancementLayerInfo
3585 H245_EnhancementLayerInfo::H245_EnhancementLayerInfo(unsigned tag, PASN_Object::TagClass tagClass)
3586 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
3588 m_snrEnhancement.SetConstraints(PASN_Object::FixedConstraint, 1, 14);
3589 m_spatialEnhancement.SetConstraints(PASN_Object::FixedConstraint, 1, 14);
3590 m_bPictureEnhancement.SetConstraints(PASN_Object::FixedConstraint, 1, 14);
3594 #ifndef PASN_NOPRINTON
3595 void H245_EnhancementLayerInfo::PrintOn(ostream & strm) const
3597 int indent = strm.precision() + 2;
3598 strm << "{\n";
3599 strm << setw(indent+25) << "baseBitRateConstrained = " << setprecision(indent) << m_baseBitRateConstrained << '\n';
3600 if (HasOptionalField(e_snrEnhancement))
3601 strm << setw(indent+17) << "snrEnhancement = " << setprecision(indent) << m_snrEnhancement << '\n';
3602 if (HasOptionalField(e_spatialEnhancement))
3603 strm << setw(indent+21) << "spatialEnhancement = " << setprecision(indent) << m_spatialEnhancement << '\n';
3604 if (HasOptionalField(e_bPictureEnhancement))
3605 strm << setw(indent+22) << "bPictureEnhancement = " << setprecision(indent) << m_bPictureEnhancement << '\n';
3606 strm << setw(indent-1) << setprecision(indent-2) << "}";
3608 #endif
3611 PObject::Comparison H245_EnhancementLayerInfo::Compare(const PObject & obj) const
3613 #ifndef PASN_LEANANDMEAN
3614 PAssert(PIsDescendant(&obj, H245_EnhancementLayerInfo), PInvalidCast);
3615 #endif
3616 const H245_EnhancementLayerInfo & other = (const H245_EnhancementLayerInfo &)obj;
3618 Comparison result;
3620 if ((result = m_baseBitRateConstrained.Compare(other.m_baseBitRateConstrained)) != EqualTo)
3621 return result;
3622 if ((result = m_snrEnhancement.Compare(other.m_snrEnhancement)) != EqualTo)
3623 return result;
3624 if ((result = m_spatialEnhancement.Compare(other.m_spatialEnhancement)) != EqualTo)
3625 return result;
3626 if ((result = m_bPictureEnhancement.Compare(other.m_bPictureEnhancement)) != EqualTo)
3627 return result;
3629 return PASN_Sequence::Compare(other);
3633 PINDEX H245_EnhancementLayerInfo::GetDataLength() const
3635 PINDEX length = 0;
3636 length += m_baseBitRateConstrained.GetObjectLength();
3637 if (HasOptionalField(e_snrEnhancement))
3638 length += m_snrEnhancement.GetObjectLength();
3639 if (HasOptionalField(e_spatialEnhancement))
3640 length += m_spatialEnhancement.GetObjectLength();
3641 if (HasOptionalField(e_bPictureEnhancement))
3642 length += m_bPictureEnhancement.GetObjectLength();
3643 return length;
3647 BOOL H245_EnhancementLayerInfo::Decode(PASN_Stream & strm)
3649 if (!PreambleDecode(strm))
3650 return FALSE;
3652 if (!m_baseBitRateConstrained.Decode(strm))
3653 return FALSE;
3654 if (HasOptionalField(e_snrEnhancement) && !m_snrEnhancement.Decode(strm))
3655 return FALSE;
3656 if (HasOptionalField(e_spatialEnhancement) && !m_spatialEnhancement.Decode(strm))
3657 return FALSE;
3658 if (HasOptionalField(e_bPictureEnhancement) && !m_bPictureEnhancement.Decode(strm))
3659 return FALSE;
3661 return UnknownExtensionsDecode(strm);
3665 void H245_EnhancementLayerInfo::Encode(PASN_Stream & strm) const
3667 PreambleEncode(strm);
3669 m_baseBitRateConstrained.Encode(strm);
3670 if (HasOptionalField(e_snrEnhancement))
3671 m_snrEnhancement.Encode(strm);
3672 if (HasOptionalField(e_spatialEnhancement))
3673 m_spatialEnhancement.Encode(strm);
3674 if (HasOptionalField(e_bPictureEnhancement))
3675 m_bPictureEnhancement.Encode(strm);
3677 UnknownExtensionsEncode(strm);
3681 PObject * H245_EnhancementLayerInfo::Clone() const
3683 #ifndef PASN_LEANANDMEAN
3684 PAssert(IsClass(H245_EnhancementLayerInfo::Class()), PInvalidCast);
3685 #endif
3686 return new H245_EnhancementLayerInfo(*this);
3691 // H263ModeComboFlags
3694 H245_H263ModeComboFlags::H245_H263ModeComboFlags(unsigned tag, PASN_Object::TagClass tagClass)
3695 : PASN_Sequence(tag, tagClass, 0, TRUE, 2)
3697 IncludeOptionalField(e_enhancedReferencePicSelect);
3698 IncludeOptionalField(e_h263Version3Options);
3702 #ifndef PASN_NOPRINTON
3703 void H245_H263ModeComboFlags::PrintOn(ostream & strm) const
3705 int indent = strm.precision() + 2;
3706 strm << "{\n";
3707 strm << setw(indent+21) << "unrestrictedVector = " << setprecision(indent) << m_unrestrictedVector << '\n';
3708 strm << setw(indent+19) << "arithmeticCoding = " << setprecision(indent) << m_arithmeticCoding << '\n';
3709 strm << setw(indent+21) << "advancedPrediction = " << setprecision(indent) << m_advancedPrediction << '\n';
3710 strm << setw(indent+11) << "pbFrames = " << setprecision(indent) << m_pbFrames << '\n';
3711 strm << setw(indent+26) << "advancedIntraCodingMode = " << setprecision(indent) << m_advancedIntraCodingMode << '\n';
3712 strm << setw(indent+23) << "deblockingFilterMode = " << setprecision(indent) << m_deblockingFilterMode << '\n';
3713 strm << setw(indent+25) << "unlimitedMotionVectors = " << setprecision(indent) << m_unlimitedMotionVectors << '\n';
3714 strm << setw(indent+24) << "slicesInOrder_NonRect = " << setprecision(indent) << m_slicesInOrder_NonRect << '\n';
3715 strm << setw(indent+21) << "slicesInOrder_Rect = " << setprecision(indent) << m_slicesInOrder_Rect << '\n';
3716 strm << setw(indent+24) << "slicesNoOrder_NonRect = " << setprecision(indent) << m_slicesNoOrder_NonRect << '\n';
3717 strm << setw(indent+21) << "slicesNoOrder_Rect = " << setprecision(indent) << m_slicesNoOrder_Rect << '\n';
3718 strm << setw(indent+23) << "improvedPBFramesMode = " << setprecision(indent) << m_improvedPBFramesMode << '\n';
3719 strm << setw(indent+21) << "referencePicSelect = " << setprecision(indent) << m_referencePicSelect << '\n';
3720 strm << setw(indent+31) << "dynamicPictureResizingByFour = " << setprecision(indent) << m_dynamicPictureResizingByFour << '\n';
3721 strm << setw(indent+37) << "dynamicPictureResizingSixteenthPel = " << setprecision(indent) << m_dynamicPictureResizingSixteenthPel << '\n';
3722 strm << setw(indent+24) << "dynamicWarpingHalfPel = " << setprecision(indent) << m_dynamicWarpingHalfPel << '\n';
3723 strm << setw(indent+29) << "dynamicWarpingSixteenthPel = " << setprecision(indent) << m_dynamicWarpingSixteenthPel << '\n';
3724 strm << setw(indent+26) << "reducedResolutionUpdate = " << setprecision(indent) << m_reducedResolutionUpdate << '\n';
3725 strm << setw(indent+29) << "independentSegmentDecoding = " << setprecision(indent) << m_independentSegmentDecoding << '\n';
3726 strm << setw(indent+24) << "alternateInterVLCMode = " << setprecision(indent) << m_alternateInterVLCMode << '\n';
3727 strm << setw(indent+27) << "modifiedQuantizationMode = " << setprecision(indent) << m_modifiedQuantizationMode << '\n';
3728 if (HasOptionalField(e_enhancedReferencePicSelect))
3729 strm << setw(indent+29) << "enhancedReferencePicSelect = " << setprecision(indent) << m_enhancedReferencePicSelect << '\n';
3730 if (HasOptionalField(e_h263Version3Options))
3731 strm << setw(indent+22) << "h263Version3Options = " << setprecision(indent) << m_h263Version3Options << '\n';
3732 strm << setw(indent-1) << setprecision(indent-2) << "}";
3734 #endif
3737 PObject::Comparison H245_H263ModeComboFlags::Compare(const PObject & obj) const
3739 #ifndef PASN_LEANANDMEAN
3740 PAssert(PIsDescendant(&obj, H245_H263ModeComboFlags), PInvalidCast);
3741 #endif
3742 const H245_H263ModeComboFlags & other = (const H245_H263ModeComboFlags &)obj;
3744 Comparison result;
3746 if ((result = m_unrestrictedVector.Compare(other.m_unrestrictedVector)) != EqualTo)
3747 return result;
3748 if ((result = m_arithmeticCoding.Compare(other.m_arithmeticCoding)) != EqualTo)
3749 return result;
3750 if ((result = m_advancedPrediction.Compare(other.m_advancedPrediction)) != EqualTo)
3751 return result;
3752 if ((result = m_pbFrames.Compare(other.m_pbFrames)) != EqualTo)
3753 return result;
3754 if ((result = m_advancedIntraCodingMode.Compare(other.m_advancedIntraCodingMode)) != EqualTo)
3755 return result;
3756 if ((result = m_deblockingFilterMode.Compare(other.m_deblockingFilterMode)) != EqualTo)
3757 return result;
3758 if ((result = m_unlimitedMotionVectors.Compare(other.m_unlimitedMotionVectors)) != EqualTo)
3759 return result;
3760 if ((result = m_slicesInOrder_NonRect.Compare(other.m_slicesInOrder_NonRect)) != EqualTo)
3761 return result;
3762 if ((result = m_slicesInOrder_Rect.Compare(other.m_slicesInOrder_Rect)) != EqualTo)
3763 return result;
3764 if ((result = m_slicesNoOrder_NonRect.Compare(other.m_slicesNoOrder_NonRect)) != EqualTo)
3765 return result;
3766 if ((result = m_slicesNoOrder_Rect.Compare(other.m_slicesNoOrder_Rect)) != EqualTo)
3767 return result;
3768 if ((result = m_improvedPBFramesMode.Compare(other.m_improvedPBFramesMode)) != EqualTo)
3769 return result;
3770 if ((result = m_referencePicSelect.Compare(other.m_referencePicSelect)) != EqualTo)
3771 return result;
3772 if ((result = m_dynamicPictureResizingByFour.Compare(other.m_dynamicPictureResizingByFour)) != EqualTo)
3773 return result;
3774 if ((result = m_dynamicPictureResizingSixteenthPel.Compare(other.m_dynamicPictureResizingSixteenthPel)) != EqualTo)
3775 return result;
3776 if ((result = m_dynamicWarpingHalfPel.Compare(other.m_dynamicWarpingHalfPel)) != EqualTo)
3777 return result;
3778 if ((result = m_dynamicWarpingSixteenthPel.Compare(other.m_dynamicWarpingSixteenthPel)) != EqualTo)
3779 return result;
3780 if ((result = m_reducedResolutionUpdate.Compare(other.m_reducedResolutionUpdate)) != EqualTo)
3781 return result;
3782 if ((result = m_independentSegmentDecoding.Compare(other.m_independentSegmentDecoding)) != EqualTo)
3783 return result;
3784 if ((result = m_alternateInterVLCMode.Compare(other.m_alternateInterVLCMode)) != EqualTo)
3785 return result;
3786 if ((result = m_modifiedQuantizationMode.Compare(other.m_modifiedQuantizationMode)) != EqualTo)
3787 return result;
3789 return PASN_Sequence::Compare(other);
3793 PINDEX H245_H263ModeComboFlags::GetDataLength() const
3795 PINDEX length = 0;
3796 length += m_unrestrictedVector.GetObjectLength();
3797 length += m_arithmeticCoding.GetObjectLength();
3798 length += m_advancedPrediction.GetObjectLength();
3799 length += m_pbFrames.GetObjectLength();
3800 length += m_advancedIntraCodingMode.GetObjectLength();
3801 length += m_deblockingFilterMode.GetObjectLength();
3802 length += m_unlimitedMotionVectors.GetObjectLength();
3803 length += m_slicesInOrder_NonRect.GetObjectLength();
3804 length += m_slicesInOrder_Rect.GetObjectLength();
3805 length += m_slicesNoOrder_NonRect.GetObjectLength();
3806 length += m_slicesNoOrder_Rect.GetObjectLength();
3807 length += m_improvedPBFramesMode.GetObjectLength();
3808 length += m_referencePicSelect.GetObjectLength();
3809 length += m_dynamicPictureResizingByFour.GetObjectLength();
3810 length += m_dynamicPictureResizingSixteenthPel.GetObjectLength();
3811 length += m_dynamicWarpingHalfPel.GetObjectLength();
3812 length += m_dynamicWarpingSixteenthPel.GetObjectLength();
3813 length += m_reducedResolutionUpdate.GetObjectLength();
3814 length += m_independentSegmentDecoding.GetObjectLength();
3815 length += m_alternateInterVLCMode.GetObjectLength();
3816 length += m_modifiedQuantizationMode.GetObjectLength();
3817 return length;
3821 BOOL H245_H263ModeComboFlags::Decode(PASN_Stream & strm)
3823 if (!PreambleDecode(strm))
3824 return FALSE;
3826 if (!m_unrestrictedVector.Decode(strm))
3827 return FALSE;
3828 if (!m_arithmeticCoding.Decode(strm))
3829 return FALSE;
3830 if (!m_advancedPrediction.Decode(strm))
3831 return FALSE;
3832 if (!m_pbFrames.Decode(strm))
3833 return FALSE;
3834 if (!m_advancedIntraCodingMode.Decode(strm))
3835 return FALSE;
3836 if (!m_deblockingFilterMode.Decode(strm))
3837 return FALSE;
3838 if (!m_unlimitedMotionVectors.Decode(strm))
3839 return FALSE;
3840 if (!m_slicesInOrder_NonRect.Decode(strm))
3841 return FALSE;
3842 if (!m_slicesInOrder_Rect.Decode(strm))
3843 return FALSE;
3844 if (!m_slicesNoOrder_NonRect.Decode(strm))
3845 return FALSE;
3846 if (!m_slicesNoOrder_Rect.Decode(strm))
3847 return FALSE;
3848 if (!m_improvedPBFramesMode.Decode(strm))
3849 return FALSE;
3850 if (!m_referencePicSelect.Decode(strm))
3851 return FALSE;
3852 if (!m_dynamicPictureResizingByFour.Decode(strm))
3853 return FALSE;
3854 if (!m_dynamicPictureResizingSixteenthPel.Decode(strm))
3855 return FALSE;
3856 if (!m_dynamicWarpingHalfPel.Decode(strm))
3857 return FALSE;
3858 if (!m_dynamicWarpingSixteenthPel.Decode(strm))
3859 return FALSE;
3860 if (!m_reducedResolutionUpdate.Decode(strm))
3861 return FALSE;
3862 if (!m_independentSegmentDecoding.Decode(strm))
3863 return FALSE;
3864 if (!m_alternateInterVLCMode.Decode(strm))
3865 return FALSE;
3866 if (!m_modifiedQuantizationMode.Decode(strm))
3867 return FALSE;
3868 if (!KnownExtensionDecode(strm, e_enhancedReferencePicSelect, m_enhancedReferencePicSelect))
3869 return FALSE;
3870 if (!KnownExtensionDecode(strm, e_h263Version3Options, m_h263Version3Options))
3871 return FALSE;
3873 return UnknownExtensionsDecode(strm);
3877 void H245_H263ModeComboFlags::Encode(PASN_Stream & strm) const
3879 PreambleEncode(strm);
3881 m_unrestrictedVector.Encode(strm);
3882 m_arithmeticCoding.Encode(strm);
3883 m_advancedPrediction.Encode(strm);
3884 m_pbFrames.Encode(strm);
3885 m_advancedIntraCodingMode.Encode(strm);
3886 m_deblockingFilterMode.Encode(strm);
3887 m_unlimitedMotionVectors.Encode(strm);
3888 m_slicesInOrder_NonRect.Encode(strm);
3889 m_slicesInOrder_Rect.Encode(strm);
3890 m_slicesNoOrder_NonRect.Encode(strm);
3891 m_slicesNoOrder_Rect.Encode(strm);
3892 m_improvedPBFramesMode.Encode(strm);
3893 m_referencePicSelect.Encode(strm);
3894 m_dynamicPictureResizingByFour.Encode(strm);
3895 m_dynamicPictureResizingSixteenthPel.Encode(strm);
3896 m_dynamicWarpingHalfPel.Encode(strm);
3897 m_dynamicWarpingSixteenthPel.Encode(strm);
3898 m_reducedResolutionUpdate.Encode(strm);
3899 m_independentSegmentDecoding.Encode(strm);
3900 m_alternateInterVLCMode.Encode(strm);
3901 m_modifiedQuantizationMode.Encode(strm);
3902 KnownExtensionEncode(strm, e_enhancedReferencePicSelect, m_enhancedReferencePicSelect);
3903 KnownExtensionEncode(strm, e_h263Version3Options, m_h263Version3Options);
3905 UnknownExtensionsEncode(strm);
3909 PObject * H245_H263ModeComboFlags::Clone() const
3911 #ifndef PASN_LEANANDMEAN
3912 PAssert(IsClass(H245_H263ModeComboFlags::Class()), PInvalidCast);
3913 #endif
3914 return new H245_H263ModeComboFlags(*this);
3919 // G7231AnnexCCapability
3922 H245_G7231AnnexCCapability::H245_G7231AnnexCCapability(unsigned tag, PASN_Object::TagClass tagClass)
3923 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
3925 m_maxAl_sduAudioFrames.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
3929 #ifndef PASN_NOPRINTON
3930 void H245_G7231AnnexCCapability::PrintOn(ostream & strm) const
3932 int indent = strm.precision() + 2;
3933 strm << "{\n";
3934 strm << setw(indent+23) << "maxAl_sduAudioFrames = " << setprecision(indent) << m_maxAl_sduAudioFrames << '\n';
3935 strm << setw(indent+21) << "silenceSuppression = " << setprecision(indent) << m_silenceSuppression << '\n';
3936 if (HasOptionalField(e_g723AnnexCAudioMode))
3937 strm << setw(indent+22) << "g723AnnexCAudioMode = " << setprecision(indent) << m_g723AnnexCAudioMode << '\n';
3938 strm << setw(indent-1) << setprecision(indent-2) << "}";
3940 #endif
3943 PObject::Comparison H245_G7231AnnexCCapability::Compare(const PObject & obj) const
3945 #ifndef PASN_LEANANDMEAN
3946 PAssert(PIsDescendant(&obj, H245_G7231AnnexCCapability), PInvalidCast);
3947 #endif
3948 const H245_G7231AnnexCCapability & other = (const H245_G7231AnnexCCapability &)obj;
3950 Comparison result;
3952 if ((result = m_maxAl_sduAudioFrames.Compare(other.m_maxAl_sduAudioFrames)) != EqualTo)
3953 return result;
3954 if ((result = m_silenceSuppression.Compare(other.m_silenceSuppression)) != EqualTo)
3955 return result;
3956 if ((result = m_g723AnnexCAudioMode.Compare(other.m_g723AnnexCAudioMode)) != EqualTo)
3957 return result;
3959 return PASN_Sequence::Compare(other);
3963 PINDEX H245_G7231AnnexCCapability::GetDataLength() const
3965 PINDEX length = 0;
3966 length += m_maxAl_sduAudioFrames.GetObjectLength();
3967 length += m_silenceSuppression.GetObjectLength();
3968 if (HasOptionalField(e_g723AnnexCAudioMode))
3969 length += m_g723AnnexCAudioMode.GetObjectLength();
3970 return length;
3974 BOOL H245_G7231AnnexCCapability::Decode(PASN_Stream & strm)
3976 if (!PreambleDecode(strm))
3977 return FALSE;
3979 if (!m_maxAl_sduAudioFrames.Decode(strm))
3980 return FALSE;
3981 if (!m_silenceSuppression.Decode(strm))
3982 return FALSE;
3983 if (HasOptionalField(e_g723AnnexCAudioMode) && !m_g723AnnexCAudioMode.Decode(strm))
3984 return FALSE;
3986 return UnknownExtensionsDecode(strm);
3990 void H245_G7231AnnexCCapability::Encode(PASN_Stream & strm) const
3992 PreambleEncode(strm);
3994 m_maxAl_sduAudioFrames.Encode(strm);
3995 m_silenceSuppression.Encode(strm);
3996 if (HasOptionalField(e_g723AnnexCAudioMode))
3997 m_g723AnnexCAudioMode.Encode(strm);
3999 UnknownExtensionsEncode(strm);
4003 PObject * H245_G7231AnnexCCapability::Clone() const
4005 #ifndef PASN_LEANANDMEAN
4006 PAssert(IsClass(H245_G7231AnnexCCapability::Class()), PInvalidCast);
4007 #endif
4008 return new H245_G7231AnnexCCapability(*this);
4013 // DataApplicationCapability
4016 H245_DataApplicationCapability::H245_DataApplicationCapability(unsigned tag, PASN_Object::TagClass tagClass)
4017 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
4019 m_maxBitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
4023 #ifndef PASN_NOPRINTON
4024 void H245_DataApplicationCapability::PrintOn(ostream & strm) const
4026 int indent = strm.precision() + 2;
4027 strm << "{\n";
4028 strm << setw(indent+14) << "application = " << setprecision(indent) << m_application << '\n';
4029 strm << setw(indent+13) << "maxBitRate = " << setprecision(indent) << m_maxBitRate << '\n';
4030 strm << setw(indent-1) << setprecision(indent-2) << "}";
4032 #endif
4035 PObject::Comparison H245_DataApplicationCapability::Compare(const PObject & obj) const
4037 #ifndef PASN_LEANANDMEAN
4038 PAssert(PIsDescendant(&obj, H245_DataApplicationCapability), PInvalidCast);
4039 #endif
4040 const H245_DataApplicationCapability & other = (const H245_DataApplicationCapability &)obj;
4042 Comparison result;
4044 if ((result = m_application.Compare(other.m_application)) != EqualTo)
4045 return result;
4046 if ((result = m_maxBitRate.Compare(other.m_maxBitRate)) != EqualTo)
4047 return result;
4049 return PASN_Sequence::Compare(other);
4053 PINDEX H245_DataApplicationCapability::GetDataLength() const
4055 PINDEX length = 0;
4056 length += m_application.GetObjectLength();
4057 length += m_maxBitRate.GetObjectLength();
4058 return length;
4062 BOOL H245_DataApplicationCapability::Decode(PASN_Stream & strm)
4064 if (!PreambleDecode(strm))
4065 return FALSE;
4067 if (!m_application.Decode(strm))
4068 return FALSE;
4069 if (!m_maxBitRate.Decode(strm))
4070 return FALSE;
4072 return UnknownExtensionsDecode(strm);
4076 void H245_DataApplicationCapability::Encode(PASN_Stream & strm) const
4078 PreambleEncode(strm);
4080 m_application.Encode(strm);
4081 m_maxBitRate.Encode(strm);
4083 UnknownExtensionsEncode(strm);
4087 PObject * H245_DataApplicationCapability::Clone() const
4089 #ifndef PASN_LEANANDMEAN
4090 PAssert(IsClass(H245_DataApplicationCapability::Class()), PInvalidCast);
4091 #endif
4092 return new H245_DataApplicationCapability(*this);
4097 // T38FaxUdpOptions
4100 H245_T38FaxUdpOptions::H245_T38FaxUdpOptions(unsigned tag, PASN_Object::TagClass tagClass)
4101 : PASN_Sequence(tag, tagClass, 2, FALSE, 0)
4106 #ifndef PASN_NOPRINTON
4107 void H245_T38FaxUdpOptions::PrintOn(ostream & strm) const
4109 int indent = strm.precision() + 2;
4110 strm << "{\n";
4111 if (HasOptionalField(e_t38FaxMaxBuffer))
4112 strm << setw(indent+18) << "t38FaxMaxBuffer = " << setprecision(indent) << m_t38FaxMaxBuffer << '\n';
4113 if (HasOptionalField(e_t38FaxMaxDatagram))
4114 strm << setw(indent+20) << "t38FaxMaxDatagram = " << setprecision(indent) << m_t38FaxMaxDatagram << '\n';
4115 strm << setw(indent+14) << "t38FaxUdpEC = " << setprecision(indent) << m_t38FaxUdpEC << '\n';
4116 strm << setw(indent-1) << setprecision(indent-2) << "}";
4118 #endif
4121 PObject::Comparison H245_T38FaxUdpOptions::Compare(const PObject & obj) const
4123 #ifndef PASN_LEANANDMEAN
4124 PAssert(PIsDescendant(&obj, H245_T38FaxUdpOptions), PInvalidCast);
4125 #endif
4126 const H245_T38FaxUdpOptions & other = (const H245_T38FaxUdpOptions &)obj;
4128 Comparison result;
4130 if ((result = m_t38FaxMaxBuffer.Compare(other.m_t38FaxMaxBuffer)) != EqualTo)
4131 return result;
4132 if ((result = m_t38FaxMaxDatagram.Compare(other.m_t38FaxMaxDatagram)) != EqualTo)
4133 return result;
4134 if ((result = m_t38FaxUdpEC.Compare(other.m_t38FaxUdpEC)) != EqualTo)
4135 return result;
4137 return PASN_Sequence::Compare(other);
4141 PINDEX H245_T38FaxUdpOptions::GetDataLength() const
4143 PINDEX length = 0;
4144 if (HasOptionalField(e_t38FaxMaxBuffer))
4145 length += m_t38FaxMaxBuffer.GetObjectLength();
4146 if (HasOptionalField(e_t38FaxMaxDatagram))
4147 length += m_t38FaxMaxDatagram.GetObjectLength();
4148 length += m_t38FaxUdpEC.GetObjectLength();
4149 return length;
4153 BOOL H245_T38FaxUdpOptions::Decode(PASN_Stream & strm)
4155 if (!PreambleDecode(strm))
4156 return FALSE;
4158 if (HasOptionalField(e_t38FaxMaxBuffer) && !m_t38FaxMaxBuffer.Decode(strm))
4159 return FALSE;
4160 if (HasOptionalField(e_t38FaxMaxDatagram) && !m_t38FaxMaxDatagram.Decode(strm))
4161 return FALSE;
4162 if (!m_t38FaxUdpEC.Decode(strm))
4163 return FALSE;
4165 return UnknownExtensionsDecode(strm);
4169 void H245_T38FaxUdpOptions::Encode(PASN_Stream & strm) const
4171 PreambleEncode(strm);
4173 if (HasOptionalField(e_t38FaxMaxBuffer))
4174 m_t38FaxMaxBuffer.Encode(strm);
4175 if (HasOptionalField(e_t38FaxMaxDatagram))
4176 m_t38FaxMaxDatagram.Encode(strm);
4177 m_t38FaxUdpEC.Encode(strm);
4179 UnknownExtensionsEncode(strm);
4183 PObject * H245_T38FaxUdpOptions::Clone() const
4185 #ifndef PASN_LEANANDMEAN
4186 PAssert(IsClass(H245_T38FaxUdpOptions::Class()), PInvalidCast);
4187 #endif
4188 return new H245_T38FaxUdpOptions(*this);
4193 // AuthenticationCapability
4196 H245_AuthenticationCapability::H245_AuthenticationCapability(unsigned tag, PASN_Object::TagClass tagClass)
4197 : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
4202 #ifndef PASN_NOPRINTON
4203 void H245_AuthenticationCapability::PrintOn(ostream & strm) const
4205 int indent = strm.precision() + 2;
4206 strm << "{\n";
4207 if (HasOptionalField(e_nonStandard))
4208 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
4209 if (HasOptionalField(e_antiSpamAlgorithm))
4210 strm << setw(indent+20) << "antiSpamAlgorithm = " << setprecision(indent) << m_antiSpamAlgorithm << '\n';
4211 strm << setw(indent-1) << setprecision(indent-2) << "}";
4213 #endif
4216 PObject::Comparison H245_AuthenticationCapability::Compare(const PObject & obj) const
4218 #ifndef PASN_LEANANDMEAN
4219 PAssert(PIsDescendant(&obj, H245_AuthenticationCapability), PInvalidCast);
4220 #endif
4221 const H245_AuthenticationCapability & other = (const H245_AuthenticationCapability &)obj;
4223 Comparison result;
4225 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
4226 return result;
4228 return PASN_Sequence::Compare(other);
4232 PINDEX H245_AuthenticationCapability::GetDataLength() const
4234 PINDEX length = 0;
4235 if (HasOptionalField(e_nonStandard))
4236 length += m_nonStandard.GetObjectLength();
4237 return length;
4241 BOOL H245_AuthenticationCapability::Decode(PASN_Stream & strm)
4243 if (!PreambleDecode(strm))
4244 return FALSE;
4246 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
4247 return FALSE;
4248 if (!KnownExtensionDecode(strm, e_antiSpamAlgorithm, m_antiSpamAlgorithm))
4249 return FALSE;
4251 return UnknownExtensionsDecode(strm);
4255 void H245_AuthenticationCapability::Encode(PASN_Stream & strm) const
4257 PreambleEncode(strm);
4259 if (HasOptionalField(e_nonStandard))
4260 m_nonStandard.Encode(strm);
4261 KnownExtensionEncode(strm, e_antiSpamAlgorithm, m_antiSpamAlgorithm);
4263 UnknownExtensionsEncode(strm);
4267 PObject * H245_AuthenticationCapability::Clone() const
4269 #ifndef PASN_LEANANDMEAN
4270 PAssert(IsClass(H245_AuthenticationCapability::Class()), PInvalidCast);
4271 #endif
4272 return new H245_AuthenticationCapability(*this);
4277 // IntegrityCapability
4280 H245_IntegrityCapability::H245_IntegrityCapability(unsigned tag, PASN_Object::TagClass tagClass)
4281 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
4286 #ifndef PASN_NOPRINTON
4287 void H245_IntegrityCapability::PrintOn(ostream & strm) const
4289 int indent = strm.precision() + 2;
4290 strm << "{\n";
4291 if (HasOptionalField(e_nonStandard))
4292 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
4293 strm << setw(indent-1) << setprecision(indent-2) << "}";
4295 #endif
4298 PObject::Comparison H245_IntegrityCapability::Compare(const PObject & obj) const
4300 #ifndef PASN_LEANANDMEAN
4301 PAssert(PIsDescendant(&obj, H245_IntegrityCapability), PInvalidCast);
4302 #endif
4303 const H245_IntegrityCapability & other = (const H245_IntegrityCapability &)obj;
4305 Comparison result;
4307 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
4308 return result;
4310 return PASN_Sequence::Compare(other);
4314 PINDEX H245_IntegrityCapability::GetDataLength() const
4316 PINDEX length = 0;
4317 if (HasOptionalField(e_nonStandard))
4318 length += m_nonStandard.GetObjectLength();
4319 return length;
4323 BOOL H245_IntegrityCapability::Decode(PASN_Stream & strm)
4325 if (!PreambleDecode(strm))
4326 return FALSE;
4328 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
4329 return FALSE;
4331 return UnknownExtensionsDecode(strm);
4335 void H245_IntegrityCapability::Encode(PASN_Stream & strm) const
4337 PreambleEncode(strm);
4339 if (HasOptionalField(e_nonStandard))
4340 m_nonStandard.Encode(strm);
4342 UnknownExtensionsEncode(strm);
4346 PObject * H245_IntegrityCapability::Clone() const
4348 #ifndef PASN_LEANANDMEAN
4349 PAssert(IsClass(H245_IntegrityCapability::Class()), PInvalidCast);
4350 #endif
4351 return new H245_IntegrityCapability(*this);
4356 // ConferenceCapability
4359 H245_ConferenceCapability::H245_ConferenceCapability(unsigned tag, PASN_Object::TagClass tagClass)
4360 : PASN_Sequence(tag, tagClass, 1, TRUE, 2)
4362 IncludeOptionalField(e_videoIndicateMixingCapability);
4366 #ifndef PASN_NOPRINTON
4367 void H245_ConferenceCapability::PrintOn(ostream & strm) const
4369 int indent = strm.precision() + 2;
4370 strm << "{\n";
4371 if (HasOptionalField(e_nonStandardData))
4372 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
4373 strm << setw(indent+25) << "chairControlCapability = " << setprecision(indent) << m_chairControlCapability << '\n';
4374 if (HasOptionalField(e_videoIndicateMixingCapability))
4375 strm << setw(indent+32) << "videoIndicateMixingCapability = " << setprecision(indent) << m_videoIndicateMixingCapability << '\n';
4376 if (HasOptionalField(e_multipointVisualizationCapability))
4377 strm << setw(indent+36) << "multipointVisualizationCapability = " << setprecision(indent) << m_multipointVisualizationCapability << '\n';
4378 strm << setw(indent-1) << setprecision(indent-2) << "}";
4380 #endif
4383 PObject::Comparison H245_ConferenceCapability::Compare(const PObject & obj) const
4385 #ifndef PASN_LEANANDMEAN
4386 PAssert(PIsDescendant(&obj, H245_ConferenceCapability), PInvalidCast);
4387 #endif
4388 const H245_ConferenceCapability & other = (const H245_ConferenceCapability &)obj;
4390 Comparison result;
4392 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
4393 return result;
4394 if ((result = m_chairControlCapability.Compare(other.m_chairControlCapability)) != EqualTo)
4395 return result;
4397 return PASN_Sequence::Compare(other);
4401 PINDEX H245_ConferenceCapability::GetDataLength() const
4403 PINDEX length = 0;
4404 if (HasOptionalField(e_nonStandardData))
4405 length += m_nonStandardData.GetObjectLength();
4406 length += m_chairControlCapability.GetObjectLength();
4407 return length;
4411 BOOL H245_ConferenceCapability::Decode(PASN_Stream & strm)
4413 if (!PreambleDecode(strm))
4414 return FALSE;
4416 if (HasOptionalField(e_nonStandardData) && !m_nonStandardData.Decode(strm))
4417 return FALSE;
4418 if (!m_chairControlCapability.Decode(strm))
4419 return FALSE;
4420 if (!KnownExtensionDecode(strm, e_videoIndicateMixingCapability, m_videoIndicateMixingCapability))
4421 return FALSE;
4422 if (!KnownExtensionDecode(strm, e_multipointVisualizationCapability, m_multipointVisualizationCapability))
4423 return FALSE;
4425 return UnknownExtensionsDecode(strm);
4429 void H245_ConferenceCapability::Encode(PASN_Stream & strm) const
4431 PreambleEncode(strm);
4433 if (HasOptionalField(e_nonStandardData))
4434 m_nonStandardData.Encode(strm);
4435 m_chairControlCapability.Encode(strm);
4436 KnownExtensionEncode(strm, e_videoIndicateMixingCapability, m_videoIndicateMixingCapability);
4437 KnownExtensionEncode(strm, e_multipointVisualizationCapability, m_multipointVisualizationCapability);
4439 UnknownExtensionsEncode(strm);
4443 PObject * H245_ConferenceCapability::Clone() const
4445 #ifndef PASN_LEANANDMEAN
4446 PAssert(IsClass(H245_ConferenceCapability::Class()), PInvalidCast);
4447 #endif
4448 return new H245_ConferenceCapability(*this);
4453 // GenericCapability
4456 H245_GenericCapability::H245_GenericCapability(unsigned tag, PASN_Object::TagClass tagClass)
4457 : PASN_Sequence(tag, tagClass, 5, TRUE, 0)
4459 m_maxBitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
4463 #ifndef PASN_NOPRINTON
4464 void H245_GenericCapability::PrintOn(ostream & strm) const
4466 int indent = strm.precision() + 2;
4467 strm << "{\n";
4468 strm << setw(indent+23) << "capabilityIdentifier = " << setprecision(indent) << m_capabilityIdentifier << '\n';
4469 if (HasOptionalField(e_maxBitRate))
4470 strm << setw(indent+13) << "maxBitRate = " << setprecision(indent) << m_maxBitRate << '\n';
4471 if (HasOptionalField(e_collapsing))
4472 strm << setw(indent+13) << "collapsing = " << setprecision(indent) << m_collapsing << '\n';
4473 if (HasOptionalField(e_nonCollapsing))
4474 strm << setw(indent+16) << "nonCollapsing = " << setprecision(indent) << m_nonCollapsing << '\n';
4475 if (HasOptionalField(e_nonCollapsingRaw))
4476 strm << setw(indent+19) << "nonCollapsingRaw = " << setprecision(indent) << m_nonCollapsingRaw << '\n';
4477 if (HasOptionalField(e_transport))
4478 strm << setw(indent+12) << "transport = " << setprecision(indent) << m_transport << '\n';
4479 strm << setw(indent-1) << setprecision(indent-2) << "}";
4481 #endif
4484 PObject::Comparison H245_GenericCapability::Compare(const PObject & obj) const
4486 #ifndef PASN_LEANANDMEAN
4487 PAssert(PIsDescendant(&obj, H245_GenericCapability), PInvalidCast);
4488 #endif
4489 const H245_GenericCapability & other = (const H245_GenericCapability &)obj;
4491 Comparison result;
4493 if ((result = m_capabilityIdentifier.Compare(other.m_capabilityIdentifier)) != EqualTo)
4494 return result;
4495 if ((result = m_maxBitRate.Compare(other.m_maxBitRate)) != EqualTo)
4496 return result;
4497 if ((result = m_collapsing.Compare(other.m_collapsing)) != EqualTo)
4498 return result;
4499 if ((result = m_nonCollapsing.Compare(other.m_nonCollapsing)) != EqualTo)
4500 return result;
4501 if ((result = m_nonCollapsingRaw.Compare(other.m_nonCollapsingRaw)) != EqualTo)
4502 return result;
4503 if ((result = m_transport.Compare(other.m_transport)) != EqualTo)
4504 return result;
4506 return PASN_Sequence::Compare(other);
4510 PINDEX H245_GenericCapability::GetDataLength() const
4512 PINDEX length = 0;
4513 length += m_capabilityIdentifier.GetObjectLength();
4514 if (HasOptionalField(e_maxBitRate))
4515 length += m_maxBitRate.GetObjectLength();
4516 if (HasOptionalField(e_collapsing))
4517 length += m_collapsing.GetObjectLength();
4518 if (HasOptionalField(e_nonCollapsing))
4519 length += m_nonCollapsing.GetObjectLength();
4520 if (HasOptionalField(e_nonCollapsingRaw))
4521 length += m_nonCollapsingRaw.GetObjectLength();
4522 if (HasOptionalField(e_transport))
4523 length += m_transport.GetObjectLength();
4524 return length;
4528 BOOL H245_GenericCapability::Decode(PASN_Stream & strm)
4530 if (!PreambleDecode(strm))
4531 return FALSE;
4533 if (!m_capabilityIdentifier.Decode(strm))
4534 return FALSE;
4535 if (HasOptionalField(e_maxBitRate) && !m_maxBitRate.Decode(strm))
4536 return FALSE;
4537 if (HasOptionalField(e_collapsing) && !m_collapsing.Decode(strm))
4538 return FALSE;
4539 if (HasOptionalField(e_nonCollapsing) && !m_nonCollapsing.Decode(strm))
4540 return FALSE;
4541 if (HasOptionalField(e_nonCollapsingRaw) && !m_nonCollapsingRaw.Decode(strm))
4542 return FALSE;
4543 if (HasOptionalField(e_transport) && !m_transport.Decode(strm))
4544 return FALSE;
4546 return UnknownExtensionsDecode(strm);
4550 void H245_GenericCapability::Encode(PASN_Stream & strm) const
4552 PreambleEncode(strm);
4554 m_capabilityIdentifier.Encode(strm);
4555 if (HasOptionalField(e_maxBitRate))
4556 m_maxBitRate.Encode(strm);
4557 if (HasOptionalField(e_collapsing))
4558 m_collapsing.Encode(strm);
4559 if (HasOptionalField(e_nonCollapsing))
4560 m_nonCollapsing.Encode(strm);
4561 if (HasOptionalField(e_nonCollapsingRaw))
4562 m_nonCollapsingRaw.Encode(strm);
4563 if (HasOptionalField(e_transport))
4564 m_transport.Encode(strm);
4566 UnknownExtensionsEncode(strm);
4570 PObject * H245_GenericCapability::Clone() const
4572 #ifndef PASN_LEANANDMEAN
4573 PAssert(IsClass(H245_GenericCapability::Class()), PInvalidCast);
4574 #endif
4575 return new H245_GenericCapability(*this);
4580 // GenericParameter
4583 H245_GenericParameter::H245_GenericParameter(unsigned tag, PASN_Object::TagClass tagClass)
4584 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
4589 #ifndef PASN_NOPRINTON
4590 void H245_GenericParameter::PrintOn(ostream & strm) const
4592 int indent = strm.precision() + 2;
4593 strm << "{\n";
4594 strm << setw(indent+22) << "parameterIdentifier = " << setprecision(indent) << m_parameterIdentifier << '\n';
4595 strm << setw(indent+17) << "parameterValue = " << setprecision(indent) << m_parameterValue << '\n';
4596 if (HasOptionalField(e_supersedes))
4597 strm << setw(indent+13) << "supersedes = " << setprecision(indent) << m_supersedes << '\n';
4598 strm << setw(indent-1) << setprecision(indent-2) << "}";
4600 #endif
4603 PObject::Comparison H245_GenericParameter::Compare(const PObject & obj) const
4605 #ifndef PASN_LEANANDMEAN
4606 PAssert(PIsDescendant(&obj, H245_GenericParameter), PInvalidCast);
4607 #endif
4608 const H245_GenericParameter & other = (const H245_GenericParameter &)obj;
4610 Comparison result;
4612 if ((result = m_parameterIdentifier.Compare(other.m_parameterIdentifier)) != EqualTo)
4613 return result;
4614 if ((result = m_parameterValue.Compare(other.m_parameterValue)) != EqualTo)
4615 return result;
4616 if ((result = m_supersedes.Compare(other.m_supersedes)) != EqualTo)
4617 return result;
4619 return PASN_Sequence::Compare(other);
4623 PINDEX H245_GenericParameter::GetDataLength() const
4625 PINDEX length = 0;
4626 length += m_parameterIdentifier.GetObjectLength();
4627 length += m_parameterValue.GetObjectLength();
4628 if (HasOptionalField(e_supersedes))
4629 length += m_supersedes.GetObjectLength();
4630 return length;
4634 BOOL H245_GenericParameter::Decode(PASN_Stream & strm)
4636 if (!PreambleDecode(strm))
4637 return FALSE;
4639 if (!m_parameterIdentifier.Decode(strm))
4640 return FALSE;
4641 if (!m_parameterValue.Decode(strm))
4642 return FALSE;
4643 if (HasOptionalField(e_supersedes) && !m_supersedes.Decode(strm))
4644 return FALSE;
4646 return UnknownExtensionsDecode(strm);
4650 void H245_GenericParameter::Encode(PASN_Stream & strm) const
4652 PreambleEncode(strm);
4654 m_parameterIdentifier.Encode(strm);
4655 m_parameterValue.Encode(strm);
4656 if (HasOptionalField(e_supersedes))
4657 m_supersedes.Encode(strm);
4659 UnknownExtensionsEncode(strm);
4663 PObject * H245_GenericParameter::Clone() const
4665 #ifndef PASN_LEANANDMEAN
4666 PAssert(IsClass(H245_GenericParameter::Class()), PInvalidCast);
4667 #endif
4668 return new H245_GenericParameter(*this);
4673 // MultiplexedStreamCapability
4676 H245_MultiplexedStreamCapability::H245_MultiplexedStreamCapability(unsigned tag, PASN_Object::TagClass tagClass)
4677 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
4679 m_capabilityOnMuxStream.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
4683 #ifndef PASN_NOPRINTON
4684 void H245_MultiplexedStreamCapability::PrintOn(ostream & strm) const
4686 int indent = strm.precision() + 2;
4687 strm << "{\n";
4688 strm << setw(indent+18) << "multiplexFormat = " << setprecision(indent) << m_multiplexFormat << '\n';
4689 strm << setw(indent+21) << "controlOnMuxStream = " << setprecision(indent) << m_controlOnMuxStream << '\n';
4690 if (HasOptionalField(e_capabilityOnMuxStream))
4691 strm << setw(indent+24) << "capabilityOnMuxStream = " << setprecision(indent) << m_capabilityOnMuxStream << '\n';
4692 strm << setw(indent-1) << setprecision(indent-2) << "}";
4694 #endif
4697 PObject::Comparison H245_MultiplexedStreamCapability::Compare(const PObject & obj) const
4699 #ifndef PASN_LEANANDMEAN
4700 PAssert(PIsDescendant(&obj, H245_MultiplexedStreamCapability), PInvalidCast);
4701 #endif
4702 const H245_MultiplexedStreamCapability & other = (const H245_MultiplexedStreamCapability &)obj;
4704 Comparison result;
4706 if ((result = m_multiplexFormat.Compare(other.m_multiplexFormat)) != EqualTo)
4707 return result;
4708 if ((result = m_controlOnMuxStream.Compare(other.m_controlOnMuxStream)) != EqualTo)
4709 return result;
4710 if ((result = m_capabilityOnMuxStream.Compare(other.m_capabilityOnMuxStream)) != EqualTo)
4711 return result;
4713 return PASN_Sequence::Compare(other);
4717 PINDEX H245_MultiplexedStreamCapability::GetDataLength() const
4719 PINDEX length = 0;
4720 length += m_multiplexFormat.GetObjectLength();
4721 length += m_controlOnMuxStream.GetObjectLength();
4722 if (HasOptionalField(e_capabilityOnMuxStream))
4723 length += m_capabilityOnMuxStream.GetObjectLength();
4724 return length;
4728 BOOL H245_MultiplexedStreamCapability::Decode(PASN_Stream & strm)
4730 if (!PreambleDecode(strm))
4731 return FALSE;
4733 if (!m_multiplexFormat.Decode(strm))
4734 return FALSE;
4735 if (!m_controlOnMuxStream.Decode(strm))
4736 return FALSE;
4737 if (HasOptionalField(e_capabilityOnMuxStream) && !m_capabilityOnMuxStream.Decode(strm))
4738 return FALSE;
4740 return UnknownExtensionsDecode(strm);
4744 void H245_MultiplexedStreamCapability::Encode(PASN_Stream & strm) const
4746 PreambleEncode(strm);
4748 m_multiplexFormat.Encode(strm);
4749 m_controlOnMuxStream.Encode(strm);
4750 if (HasOptionalField(e_capabilityOnMuxStream))
4751 m_capabilityOnMuxStream.Encode(strm);
4753 UnknownExtensionsEncode(strm);
4757 PObject * H245_MultiplexedStreamCapability::Clone() const
4759 #ifndef PASN_LEANANDMEAN
4760 PAssert(IsClass(H245_MultiplexedStreamCapability::Class()), PInvalidCast);
4761 #endif
4762 return new H245_MultiplexedStreamCapability(*this);
4767 // MultiplePayloadStreamCapability
4770 H245_MultiplePayloadStreamCapability::H245_MultiplePayloadStreamCapability(unsigned tag, PASN_Object::TagClass tagClass)
4771 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
4773 m_capabilities.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
4777 #ifndef PASN_NOPRINTON
4778 void H245_MultiplePayloadStreamCapability::PrintOn(ostream & strm) const
4780 int indent = strm.precision() + 2;
4781 strm << "{\n";
4782 strm << setw(indent+15) << "capabilities = " << setprecision(indent) << m_capabilities << '\n';
4783 strm << setw(indent-1) << setprecision(indent-2) << "}";
4785 #endif
4788 PObject::Comparison H245_MultiplePayloadStreamCapability::Compare(const PObject & obj) const
4790 #ifndef PASN_LEANANDMEAN
4791 PAssert(PIsDescendant(&obj, H245_MultiplePayloadStreamCapability), PInvalidCast);
4792 #endif
4793 const H245_MultiplePayloadStreamCapability & other = (const H245_MultiplePayloadStreamCapability &)obj;
4795 Comparison result;
4797 if ((result = m_capabilities.Compare(other.m_capabilities)) != EqualTo)
4798 return result;
4800 return PASN_Sequence::Compare(other);
4804 PINDEX H245_MultiplePayloadStreamCapability::GetDataLength() const
4806 PINDEX length = 0;
4807 length += m_capabilities.GetObjectLength();
4808 return length;
4812 BOOL H245_MultiplePayloadStreamCapability::Decode(PASN_Stream & strm)
4814 if (!PreambleDecode(strm))
4815 return FALSE;
4817 if (!m_capabilities.Decode(strm))
4818 return FALSE;
4820 return UnknownExtensionsDecode(strm);
4824 void H245_MultiplePayloadStreamCapability::Encode(PASN_Stream & strm) const
4826 PreambleEncode(strm);
4828 m_capabilities.Encode(strm);
4830 UnknownExtensionsEncode(strm);
4834 PObject * H245_MultiplePayloadStreamCapability::Clone() const
4836 #ifndef PASN_LEANANDMEAN
4837 PAssert(IsClass(H245_MultiplePayloadStreamCapability::Class()), PInvalidCast);
4838 #endif
4839 return new H245_MultiplePayloadStreamCapability(*this);
4844 // FECCapability
4847 H245_FECCapability::H245_FECCapability(unsigned tag, PASN_Object::TagClass tagClass)
4848 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
4853 #ifndef PASN_NOPRINTON
4854 void H245_FECCapability::PrintOn(ostream & strm) const
4856 int indent = strm.precision() + 2;
4857 strm << "{\n";
4858 strm << setw(indent+22) << "protectedCapability = " << setprecision(indent) << m_protectedCapability << '\n';
4859 if (HasOptionalField(e_fecScheme))
4860 strm << setw(indent+12) << "fecScheme = " << setprecision(indent) << m_fecScheme << '\n';
4861 if (HasOptionalField(e_rfc2733Format))
4862 strm << setw(indent+16) << "rfc2733Format = " << setprecision(indent) << m_rfc2733Format << '\n';
4863 strm << setw(indent-1) << setprecision(indent-2) << "}";
4865 #endif
4868 PObject::Comparison H245_FECCapability::Compare(const PObject & obj) const
4870 #ifndef PASN_LEANANDMEAN
4871 PAssert(PIsDescendant(&obj, H245_FECCapability), PInvalidCast);
4872 #endif
4873 const H245_FECCapability & other = (const H245_FECCapability &)obj;
4875 Comparison result;
4877 if ((result = m_protectedCapability.Compare(other.m_protectedCapability)) != EqualTo)
4878 return result;
4879 if ((result = m_fecScheme.Compare(other.m_fecScheme)) != EqualTo)
4880 return result;
4881 if ((result = m_rfc2733Format.Compare(other.m_rfc2733Format)) != EqualTo)
4882 return result;
4884 return PASN_Sequence::Compare(other);
4888 PINDEX H245_FECCapability::GetDataLength() const
4890 PINDEX length = 0;
4891 length += m_protectedCapability.GetObjectLength();
4892 if (HasOptionalField(e_fecScheme))
4893 length += m_fecScheme.GetObjectLength();
4894 if (HasOptionalField(e_rfc2733Format))
4895 length += m_rfc2733Format.GetObjectLength();
4896 return length;
4900 BOOL H245_FECCapability::Decode(PASN_Stream & strm)
4902 if (!PreambleDecode(strm))
4903 return FALSE;
4905 if (!m_protectedCapability.Decode(strm))
4906 return FALSE;
4907 if (HasOptionalField(e_fecScheme) && !m_fecScheme.Decode(strm))
4908 return FALSE;
4909 if (HasOptionalField(e_rfc2733Format) && !m_rfc2733Format.Decode(strm))
4910 return FALSE;
4912 return UnknownExtensionsDecode(strm);
4916 void H245_FECCapability::Encode(PASN_Stream & strm) const
4918 PreambleEncode(strm);
4920 m_protectedCapability.Encode(strm);
4921 if (HasOptionalField(e_fecScheme))
4922 m_fecScheme.Encode(strm);
4923 if (HasOptionalField(e_rfc2733Format))
4924 m_rfc2733Format.Encode(strm);
4926 UnknownExtensionsEncode(strm);
4930 PObject * H245_FECCapability::Clone() const
4932 #ifndef PASN_LEANANDMEAN
4933 PAssert(IsClass(H245_FECCapability::Class()), PInvalidCast);
4934 #endif
4935 return new H245_FECCapability(*this);
4940 // NetworkAccessParameters
4943 H245_NetworkAccessParameters::H245_NetworkAccessParameters(unsigned tag, PASN_Object::TagClass tagClass)
4944 : PASN_Sequence(tag, tagClass, 2, TRUE, 1)
4946 m_externalReference.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
4950 #ifndef PASN_NOPRINTON
4951 void H245_NetworkAccessParameters::PrintOn(ostream & strm) const
4953 int indent = strm.precision() + 2;
4954 strm << "{\n";
4955 if (HasOptionalField(e_distribution))
4956 strm << setw(indent+15) << "distribution = " << setprecision(indent) << m_distribution << '\n';
4957 strm << setw(indent+17) << "networkAddress = " << setprecision(indent) << m_networkAddress << '\n';
4958 strm << setw(indent+22) << "associateConference = " << setprecision(indent) << m_associateConference << '\n';
4959 if (HasOptionalField(e_externalReference))
4960 strm << setw(indent+20) << "externalReference = " << setprecision(indent) << m_externalReference << '\n';
4961 if (HasOptionalField(e_t120SetupProcedure))
4962 strm << setw(indent+21) << "t120SetupProcedure = " << setprecision(indent) << m_t120SetupProcedure << '\n';
4963 strm << setw(indent-1) << setprecision(indent-2) << "}";
4965 #endif
4968 PObject::Comparison H245_NetworkAccessParameters::Compare(const PObject & obj) const
4970 #ifndef PASN_LEANANDMEAN
4971 PAssert(PIsDescendant(&obj, H245_NetworkAccessParameters), PInvalidCast);
4972 #endif
4973 const H245_NetworkAccessParameters & other = (const H245_NetworkAccessParameters &)obj;
4975 Comparison result;
4977 if ((result = m_distribution.Compare(other.m_distribution)) != EqualTo)
4978 return result;
4979 if ((result = m_networkAddress.Compare(other.m_networkAddress)) != EqualTo)
4980 return result;
4981 if ((result = m_associateConference.Compare(other.m_associateConference)) != EqualTo)
4982 return result;
4983 if ((result = m_externalReference.Compare(other.m_externalReference)) != EqualTo)
4984 return result;
4986 return PASN_Sequence::Compare(other);
4990 PINDEX H245_NetworkAccessParameters::GetDataLength() const
4992 PINDEX length = 0;
4993 if (HasOptionalField(e_distribution))
4994 length += m_distribution.GetObjectLength();
4995 length += m_networkAddress.GetObjectLength();
4996 length += m_associateConference.GetObjectLength();
4997 if (HasOptionalField(e_externalReference))
4998 length += m_externalReference.GetObjectLength();
4999 return length;
5003 BOOL H245_NetworkAccessParameters::Decode(PASN_Stream & strm)
5005 if (!PreambleDecode(strm))
5006 return FALSE;
5008 if (HasOptionalField(e_distribution) && !m_distribution.Decode(strm))
5009 return FALSE;
5010 if (!m_networkAddress.Decode(strm))
5011 return FALSE;
5012 if (!m_associateConference.Decode(strm))
5013 return FALSE;
5014 if (HasOptionalField(e_externalReference) && !m_externalReference.Decode(strm))
5015 return FALSE;
5016 if (!KnownExtensionDecode(strm, e_t120SetupProcedure, m_t120SetupProcedure))
5017 return FALSE;
5019 return UnknownExtensionsDecode(strm);
5023 void H245_NetworkAccessParameters::Encode(PASN_Stream & strm) const
5025 PreambleEncode(strm);
5027 if (HasOptionalField(e_distribution))
5028 m_distribution.Encode(strm);
5029 m_networkAddress.Encode(strm);
5030 m_associateConference.Encode(strm);
5031 if (HasOptionalField(e_externalReference))
5032 m_externalReference.Encode(strm);
5033 KnownExtensionEncode(strm, e_t120SetupProcedure, m_t120SetupProcedure);
5035 UnknownExtensionsEncode(strm);
5039 PObject * H245_NetworkAccessParameters::Clone() const
5041 #ifndef PASN_LEANANDMEAN
5042 PAssert(IsClass(H245_NetworkAccessParameters::Class()), PInvalidCast);
5043 #endif
5044 return new H245_NetworkAccessParameters(*this);
5049 // Q2931Address
5052 H245_Q2931Address::H245_Q2931Address(unsigned tag, PASN_Object::TagClass tagClass)
5053 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
5055 m_subaddress.SetConstraints(PASN_Object::FixedConstraint, 1, 20);
5059 #ifndef PASN_NOPRINTON
5060 void H245_Q2931Address::PrintOn(ostream & strm) const
5062 int indent = strm.precision() + 2;
5063 strm << "{\n";
5064 strm << setw(indent+10) << "address = " << setprecision(indent) << m_address << '\n';
5065 if (HasOptionalField(e_subaddress))
5066 strm << setw(indent+13) << "subaddress = " << setprecision(indent) << m_subaddress << '\n';
5067 strm << setw(indent-1) << setprecision(indent-2) << "}";
5069 #endif
5072 PObject::Comparison H245_Q2931Address::Compare(const PObject & obj) const
5074 #ifndef PASN_LEANANDMEAN
5075 PAssert(PIsDescendant(&obj, H245_Q2931Address), PInvalidCast);
5076 #endif
5077 const H245_Q2931Address & other = (const H245_Q2931Address &)obj;
5079 Comparison result;
5081 if ((result = m_address.Compare(other.m_address)) != EqualTo)
5082 return result;
5083 if ((result = m_subaddress.Compare(other.m_subaddress)) != EqualTo)
5084 return result;
5086 return PASN_Sequence::Compare(other);
5090 PINDEX H245_Q2931Address::GetDataLength() const
5092 PINDEX length = 0;
5093 length += m_address.GetObjectLength();
5094 if (HasOptionalField(e_subaddress))
5095 length += m_subaddress.GetObjectLength();
5096 return length;
5100 BOOL H245_Q2931Address::Decode(PASN_Stream & strm)
5102 if (!PreambleDecode(strm))
5103 return FALSE;
5105 if (!m_address.Decode(strm))
5106 return FALSE;
5107 if (HasOptionalField(e_subaddress) && !m_subaddress.Decode(strm))
5108 return FALSE;
5110 return UnknownExtensionsDecode(strm);
5114 void H245_Q2931Address::Encode(PASN_Stream & strm) const
5116 PreambleEncode(strm);
5118 m_address.Encode(strm);
5119 if (HasOptionalField(e_subaddress))
5120 m_subaddress.Encode(strm);
5122 UnknownExtensionsEncode(strm);
5126 PObject * H245_Q2931Address::Clone() const
5128 #ifndef PASN_LEANANDMEAN
5129 PAssert(IsClass(H245_Q2931Address::Class()), PInvalidCast);
5130 #endif
5131 return new H245_Q2931Address(*this);
5136 // H223LogicalChannelParameters
5139 H245_H223LogicalChannelParameters::H245_H223LogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
5140 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
5145 #ifndef PASN_NOPRINTON
5146 void H245_H223LogicalChannelParameters::PrintOn(ostream & strm) const
5148 int indent = strm.precision() + 2;
5149 strm << "{\n";
5150 strm << setw(indent+22) << "adaptationLayerType = " << setprecision(indent) << m_adaptationLayerType << '\n';
5151 strm << setw(indent+18) << "segmentableFlag = " << setprecision(indent) << m_segmentableFlag << '\n';
5152 strm << setw(indent-1) << setprecision(indent-2) << "}";
5154 #endif
5157 PObject::Comparison H245_H223LogicalChannelParameters::Compare(const PObject & obj) const
5159 #ifndef PASN_LEANANDMEAN
5160 PAssert(PIsDescendant(&obj, H245_H223LogicalChannelParameters), PInvalidCast);
5161 #endif
5162 const H245_H223LogicalChannelParameters & other = (const H245_H223LogicalChannelParameters &)obj;
5164 Comparison result;
5166 if ((result = m_adaptationLayerType.Compare(other.m_adaptationLayerType)) != EqualTo)
5167 return result;
5168 if ((result = m_segmentableFlag.Compare(other.m_segmentableFlag)) != EqualTo)
5169 return result;
5171 return PASN_Sequence::Compare(other);
5175 PINDEX H245_H223LogicalChannelParameters::GetDataLength() const
5177 PINDEX length = 0;
5178 length += m_adaptationLayerType.GetObjectLength();
5179 length += m_segmentableFlag.GetObjectLength();
5180 return length;
5184 BOOL H245_H223LogicalChannelParameters::Decode(PASN_Stream & strm)
5186 if (!PreambleDecode(strm))
5187 return FALSE;
5189 if (!m_adaptationLayerType.Decode(strm))
5190 return FALSE;
5191 if (!m_segmentableFlag.Decode(strm))
5192 return FALSE;
5194 return UnknownExtensionsDecode(strm);
5198 void H245_H223LogicalChannelParameters::Encode(PASN_Stream & strm) const
5200 PreambleEncode(strm);
5202 m_adaptationLayerType.Encode(strm);
5203 m_segmentableFlag.Encode(strm);
5205 UnknownExtensionsEncode(strm);
5209 PObject * H245_H223LogicalChannelParameters::Clone() const
5211 #ifndef PASN_LEANANDMEAN
5212 PAssert(IsClass(H245_H223LogicalChannelParameters::Class()), PInvalidCast);
5213 #endif
5214 return new H245_H223LogicalChannelParameters(*this);
5219 // H223AL1MParameters
5222 H245_H223AL1MParameters::H245_H223AL1MParameters(unsigned tag, PASN_Object::TagClass tagClass)
5223 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
5225 m_rcpcCodeRate.SetConstraints(PASN_Object::FixedConstraint, 8, 32);
5226 m_rsCodeCorrection.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
5230 #ifndef PASN_NOPRINTON
5231 void H245_H223AL1MParameters::PrintOn(ostream & strm) const
5233 int indent = strm.precision() + 2;
5234 strm << "{\n";
5235 strm << setw(indent+15) << "transferMode = " << setprecision(indent) << m_transferMode << '\n';
5236 strm << setw(indent+12) << "headerFEC = " << setprecision(indent) << m_headerFEC << '\n';
5237 strm << setw(indent+12) << "crcLength = " << setprecision(indent) << m_crcLength << '\n';
5238 strm << setw(indent+15) << "rcpcCodeRate = " << setprecision(indent) << m_rcpcCodeRate << '\n';
5239 strm << setw(indent+10) << "arqType = " << setprecision(indent) << m_arqType << '\n';
5240 strm << setw(indent+20) << "alpduInterleaving = " << setprecision(indent) << m_alpduInterleaving << '\n';
5241 strm << setw(indent+17) << "alsduSplitting = " << setprecision(indent) << m_alsduSplitting << '\n';
5242 if (HasOptionalField(e_rsCodeCorrection))
5243 strm << setw(indent+19) << "rsCodeCorrection = " << setprecision(indent) << m_rsCodeCorrection << '\n';
5244 strm << setw(indent-1) << setprecision(indent-2) << "}";
5246 #endif
5249 PObject::Comparison H245_H223AL1MParameters::Compare(const PObject & obj) const
5251 #ifndef PASN_LEANANDMEAN
5252 PAssert(PIsDescendant(&obj, H245_H223AL1MParameters), PInvalidCast);
5253 #endif
5254 const H245_H223AL1MParameters & other = (const H245_H223AL1MParameters &)obj;
5256 Comparison result;
5258 if ((result = m_transferMode.Compare(other.m_transferMode)) != EqualTo)
5259 return result;
5260 if ((result = m_headerFEC.Compare(other.m_headerFEC)) != EqualTo)
5261 return result;
5262 if ((result = m_crcLength.Compare(other.m_crcLength)) != EqualTo)
5263 return result;
5264 if ((result = m_rcpcCodeRate.Compare(other.m_rcpcCodeRate)) != EqualTo)
5265 return result;
5266 if ((result = m_arqType.Compare(other.m_arqType)) != EqualTo)
5267 return result;
5268 if ((result = m_alpduInterleaving.Compare(other.m_alpduInterleaving)) != EqualTo)
5269 return result;
5270 if ((result = m_alsduSplitting.Compare(other.m_alsduSplitting)) != EqualTo)
5271 return result;
5273 return PASN_Sequence::Compare(other);
5277 PINDEX H245_H223AL1MParameters::GetDataLength() const
5279 PINDEX length = 0;
5280 length += m_transferMode.GetObjectLength();
5281 length += m_headerFEC.GetObjectLength();
5282 length += m_crcLength.GetObjectLength();
5283 length += m_rcpcCodeRate.GetObjectLength();
5284 length += m_arqType.GetObjectLength();
5285 length += m_alpduInterleaving.GetObjectLength();
5286 length += m_alsduSplitting.GetObjectLength();
5287 return length;
5291 BOOL H245_H223AL1MParameters::Decode(PASN_Stream & strm)
5293 if (!PreambleDecode(strm))
5294 return FALSE;
5296 if (!m_transferMode.Decode(strm))
5297 return FALSE;
5298 if (!m_headerFEC.Decode(strm))
5299 return FALSE;
5300 if (!m_crcLength.Decode(strm))
5301 return FALSE;
5302 if (!m_rcpcCodeRate.Decode(strm))
5303 return FALSE;
5304 if (!m_arqType.Decode(strm))
5305 return FALSE;
5306 if (!m_alpduInterleaving.Decode(strm))
5307 return FALSE;
5308 if (!m_alsduSplitting.Decode(strm))
5309 return FALSE;
5310 if (!KnownExtensionDecode(strm, e_rsCodeCorrection, m_rsCodeCorrection))
5311 return FALSE;
5313 return UnknownExtensionsDecode(strm);
5317 void H245_H223AL1MParameters::Encode(PASN_Stream & strm) const
5319 PreambleEncode(strm);
5321 m_transferMode.Encode(strm);
5322 m_headerFEC.Encode(strm);
5323 m_crcLength.Encode(strm);
5324 m_rcpcCodeRate.Encode(strm);
5325 m_arqType.Encode(strm);
5326 m_alpduInterleaving.Encode(strm);
5327 m_alsduSplitting.Encode(strm);
5328 KnownExtensionEncode(strm, e_rsCodeCorrection, m_rsCodeCorrection);
5330 UnknownExtensionsEncode(strm);
5334 PObject * H245_H223AL1MParameters::Clone() const
5336 #ifndef PASN_LEANANDMEAN
5337 PAssert(IsClass(H245_H223AL1MParameters::Class()), PInvalidCast);
5338 #endif
5339 return new H245_H223AL1MParameters(*this);
5344 // H223AL2MParameters
5347 H245_H223AL2MParameters::H245_H223AL2MParameters(unsigned tag, PASN_Object::TagClass tagClass)
5348 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
5353 #ifndef PASN_NOPRINTON
5354 void H245_H223AL2MParameters::PrintOn(ostream & strm) const
5356 int indent = strm.precision() + 2;
5357 strm << "{\n";
5358 strm << setw(indent+12) << "headerFEC = " << setprecision(indent) << m_headerFEC << '\n';
5359 strm << setw(indent+20) << "alpduInterleaving = " << setprecision(indent) << m_alpduInterleaving << '\n';
5360 strm << setw(indent-1) << setprecision(indent-2) << "}";
5362 #endif
5365 PObject::Comparison H245_H223AL2MParameters::Compare(const PObject & obj) const
5367 #ifndef PASN_LEANANDMEAN
5368 PAssert(PIsDescendant(&obj, H245_H223AL2MParameters), PInvalidCast);
5369 #endif
5370 const H245_H223AL2MParameters & other = (const H245_H223AL2MParameters &)obj;
5372 Comparison result;
5374 if ((result = m_headerFEC.Compare(other.m_headerFEC)) != EqualTo)
5375 return result;
5376 if ((result = m_alpduInterleaving.Compare(other.m_alpduInterleaving)) != EqualTo)
5377 return result;
5379 return PASN_Sequence::Compare(other);
5383 PINDEX H245_H223AL2MParameters::GetDataLength() const
5385 PINDEX length = 0;
5386 length += m_headerFEC.GetObjectLength();
5387 length += m_alpduInterleaving.GetObjectLength();
5388 return length;
5392 BOOL H245_H223AL2MParameters::Decode(PASN_Stream & strm)
5394 if (!PreambleDecode(strm))
5395 return FALSE;
5397 if (!m_headerFEC.Decode(strm))
5398 return FALSE;
5399 if (!m_alpduInterleaving.Decode(strm))
5400 return FALSE;
5402 return UnknownExtensionsDecode(strm);
5406 void H245_H223AL2MParameters::Encode(PASN_Stream & strm) const
5408 PreambleEncode(strm);
5410 m_headerFEC.Encode(strm);
5411 m_alpduInterleaving.Encode(strm);
5413 UnknownExtensionsEncode(strm);
5417 PObject * H245_H223AL2MParameters::Clone() const
5419 #ifndef PASN_LEANANDMEAN
5420 PAssert(IsClass(H245_H223AL2MParameters::Class()), PInvalidCast);
5421 #endif
5422 return new H245_H223AL2MParameters(*this);
5427 // H223AL3MParameters
5430 H245_H223AL3MParameters::H245_H223AL3MParameters(unsigned tag, PASN_Object::TagClass tagClass)
5431 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
5433 m_rcpcCodeRate.SetConstraints(PASN_Object::FixedConstraint, 8, 32);
5434 m_rsCodeCorrection.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
5438 #ifndef PASN_NOPRINTON
5439 void H245_H223AL3MParameters::PrintOn(ostream & strm) const
5441 int indent = strm.precision() + 2;
5442 strm << "{\n";
5443 strm << setw(indent+15) << "headerFormat = " << setprecision(indent) << m_headerFormat << '\n';
5444 strm << setw(indent+12) << "crcLength = " << setprecision(indent) << m_crcLength << '\n';
5445 strm << setw(indent+15) << "rcpcCodeRate = " << setprecision(indent) << m_rcpcCodeRate << '\n';
5446 strm << setw(indent+10) << "arqType = " << setprecision(indent) << m_arqType << '\n';
5447 strm << setw(indent+20) << "alpduInterleaving = " << setprecision(indent) << m_alpduInterleaving << '\n';
5448 if (HasOptionalField(e_rsCodeCorrection))
5449 strm << setw(indent+19) << "rsCodeCorrection = " << setprecision(indent) << m_rsCodeCorrection << '\n';
5450 strm << setw(indent-1) << setprecision(indent-2) << "}";
5452 #endif
5455 PObject::Comparison H245_H223AL3MParameters::Compare(const PObject & obj) const
5457 #ifndef PASN_LEANANDMEAN
5458 PAssert(PIsDescendant(&obj, H245_H223AL3MParameters), PInvalidCast);
5459 #endif
5460 const H245_H223AL3MParameters & other = (const H245_H223AL3MParameters &)obj;
5462 Comparison result;
5464 if ((result = m_headerFormat.Compare(other.m_headerFormat)) != EqualTo)
5465 return result;
5466 if ((result = m_crcLength.Compare(other.m_crcLength)) != EqualTo)
5467 return result;
5468 if ((result = m_rcpcCodeRate.Compare(other.m_rcpcCodeRate)) != EqualTo)
5469 return result;
5470 if ((result = m_arqType.Compare(other.m_arqType)) != EqualTo)
5471 return result;
5472 if ((result = m_alpduInterleaving.Compare(other.m_alpduInterleaving)) != EqualTo)
5473 return result;
5475 return PASN_Sequence::Compare(other);
5479 PINDEX H245_H223AL3MParameters::GetDataLength() const
5481 PINDEX length = 0;
5482 length += m_headerFormat.GetObjectLength();
5483 length += m_crcLength.GetObjectLength();
5484 length += m_rcpcCodeRate.GetObjectLength();
5485 length += m_arqType.GetObjectLength();
5486 length += m_alpduInterleaving.GetObjectLength();
5487 return length;
5491 BOOL H245_H223AL3MParameters::Decode(PASN_Stream & strm)
5493 if (!PreambleDecode(strm))
5494 return FALSE;
5496 if (!m_headerFormat.Decode(strm))
5497 return FALSE;
5498 if (!m_crcLength.Decode(strm))
5499 return FALSE;
5500 if (!m_rcpcCodeRate.Decode(strm))
5501 return FALSE;
5502 if (!m_arqType.Decode(strm))
5503 return FALSE;
5504 if (!m_alpduInterleaving.Decode(strm))
5505 return FALSE;
5506 if (!KnownExtensionDecode(strm, e_rsCodeCorrection, m_rsCodeCorrection))
5507 return FALSE;
5509 return UnknownExtensionsDecode(strm);
5513 void H245_H223AL3MParameters::Encode(PASN_Stream & strm) const
5515 PreambleEncode(strm);
5517 m_headerFormat.Encode(strm);
5518 m_crcLength.Encode(strm);
5519 m_rcpcCodeRate.Encode(strm);
5520 m_arqType.Encode(strm);
5521 m_alpduInterleaving.Encode(strm);
5522 KnownExtensionEncode(strm, e_rsCodeCorrection, m_rsCodeCorrection);
5524 UnknownExtensionsEncode(strm);
5528 PObject * H245_H223AL3MParameters::Clone() const
5530 #ifndef PASN_LEANANDMEAN
5531 PAssert(IsClass(H245_H223AL3MParameters::Class()), PInvalidCast);
5532 #endif
5533 return new H245_H223AL3MParameters(*this);
5538 // H223AnnexCArqParameters
5541 H245_H223AnnexCArqParameters::H245_H223AnnexCArqParameters(unsigned tag, PASN_Object::TagClass tagClass)
5542 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
5544 m_sendBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 16777215);
5548 #ifndef PASN_NOPRINTON
5549 void H245_H223AnnexCArqParameters::PrintOn(ostream & strm) const
5551 int indent = strm.precision() + 2;
5552 strm << "{\n";
5553 strm << setw(indent+26) << "numberOfRetransmissions = " << setprecision(indent) << m_numberOfRetransmissions << '\n';
5554 strm << setw(indent+17) << "sendBufferSize = " << setprecision(indent) << m_sendBufferSize << '\n';
5555 strm << setw(indent-1) << setprecision(indent-2) << "}";
5557 #endif
5560 PObject::Comparison H245_H223AnnexCArqParameters::Compare(const PObject & obj) const
5562 #ifndef PASN_LEANANDMEAN
5563 PAssert(PIsDescendant(&obj, H245_H223AnnexCArqParameters), PInvalidCast);
5564 #endif
5565 const H245_H223AnnexCArqParameters & other = (const H245_H223AnnexCArqParameters &)obj;
5567 Comparison result;
5569 if ((result = m_numberOfRetransmissions.Compare(other.m_numberOfRetransmissions)) != EqualTo)
5570 return result;
5571 if ((result = m_sendBufferSize.Compare(other.m_sendBufferSize)) != EqualTo)
5572 return result;
5574 return PASN_Sequence::Compare(other);
5578 PINDEX H245_H223AnnexCArqParameters::GetDataLength() const
5580 PINDEX length = 0;
5581 length += m_numberOfRetransmissions.GetObjectLength();
5582 length += m_sendBufferSize.GetObjectLength();
5583 return length;
5587 BOOL H245_H223AnnexCArqParameters::Decode(PASN_Stream & strm)
5589 if (!PreambleDecode(strm))
5590 return FALSE;
5592 if (!m_numberOfRetransmissions.Decode(strm))
5593 return FALSE;
5594 if (!m_sendBufferSize.Decode(strm))
5595 return FALSE;
5597 return UnknownExtensionsDecode(strm);
5601 void H245_H223AnnexCArqParameters::Encode(PASN_Stream & strm) const
5603 PreambleEncode(strm);
5605 m_numberOfRetransmissions.Encode(strm);
5606 m_sendBufferSize.Encode(strm);
5608 UnknownExtensionsEncode(strm);
5612 PObject * H245_H223AnnexCArqParameters::Clone() const
5614 #ifndef PASN_LEANANDMEAN
5615 PAssert(IsClass(H245_H223AnnexCArqParameters::Class()), PInvalidCast);
5616 #endif
5617 return new H245_H223AnnexCArqParameters(*this);
5622 // V76HDLCParameters
5625 H245_V76HDLCParameters::H245_V76HDLCParameters(unsigned tag, PASN_Object::TagClass tagClass)
5626 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
5628 m_n401.SetConstraints(PASN_Object::FixedConstraint, 1, 4095);
5632 #ifndef PASN_NOPRINTON
5633 void H245_V76HDLCParameters::PrintOn(ostream & strm) const
5635 int indent = strm.precision() + 2;
5636 strm << "{\n";
5637 strm << setw(indent+12) << "crcLength = " << setprecision(indent) << m_crcLength << '\n';
5638 strm << setw(indent+7) << "n401 = " << setprecision(indent) << m_n401 << '\n';
5639 strm << setw(indent+24) << "loopbackTestProcedure = " << setprecision(indent) << m_loopbackTestProcedure << '\n';
5640 strm << setw(indent-1) << setprecision(indent-2) << "}";
5642 #endif
5645 PObject::Comparison H245_V76HDLCParameters::Compare(const PObject & obj) const
5647 #ifndef PASN_LEANANDMEAN
5648 PAssert(PIsDescendant(&obj, H245_V76HDLCParameters), PInvalidCast);
5649 #endif
5650 const H245_V76HDLCParameters & other = (const H245_V76HDLCParameters &)obj;
5652 Comparison result;
5654 if ((result = m_crcLength.Compare(other.m_crcLength)) != EqualTo)
5655 return result;
5656 if ((result = m_n401.Compare(other.m_n401)) != EqualTo)
5657 return result;
5658 if ((result = m_loopbackTestProcedure.Compare(other.m_loopbackTestProcedure)) != EqualTo)
5659 return result;
5661 return PASN_Sequence::Compare(other);
5665 PINDEX H245_V76HDLCParameters::GetDataLength() const
5667 PINDEX length = 0;
5668 length += m_crcLength.GetObjectLength();
5669 length += m_n401.GetObjectLength();
5670 length += m_loopbackTestProcedure.GetObjectLength();
5671 return length;
5675 BOOL H245_V76HDLCParameters::Decode(PASN_Stream & strm)
5677 if (!PreambleDecode(strm))
5678 return FALSE;
5680 if (!m_crcLength.Decode(strm))
5681 return FALSE;
5682 if (!m_n401.Decode(strm))
5683 return FALSE;
5684 if (!m_loopbackTestProcedure.Decode(strm))
5685 return FALSE;
5687 return UnknownExtensionsDecode(strm);
5691 void H245_V76HDLCParameters::Encode(PASN_Stream & strm) const
5693 PreambleEncode(strm);
5695 m_crcLength.Encode(strm);
5696 m_n401.Encode(strm);
5697 m_loopbackTestProcedure.Encode(strm);
5699 UnknownExtensionsEncode(strm);
5703 PObject * H245_V76HDLCParameters::Clone() const
5705 #ifndef PASN_LEANANDMEAN
5706 PAssert(IsClass(H245_V76HDLCParameters::Class()), PInvalidCast);
5707 #endif
5708 return new H245_V76HDLCParameters(*this);
5713 // RTPPayloadType
5716 H245_RTPPayloadType::H245_RTPPayloadType(unsigned tag, PASN_Object::TagClass tagClass)
5717 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
5719 m_payloadType.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
5723 #ifndef PASN_NOPRINTON
5724 void H245_RTPPayloadType::PrintOn(ostream & strm) const
5726 int indent = strm.precision() + 2;
5727 strm << "{\n";
5728 strm << setw(indent+20) << "payloadDescriptor = " << setprecision(indent) << m_payloadDescriptor << '\n';
5729 if (HasOptionalField(e_payloadType))
5730 strm << setw(indent+14) << "payloadType = " << setprecision(indent) << m_payloadType << '\n';
5731 strm << setw(indent-1) << setprecision(indent-2) << "}";
5733 #endif
5736 PObject::Comparison H245_RTPPayloadType::Compare(const PObject & obj) const
5738 #ifndef PASN_LEANANDMEAN
5739 PAssert(PIsDescendant(&obj, H245_RTPPayloadType), PInvalidCast);
5740 #endif
5741 const H245_RTPPayloadType & other = (const H245_RTPPayloadType &)obj;
5743 Comparison result;
5745 if ((result = m_payloadDescriptor.Compare(other.m_payloadDescriptor)) != EqualTo)
5746 return result;
5747 if ((result = m_payloadType.Compare(other.m_payloadType)) != EqualTo)
5748 return result;
5750 return PASN_Sequence::Compare(other);
5754 PINDEX H245_RTPPayloadType::GetDataLength() const
5756 PINDEX length = 0;
5757 length += m_payloadDescriptor.GetObjectLength();
5758 if (HasOptionalField(e_payloadType))
5759 length += m_payloadType.GetObjectLength();
5760 return length;
5764 BOOL H245_RTPPayloadType::Decode(PASN_Stream & strm)
5766 if (!PreambleDecode(strm))
5767 return FALSE;
5769 if (!m_payloadDescriptor.Decode(strm))
5770 return FALSE;
5771 if (HasOptionalField(e_payloadType) && !m_payloadType.Decode(strm))
5772 return FALSE;
5774 return UnknownExtensionsDecode(strm);
5778 void H245_RTPPayloadType::Encode(PASN_Stream & strm) const
5780 PreambleEncode(strm);
5782 m_payloadDescriptor.Encode(strm);
5783 if (HasOptionalField(e_payloadType))
5784 m_payloadType.Encode(strm);
5786 UnknownExtensionsEncode(strm);
5790 PObject * H245_RTPPayloadType::Clone() const
5792 #ifndef PASN_LEANANDMEAN
5793 PAssert(IsClass(H245_RTPPayloadType::Class()), PInvalidCast);
5794 #endif
5795 return new H245_RTPPayloadType(*this);
5800 // MultiplePayloadStream
5803 H245_MultiplePayloadStream::H245_MultiplePayloadStream(unsigned tag, PASN_Object::TagClass tagClass)
5804 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
5809 #ifndef PASN_NOPRINTON
5810 void H245_MultiplePayloadStream::PrintOn(ostream & strm) const
5812 int indent = strm.precision() + 2;
5813 strm << "{\n";
5814 strm << setw(indent+11) << "elements = " << setprecision(indent) << m_elements << '\n';
5815 strm << setw(indent-1) << setprecision(indent-2) << "}";
5817 #endif
5820 PObject::Comparison H245_MultiplePayloadStream::Compare(const PObject & obj) const
5822 #ifndef PASN_LEANANDMEAN
5823 PAssert(PIsDescendant(&obj, H245_MultiplePayloadStream), PInvalidCast);
5824 #endif
5825 const H245_MultiplePayloadStream & other = (const H245_MultiplePayloadStream &)obj;
5827 Comparison result;
5829 if ((result = m_elements.Compare(other.m_elements)) != EqualTo)
5830 return result;
5832 return PASN_Sequence::Compare(other);
5836 PINDEX H245_MultiplePayloadStream::GetDataLength() const
5838 PINDEX length = 0;
5839 length += m_elements.GetObjectLength();
5840 return length;
5844 BOOL H245_MultiplePayloadStream::Decode(PASN_Stream & strm)
5846 if (!PreambleDecode(strm))
5847 return FALSE;
5849 if (!m_elements.Decode(strm))
5850 return FALSE;
5852 return UnknownExtensionsDecode(strm);
5856 void H245_MultiplePayloadStream::Encode(PASN_Stream & strm) const
5858 PreambleEncode(strm);
5860 m_elements.Encode(strm);
5862 UnknownExtensionsEncode(strm);
5866 PObject * H245_MultiplePayloadStream::Clone() const
5868 #ifndef PASN_LEANANDMEAN
5869 PAssert(IsClass(H245_MultiplePayloadStream::Class()), PInvalidCast);
5870 #endif
5871 return new H245_MultiplePayloadStream(*this);
5876 // EncryptionSync
5879 H245_EncryptionSync::H245_EncryptionSync(unsigned tag, PASN_Object::TagClass tagClass)
5880 : PASN_Sequence(tag, tagClass, 2, TRUE, 1)
5882 m_synchFlag.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
5883 m_h235Key.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
5884 m_escrowentry.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
5888 #ifndef PASN_NOPRINTON
5889 void H245_EncryptionSync::PrintOn(ostream & strm) const
5891 int indent = strm.precision() + 2;
5892 strm << "{\n";
5893 if (HasOptionalField(e_nonStandard))
5894 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
5895 strm << setw(indent+12) << "synchFlag = " << setprecision(indent) << m_synchFlag << '\n';
5896 strm << setw(indent+10) << "h235Key = " << setprecision(indent) << m_h235Key << '\n';
5897 if (HasOptionalField(e_escrowentry))
5898 strm << setw(indent+14) << "escrowentry = " << setprecision(indent) << m_escrowentry << '\n';
5899 if (HasOptionalField(e_genericParameter))
5900 strm << setw(indent+19) << "genericParameter = " << setprecision(indent) << m_genericParameter << '\n';
5901 strm << setw(indent-1) << setprecision(indent-2) << "}";
5903 #endif
5906 PObject::Comparison H245_EncryptionSync::Compare(const PObject & obj) const
5908 #ifndef PASN_LEANANDMEAN
5909 PAssert(PIsDescendant(&obj, H245_EncryptionSync), PInvalidCast);
5910 #endif
5911 const H245_EncryptionSync & other = (const H245_EncryptionSync &)obj;
5913 Comparison result;
5915 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
5916 return result;
5917 if ((result = m_synchFlag.Compare(other.m_synchFlag)) != EqualTo)
5918 return result;
5919 if ((result = m_h235Key.Compare(other.m_h235Key)) != EqualTo)
5920 return result;
5921 if ((result = m_escrowentry.Compare(other.m_escrowentry)) != EqualTo)
5922 return result;
5924 return PASN_Sequence::Compare(other);
5928 PINDEX H245_EncryptionSync::GetDataLength() const
5930 PINDEX length = 0;
5931 if (HasOptionalField(e_nonStandard))
5932 length += m_nonStandard.GetObjectLength();
5933 length += m_synchFlag.GetObjectLength();
5934 length += m_h235Key.GetObjectLength();
5935 if (HasOptionalField(e_escrowentry))
5936 length += m_escrowentry.GetObjectLength();
5937 return length;
5941 BOOL H245_EncryptionSync::Decode(PASN_Stream & strm)
5943 if (!PreambleDecode(strm))
5944 return FALSE;
5946 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
5947 return FALSE;
5948 if (!m_synchFlag.Decode(strm))
5949 return FALSE;
5950 if (!m_h235Key.Decode(strm))
5951 return FALSE;
5952 if (HasOptionalField(e_escrowentry) && !m_escrowentry.Decode(strm))
5953 return FALSE;
5954 if (!KnownExtensionDecode(strm, e_genericParameter, m_genericParameter))
5955 return FALSE;
5957 return UnknownExtensionsDecode(strm);
5961 void H245_EncryptionSync::Encode(PASN_Stream & strm) const
5963 PreambleEncode(strm);
5965 if (HasOptionalField(e_nonStandard))
5966 m_nonStandard.Encode(strm);
5967 m_synchFlag.Encode(strm);
5968 m_h235Key.Encode(strm);
5969 if (HasOptionalField(e_escrowentry))
5970 m_escrowentry.Encode(strm);
5971 KnownExtensionEncode(strm, e_genericParameter, m_genericParameter);
5973 UnknownExtensionsEncode(strm);
5977 PObject * H245_EncryptionSync::Clone() const
5979 #ifndef PASN_LEANANDMEAN
5980 PAssert(IsClass(H245_EncryptionSync::Class()), PInvalidCast);
5981 #endif
5982 return new H245_EncryptionSync(*this);
5987 // OpenLogicalChannelReject
5990 H245_OpenLogicalChannelReject::H245_OpenLogicalChannelReject(unsigned tag, PASN_Object::TagClass tagClass)
5991 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
5996 #ifndef PASN_NOPRINTON
5997 void H245_OpenLogicalChannelReject::PrintOn(ostream & strm) const
5999 int indent = strm.precision() + 2;
6000 strm << "{\n";
6001 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
6002 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
6003 if (HasOptionalField(e_genericInformation))
6004 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
6005 strm << setw(indent-1) << setprecision(indent-2) << "}";
6007 #endif
6010 PObject::Comparison H245_OpenLogicalChannelReject::Compare(const PObject & obj) const
6012 #ifndef PASN_LEANANDMEAN
6013 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannelReject), PInvalidCast);
6014 #endif
6015 const H245_OpenLogicalChannelReject & other = (const H245_OpenLogicalChannelReject &)obj;
6017 Comparison result;
6019 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
6020 return result;
6021 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
6022 return result;
6024 return PASN_Sequence::Compare(other);
6028 PINDEX H245_OpenLogicalChannelReject::GetDataLength() const
6030 PINDEX length = 0;
6031 length += m_forwardLogicalChannelNumber.GetObjectLength();
6032 length += m_cause.GetObjectLength();
6033 return length;
6037 BOOL H245_OpenLogicalChannelReject::Decode(PASN_Stream & strm)
6039 if (!PreambleDecode(strm))
6040 return FALSE;
6042 if (!m_forwardLogicalChannelNumber.Decode(strm))
6043 return FALSE;
6044 if (!m_cause.Decode(strm))
6045 return FALSE;
6046 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
6047 return FALSE;
6049 return UnknownExtensionsDecode(strm);
6053 void H245_OpenLogicalChannelReject::Encode(PASN_Stream & strm) const
6055 PreambleEncode(strm);
6057 m_forwardLogicalChannelNumber.Encode(strm);
6058 m_cause.Encode(strm);
6059 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
6061 UnknownExtensionsEncode(strm);
6065 PObject * H245_OpenLogicalChannelReject::Clone() const
6067 #ifndef PASN_LEANANDMEAN
6068 PAssert(IsClass(H245_OpenLogicalChannelReject::Class()), PInvalidCast);
6069 #endif
6070 return new H245_OpenLogicalChannelReject(*this);
6075 // OpenLogicalChannelConfirm
6078 H245_OpenLogicalChannelConfirm::H245_OpenLogicalChannelConfirm(unsigned tag, PASN_Object::TagClass tagClass)
6079 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
6084 #ifndef PASN_NOPRINTON
6085 void H245_OpenLogicalChannelConfirm::PrintOn(ostream & strm) const
6087 int indent = strm.precision() + 2;
6088 strm << "{\n";
6089 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
6090 if (HasOptionalField(e_genericInformation))
6091 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
6092 strm << setw(indent-1) << setprecision(indent-2) << "}";
6094 #endif
6097 PObject::Comparison H245_OpenLogicalChannelConfirm::Compare(const PObject & obj) const
6099 #ifndef PASN_LEANANDMEAN
6100 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannelConfirm), PInvalidCast);
6101 #endif
6102 const H245_OpenLogicalChannelConfirm & other = (const H245_OpenLogicalChannelConfirm &)obj;
6104 Comparison result;
6106 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
6107 return result;
6109 return PASN_Sequence::Compare(other);
6113 PINDEX H245_OpenLogicalChannelConfirm::GetDataLength() const
6115 PINDEX length = 0;
6116 length += m_forwardLogicalChannelNumber.GetObjectLength();
6117 return length;
6121 BOOL H245_OpenLogicalChannelConfirm::Decode(PASN_Stream & strm)
6123 if (!PreambleDecode(strm))
6124 return FALSE;
6126 if (!m_forwardLogicalChannelNumber.Decode(strm))
6127 return FALSE;
6128 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
6129 return FALSE;
6131 return UnknownExtensionsDecode(strm);
6135 void H245_OpenLogicalChannelConfirm::Encode(PASN_Stream & strm) const
6137 PreambleEncode(strm);
6139 m_forwardLogicalChannelNumber.Encode(strm);
6140 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
6142 UnknownExtensionsEncode(strm);
6146 PObject * H245_OpenLogicalChannelConfirm::Clone() const
6148 #ifndef PASN_LEANANDMEAN
6149 PAssert(IsClass(H245_OpenLogicalChannelConfirm::Class()), PInvalidCast);
6150 #endif
6151 return new H245_OpenLogicalChannelConfirm(*this);
6156 // H2250LogicalChannelAckParameters
6159 H245_H2250LogicalChannelAckParameters::H245_H2250LogicalChannelAckParameters(unsigned tag, PASN_Object::TagClass tagClass)
6160 : PASN_Sequence(tag, tagClass, 5, TRUE, 2)
6162 m_sessionID.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
6163 m_dynamicRTPPayloadType.SetConstraints(PASN_Object::FixedConstraint, 96, 127);
6164 IncludeOptionalField(e_flowControlToZero);
6165 m_portNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
6169 #ifndef PASN_NOPRINTON
6170 void H245_H2250LogicalChannelAckParameters::PrintOn(ostream & strm) const
6172 int indent = strm.precision() + 2;
6173 strm << "{\n";
6174 if (HasOptionalField(e_nonStandard))
6175 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
6176 if (HasOptionalField(e_sessionID))
6177 strm << setw(indent+12) << "sessionID = " << setprecision(indent) << m_sessionID << '\n';
6178 if (HasOptionalField(e_mediaChannel))
6179 strm << setw(indent+15) << "mediaChannel = " << setprecision(indent) << m_mediaChannel << '\n';
6180 if (HasOptionalField(e_mediaControlChannel))
6181 strm << setw(indent+22) << "mediaControlChannel = " << setprecision(indent) << m_mediaControlChannel << '\n';
6182 if (HasOptionalField(e_dynamicRTPPayloadType))
6183 strm << setw(indent+24) << "dynamicRTPPayloadType = " << setprecision(indent) << m_dynamicRTPPayloadType << '\n';
6184 if (HasOptionalField(e_flowControlToZero))
6185 strm << setw(indent+20) << "flowControlToZero = " << setprecision(indent) << m_flowControlToZero << '\n';
6186 if (HasOptionalField(e_portNumber))
6187 strm << setw(indent+13) << "portNumber = " << setprecision(indent) << m_portNumber << '\n';
6188 strm << setw(indent-1) << setprecision(indent-2) << "}";
6190 #endif
6193 PObject::Comparison H245_H2250LogicalChannelAckParameters::Compare(const PObject & obj) const
6195 #ifndef PASN_LEANANDMEAN
6196 PAssert(PIsDescendant(&obj, H245_H2250LogicalChannelAckParameters), PInvalidCast);
6197 #endif
6198 const H245_H2250LogicalChannelAckParameters & other = (const H245_H2250LogicalChannelAckParameters &)obj;
6200 Comparison result;
6202 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
6203 return result;
6204 if ((result = m_sessionID.Compare(other.m_sessionID)) != EqualTo)
6205 return result;
6206 if ((result = m_mediaChannel.Compare(other.m_mediaChannel)) != EqualTo)
6207 return result;
6208 if ((result = m_mediaControlChannel.Compare(other.m_mediaControlChannel)) != EqualTo)
6209 return result;
6210 if ((result = m_dynamicRTPPayloadType.Compare(other.m_dynamicRTPPayloadType)) != EqualTo)
6211 return result;
6213 return PASN_Sequence::Compare(other);
6217 PINDEX H245_H2250LogicalChannelAckParameters::GetDataLength() const
6219 PINDEX length = 0;
6220 if (HasOptionalField(e_nonStandard))
6221 length += m_nonStandard.GetObjectLength();
6222 if (HasOptionalField(e_sessionID))
6223 length += m_sessionID.GetObjectLength();
6224 if (HasOptionalField(e_mediaChannel))
6225 length += m_mediaChannel.GetObjectLength();
6226 if (HasOptionalField(e_mediaControlChannel))
6227 length += m_mediaControlChannel.GetObjectLength();
6228 if (HasOptionalField(e_dynamicRTPPayloadType))
6229 length += m_dynamicRTPPayloadType.GetObjectLength();
6230 return length;
6234 BOOL H245_H2250LogicalChannelAckParameters::Decode(PASN_Stream & strm)
6236 if (!PreambleDecode(strm))
6237 return FALSE;
6239 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
6240 return FALSE;
6241 if (HasOptionalField(e_sessionID) && !m_sessionID.Decode(strm))
6242 return FALSE;
6243 if (HasOptionalField(e_mediaChannel) && !m_mediaChannel.Decode(strm))
6244 return FALSE;
6245 if (HasOptionalField(e_mediaControlChannel) && !m_mediaControlChannel.Decode(strm))
6246 return FALSE;
6247 if (HasOptionalField(e_dynamicRTPPayloadType) && !m_dynamicRTPPayloadType.Decode(strm))
6248 return FALSE;
6249 if (!KnownExtensionDecode(strm, e_flowControlToZero, m_flowControlToZero))
6250 return FALSE;
6251 if (!KnownExtensionDecode(strm, e_portNumber, m_portNumber))
6252 return FALSE;
6254 return UnknownExtensionsDecode(strm);
6258 void H245_H2250LogicalChannelAckParameters::Encode(PASN_Stream & strm) const
6260 PreambleEncode(strm);
6262 if (HasOptionalField(e_nonStandard))
6263 m_nonStandard.Encode(strm);
6264 if (HasOptionalField(e_sessionID))
6265 m_sessionID.Encode(strm);
6266 if (HasOptionalField(e_mediaChannel))
6267 m_mediaChannel.Encode(strm);
6268 if (HasOptionalField(e_mediaControlChannel))
6269 m_mediaControlChannel.Encode(strm);
6270 if (HasOptionalField(e_dynamicRTPPayloadType))
6271 m_dynamicRTPPayloadType.Encode(strm);
6272 KnownExtensionEncode(strm, e_flowControlToZero, m_flowControlToZero);
6273 KnownExtensionEncode(strm, e_portNumber, m_portNumber);
6275 UnknownExtensionsEncode(strm);
6279 PObject * H245_H2250LogicalChannelAckParameters::Clone() const
6281 #ifndef PASN_LEANANDMEAN
6282 PAssert(IsClass(H245_H2250LogicalChannelAckParameters::Class()), PInvalidCast);
6283 #endif
6284 return new H245_H2250LogicalChannelAckParameters(*this);
6289 // CloseLogicalChannel
6292 H245_CloseLogicalChannel::H245_CloseLogicalChannel(unsigned tag, PASN_Object::TagClass tagClass)
6293 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
6295 IncludeOptionalField(e_reason);
6299 #ifndef PASN_NOPRINTON
6300 void H245_CloseLogicalChannel::PrintOn(ostream & strm) const
6302 int indent = strm.precision() + 2;
6303 strm << "{\n";
6304 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
6305 strm << setw(indent+9) << "source = " << setprecision(indent) << m_source << '\n';
6306 if (HasOptionalField(e_reason))
6307 strm << setw(indent+9) << "reason = " << setprecision(indent) << m_reason << '\n';
6308 strm << setw(indent-1) << setprecision(indent-2) << "}";
6310 #endif
6313 PObject::Comparison H245_CloseLogicalChannel::Compare(const PObject & obj) const
6315 #ifndef PASN_LEANANDMEAN
6316 PAssert(PIsDescendant(&obj, H245_CloseLogicalChannel), PInvalidCast);
6317 #endif
6318 const H245_CloseLogicalChannel & other = (const H245_CloseLogicalChannel &)obj;
6320 Comparison result;
6322 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
6323 return result;
6324 if ((result = m_source.Compare(other.m_source)) != EqualTo)
6325 return result;
6327 return PASN_Sequence::Compare(other);
6331 PINDEX H245_CloseLogicalChannel::GetDataLength() const
6333 PINDEX length = 0;
6334 length += m_forwardLogicalChannelNumber.GetObjectLength();
6335 length += m_source.GetObjectLength();
6336 return length;
6340 BOOL H245_CloseLogicalChannel::Decode(PASN_Stream & strm)
6342 if (!PreambleDecode(strm))
6343 return FALSE;
6345 if (!m_forwardLogicalChannelNumber.Decode(strm))
6346 return FALSE;
6347 if (!m_source.Decode(strm))
6348 return FALSE;
6349 if (!KnownExtensionDecode(strm, e_reason, m_reason))
6350 return FALSE;
6352 return UnknownExtensionsDecode(strm);
6356 void H245_CloseLogicalChannel::Encode(PASN_Stream & strm) const
6358 PreambleEncode(strm);
6360 m_forwardLogicalChannelNumber.Encode(strm);
6361 m_source.Encode(strm);
6362 KnownExtensionEncode(strm, e_reason, m_reason);
6364 UnknownExtensionsEncode(strm);
6368 PObject * H245_CloseLogicalChannel::Clone() const
6370 #ifndef PASN_LEANANDMEAN
6371 PAssert(IsClass(H245_CloseLogicalChannel::Class()), PInvalidCast);
6372 #endif
6373 return new H245_CloseLogicalChannel(*this);
6378 // RequestChannelClose
6381 H245_RequestChannelClose::H245_RequestChannelClose(unsigned tag, PASN_Object::TagClass tagClass)
6382 : PASN_Sequence(tag, tagClass, 0, TRUE, 2)
6384 IncludeOptionalField(e_reason);
6388 #ifndef PASN_NOPRINTON
6389 void H245_RequestChannelClose::PrintOn(ostream & strm) const
6391 int indent = strm.precision() + 2;
6392 strm << "{\n";
6393 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
6394 if (HasOptionalField(e_qosCapability))
6395 strm << setw(indent+16) << "qosCapability = " << setprecision(indent) << m_qosCapability << '\n';
6396 if (HasOptionalField(e_reason))
6397 strm << setw(indent+9) << "reason = " << setprecision(indent) << m_reason << '\n';
6398 strm << setw(indent-1) << setprecision(indent-2) << "}";
6400 #endif
6403 PObject::Comparison H245_RequestChannelClose::Compare(const PObject & obj) const
6405 #ifndef PASN_LEANANDMEAN
6406 PAssert(PIsDescendant(&obj, H245_RequestChannelClose), PInvalidCast);
6407 #endif
6408 const H245_RequestChannelClose & other = (const H245_RequestChannelClose &)obj;
6410 Comparison result;
6412 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
6413 return result;
6415 return PASN_Sequence::Compare(other);
6419 PINDEX H245_RequestChannelClose::GetDataLength() const
6421 PINDEX length = 0;
6422 length += m_forwardLogicalChannelNumber.GetObjectLength();
6423 return length;
6427 BOOL H245_RequestChannelClose::Decode(PASN_Stream & strm)
6429 if (!PreambleDecode(strm))
6430 return FALSE;
6432 if (!m_forwardLogicalChannelNumber.Decode(strm))
6433 return FALSE;
6434 if (!KnownExtensionDecode(strm, e_qosCapability, m_qosCapability))
6435 return FALSE;
6436 if (!KnownExtensionDecode(strm, e_reason, m_reason))
6437 return FALSE;
6439 return UnknownExtensionsDecode(strm);
6443 void H245_RequestChannelClose::Encode(PASN_Stream & strm) const
6445 PreambleEncode(strm);
6447 m_forwardLogicalChannelNumber.Encode(strm);
6448 KnownExtensionEncode(strm, e_qosCapability, m_qosCapability);
6449 KnownExtensionEncode(strm, e_reason, m_reason);
6451 UnknownExtensionsEncode(strm);
6455 PObject * H245_RequestChannelClose::Clone() const
6457 #ifndef PASN_LEANANDMEAN
6458 PAssert(IsClass(H245_RequestChannelClose::Class()), PInvalidCast);
6459 #endif
6460 return new H245_RequestChannelClose(*this);
6465 // RequestChannelCloseReject
6468 H245_RequestChannelCloseReject::H245_RequestChannelCloseReject(unsigned tag, PASN_Object::TagClass tagClass)
6469 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
6474 #ifndef PASN_NOPRINTON
6475 void H245_RequestChannelCloseReject::PrintOn(ostream & strm) const
6477 int indent = strm.precision() + 2;
6478 strm << "{\n";
6479 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
6480 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
6481 strm << setw(indent-1) << setprecision(indent-2) << "}";
6483 #endif
6486 PObject::Comparison H245_RequestChannelCloseReject::Compare(const PObject & obj) const
6488 #ifndef PASN_LEANANDMEAN
6489 PAssert(PIsDescendant(&obj, H245_RequestChannelCloseReject), PInvalidCast);
6490 #endif
6491 const H245_RequestChannelCloseReject & other = (const H245_RequestChannelCloseReject &)obj;
6493 Comparison result;
6495 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
6496 return result;
6497 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
6498 return result;
6500 return PASN_Sequence::Compare(other);
6504 PINDEX H245_RequestChannelCloseReject::GetDataLength() const
6506 PINDEX length = 0;
6507 length += m_forwardLogicalChannelNumber.GetObjectLength();
6508 length += m_cause.GetObjectLength();
6509 return length;
6513 BOOL H245_RequestChannelCloseReject::Decode(PASN_Stream & strm)
6515 if (!PreambleDecode(strm))
6516 return FALSE;
6518 if (!m_forwardLogicalChannelNumber.Decode(strm))
6519 return FALSE;
6520 if (!m_cause.Decode(strm))
6521 return FALSE;
6523 return UnknownExtensionsDecode(strm);
6527 void H245_RequestChannelCloseReject::Encode(PASN_Stream & strm) const
6529 PreambleEncode(strm);
6531 m_forwardLogicalChannelNumber.Encode(strm);
6532 m_cause.Encode(strm);
6534 UnknownExtensionsEncode(strm);
6538 PObject * H245_RequestChannelCloseReject::Clone() const
6540 #ifndef PASN_LEANANDMEAN
6541 PAssert(IsClass(H245_RequestChannelCloseReject::Class()), PInvalidCast);
6542 #endif
6543 return new H245_RequestChannelCloseReject(*this);
6548 // MultiplexEntrySend
6551 H245_MultiplexEntrySend::H245_MultiplexEntrySend(unsigned tag, PASN_Object::TagClass tagClass)
6552 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
6554 m_multiplexEntryDescriptors.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
6558 #ifndef PASN_NOPRINTON
6559 void H245_MultiplexEntrySend::PrintOn(ostream & strm) const
6561 int indent = strm.precision() + 2;
6562 strm << "{\n";
6563 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
6564 strm << setw(indent+28) << "multiplexEntryDescriptors = " << setprecision(indent) << m_multiplexEntryDescriptors << '\n';
6565 strm << setw(indent-1) << setprecision(indent-2) << "}";
6567 #endif
6570 PObject::Comparison H245_MultiplexEntrySend::Compare(const PObject & obj) const
6572 #ifndef PASN_LEANANDMEAN
6573 PAssert(PIsDescendant(&obj, H245_MultiplexEntrySend), PInvalidCast);
6574 #endif
6575 const H245_MultiplexEntrySend & other = (const H245_MultiplexEntrySend &)obj;
6577 Comparison result;
6579 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
6580 return result;
6581 if ((result = m_multiplexEntryDescriptors.Compare(other.m_multiplexEntryDescriptors)) != EqualTo)
6582 return result;
6584 return PASN_Sequence::Compare(other);
6588 PINDEX H245_MultiplexEntrySend::GetDataLength() const
6590 PINDEX length = 0;
6591 length += m_sequenceNumber.GetObjectLength();
6592 length += m_multiplexEntryDescriptors.GetObjectLength();
6593 return length;
6597 BOOL H245_MultiplexEntrySend::Decode(PASN_Stream & strm)
6599 if (!PreambleDecode(strm))
6600 return FALSE;
6602 if (!m_sequenceNumber.Decode(strm))
6603 return FALSE;
6604 if (!m_multiplexEntryDescriptors.Decode(strm))
6605 return FALSE;
6607 return UnknownExtensionsDecode(strm);
6611 void H245_MultiplexEntrySend::Encode(PASN_Stream & strm) const
6613 PreambleEncode(strm);
6615 m_sequenceNumber.Encode(strm);
6616 m_multiplexEntryDescriptors.Encode(strm);
6618 UnknownExtensionsEncode(strm);
6622 PObject * H245_MultiplexEntrySend::Clone() const
6624 #ifndef PASN_LEANANDMEAN
6625 PAssert(IsClass(H245_MultiplexEntrySend::Class()), PInvalidCast);
6626 #endif
6627 return new H245_MultiplexEntrySend(*this);
6632 // MultiplexEntryDescriptor
6635 H245_MultiplexEntryDescriptor::H245_MultiplexEntryDescriptor(unsigned tag, PASN_Object::TagClass tagClass)
6636 : PASN_Sequence(tag, tagClass, 1, FALSE, 0)
6638 m_elementList.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
6642 #ifndef PASN_NOPRINTON
6643 void H245_MultiplexEntryDescriptor::PrintOn(ostream & strm) const
6645 int indent = strm.precision() + 2;
6646 strm << "{\n";
6647 strm << setw(indent+28) << "multiplexTableEntryNumber = " << setprecision(indent) << m_multiplexTableEntryNumber << '\n';
6648 if (HasOptionalField(e_elementList))
6649 strm << setw(indent+14) << "elementList = " << setprecision(indent) << m_elementList << '\n';
6650 strm << setw(indent-1) << setprecision(indent-2) << "}";
6652 #endif
6655 PObject::Comparison H245_MultiplexEntryDescriptor::Compare(const PObject & obj) const
6657 #ifndef PASN_LEANANDMEAN
6658 PAssert(PIsDescendant(&obj, H245_MultiplexEntryDescriptor), PInvalidCast);
6659 #endif
6660 const H245_MultiplexEntryDescriptor & other = (const H245_MultiplexEntryDescriptor &)obj;
6662 Comparison result;
6664 if ((result = m_multiplexTableEntryNumber.Compare(other.m_multiplexTableEntryNumber)) != EqualTo)
6665 return result;
6666 if ((result = m_elementList.Compare(other.m_elementList)) != EqualTo)
6667 return result;
6669 return PASN_Sequence::Compare(other);
6673 PINDEX H245_MultiplexEntryDescriptor::GetDataLength() const
6675 PINDEX length = 0;
6676 length += m_multiplexTableEntryNumber.GetObjectLength();
6677 if (HasOptionalField(e_elementList))
6678 length += m_elementList.GetObjectLength();
6679 return length;
6683 BOOL H245_MultiplexEntryDescriptor::Decode(PASN_Stream & strm)
6685 if (!PreambleDecode(strm))
6686 return FALSE;
6688 if (!m_multiplexTableEntryNumber.Decode(strm))
6689 return FALSE;
6690 if (HasOptionalField(e_elementList) && !m_elementList.Decode(strm))
6691 return FALSE;
6693 return UnknownExtensionsDecode(strm);
6697 void H245_MultiplexEntryDescriptor::Encode(PASN_Stream & strm) const
6699 PreambleEncode(strm);
6701 m_multiplexTableEntryNumber.Encode(strm);
6702 if (HasOptionalField(e_elementList))
6703 m_elementList.Encode(strm);
6705 UnknownExtensionsEncode(strm);
6709 PObject * H245_MultiplexEntryDescriptor::Clone() const
6711 #ifndef PASN_LEANANDMEAN
6712 PAssert(IsClass(H245_MultiplexEntryDescriptor::Class()), PInvalidCast);
6713 #endif
6714 return new H245_MultiplexEntryDescriptor(*this);
6719 // MultiplexElement
6722 H245_MultiplexElement::H245_MultiplexElement(unsigned tag, PASN_Object::TagClass tagClass)
6723 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
6728 #ifndef PASN_NOPRINTON
6729 void H245_MultiplexElement::PrintOn(ostream & strm) const
6731 int indent = strm.precision() + 2;
6732 strm << "{\n";
6733 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
6734 strm << setw(indent+14) << "repeatCount = " << setprecision(indent) << m_repeatCount << '\n';
6735 strm << setw(indent-1) << setprecision(indent-2) << "}";
6737 #endif
6740 PObject::Comparison H245_MultiplexElement::Compare(const PObject & obj) const
6742 #ifndef PASN_LEANANDMEAN
6743 PAssert(PIsDescendant(&obj, H245_MultiplexElement), PInvalidCast);
6744 #endif
6745 const H245_MultiplexElement & other = (const H245_MultiplexElement &)obj;
6747 Comparison result;
6749 if ((result = m_type.Compare(other.m_type)) != EqualTo)
6750 return result;
6751 if ((result = m_repeatCount.Compare(other.m_repeatCount)) != EqualTo)
6752 return result;
6754 return PASN_Sequence::Compare(other);
6758 PINDEX H245_MultiplexElement::GetDataLength() const
6760 PINDEX length = 0;
6761 length += m_type.GetObjectLength();
6762 length += m_repeatCount.GetObjectLength();
6763 return length;
6767 BOOL H245_MultiplexElement::Decode(PASN_Stream & strm)
6769 if (!PreambleDecode(strm))
6770 return FALSE;
6772 if (!m_type.Decode(strm))
6773 return FALSE;
6774 if (!m_repeatCount.Decode(strm))
6775 return FALSE;
6777 return UnknownExtensionsDecode(strm);
6781 void H245_MultiplexElement::Encode(PASN_Stream & strm) const
6783 PreambleEncode(strm);
6785 m_type.Encode(strm);
6786 m_repeatCount.Encode(strm);
6788 UnknownExtensionsEncode(strm);
6792 PObject * H245_MultiplexElement::Clone() const
6794 #ifndef PASN_LEANANDMEAN
6795 PAssert(IsClass(H245_MultiplexElement::Class()), PInvalidCast);
6796 #endif
6797 return new H245_MultiplexElement(*this);
6802 // MultiplexEntrySendAck
6805 H245_MultiplexEntrySendAck::H245_MultiplexEntrySendAck(unsigned tag, PASN_Object::TagClass tagClass)
6806 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
6808 m_multiplexTableEntryNumber.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
6812 #ifndef PASN_NOPRINTON
6813 void H245_MultiplexEntrySendAck::PrintOn(ostream & strm) const
6815 int indent = strm.precision() + 2;
6816 strm << "{\n";
6817 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
6818 strm << setw(indent+28) << "multiplexTableEntryNumber = " << setprecision(indent) << m_multiplexTableEntryNumber << '\n';
6819 strm << setw(indent-1) << setprecision(indent-2) << "}";
6821 #endif
6824 PObject::Comparison H245_MultiplexEntrySendAck::Compare(const PObject & obj) const
6826 #ifndef PASN_LEANANDMEAN
6827 PAssert(PIsDescendant(&obj, H245_MultiplexEntrySendAck), PInvalidCast);
6828 #endif
6829 const H245_MultiplexEntrySendAck & other = (const H245_MultiplexEntrySendAck &)obj;
6831 Comparison result;
6833 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
6834 return result;
6835 if ((result = m_multiplexTableEntryNumber.Compare(other.m_multiplexTableEntryNumber)) != EqualTo)
6836 return result;
6838 return PASN_Sequence::Compare(other);
6842 PINDEX H245_MultiplexEntrySendAck::GetDataLength() const
6844 PINDEX length = 0;
6845 length += m_sequenceNumber.GetObjectLength();
6846 length += m_multiplexTableEntryNumber.GetObjectLength();
6847 return length;
6851 BOOL H245_MultiplexEntrySendAck::Decode(PASN_Stream & strm)
6853 if (!PreambleDecode(strm))
6854 return FALSE;
6856 if (!m_sequenceNumber.Decode(strm))
6857 return FALSE;
6858 if (!m_multiplexTableEntryNumber.Decode(strm))
6859 return FALSE;
6861 return UnknownExtensionsDecode(strm);
6865 void H245_MultiplexEntrySendAck::Encode(PASN_Stream & strm) const
6867 PreambleEncode(strm);
6869 m_sequenceNumber.Encode(strm);
6870 m_multiplexTableEntryNumber.Encode(strm);
6872 UnknownExtensionsEncode(strm);
6876 PObject * H245_MultiplexEntrySendAck::Clone() const
6878 #ifndef PASN_LEANANDMEAN
6879 PAssert(IsClass(H245_MultiplexEntrySendAck::Class()), PInvalidCast);
6880 #endif
6881 return new H245_MultiplexEntrySendAck(*this);
6886 // MultiplexEntrySendReject
6889 H245_MultiplexEntrySendReject::H245_MultiplexEntrySendReject(unsigned tag, PASN_Object::TagClass tagClass)
6890 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
6892 m_rejectionDescriptions.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
6896 #ifndef PASN_NOPRINTON
6897 void H245_MultiplexEntrySendReject::PrintOn(ostream & strm) const
6899 int indent = strm.precision() + 2;
6900 strm << "{\n";
6901 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
6902 strm << setw(indent+24) << "rejectionDescriptions = " << setprecision(indent) << m_rejectionDescriptions << '\n';
6903 strm << setw(indent-1) << setprecision(indent-2) << "}";
6905 #endif
6908 PObject::Comparison H245_MultiplexEntrySendReject::Compare(const PObject & obj) const
6910 #ifndef PASN_LEANANDMEAN
6911 PAssert(PIsDescendant(&obj, H245_MultiplexEntrySendReject), PInvalidCast);
6912 #endif
6913 const H245_MultiplexEntrySendReject & other = (const H245_MultiplexEntrySendReject &)obj;
6915 Comparison result;
6917 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
6918 return result;
6919 if ((result = m_rejectionDescriptions.Compare(other.m_rejectionDescriptions)) != EqualTo)
6920 return result;
6922 return PASN_Sequence::Compare(other);
6926 PINDEX H245_MultiplexEntrySendReject::GetDataLength() const
6928 PINDEX length = 0;
6929 length += m_sequenceNumber.GetObjectLength();
6930 length += m_rejectionDescriptions.GetObjectLength();
6931 return length;
6935 BOOL H245_MultiplexEntrySendReject::Decode(PASN_Stream & strm)
6937 if (!PreambleDecode(strm))
6938 return FALSE;
6940 if (!m_sequenceNumber.Decode(strm))
6941 return FALSE;
6942 if (!m_rejectionDescriptions.Decode(strm))
6943 return FALSE;
6945 return UnknownExtensionsDecode(strm);
6949 void H245_MultiplexEntrySendReject::Encode(PASN_Stream & strm) const
6951 PreambleEncode(strm);
6953 m_sequenceNumber.Encode(strm);
6954 m_rejectionDescriptions.Encode(strm);
6956 UnknownExtensionsEncode(strm);
6960 PObject * H245_MultiplexEntrySendReject::Clone() const
6962 #ifndef PASN_LEANANDMEAN
6963 PAssert(IsClass(H245_MultiplexEntrySendReject::Class()), PInvalidCast);
6964 #endif
6965 return new H245_MultiplexEntrySendReject(*this);
6970 // MultiplexEntryRejectionDescriptions
6973 H245_MultiplexEntryRejectionDescriptions::H245_MultiplexEntryRejectionDescriptions(unsigned tag, PASN_Object::TagClass tagClass)
6974 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
6979 #ifndef PASN_NOPRINTON
6980 void H245_MultiplexEntryRejectionDescriptions::PrintOn(ostream & strm) const
6982 int indent = strm.precision() + 2;
6983 strm << "{\n";
6984 strm << setw(indent+28) << "multiplexTableEntryNumber = " << setprecision(indent) << m_multiplexTableEntryNumber << '\n';
6985 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
6986 strm << setw(indent-1) << setprecision(indent-2) << "}";
6988 #endif
6991 PObject::Comparison H245_MultiplexEntryRejectionDescriptions::Compare(const PObject & obj) const
6993 #ifndef PASN_LEANANDMEAN
6994 PAssert(PIsDescendant(&obj, H245_MultiplexEntryRejectionDescriptions), PInvalidCast);
6995 #endif
6996 const H245_MultiplexEntryRejectionDescriptions & other = (const H245_MultiplexEntryRejectionDescriptions &)obj;
6998 Comparison result;
7000 if ((result = m_multiplexTableEntryNumber.Compare(other.m_multiplexTableEntryNumber)) != EqualTo)
7001 return result;
7002 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
7003 return result;
7005 return PASN_Sequence::Compare(other);
7009 PINDEX H245_MultiplexEntryRejectionDescriptions::GetDataLength() const
7011 PINDEX length = 0;
7012 length += m_multiplexTableEntryNumber.GetObjectLength();
7013 length += m_cause.GetObjectLength();
7014 return length;
7018 BOOL H245_MultiplexEntryRejectionDescriptions::Decode(PASN_Stream & strm)
7020 if (!PreambleDecode(strm))
7021 return FALSE;
7023 if (!m_multiplexTableEntryNumber.Decode(strm))
7024 return FALSE;
7025 if (!m_cause.Decode(strm))
7026 return FALSE;
7028 return UnknownExtensionsDecode(strm);
7032 void H245_MultiplexEntryRejectionDescriptions::Encode(PASN_Stream & strm) const
7034 PreambleEncode(strm);
7036 m_multiplexTableEntryNumber.Encode(strm);
7037 m_cause.Encode(strm);
7039 UnknownExtensionsEncode(strm);
7043 PObject * H245_MultiplexEntryRejectionDescriptions::Clone() const
7045 #ifndef PASN_LEANANDMEAN
7046 PAssert(IsClass(H245_MultiplexEntryRejectionDescriptions::Class()), PInvalidCast);
7047 #endif
7048 return new H245_MultiplexEntryRejectionDescriptions(*this);
7053 // MultiplexEntrySendRelease
7056 H245_MultiplexEntrySendRelease::H245_MultiplexEntrySendRelease(unsigned tag, PASN_Object::TagClass tagClass)
7057 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7059 m_multiplexTableEntryNumber.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
7063 #ifndef PASN_NOPRINTON
7064 void H245_MultiplexEntrySendRelease::PrintOn(ostream & strm) const
7066 int indent = strm.precision() + 2;
7067 strm << "{\n";
7068 strm << setw(indent+28) << "multiplexTableEntryNumber = " << setprecision(indent) << m_multiplexTableEntryNumber << '\n';
7069 strm << setw(indent-1) << setprecision(indent-2) << "}";
7071 #endif
7074 PObject::Comparison H245_MultiplexEntrySendRelease::Compare(const PObject & obj) const
7076 #ifndef PASN_LEANANDMEAN
7077 PAssert(PIsDescendant(&obj, H245_MultiplexEntrySendRelease), PInvalidCast);
7078 #endif
7079 const H245_MultiplexEntrySendRelease & other = (const H245_MultiplexEntrySendRelease &)obj;
7081 Comparison result;
7083 if ((result = m_multiplexTableEntryNumber.Compare(other.m_multiplexTableEntryNumber)) != EqualTo)
7084 return result;
7086 return PASN_Sequence::Compare(other);
7090 PINDEX H245_MultiplexEntrySendRelease::GetDataLength() const
7092 PINDEX length = 0;
7093 length += m_multiplexTableEntryNumber.GetObjectLength();
7094 return length;
7098 BOOL H245_MultiplexEntrySendRelease::Decode(PASN_Stream & strm)
7100 if (!PreambleDecode(strm))
7101 return FALSE;
7103 if (!m_multiplexTableEntryNumber.Decode(strm))
7104 return FALSE;
7106 return UnknownExtensionsDecode(strm);
7110 void H245_MultiplexEntrySendRelease::Encode(PASN_Stream & strm) const
7112 PreambleEncode(strm);
7114 m_multiplexTableEntryNumber.Encode(strm);
7116 UnknownExtensionsEncode(strm);
7120 PObject * H245_MultiplexEntrySendRelease::Clone() const
7122 #ifndef PASN_LEANANDMEAN
7123 PAssert(IsClass(H245_MultiplexEntrySendRelease::Class()), PInvalidCast);
7124 #endif
7125 return new H245_MultiplexEntrySendRelease(*this);
7130 // RequestMultiplexEntry
7133 H245_RequestMultiplexEntry::H245_RequestMultiplexEntry(unsigned tag, PASN_Object::TagClass tagClass)
7134 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7136 m_entryNumbers.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
7140 #ifndef PASN_NOPRINTON
7141 void H245_RequestMultiplexEntry::PrintOn(ostream & strm) const
7143 int indent = strm.precision() + 2;
7144 strm << "{\n";
7145 strm << setw(indent+15) << "entryNumbers = " << setprecision(indent) << m_entryNumbers << '\n';
7146 strm << setw(indent-1) << setprecision(indent-2) << "}";
7148 #endif
7151 PObject::Comparison H245_RequestMultiplexEntry::Compare(const PObject & obj) const
7153 #ifndef PASN_LEANANDMEAN
7154 PAssert(PIsDescendant(&obj, H245_RequestMultiplexEntry), PInvalidCast);
7155 #endif
7156 const H245_RequestMultiplexEntry & other = (const H245_RequestMultiplexEntry &)obj;
7158 Comparison result;
7160 if ((result = m_entryNumbers.Compare(other.m_entryNumbers)) != EqualTo)
7161 return result;
7163 return PASN_Sequence::Compare(other);
7167 PINDEX H245_RequestMultiplexEntry::GetDataLength() const
7169 PINDEX length = 0;
7170 length += m_entryNumbers.GetObjectLength();
7171 return length;
7175 BOOL H245_RequestMultiplexEntry::Decode(PASN_Stream & strm)
7177 if (!PreambleDecode(strm))
7178 return FALSE;
7180 if (!m_entryNumbers.Decode(strm))
7181 return FALSE;
7183 return UnknownExtensionsDecode(strm);
7187 void H245_RequestMultiplexEntry::Encode(PASN_Stream & strm) const
7189 PreambleEncode(strm);
7191 m_entryNumbers.Encode(strm);
7193 UnknownExtensionsEncode(strm);
7197 PObject * H245_RequestMultiplexEntry::Clone() const
7199 #ifndef PASN_LEANANDMEAN
7200 PAssert(IsClass(H245_RequestMultiplexEntry::Class()), PInvalidCast);
7201 #endif
7202 return new H245_RequestMultiplexEntry(*this);
7207 // RequestMultiplexEntryAck
7210 H245_RequestMultiplexEntryAck::H245_RequestMultiplexEntryAck(unsigned tag, PASN_Object::TagClass tagClass)
7211 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7213 m_entryNumbers.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
7217 #ifndef PASN_NOPRINTON
7218 void H245_RequestMultiplexEntryAck::PrintOn(ostream & strm) const
7220 int indent = strm.precision() + 2;
7221 strm << "{\n";
7222 strm << setw(indent+15) << "entryNumbers = " << setprecision(indent) << m_entryNumbers << '\n';
7223 strm << setw(indent-1) << setprecision(indent-2) << "}";
7225 #endif
7228 PObject::Comparison H245_RequestMultiplexEntryAck::Compare(const PObject & obj) const
7230 #ifndef PASN_LEANANDMEAN
7231 PAssert(PIsDescendant(&obj, H245_RequestMultiplexEntryAck), PInvalidCast);
7232 #endif
7233 const H245_RequestMultiplexEntryAck & other = (const H245_RequestMultiplexEntryAck &)obj;
7235 Comparison result;
7237 if ((result = m_entryNumbers.Compare(other.m_entryNumbers)) != EqualTo)
7238 return result;
7240 return PASN_Sequence::Compare(other);
7244 PINDEX H245_RequestMultiplexEntryAck::GetDataLength() const
7246 PINDEX length = 0;
7247 length += m_entryNumbers.GetObjectLength();
7248 return length;
7252 BOOL H245_RequestMultiplexEntryAck::Decode(PASN_Stream & strm)
7254 if (!PreambleDecode(strm))
7255 return FALSE;
7257 if (!m_entryNumbers.Decode(strm))
7258 return FALSE;
7260 return UnknownExtensionsDecode(strm);
7264 void H245_RequestMultiplexEntryAck::Encode(PASN_Stream & strm) const
7266 PreambleEncode(strm);
7268 m_entryNumbers.Encode(strm);
7270 UnknownExtensionsEncode(strm);
7274 PObject * H245_RequestMultiplexEntryAck::Clone() const
7276 #ifndef PASN_LEANANDMEAN
7277 PAssert(IsClass(H245_RequestMultiplexEntryAck::Class()), PInvalidCast);
7278 #endif
7279 return new H245_RequestMultiplexEntryAck(*this);
7284 // RequestMultiplexEntryReject
7287 H245_RequestMultiplexEntryReject::H245_RequestMultiplexEntryReject(unsigned tag, PASN_Object::TagClass tagClass)
7288 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7290 m_entryNumbers.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
7291 m_rejectionDescriptions.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
7295 #ifndef PASN_NOPRINTON
7296 void H245_RequestMultiplexEntryReject::PrintOn(ostream & strm) const
7298 int indent = strm.precision() + 2;
7299 strm << "{\n";
7300 strm << setw(indent+15) << "entryNumbers = " << setprecision(indent) << m_entryNumbers << '\n';
7301 strm << setw(indent+24) << "rejectionDescriptions = " << setprecision(indent) << m_rejectionDescriptions << '\n';
7302 strm << setw(indent-1) << setprecision(indent-2) << "}";
7304 #endif
7307 PObject::Comparison H245_RequestMultiplexEntryReject::Compare(const PObject & obj) const
7309 #ifndef PASN_LEANANDMEAN
7310 PAssert(PIsDescendant(&obj, H245_RequestMultiplexEntryReject), PInvalidCast);
7311 #endif
7312 const H245_RequestMultiplexEntryReject & other = (const H245_RequestMultiplexEntryReject &)obj;
7314 Comparison result;
7316 if ((result = m_entryNumbers.Compare(other.m_entryNumbers)) != EqualTo)
7317 return result;
7318 if ((result = m_rejectionDescriptions.Compare(other.m_rejectionDescriptions)) != EqualTo)
7319 return result;
7321 return PASN_Sequence::Compare(other);
7325 PINDEX H245_RequestMultiplexEntryReject::GetDataLength() const
7327 PINDEX length = 0;
7328 length += m_entryNumbers.GetObjectLength();
7329 length += m_rejectionDescriptions.GetObjectLength();
7330 return length;
7334 BOOL H245_RequestMultiplexEntryReject::Decode(PASN_Stream & strm)
7336 if (!PreambleDecode(strm))
7337 return FALSE;
7339 if (!m_entryNumbers.Decode(strm))
7340 return FALSE;
7341 if (!m_rejectionDescriptions.Decode(strm))
7342 return FALSE;
7344 return UnknownExtensionsDecode(strm);
7348 void H245_RequestMultiplexEntryReject::Encode(PASN_Stream & strm) const
7350 PreambleEncode(strm);
7352 m_entryNumbers.Encode(strm);
7353 m_rejectionDescriptions.Encode(strm);
7355 UnknownExtensionsEncode(strm);
7359 PObject * H245_RequestMultiplexEntryReject::Clone() const
7361 #ifndef PASN_LEANANDMEAN
7362 PAssert(IsClass(H245_RequestMultiplexEntryReject::Class()), PInvalidCast);
7363 #endif
7364 return new H245_RequestMultiplexEntryReject(*this);
7369 // RequestMultiplexEntryRejectionDescriptions
7372 H245_RequestMultiplexEntryRejectionDescriptions::H245_RequestMultiplexEntryRejectionDescriptions(unsigned tag, PASN_Object::TagClass tagClass)
7373 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7378 #ifndef PASN_NOPRINTON
7379 void H245_RequestMultiplexEntryRejectionDescriptions::PrintOn(ostream & strm) const
7381 int indent = strm.precision() + 2;
7382 strm << "{\n";
7383 strm << setw(indent+28) << "multiplexTableEntryNumber = " << setprecision(indent) << m_multiplexTableEntryNumber << '\n';
7384 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
7385 strm << setw(indent-1) << setprecision(indent-2) << "}";
7387 #endif
7390 PObject::Comparison H245_RequestMultiplexEntryRejectionDescriptions::Compare(const PObject & obj) const
7392 #ifndef PASN_LEANANDMEAN
7393 PAssert(PIsDescendant(&obj, H245_RequestMultiplexEntryRejectionDescriptions), PInvalidCast);
7394 #endif
7395 const H245_RequestMultiplexEntryRejectionDescriptions & other = (const H245_RequestMultiplexEntryRejectionDescriptions &)obj;
7397 Comparison result;
7399 if ((result = m_multiplexTableEntryNumber.Compare(other.m_multiplexTableEntryNumber)) != EqualTo)
7400 return result;
7401 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
7402 return result;
7404 return PASN_Sequence::Compare(other);
7408 PINDEX H245_RequestMultiplexEntryRejectionDescriptions::GetDataLength() const
7410 PINDEX length = 0;
7411 length += m_multiplexTableEntryNumber.GetObjectLength();
7412 length += m_cause.GetObjectLength();
7413 return length;
7417 BOOL H245_RequestMultiplexEntryRejectionDescriptions::Decode(PASN_Stream & strm)
7419 if (!PreambleDecode(strm))
7420 return FALSE;
7422 if (!m_multiplexTableEntryNumber.Decode(strm))
7423 return FALSE;
7424 if (!m_cause.Decode(strm))
7425 return FALSE;
7427 return UnknownExtensionsDecode(strm);
7431 void H245_RequestMultiplexEntryRejectionDescriptions::Encode(PASN_Stream & strm) const
7433 PreambleEncode(strm);
7435 m_multiplexTableEntryNumber.Encode(strm);
7436 m_cause.Encode(strm);
7438 UnknownExtensionsEncode(strm);
7442 PObject * H245_RequestMultiplexEntryRejectionDescriptions::Clone() const
7444 #ifndef PASN_LEANANDMEAN
7445 PAssert(IsClass(H245_RequestMultiplexEntryRejectionDescriptions::Class()), PInvalidCast);
7446 #endif
7447 return new H245_RequestMultiplexEntryRejectionDescriptions(*this);
7452 // RequestMultiplexEntryRelease
7455 H245_RequestMultiplexEntryRelease::H245_RequestMultiplexEntryRelease(unsigned tag, PASN_Object::TagClass tagClass)
7456 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7458 m_entryNumbers.SetConstraints(PASN_Object::FixedConstraint, 1, 15);
7462 #ifndef PASN_NOPRINTON
7463 void H245_RequestMultiplexEntryRelease::PrintOn(ostream & strm) const
7465 int indent = strm.precision() + 2;
7466 strm << "{\n";
7467 strm << setw(indent+15) << "entryNumbers = " << setprecision(indent) << m_entryNumbers << '\n';
7468 strm << setw(indent-1) << setprecision(indent-2) << "}";
7470 #endif
7473 PObject::Comparison H245_RequestMultiplexEntryRelease::Compare(const PObject & obj) const
7475 #ifndef PASN_LEANANDMEAN
7476 PAssert(PIsDescendant(&obj, H245_RequestMultiplexEntryRelease), PInvalidCast);
7477 #endif
7478 const H245_RequestMultiplexEntryRelease & other = (const H245_RequestMultiplexEntryRelease &)obj;
7480 Comparison result;
7482 if ((result = m_entryNumbers.Compare(other.m_entryNumbers)) != EqualTo)
7483 return result;
7485 return PASN_Sequence::Compare(other);
7489 PINDEX H245_RequestMultiplexEntryRelease::GetDataLength() const
7491 PINDEX length = 0;
7492 length += m_entryNumbers.GetObjectLength();
7493 return length;
7497 BOOL H245_RequestMultiplexEntryRelease::Decode(PASN_Stream & strm)
7499 if (!PreambleDecode(strm))
7500 return FALSE;
7502 if (!m_entryNumbers.Decode(strm))
7503 return FALSE;
7505 return UnknownExtensionsDecode(strm);
7509 void H245_RequestMultiplexEntryRelease::Encode(PASN_Stream & strm) const
7511 PreambleEncode(strm);
7513 m_entryNumbers.Encode(strm);
7515 UnknownExtensionsEncode(strm);
7519 PObject * H245_RequestMultiplexEntryRelease::Clone() const
7521 #ifndef PASN_LEANANDMEAN
7522 PAssert(IsClass(H245_RequestMultiplexEntryRelease::Class()), PInvalidCast);
7523 #endif
7524 return new H245_RequestMultiplexEntryRelease(*this);
7529 // RequestMode
7532 H245_RequestMode::H245_RequestMode(unsigned tag, PASN_Object::TagClass tagClass)
7533 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7535 m_requestedModes.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
7539 #ifndef PASN_NOPRINTON
7540 void H245_RequestMode::PrintOn(ostream & strm) const
7542 int indent = strm.precision() + 2;
7543 strm << "{\n";
7544 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
7545 strm << setw(indent+17) << "requestedModes = " << setprecision(indent) << m_requestedModes << '\n';
7546 strm << setw(indent-1) << setprecision(indent-2) << "}";
7548 #endif
7551 PObject::Comparison H245_RequestMode::Compare(const PObject & obj) const
7553 #ifndef PASN_LEANANDMEAN
7554 PAssert(PIsDescendant(&obj, H245_RequestMode), PInvalidCast);
7555 #endif
7556 const H245_RequestMode & other = (const H245_RequestMode &)obj;
7558 Comparison result;
7560 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
7561 return result;
7562 if ((result = m_requestedModes.Compare(other.m_requestedModes)) != EqualTo)
7563 return result;
7565 return PASN_Sequence::Compare(other);
7569 PINDEX H245_RequestMode::GetDataLength() const
7571 PINDEX length = 0;
7572 length += m_sequenceNumber.GetObjectLength();
7573 length += m_requestedModes.GetObjectLength();
7574 return length;
7578 BOOL H245_RequestMode::Decode(PASN_Stream & strm)
7580 if (!PreambleDecode(strm))
7581 return FALSE;
7583 if (!m_sequenceNumber.Decode(strm))
7584 return FALSE;
7585 if (!m_requestedModes.Decode(strm))
7586 return FALSE;
7588 return UnknownExtensionsDecode(strm);
7592 void H245_RequestMode::Encode(PASN_Stream & strm) const
7594 PreambleEncode(strm);
7596 m_sequenceNumber.Encode(strm);
7597 m_requestedModes.Encode(strm);
7599 UnknownExtensionsEncode(strm);
7603 PObject * H245_RequestMode::Clone() const
7605 #ifndef PASN_LEANANDMEAN
7606 PAssert(IsClass(H245_RequestMode::Class()), PInvalidCast);
7607 #endif
7608 return new H245_RequestMode(*this);
7613 // RequestModeAck
7616 H245_RequestModeAck::H245_RequestModeAck(unsigned tag, PASN_Object::TagClass tagClass)
7617 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7622 #ifndef PASN_NOPRINTON
7623 void H245_RequestModeAck::PrintOn(ostream & strm) const
7625 int indent = strm.precision() + 2;
7626 strm << "{\n";
7627 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
7628 strm << setw(indent+11) << "response = " << setprecision(indent) << m_response << '\n';
7629 strm << setw(indent-1) << setprecision(indent-2) << "}";
7631 #endif
7634 PObject::Comparison H245_RequestModeAck::Compare(const PObject & obj) const
7636 #ifndef PASN_LEANANDMEAN
7637 PAssert(PIsDescendant(&obj, H245_RequestModeAck), PInvalidCast);
7638 #endif
7639 const H245_RequestModeAck & other = (const H245_RequestModeAck &)obj;
7641 Comparison result;
7643 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
7644 return result;
7645 if ((result = m_response.Compare(other.m_response)) != EqualTo)
7646 return result;
7648 return PASN_Sequence::Compare(other);
7652 PINDEX H245_RequestModeAck::GetDataLength() const
7654 PINDEX length = 0;
7655 length += m_sequenceNumber.GetObjectLength();
7656 length += m_response.GetObjectLength();
7657 return length;
7661 BOOL H245_RequestModeAck::Decode(PASN_Stream & strm)
7663 if (!PreambleDecode(strm))
7664 return FALSE;
7666 if (!m_sequenceNumber.Decode(strm))
7667 return FALSE;
7668 if (!m_response.Decode(strm))
7669 return FALSE;
7671 return UnknownExtensionsDecode(strm);
7675 void H245_RequestModeAck::Encode(PASN_Stream & strm) const
7677 PreambleEncode(strm);
7679 m_sequenceNumber.Encode(strm);
7680 m_response.Encode(strm);
7682 UnknownExtensionsEncode(strm);
7686 PObject * H245_RequestModeAck::Clone() const
7688 #ifndef PASN_LEANANDMEAN
7689 PAssert(IsClass(H245_RequestModeAck::Class()), PInvalidCast);
7690 #endif
7691 return new H245_RequestModeAck(*this);
7696 // RequestModeReject
7699 H245_RequestModeReject::H245_RequestModeReject(unsigned tag, PASN_Object::TagClass tagClass)
7700 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7705 #ifndef PASN_NOPRINTON
7706 void H245_RequestModeReject::PrintOn(ostream & strm) const
7708 int indent = strm.precision() + 2;
7709 strm << "{\n";
7710 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
7711 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
7712 strm << setw(indent-1) << setprecision(indent-2) << "}";
7714 #endif
7717 PObject::Comparison H245_RequestModeReject::Compare(const PObject & obj) const
7719 #ifndef PASN_LEANANDMEAN
7720 PAssert(PIsDescendant(&obj, H245_RequestModeReject), PInvalidCast);
7721 #endif
7722 const H245_RequestModeReject & other = (const H245_RequestModeReject &)obj;
7724 Comparison result;
7726 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
7727 return result;
7728 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
7729 return result;
7731 return PASN_Sequence::Compare(other);
7735 PINDEX H245_RequestModeReject::GetDataLength() const
7737 PINDEX length = 0;
7738 length += m_sequenceNumber.GetObjectLength();
7739 length += m_cause.GetObjectLength();
7740 return length;
7744 BOOL H245_RequestModeReject::Decode(PASN_Stream & strm)
7746 if (!PreambleDecode(strm))
7747 return FALSE;
7749 if (!m_sequenceNumber.Decode(strm))
7750 return FALSE;
7751 if (!m_cause.Decode(strm))
7752 return FALSE;
7754 return UnknownExtensionsDecode(strm);
7758 void H245_RequestModeReject::Encode(PASN_Stream & strm) const
7760 PreambleEncode(strm);
7762 m_sequenceNumber.Encode(strm);
7763 m_cause.Encode(strm);
7765 UnknownExtensionsEncode(strm);
7769 PObject * H245_RequestModeReject::Clone() const
7771 #ifndef PASN_LEANANDMEAN
7772 PAssert(IsClass(H245_RequestModeReject::Class()), PInvalidCast);
7773 #endif
7774 return new H245_RequestModeReject(*this);
7779 // RedundancyEncodingDTModeElement
7782 H245_RedundancyEncodingDTModeElement::H245_RedundancyEncodingDTModeElement(unsigned tag, PASN_Object::TagClass tagClass)
7783 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7788 #ifndef PASN_NOPRINTON
7789 void H245_RedundancyEncodingDTModeElement::PrintOn(ostream & strm) const
7791 int indent = strm.precision() + 2;
7792 strm << "{\n";
7793 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
7794 strm << setw(indent-1) << setprecision(indent-2) << "}";
7796 #endif
7799 PObject::Comparison H245_RedundancyEncodingDTModeElement::Compare(const PObject & obj) const
7801 #ifndef PASN_LEANANDMEAN
7802 PAssert(PIsDescendant(&obj, H245_RedundancyEncodingDTModeElement), PInvalidCast);
7803 #endif
7804 const H245_RedundancyEncodingDTModeElement & other = (const H245_RedundancyEncodingDTModeElement &)obj;
7806 Comparison result;
7808 if ((result = m_type.Compare(other.m_type)) != EqualTo)
7809 return result;
7811 return PASN_Sequence::Compare(other);
7815 PINDEX H245_RedundancyEncodingDTModeElement::GetDataLength() const
7817 PINDEX length = 0;
7818 length += m_type.GetObjectLength();
7819 return length;
7823 BOOL H245_RedundancyEncodingDTModeElement::Decode(PASN_Stream & strm)
7825 if (!PreambleDecode(strm))
7826 return FALSE;
7828 if (!m_type.Decode(strm))
7829 return FALSE;
7831 return UnknownExtensionsDecode(strm);
7835 void H245_RedundancyEncodingDTModeElement::Encode(PASN_Stream & strm) const
7837 PreambleEncode(strm);
7839 m_type.Encode(strm);
7841 UnknownExtensionsEncode(strm);
7845 PObject * H245_RedundancyEncodingDTModeElement::Clone() const
7847 #ifndef PASN_LEANANDMEAN
7848 PAssert(IsClass(H245_RedundancyEncodingDTModeElement::Class()), PInvalidCast);
7849 #endif
7850 return new H245_RedundancyEncodingDTModeElement(*this);
7855 // MultiplePayloadStreamMode
7858 H245_MultiplePayloadStreamMode::H245_MultiplePayloadStreamMode(unsigned tag, PASN_Object::TagClass tagClass)
7859 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
7864 #ifndef PASN_NOPRINTON
7865 void H245_MultiplePayloadStreamMode::PrintOn(ostream & strm) const
7867 int indent = strm.precision() + 2;
7868 strm << "{\n";
7869 strm << setw(indent+11) << "elements = " << setprecision(indent) << m_elements << '\n';
7870 strm << setw(indent-1) << setprecision(indent-2) << "}";
7872 #endif
7875 PObject::Comparison H245_MultiplePayloadStreamMode::Compare(const PObject & obj) const
7877 #ifndef PASN_LEANANDMEAN
7878 PAssert(PIsDescendant(&obj, H245_MultiplePayloadStreamMode), PInvalidCast);
7879 #endif
7880 const H245_MultiplePayloadStreamMode & other = (const H245_MultiplePayloadStreamMode &)obj;
7882 Comparison result;
7884 if ((result = m_elements.Compare(other.m_elements)) != EqualTo)
7885 return result;
7887 return PASN_Sequence::Compare(other);
7891 PINDEX H245_MultiplePayloadStreamMode::GetDataLength() const
7893 PINDEX length = 0;
7894 length += m_elements.GetObjectLength();
7895 return length;
7899 BOOL H245_MultiplePayloadStreamMode::Decode(PASN_Stream & strm)
7901 if (!PreambleDecode(strm))
7902 return FALSE;
7904 if (!m_elements.Decode(strm))
7905 return FALSE;
7907 return UnknownExtensionsDecode(strm);
7911 void H245_MultiplePayloadStreamMode::Encode(PASN_Stream & strm) const
7913 PreambleEncode(strm);
7915 m_elements.Encode(strm);
7917 UnknownExtensionsEncode(strm);
7921 PObject * H245_MultiplePayloadStreamMode::Clone() const
7923 #ifndef PASN_LEANANDMEAN
7924 PAssert(IsClass(H245_MultiplePayloadStreamMode::Class()), PInvalidCast);
7925 #endif
7926 return new H245_MultiplePayloadStreamMode(*this);
7931 // FECMode
7934 H245_FECMode::H245_FECMode(unsigned tag, PASN_Object::TagClass tagClass)
7935 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
7940 #ifndef PASN_NOPRINTON
7941 void H245_FECMode::PrintOn(ostream & strm) const
7943 int indent = strm.precision() + 2;
7944 strm << "{\n";
7945 strm << setw(indent+19) << "protectedElement = " << setprecision(indent) << m_protectedElement << '\n';
7946 if (HasOptionalField(e_fecScheme))
7947 strm << setw(indent+12) << "fecScheme = " << setprecision(indent) << m_fecScheme << '\n';
7948 if (HasOptionalField(e_rfc2733Format))
7949 strm << setw(indent+16) << "rfc2733Format = " << setprecision(indent) << m_rfc2733Format << '\n';
7950 strm << setw(indent-1) << setprecision(indent-2) << "}";
7952 #endif
7955 PObject::Comparison H245_FECMode::Compare(const PObject & obj) const
7957 #ifndef PASN_LEANANDMEAN
7958 PAssert(PIsDescendant(&obj, H245_FECMode), PInvalidCast);
7959 #endif
7960 const H245_FECMode & other = (const H245_FECMode &)obj;
7962 Comparison result;
7964 if ((result = m_protectedElement.Compare(other.m_protectedElement)) != EqualTo)
7965 return result;
7966 if ((result = m_fecScheme.Compare(other.m_fecScheme)) != EqualTo)
7967 return result;
7968 if ((result = m_rfc2733Format.Compare(other.m_rfc2733Format)) != EqualTo)
7969 return result;
7971 return PASN_Sequence::Compare(other);
7975 PINDEX H245_FECMode::GetDataLength() const
7977 PINDEX length = 0;
7978 length += m_protectedElement.GetObjectLength();
7979 if (HasOptionalField(e_fecScheme))
7980 length += m_fecScheme.GetObjectLength();
7981 if (HasOptionalField(e_rfc2733Format))
7982 length += m_rfc2733Format.GetObjectLength();
7983 return length;
7987 BOOL H245_FECMode::Decode(PASN_Stream & strm)
7989 if (!PreambleDecode(strm))
7990 return FALSE;
7992 if (!m_protectedElement.Decode(strm))
7993 return FALSE;
7994 if (HasOptionalField(e_fecScheme) && !m_fecScheme.Decode(strm))
7995 return FALSE;
7996 if (HasOptionalField(e_rfc2733Format) && !m_rfc2733Format.Decode(strm))
7997 return FALSE;
7999 return UnknownExtensionsDecode(strm);
8003 void H245_FECMode::Encode(PASN_Stream & strm) const
8005 PreambleEncode(strm);
8007 m_protectedElement.Encode(strm);
8008 if (HasOptionalField(e_fecScheme))
8009 m_fecScheme.Encode(strm);
8010 if (HasOptionalField(e_rfc2733Format))
8011 m_rfc2733Format.Encode(strm);
8013 UnknownExtensionsEncode(strm);
8017 PObject * H245_FECMode::Clone() const
8019 #ifndef PASN_LEANANDMEAN
8020 PAssert(IsClass(H245_FECMode::Class()), PInvalidCast);
8021 #endif
8022 return new H245_FECMode(*this);
8027 // H223ModeParameters
8030 H245_H223ModeParameters::H245_H223ModeParameters(unsigned tag, PASN_Object::TagClass tagClass)
8031 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8036 #ifndef PASN_NOPRINTON
8037 void H245_H223ModeParameters::PrintOn(ostream & strm) const
8039 int indent = strm.precision() + 2;
8040 strm << "{\n";
8041 strm << setw(indent+22) << "adaptationLayerType = " << setprecision(indent) << m_adaptationLayerType << '\n';
8042 strm << setw(indent+18) << "segmentableFlag = " << setprecision(indent) << m_segmentableFlag << '\n';
8043 strm << setw(indent-1) << setprecision(indent-2) << "}";
8045 #endif
8048 PObject::Comparison H245_H223ModeParameters::Compare(const PObject & obj) const
8050 #ifndef PASN_LEANANDMEAN
8051 PAssert(PIsDescendant(&obj, H245_H223ModeParameters), PInvalidCast);
8052 #endif
8053 const H245_H223ModeParameters & other = (const H245_H223ModeParameters &)obj;
8055 Comparison result;
8057 if ((result = m_adaptationLayerType.Compare(other.m_adaptationLayerType)) != EqualTo)
8058 return result;
8059 if ((result = m_segmentableFlag.Compare(other.m_segmentableFlag)) != EqualTo)
8060 return result;
8062 return PASN_Sequence::Compare(other);
8066 PINDEX H245_H223ModeParameters::GetDataLength() const
8068 PINDEX length = 0;
8069 length += m_adaptationLayerType.GetObjectLength();
8070 length += m_segmentableFlag.GetObjectLength();
8071 return length;
8075 BOOL H245_H223ModeParameters::Decode(PASN_Stream & strm)
8077 if (!PreambleDecode(strm))
8078 return FALSE;
8080 if (!m_adaptationLayerType.Decode(strm))
8081 return FALSE;
8082 if (!m_segmentableFlag.Decode(strm))
8083 return FALSE;
8085 return UnknownExtensionsDecode(strm);
8089 void H245_H223ModeParameters::Encode(PASN_Stream & strm) const
8091 PreambleEncode(strm);
8093 m_adaptationLayerType.Encode(strm);
8094 m_segmentableFlag.Encode(strm);
8096 UnknownExtensionsEncode(strm);
8100 PObject * H245_H223ModeParameters::Clone() const
8102 #ifndef PASN_LEANANDMEAN
8103 PAssert(IsClass(H245_H223ModeParameters::Class()), PInvalidCast);
8104 #endif
8105 return new H245_H223ModeParameters(*this);
8110 // RedundancyEncodingMode
8113 H245_RedundancyEncodingMode::H245_RedundancyEncodingMode(unsigned tag, PASN_Object::TagClass tagClass)
8114 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
8119 #ifndef PASN_NOPRINTON
8120 void H245_RedundancyEncodingMode::PrintOn(ostream & strm) const
8122 int indent = strm.precision() + 2;
8123 strm << "{\n";
8124 strm << setw(indent+27) << "redundancyEncodingMethod = " << setprecision(indent) << m_redundancyEncodingMethod << '\n';
8125 if (HasOptionalField(e_secondaryEncoding))
8126 strm << setw(indent+20) << "secondaryEncoding = " << setprecision(indent) << m_secondaryEncoding << '\n';
8127 strm << setw(indent-1) << setprecision(indent-2) << "}";
8129 #endif
8132 PObject::Comparison H245_RedundancyEncodingMode::Compare(const PObject & obj) const
8134 #ifndef PASN_LEANANDMEAN
8135 PAssert(PIsDescendant(&obj, H245_RedundancyEncodingMode), PInvalidCast);
8136 #endif
8137 const H245_RedundancyEncodingMode & other = (const H245_RedundancyEncodingMode &)obj;
8139 Comparison result;
8141 if ((result = m_redundancyEncodingMethod.Compare(other.m_redundancyEncodingMethod)) != EqualTo)
8142 return result;
8143 if ((result = m_secondaryEncoding.Compare(other.m_secondaryEncoding)) != EqualTo)
8144 return result;
8146 return PASN_Sequence::Compare(other);
8150 PINDEX H245_RedundancyEncodingMode::GetDataLength() const
8152 PINDEX length = 0;
8153 length += m_redundancyEncodingMethod.GetObjectLength();
8154 if (HasOptionalField(e_secondaryEncoding))
8155 length += m_secondaryEncoding.GetObjectLength();
8156 return length;
8160 BOOL H245_RedundancyEncodingMode::Decode(PASN_Stream & strm)
8162 if (!PreambleDecode(strm))
8163 return FALSE;
8165 if (!m_redundancyEncodingMethod.Decode(strm))
8166 return FALSE;
8167 if (HasOptionalField(e_secondaryEncoding) && !m_secondaryEncoding.Decode(strm))
8168 return FALSE;
8170 return UnknownExtensionsDecode(strm);
8174 void H245_RedundancyEncodingMode::Encode(PASN_Stream & strm) const
8176 PreambleEncode(strm);
8178 m_redundancyEncodingMethod.Encode(strm);
8179 if (HasOptionalField(e_secondaryEncoding))
8180 m_secondaryEncoding.Encode(strm);
8182 UnknownExtensionsEncode(strm);
8186 PObject * H245_RedundancyEncodingMode::Clone() const
8188 #ifndef PASN_LEANANDMEAN
8189 PAssert(IsClass(H245_RedundancyEncodingMode::Class()), PInvalidCast);
8190 #endif
8191 return new H245_RedundancyEncodingMode(*this);
8196 // H261VideoMode
8199 H245_H261VideoMode::H245_H261VideoMode(unsigned tag, PASN_Object::TagClass tagClass)
8200 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8202 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 19200);
8206 #ifndef PASN_NOPRINTON
8207 void H245_H261VideoMode::PrintOn(ostream & strm) const
8209 int indent = strm.precision() + 2;
8210 strm << "{\n";
8211 strm << setw(indent+13) << "resolution = " << setprecision(indent) << m_resolution << '\n';
8212 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
8213 strm << setw(indent+25) << "stillImageTransmission = " << setprecision(indent) << m_stillImageTransmission << '\n';
8214 strm << setw(indent-1) << setprecision(indent-2) << "}";
8216 #endif
8219 PObject::Comparison H245_H261VideoMode::Compare(const PObject & obj) const
8221 #ifndef PASN_LEANANDMEAN
8222 PAssert(PIsDescendant(&obj, H245_H261VideoMode), PInvalidCast);
8223 #endif
8224 const H245_H261VideoMode & other = (const H245_H261VideoMode &)obj;
8226 Comparison result;
8228 if ((result = m_resolution.Compare(other.m_resolution)) != EqualTo)
8229 return result;
8230 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
8231 return result;
8232 if ((result = m_stillImageTransmission.Compare(other.m_stillImageTransmission)) != EqualTo)
8233 return result;
8235 return PASN_Sequence::Compare(other);
8239 PINDEX H245_H261VideoMode::GetDataLength() const
8241 PINDEX length = 0;
8242 length += m_resolution.GetObjectLength();
8243 length += m_bitRate.GetObjectLength();
8244 length += m_stillImageTransmission.GetObjectLength();
8245 return length;
8249 BOOL H245_H261VideoMode::Decode(PASN_Stream & strm)
8251 if (!PreambleDecode(strm))
8252 return FALSE;
8254 if (!m_resolution.Decode(strm))
8255 return FALSE;
8256 if (!m_bitRate.Decode(strm))
8257 return FALSE;
8258 if (!m_stillImageTransmission.Decode(strm))
8259 return FALSE;
8261 return UnknownExtensionsDecode(strm);
8265 void H245_H261VideoMode::Encode(PASN_Stream & strm) const
8267 PreambleEncode(strm);
8269 m_resolution.Encode(strm);
8270 m_bitRate.Encode(strm);
8271 m_stillImageTransmission.Encode(strm);
8273 UnknownExtensionsEncode(strm);
8277 PObject * H245_H261VideoMode::Clone() const
8279 #ifndef PASN_LEANANDMEAN
8280 PAssert(IsClass(H245_H261VideoMode::Class()), PInvalidCast);
8281 #endif
8282 return new H245_H261VideoMode(*this);
8287 // H262VideoMode
8290 H245_H262VideoMode::H245_H262VideoMode(unsigned tag, PASN_Object::TagClass tagClass)
8291 : PASN_Sequence(tag, tagClass, 6, TRUE, 0)
8293 m_videoBitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 1073741823);
8294 m_vbvBufferSize.SetConstraints(PASN_Object::FixedConstraint, 0, 262143);
8295 m_samplesPerLine.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
8296 m_linesPerFrame.SetConstraints(PASN_Object::FixedConstraint, 0, 16383);
8297 m_framesPerSecond.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
8298 m_luminanceSampleRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
8302 #ifndef PASN_NOPRINTON
8303 void H245_H262VideoMode::PrintOn(ostream & strm) const
8305 int indent = strm.precision() + 2;
8306 strm << "{\n";
8307 strm << setw(indent+18) << "profileAndLevel = " << setprecision(indent) << m_profileAndLevel << '\n';
8308 if (HasOptionalField(e_videoBitRate))
8309 strm << setw(indent+15) << "videoBitRate = " << setprecision(indent) << m_videoBitRate << '\n';
8310 if (HasOptionalField(e_vbvBufferSize))
8311 strm << setw(indent+16) << "vbvBufferSize = " << setprecision(indent) << m_vbvBufferSize << '\n';
8312 if (HasOptionalField(e_samplesPerLine))
8313 strm << setw(indent+17) << "samplesPerLine = " << setprecision(indent) << m_samplesPerLine << '\n';
8314 if (HasOptionalField(e_linesPerFrame))
8315 strm << setw(indent+16) << "linesPerFrame = " << setprecision(indent) << m_linesPerFrame << '\n';
8316 if (HasOptionalField(e_framesPerSecond))
8317 strm << setw(indent+18) << "framesPerSecond = " << setprecision(indent) << m_framesPerSecond << '\n';
8318 if (HasOptionalField(e_luminanceSampleRate))
8319 strm << setw(indent+22) << "luminanceSampleRate = " << setprecision(indent) << m_luminanceSampleRate << '\n';
8320 strm << setw(indent-1) << setprecision(indent-2) << "}";
8322 #endif
8325 PObject::Comparison H245_H262VideoMode::Compare(const PObject & obj) const
8327 #ifndef PASN_LEANANDMEAN
8328 PAssert(PIsDescendant(&obj, H245_H262VideoMode), PInvalidCast);
8329 #endif
8330 const H245_H262VideoMode & other = (const H245_H262VideoMode &)obj;
8332 Comparison result;
8334 if ((result = m_profileAndLevel.Compare(other.m_profileAndLevel)) != EqualTo)
8335 return result;
8336 if ((result = m_videoBitRate.Compare(other.m_videoBitRate)) != EqualTo)
8337 return result;
8338 if ((result = m_vbvBufferSize.Compare(other.m_vbvBufferSize)) != EqualTo)
8339 return result;
8340 if ((result = m_samplesPerLine.Compare(other.m_samplesPerLine)) != EqualTo)
8341 return result;
8342 if ((result = m_linesPerFrame.Compare(other.m_linesPerFrame)) != EqualTo)
8343 return result;
8344 if ((result = m_framesPerSecond.Compare(other.m_framesPerSecond)) != EqualTo)
8345 return result;
8346 if ((result = m_luminanceSampleRate.Compare(other.m_luminanceSampleRate)) != EqualTo)
8347 return result;
8349 return PASN_Sequence::Compare(other);
8353 PINDEX H245_H262VideoMode::GetDataLength() const
8355 PINDEX length = 0;
8356 length += m_profileAndLevel.GetObjectLength();
8357 if (HasOptionalField(e_videoBitRate))
8358 length += m_videoBitRate.GetObjectLength();
8359 if (HasOptionalField(e_vbvBufferSize))
8360 length += m_vbvBufferSize.GetObjectLength();
8361 if (HasOptionalField(e_samplesPerLine))
8362 length += m_samplesPerLine.GetObjectLength();
8363 if (HasOptionalField(e_linesPerFrame))
8364 length += m_linesPerFrame.GetObjectLength();
8365 if (HasOptionalField(e_framesPerSecond))
8366 length += m_framesPerSecond.GetObjectLength();
8367 if (HasOptionalField(e_luminanceSampleRate))
8368 length += m_luminanceSampleRate.GetObjectLength();
8369 return length;
8373 BOOL H245_H262VideoMode::Decode(PASN_Stream & strm)
8375 if (!PreambleDecode(strm))
8376 return FALSE;
8378 if (!m_profileAndLevel.Decode(strm))
8379 return FALSE;
8380 if (HasOptionalField(e_videoBitRate) && !m_videoBitRate.Decode(strm))
8381 return FALSE;
8382 if (HasOptionalField(e_vbvBufferSize) && !m_vbvBufferSize.Decode(strm))
8383 return FALSE;
8384 if (HasOptionalField(e_samplesPerLine) && !m_samplesPerLine.Decode(strm))
8385 return FALSE;
8386 if (HasOptionalField(e_linesPerFrame) && !m_linesPerFrame.Decode(strm))
8387 return FALSE;
8388 if (HasOptionalField(e_framesPerSecond) && !m_framesPerSecond.Decode(strm))
8389 return FALSE;
8390 if (HasOptionalField(e_luminanceSampleRate) && !m_luminanceSampleRate.Decode(strm))
8391 return FALSE;
8393 return UnknownExtensionsDecode(strm);
8397 void H245_H262VideoMode::Encode(PASN_Stream & strm) const
8399 PreambleEncode(strm);
8401 m_profileAndLevel.Encode(strm);
8402 if (HasOptionalField(e_videoBitRate))
8403 m_videoBitRate.Encode(strm);
8404 if (HasOptionalField(e_vbvBufferSize))
8405 m_vbvBufferSize.Encode(strm);
8406 if (HasOptionalField(e_samplesPerLine))
8407 m_samplesPerLine.Encode(strm);
8408 if (HasOptionalField(e_linesPerFrame))
8409 m_linesPerFrame.Encode(strm);
8410 if (HasOptionalField(e_framesPerSecond))
8411 m_framesPerSecond.Encode(strm);
8412 if (HasOptionalField(e_luminanceSampleRate))
8413 m_luminanceSampleRate.Encode(strm);
8415 UnknownExtensionsEncode(strm);
8419 PObject * H245_H262VideoMode::Clone() const
8421 #ifndef PASN_LEANANDMEAN
8422 PAssert(IsClass(H245_H262VideoMode::Class()), PInvalidCast);
8423 #endif
8424 return new H245_H262VideoMode(*this);
8429 // IS11172AudioMode
8432 H245_IS11172AudioMode::H245_IS11172AudioMode(unsigned tag, PASN_Object::TagClass tagClass)
8433 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8435 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 448);
8439 #ifndef PASN_NOPRINTON
8440 void H245_IS11172AudioMode::PrintOn(ostream & strm) const
8442 int indent = strm.precision() + 2;
8443 strm << "{\n";
8444 strm << setw(indent+13) << "audioLayer = " << setprecision(indent) << m_audioLayer << '\n';
8445 strm << setw(indent+16) << "audioSampling = " << setprecision(indent) << m_audioSampling << '\n';
8446 strm << setw(indent+19) << "multichannelType = " << setprecision(indent) << m_multichannelType << '\n';
8447 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
8448 strm << setw(indent-1) << setprecision(indent-2) << "}";
8450 #endif
8453 PObject::Comparison H245_IS11172AudioMode::Compare(const PObject & obj) const
8455 #ifndef PASN_LEANANDMEAN
8456 PAssert(PIsDescendant(&obj, H245_IS11172AudioMode), PInvalidCast);
8457 #endif
8458 const H245_IS11172AudioMode & other = (const H245_IS11172AudioMode &)obj;
8460 Comparison result;
8462 if ((result = m_audioLayer.Compare(other.m_audioLayer)) != EqualTo)
8463 return result;
8464 if ((result = m_audioSampling.Compare(other.m_audioSampling)) != EqualTo)
8465 return result;
8466 if ((result = m_multichannelType.Compare(other.m_multichannelType)) != EqualTo)
8467 return result;
8468 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
8469 return result;
8471 return PASN_Sequence::Compare(other);
8475 PINDEX H245_IS11172AudioMode::GetDataLength() const
8477 PINDEX length = 0;
8478 length += m_audioLayer.GetObjectLength();
8479 length += m_audioSampling.GetObjectLength();
8480 length += m_multichannelType.GetObjectLength();
8481 length += m_bitRate.GetObjectLength();
8482 return length;
8486 BOOL H245_IS11172AudioMode::Decode(PASN_Stream & strm)
8488 if (!PreambleDecode(strm))
8489 return FALSE;
8491 if (!m_audioLayer.Decode(strm))
8492 return FALSE;
8493 if (!m_audioSampling.Decode(strm))
8494 return FALSE;
8495 if (!m_multichannelType.Decode(strm))
8496 return FALSE;
8497 if (!m_bitRate.Decode(strm))
8498 return FALSE;
8500 return UnknownExtensionsDecode(strm);
8504 void H245_IS11172AudioMode::Encode(PASN_Stream & strm) const
8506 PreambleEncode(strm);
8508 m_audioLayer.Encode(strm);
8509 m_audioSampling.Encode(strm);
8510 m_multichannelType.Encode(strm);
8511 m_bitRate.Encode(strm);
8513 UnknownExtensionsEncode(strm);
8517 PObject * H245_IS11172AudioMode::Clone() const
8519 #ifndef PASN_LEANANDMEAN
8520 PAssert(IsClass(H245_IS11172AudioMode::Class()), PInvalidCast);
8521 #endif
8522 return new H245_IS11172AudioMode(*this);
8527 // IS13818AudioMode
8530 H245_IS13818AudioMode::H245_IS13818AudioMode(unsigned tag, PASN_Object::TagClass tagClass)
8531 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8533 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 1130);
8537 #ifndef PASN_NOPRINTON
8538 void H245_IS13818AudioMode::PrintOn(ostream & strm) const
8540 int indent = strm.precision() + 2;
8541 strm << "{\n";
8542 strm << setw(indent+13) << "audioLayer = " << setprecision(indent) << m_audioLayer << '\n';
8543 strm << setw(indent+16) << "audioSampling = " << setprecision(indent) << m_audioSampling << '\n';
8544 strm << setw(indent+19) << "multichannelType = " << setprecision(indent) << m_multichannelType << '\n';
8545 strm << setw(indent+26) << "lowFrequencyEnhancement = " << setprecision(indent) << m_lowFrequencyEnhancement << '\n';
8546 strm << setw(indent+15) << "multilingual = " << setprecision(indent) << m_multilingual << '\n';
8547 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
8548 strm << setw(indent-1) << setprecision(indent-2) << "}";
8550 #endif
8553 PObject::Comparison H245_IS13818AudioMode::Compare(const PObject & obj) const
8555 #ifndef PASN_LEANANDMEAN
8556 PAssert(PIsDescendant(&obj, H245_IS13818AudioMode), PInvalidCast);
8557 #endif
8558 const H245_IS13818AudioMode & other = (const H245_IS13818AudioMode &)obj;
8560 Comparison result;
8562 if ((result = m_audioLayer.Compare(other.m_audioLayer)) != EqualTo)
8563 return result;
8564 if ((result = m_audioSampling.Compare(other.m_audioSampling)) != EqualTo)
8565 return result;
8566 if ((result = m_multichannelType.Compare(other.m_multichannelType)) != EqualTo)
8567 return result;
8568 if ((result = m_lowFrequencyEnhancement.Compare(other.m_lowFrequencyEnhancement)) != EqualTo)
8569 return result;
8570 if ((result = m_multilingual.Compare(other.m_multilingual)) != EqualTo)
8571 return result;
8572 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
8573 return result;
8575 return PASN_Sequence::Compare(other);
8579 PINDEX H245_IS13818AudioMode::GetDataLength() const
8581 PINDEX length = 0;
8582 length += m_audioLayer.GetObjectLength();
8583 length += m_audioSampling.GetObjectLength();
8584 length += m_multichannelType.GetObjectLength();
8585 length += m_lowFrequencyEnhancement.GetObjectLength();
8586 length += m_multilingual.GetObjectLength();
8587 length += m_bitRate.GetObjectLength();
8588 return length;
8592 BOOL H245_IS13818AudioMode::Decode(PASN_Stream & strm)
8594 if (!PreambleDecode(strm))
8595 return FALSE;
8597 if (!m_audioLayer.Decode(strm))
8598 return FALSE;
8599 if (!m_audioSampling.Decode(strm))
8600 return FALSE;
8601 if (!m_multichannelType.Decode(strm))
8602 return FALSE;
8603 if (!m_lowFrequencyEnhancement.Decode(strm))
8604 return FALSE;
8605 if (!m_multilingual.Decode(strm))
8606 return FALSE;
8607 if (!m_bitRate.Decode(strm))
8608 return FALSE;
8610 return UnknownExtensionsDecode(strm);
8614 void H245_IS13818AudioMode::Encode(PASN_Stream & strm) const
8616 PreambleEncode(strm);
8618 m_audioLayer.Encode(strm);
8619 m_audioSampling.Encode(strm);
8620 m_multichannelType.Encode(strm);
8621 m_lowFrequencyEnhancement.Encode(strm);
8622 m_multilingual.Encode(strm);
8623 m_bitRate.Encode(strm);
8625 UnknownExtensionsEncode(strm);
8629 PObject * H245_IS13818AudioMode::Clone() const
8631 #ifndef PASN_LEANANDMEAN
8632 PAssert(IsClass(H245_IS13818AudioMode::Class()), PInvalidCast);
8633 #endif
8634 return new H245_IS13818AudioMode(*this);
8639 // G7231AnnexCMode
8642 H245_G7231AnnexCMode::H245_G7231AnnexCMode(unsigned tag, PASN_Object::TagClass tagClass)
8643 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8645 m_maxAl_sduAudioFrames.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
8649 #ifndef PASN_NOPRINTON
8650 void H245_G7231AnnexCMode::PrintOn(ostream & strm) const
8652 int indent = strm.precision() + 2;
8653 strm << "{\n";
8654 strm << setw(indent+23) << "maxAl_sduAudioFrames = " << setprecision(indent) << m_maxAl_sduAudioFrames << '\n';
8655 strm << setw(indent+21) << "silenceSuppression = " << setprecision(indent) << m_silenceSuppression << '\n';
8656 strm << setw(indent+22) << "g723AnnexCAudioMode = " << setprecision(indent) << m_g723AnnexCAudioMode << '\n';
8657 strm << setw(indent-1) << setprecision(indent-2) << "}";
8659 #endif
8662 PObject::Comparison H245_G7231AnnexCMode::Compare(const PObject & obj) const
8664 #ifndef PASN_LEANANDMEAN
8665 PAssert(PIsDescendant(&obj, H245_G7231AnnexCMode), PInvalidCast);
8666 #endif
8667 const H245_G7231AnnexCMode & other = (const H245_G7231AnnexCMode &)obj;
8669 Comparison result;
8671 if ((result = m_maxAl_sduAudioFrames.Compare(other.m_maxAl_sduAudioFrames)) != EqualTo)
8672 return result;
8673 if ((result = m_silenceSuppression.Compare(other.m_silenceSuppression)) != EqualTo)
8674 return result;
8675 if ((result = m_g723AnnexCAudioMode.Compare(other.m_g723AnnexCAudioMode)) != EqualTo)
8676 return result;
8678 return PASN_Sequence::Compare(other);
8682 PINDEX H245_G7231AnnexCMode::GetDataLength() const
8684 PINDEX length = 0;
8685 length += m_maxAl_sduAudioFrames.GetObjectLength();
8686 length += m_silenceSuppression.GetObjectLength();
8687 length += m_g723AnnexCAudioMode.GetObjectLength();
8688 return length;
8692 BOOL H245_G7231AnnexCMode::Decode(PASN_Stream & strm)
8694 if (!PreambleDecode(strm))
8695 return FALSE;
8697 if (!m_maxAl_sduAudioFrames.Decode(strm))
8698 return FALSE;
8699 if (!m_silenceSuppression.Decode(strm))
8700 return FALSE;
8701 if (!m_g723AnnexCAudioMode.Decode(strm))
8702 return FALSE;
8704 return UnknownExtensionsDecode(strm);
8708 void H245_G7231AnnexCMode::Encode(PASN_Stream & strm) const
8710 PreambleEncode(strm);
8712 m_maxAl_sduAudioFrames.Encode(strm);
8713 m_silenceSuppression.Encode(strm);
8714 m_g723AnnexCAudioMode.Encode(strm);
8716 UnknownExtensionsEncode(strm);
8720 PObject * H245_G7231AnnexCMode::Clone() const
8722 #ifndef PASN_LEANANDMEAN
8723 PAssert(IsClass(H245_G7231AnnexCMode::Class()), PInvalidCast);
8724 #endif
8725 return new H245_G7231AnnexCMode(*this);
8730 // DataMode
8733 H245_DataMode::H245_DataMode(unsigned tag, PASN_Object::TagClass tagClass)
8734 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8736 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 0, 4294967295U);
8740 #ifndef PASN_NOPRINTON
8741 void H245_DataMode::PrintOn(ostream & strm) const
8743 int indent = strm.precision() + 2;
8744 strm << "{\n";
8745 strm << setw(indent+14) << "application = " << setprecision(indent) << m_application << '\n';
8746 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
8747 strm << setw(indent-1) << setprecision(indent-2) << "}";
8749 #endif
8752 PObject::Comparison H245_DataMode::Compare(const PObject & obj) const
8754 #ifndef PASN_LEANANDMEAN
8755 PAssert(PIsDescendant(&obj, H245_DataMode), PInvalidCast);
8756 #endif
8757 const H245_DataMode & other = (const H245_DataMode &)obj;
8759 Comparison result;
8761 if ((result = m_application.Compare(other.m_application)) != EqualTo)
8762 return result;
8763 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
8764 return result;
8766 return PASN_Sequence::Compare(other);
8770 PINDEX H245_DataMode::GetDataLength() const
8772 PINDEX length = 0;
8773 length += m_application.GetObjectLength();
8774 length += m_bitRate.GetObjectLength();
8775 return length;
8779 BOOL H245_DataMode::Decode(PASN_Stream & strm)
8781 if (!PreambleDecode(strm))
8782 return FALSE;
8784 if (!m_application.Decode(strm))
8785 return FALSE;
8786 if (!m_bitRate.Decode(strm))
8787 return FALSE;
8789 return UnknownExtensionsDecode(strm);
8793 void H245_DataMode::Encode(PASN_Stream & strm) const
8795 PreambleEncode(strm);
8797 m_application.Encode(strm);
8798 m_bitRate.Encode(strm);
8800 UnknownExtensionsEncode(strm);
8804 PObject * H245_DataMode::Clone() const
8806 #ifndef PASN_LEANANDMEAN
8807 PAssert(IsClass(H245_DataMode::Class()), PInvalidCast);
8808 #endif
8809 return new H245_DataMode(*this);
8814 // MaintenanceLoopRequest
8817 H245_MaintenanceLoopRequest::H245_MaintenanceLoopRequest(unsigned tag, PASN_Object::TagClass tagClass)
8818 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8823 #ifndef PASN_NOPRINTON
8824 void H245_MaintenanceLoopRequest::PrintOn(ostream & strm) const
8826 int indent = strm.precision() + 2;
8827 strm << "{\n";
8828 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
8829 strm << setw(indent-1) << setprecision(indent-2) << "}";
8831 #endif
8834 PObject::Comparison H245_MaintenanceLoopRequest::Compare(const PObject & obj) const
8836 #ifndef PASN_LEANANDMEAN
8837 PAssert(PIsDescendant(&obj, H245_MaintenanceLoopRequest), PInvalidCast);
8838 #endif
8839 const H245_MaintenanceLoopRequest & other = (const H245_MaintenanceLoopRequest &)obj;
8841 Comparison result;
8843 if ((result = m_type.Compare(other.m_type)) != EqualTo)
8844 return result;
8846 return PASN_Sequence::Compare(other);
8850 PINDEX H245_MaintenanceLoopRequest::GetDataLength() const
8852 PINDEX length = 0;
8853 length += m_type.GetObjectLength();
8854 return length;
8858 BOOL H245_MaintenanceLoopRequest::Decode(PASN_Stream & strm)
8860 if (!PreambleDecode(strm))
8861 return FALSE;
8863 if (!m_type.Decode(strm))
8864 return FALSE;
8866 return UnknownExtensionsDecode(strm);
8870 void H245_MaintenanceLoopRequest::Encode(PASN_Stream & strm) const
8872 PreambleEncode(strm);
8874 m_type.Encode(strm);
8876 UnknownExtensionsEncode(strm);
8880 PObject * H245_MaintenanceLoopRequest::Clone() const
8882 #ifndef PASN_LEANANDMEAN
8883 PAssert(IsClass(H245_MaintenanceLoopRequest::Class()), PInvalidCast);
8884 #endif
8885 return new H245_MaintenanceLoopRequest(*this);
8890 // MaintenanceLoopAck
8893 H245_MaintenanceLoopAck::H245_MaintenanceLoopAck(unsigned tag, PASN_Object::TagClass tagClass)
8894 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8899 #ifndef PASN_NOPRINTON
8900 void H245_MaintenanceLoopAck::PrintOn(ostream & strm) const
8902 int indent = strm.precision() + 2;
8903 strm << "{\n";
8904 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
8905 strm << setw(indent-1) << setprecision(indent-2) << "}";
8907 #endif
8910 PObject::Comparison H245_MaintenanceLoopAck::Compare(const PObject & obj) const
8912 #ifndef PASN_LEANANDMEAN
8913 PAssert(PIsDescendant(&obj, H245_MaintenanceLoopAck), PInvalidCast);
8914 #endif
8915 const H245_MaintenanceLoopAck & other = (const H245_MaintenanceLoopAck &)obj;
8917 Comparison result;
8919 if ((result = m_type.Compare(other.m_type)) != EqualTo)
8920 return result;
8922 return PASN_Sequence::Compare(other);
8926 PINDEX H245_MaintenanceLoopAck::GetDataLength() const
8928 PINDEX length = 0;
8929 length += m_type.GetObjectLength();
8930 return length;
8934 BOOL H245_MaintenanceLoopAck::Decode(PASN_Stream & strm)
8936 if (!PreambleDecode(strm))
8937 return FALSE;
8939 if (!m_type.Decode(strm))
8940 return FALSE;
8942 return UnknownExtensionsDecode(strm);
8946 void H245_MaintenanceLoopAck::Encode(PASN_Stream & strm) const
8948 PreambleEncode(strm);
8950 m_type.Encode(strm);
8952 UnknownExtensionsEncode(strm);
8956 PObject * H245_MaintenanceLoopAck::Clone() const
8958 #ifndef PASN_LEANANDMEAN
8959 PAssert(IsClass(H245_MaintenanceLoopAck::Class()), PInvalidCast);
8960 #endif
8961 return new H245_MaintenanceLoopAck(*this);
8966 // MaintenanceLoopReject
8969 H245_MaintenanceLoopReject::H245_MaintenanceLoopReject(unsigned tag, PASN_Object::TagClass tagClass)
8970 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
8975 #ifndef PASN_NOPRINTON
8976 void H245_MaintenanceLoopReject::PrintOn(ostream & strm) const
8978 int indent = strm.precision() + 2;
8979 strm << "{\n";
8980 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
8981 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
8982 strm << setw(indent-1) << setprecision(indent-2) << "}";
8984 #endif
8987 PObject::Comparison H245_MaintenanceLoopReject::Compare(const PObject & obj) const
8989 #ifndef PASN_LEANANDMEAN
8990 PAssert(PIsDescendant(&obj, H245_MaintenanceLoopReject), PInvalidCast);
8991 #endif
8992 const H245_MaintenanceLoopReject & other = (const H245_MaintenanceLoopReject &)obj;
8994 Comparison result;
8996 if ((result = m_type.Compare(other.m_type)) != EqualTo)
8997 return result;
8998 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
8999 return result;
9001 return PASN_Sequence::Compare(other);
9005 PINDEX H245_MaintenanceLoopReject::GetDataLength() const
9007 PINDEX length = 0;
9008 length += m_type.GetObjectLength();
9009 length += m_cause.GetObjectLength();
9010 return length;
9014 BOOL H245_MaintenanceLoopReject::Decode(PASN_Stream & strm)
9016 if (!PreambleDecode(strm))
9017 return FALSE;
9019 if (!m_type.Decode(strm))
9020 return FALSE;
9021 if (!m_cause.Decode(strm))
9022 return FALSE;
9024 return UnknownExtensionsDecode(strm);
9028 void H245_MaintenanceLoopReject::Encode(PASN_Stream & strm) const
9030 PreambleEncode(strm);
9032 m_type.Encode(strm);
9033 m_cause.Encode(strm);
9035 UnknownExtensionsEncode(strm);
9039 PObject * H245_MaintenanceLoopReject::Clone() const
9041 #ifndef PASN_LEANANDMEAN
9042 PAssert(IsClass(H245_MaintenanceLoopReject::Class()), PInvalidCast);
9043 #endif
9044 return new H245_MaintenanceLoopReject(*this);
9049 // CommunicationModeCommand
9052 H245_CommunicationModeCommand::H245_CommunicationModeCommand(unsigned tag, PASN_Object::TagClass tagClass)
9053 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9055 m_communicationModeTable.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
9059 #ifndef PASN_NOPRINTON
9060 void H245_CommunicationModeCommand::PrintOn(ostream & strm) const
9062 int indent = strm.precision() + 2;
9063 strm << "{\n";
9064 strm << setw(indent+25) << "communicationModeTable = " << setprecision(indent) << m_communicationModeTable << '\n';
9065 strm << setw(indent-1) << setprecision(indent-2) << "}";
9067 #endif
9070 PObject::Comparison H245_CommunicationModeCommand::Compare(const PObject & obj) const
9072 #ifndef PASN_LEANANDMEAN
9073 PAssert(PIsDescendant(&obj, H245_CommunicationModeCommand), PInvalidCast);
9074 #endif
9075 const H245_CommunicationModeCommand & other = (const H245_CommunicationModeCommand &)obj;
9077 Comparison result;
9079 if ((result = m_communicationModeTable.Compare(other.m_communicationModeTable)) != EqualTo)
9080 return result;
9082 return PASN_Sequence::Compare(other);
9086 PINDEX H245_CommunicationModeCommand::GetDataLength() const
9088 PINDEX length = 0;
9089 length += m_communicationModeTable.GetObjectLength();
9090 return length;
9094 BOOL H245_CommunicationModeCommand::Decode(PASN_Stream & strm)
9096 if (!PreambleDecode(strm))
9097 return FALSE;
9099 if (!m_communicationModeTable.Decode(strm))
9100 return FALSE;
9102 return UnknownExtensionsDecode(strm);
9106 void H245_CommunicationModeCommand::Encode(PASN_Stream & strm) const
9108 PreambleEncode(strm);
9110 m_communicationModeTable.Encode(strm);
9112 UnknownExtensionsEncode(strm);
9116 PObject * H245_CommunicationModeCommand::Clone() const
9118 #ifndef PASN_LEANANDMEAN
9119 PAssert(IsClass(H245_CommunicationModeCommand::Class()), PInvalidCast);
9120 #endif
9121 return new H245_CommunicationModeCommand(*this);
9126 // TerminalLabel
9129 H245_TerminalLabel::H245_TerminalLabel(unsigned tag, PASN_Object::TagClass tagClass)
9130 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9135 #ifndef PASN_NOPRINTON
9136 void H245_TerminalLabel::PrintOn(ostream & strm) const
9138 int indent = strm.precision() + 2;
9139 strm << "{\n";
9140 strm << setw(indent+12) << "mcuNumber = " << setprecision(indent) << m_mcuNumber << '\n';
9141 strm << setw(indent+17) << "terminalNumber = " << setprecision(indent) << m_terminalNumber << '\n';
9142 strm << setw(indent-1) << setprecision(indent-2) << "}";
9144 #endif
9147 PObject::Comparison H245_TerminalLabel::Compare(const PObject & obj) const
9149 #ifndef PASN_LEANANDMEAN
9150 PAssert(PIsDescendant(&obj, H245_TerminalLabel), PInvalidCast);
9151 #endif
9152 const H245_TerminalLabel & other = (const H245_TerminalLabel &)obj;
9154 Comparison result;
9156 if ((result = m_mcuNumber.Compare(other.m_mcuNumber)) != EqualTo)
9157 return result;
9158 if ((result = m_terminalNumber.Compare(other.m_terminalNumber)) != EqualTo)
9159 return result;
9161 return PASN_Sequence::Compare(other);
9165 PINDEX H245_TerminalLabel::GetDataLength() const
9167 PINDEX length = 0;
9168 length += m_mcuNumber.GetObjectLength();
9169 length += m_terminalNumber.GetObjectLength();
9170 return length;
9174 BOOL H245_TerminalLabel::Decode(PASN_Stream & strm)
9176 if (!PreambleDecode(strm))
9177 return FALSE;
9179 if (!m_mcuNumber.Decode(strm))
9180 return FALSE;
9181 if (!m_terminalNumber.Decode(strm))
9182 return FALSE;
9184 return UnknownExtensionsDecode(strm);
9188 void H245_TerminalLabel::Encode(PASN_Stream & strm) const
9190 PreambleEncode(strm);
9192 m_mcuNumber.Encode(strm);
9193 m_terminalNumber.Encode(strm);
9195 UnknownExtensionsEncode(strm);
9199 PObject * H245_TerminalLabel::Clone() const
9201 #ifndef PASN_LEANANDMEAN
9202 PAssert(IsClass(H245_TerminalLabel::Class()), PInvalidCast);
9203 #endif
9204 return new H245_TerminalLabel(*this);
9209 // RequestAllTerminalIDsResponse
9212 H245_RequestAllTerminalIDsResponse::H245_RequestAllTerminalIDsResponse(unsigned tag, PASN_Object::TagClass tagClass)
9213 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9218 #ifndef PASN_NOPRINTON
9219 void H245_RequestAllTerminalIDsResponse::PrintOn(ostream & strm) const
9221 int indent = strm.precision() + 2;
9222 strm << "{\n";
9223 strm << setw(indent+22) << "terminalInformation = " << setprecision(indent) << m_terminalInformation << '\n';
9224 strm << setw(indent-1) << setprecision(indent-2) << "}";
9226 #endif
9229 PObject::Comparison H245_RequestAllTerminalIDsResponse::Compare(const PObject & obj) const
9231 #ifndef PASN_LEANANDMEAN
9232 PAssert(PIsDescendant(&obj, H245_RequestAllTerminalIDsResponse), PInvalidCast);
9233 #endif
9234 const H245_RequestAllTerminalIDsResponse & other = (const H245_RequestAllTerminalIDsResponse &)obj;
9236 Comparison result;
9238 if ((result = m_terminalInformation.Compare(other.m_terminalInformation)) != EqualTo)
9239 return result;
9241 return PASN_Sequence::Compare(other);
9245 PINDEX H245_RequestAllTerminalIDsResponse::GetDataLength() const
9247 PINDEX length = 0;
9248 length += m_terminalInformation.GetObjectLength();
9249 return length;
9253 BOOL H245_RequestAllTerminalIDsResponse::Decode(PASN_Stream & strm)
9255 if (!PreambleDecode(strm))
9256 return FALSE;
9258 if (!m_terminalInformation.Decode(strm))
9259 return FALSE;
9261 return UnknownExtensionsDecode(strm);
9265 void H245_RequestAllTerminalIDsResponse::Encode(PASN_Stream & strm) const
9267 PreambleEncode(strm);
9269 m_terminalInformation.Encode(strm);
9271 UnknownExtensionsEncode(strm);
9275 PObject * H245_RequestAllTerminalIDsResponse::Clone() const
9277 #ifndef PASN_LEANANDMEAN
9278 PAssert(IsClass(H245_RequestAllTerminalIDsResponse::Class()), PInvalidCast);
9279 #endif
9280 return new H245_RequestAllTerminalIDsResponse(*this);
9285 // TerminalInformation
9288 H245_TerminalInformation::H245_TerminalInformation(unsigned tag, PASN_Object::TagClass tagClass)
9289 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9294 #ifndef PASN_NOPRINTON
9295 void H245_TerminalInformation::PrintOn(ostream & strm) const
9297 int indent = strm.precision() + 2;
9298 strm << "{\n";
9299 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
9300 strm << setw(indent+13) << "terminalID = " << setprecision(indent) << m_terminalID << '\n';
9301 strm << setw(indent-1) << setprecision(indent-2) << "}";
9303 #endif
9306 PObject::Comparison H245_TerminalInformation::Compare(const PObject & obj) const
9308 #ifndef PASN_LEANANDMEAN
9309 PAssert(PIsDescendant(&obj, H245_TerminalInformation), PInvalidCast);
9310 #endif
9311 const H245_TerminalInformation & other = (const H245_TerminalInformation &)obj;
9313 Comparison result;
9315 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
9316 return result;
9317 if ((result = m_terminalID.Compare(other.m_terminalID)) != EqualTo)
9318 return result;
9320 return PASN_Sequence::Compare(other);
9324 PINDEX H245_TerminalInformation::GetDataLength() const
9326 PINDEX length = 0;
9327 length += m_terminalLabel.GetObjectLength();
9328 length += m_terminalID.GetObjectLength();
9329 return length;
9333 BOOL H245_TerminalInformation::Decode(PASN_Stream & strm)
9335 if (!PreambleDecode(strm))
9336 return FALSE;
9338 if (!m_terminalLabel.Decode(strm))
9339 return FALSE;
9340 if (!m_terminalID.Decode(strm))
9341 return FALSE;
9343 return UnknownExtensionsDecode(strm);
9347 void H245_TerminalInformation::Encode(PASN_Stream & strm) const
9349 PreambleEncode(strm);
9351 m_terminalLabel.Encode(strm);
9352 m_terminalID.Encode(strm);
9354 UnknownExtensionsEncode(strm);
9358 PObject * H245_TerminalInformation::Clone() const
9360 #ifndef PASN_LEANANDMEAN
9361 PAssert(IsClass(H245_TerminalInformation::Class()), PInvalidCast);
9362 #endif
9363 return new H245_TerminalInformation(*this);
9368 // DialingInformationNumber
9371 H245_DialingInformationNumber::H245_DialingInformationNumber(unsigned tag, PASN_Object::TagClass tagClass)
9372 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
9374 m_networkAddress.SetConstraints(PASN_Object::FixedConstraint, 0, 40);
9375 m_subAddress.SetConstraints(PASN_Object::FixedConstraint, 1, 40);
9376 m_networkType.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
9380 #ifndef PASN_NOPRINTON
9381 void H245_DialingInformationNumber::PrintOn(ostream & strm) const
9383 int indent = strm.precision() + 2;
9384 strm << "{\n";
9385 strm << setw(indent+17) << "networkAddress = " << setprecision(indent) << m_networkAddress << '\n';
9386 if (HasOptionalField(e_subAddress))
9387 strm << setw(indent+13) << "subAddress = " << setprecision(indent) << m_subAddress << '\n';
9388 strm << setw(indent+14) << "networkType = " << setprecision(indent) << m_networkType << '\n';
9389 strm << setw(indent-1) << setprecision(indent-2) << "}";
9391 #endif
9394 PObject::Comparison H245_DialingInformationNumber::Compare(const PObject & obj) const
9396 #ifndef PASN_LEANANDMEAN
9397 PAssert(PIsDescendant(&obj, H245_DialingInformationNumber), PInvalidCast);
9398 #endif
9399 const H245_DialingInformationNumber & other = (const H245_DialingInformationNumber &)obj;
9401 Comparison result;
9403 if ((result = m_networkAddress.Compare(other.m_networkAddress)) != EqualTo)
9404 return result;
9405 if ((result = m_subAddress.Compare(other.m_subAddress)) != EqualTo)
9406 return result;
9407 if ((result = m_networkType.Compare(other.m_networkType)) != EqualTo)
9408 return result;
9410 return PASN_Sequence::Compare(other);
9414 PINDEX H245_DialingInformationNumber::GetDataLength() const
9416 PINDEX length = 0;
9417 length += m_networkAddress.GetObjectLength();
9418 if (HasOptionalField(e_subAddress))
9419 length += m_subAddress.GetObjectLength();
9420 length += m_networkType.GetObjectLength();
9421 return length;
9425 BOOL H245_DialingInformationNumber::Decode(PASN_Stream & strm)
9427 if (!PreambleDecode(strm))
9428 return FALSE;
9430 if (!m_networkAddress.Decode(strm))
9431 return FALSE;
9432 if (HasOptionalField(e_subAddress) && !m_subAddress.Decode(strm))
9433 return FALSE;
9434 if (!m_networkType.Decode(strm))
9435 return FALSE;
9437 return UnknownExtensionsDecode(strm);
9441 void H245_DialingInformationNumber::Encode(PASN_Stream & strm) const
9443 PreambleEncode(strm);
9445 m_networkAddress.Encode(strm);
9446 if (HasOptionalField(e_subAddress))
9447 m_subAddress.Encode(strm);
9448 m_networkType.Encode(strm);
9450 UnknownExtensionsEncode(strm);
9454 PObject * H245_DialingInformationNumber::Clone() const
9456 #ifndef PASN_LEANANDMEAN
9457 PAssert(IsClass(H245_DialingInformationNumber::Class()), PInvalidCast);
9458 #endif
9459 return new H245_DialingInformationNumber(*this);
9464 // LogicalChannelRateReject
9467 H245_LogicalChannelRateReject::H245_LogicalChannelRateReject(unsigned tag, PASN_Object::TagClass tagClass)
9468 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
9473 #ifndef PASN_NOPRINTON
9474 void H245_LogicalChannelRateReject::PrintOn(ostream & strm) const
9476 int indent = strm.precision() + 2;
9477 strm << "{\n";
9478 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
9479 strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
9480 strm << setw(indent+15) << "rejectReason = " << setprecision(indent) << m_rejectReason << '\n';
9481 if (HasOptionalField(e_currentMaximumBitRate))
9482 strm << setw(indent+24) << "currentMaximumBitRate = " << setprecision(indent) << m_currentMaximumBitRate << '\n';
9483 strm << setw(indent-1) << setprecision(indent-2) << "}";
9485 #endif
9488 PObject::Comparison H245_LogicalChannelRateReject::Compare(const PObject & obj) const
9490 #ifndef PASN_LEANANDMEAN
9491 PAssert(PIsDescendant(&obj, H245_LogicalChannelRateReject), PInvalidCast);
9492 #endif
9493 const H245_LogicalChannelRateReject & other = (const H245_LogicalChannelRateReject &)obj;
9495 Comparison result;
9497 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
9498 return result;
9499 if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
9500 return result;
9501 if ((result = m_rejectReason.Compare(other.m_rejectReason)) != EqualTo)
9502 return result;
9503 if ((result = m_currentMaximumBitRate.Compare(other.m_currentMaximumBitRate)) != EqualTo)
9504 return result;
9506 return PASN_Sequence::Compare(other);
9510 PINDEX H245_LogicalChannelRateReject::GetDataLength() const
9512 PINDEX length = 0;
9513 length += m_sequenceNumber.GetObjectLength();
9514 length += m_logicalChannelNumber.GetObjectLength();
9515 length += m_rejectReason.GetObjectLength();
9516 if (HasOptionalField(e_currentMaximumBitRate))
9517 length += m_currentMaximumBitRate.GetObjectLength();
9518 return length;
9522 BOOL H245_LogicalChannelRateReject::Decode(PASN_Stream & strm)
9524 if (!PreambleDecode(strm))
9525 return FALSE;
9527 if (!m_sequenceNumber.Decode(strm))
9528 return FALSE;
9529 if (!m_logicalChannelNumber.Decode(strm))
9530 return FALSE;
9531 if (!m_rejectReason.Decode(strm))
9532 return FALSE;
9533 if (HasOptionalField(e_currentMaximumBitRate) && !m_currentMaximumBitRate.Decode(strm))
9534 return FALSE;
9536 return UnknownExtensionsDecode(strm);
9540 void H245_LogicalChannelRateReject::Encode(PASN_Stream & strm) const
9542 PreambleEncode(strm);
9544 m_sequenceNumber.Encode(strm);
9545 m_logicalChannelNumber.Encode(strm);
9546 m_rejectReason.Encode(strm);
9547 if (HasOptionalField(e_currentMaximumBitRate))
9548 m_currentMaximumBitRate.Encode(strm);
9550 UnknownExtensionsEncode(strm);
9554 PObject * H245_LogicalChannelRateReject::Clone() const
9556 #ifndef PASN_LEANANDMEAN
9557 PAssert(IsClass(H245_LogicalChannelRateReject::Class()), PInvalidCast);
9558 #endif
9559 return new H245_LogicalChannelRateReject(*this);
9564 // FlowControlCommand
9567 H245_FlowControlCommand::H245_FlowControlCommand(unsigned tag, PASN_Object::TagClass tagClass)
9568 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9573 #ifndef PASN_NOPRINTON
9574 void H245_FlowControlCommand::PrintOn(ostream & strm) const
9576 int indent = strm.precision() + 2;
9577 strm << "{\n";
9578 strm << setw(indent+8) << "scope = " << setprecision(indent) << m_scope << '\n';
9579 strm << setw(indent+14) << "restriction = " << setprecision(indent) << m_restriction << '\n';
9580 strm << setw(indent-1) << setprecision(indent-2) << "}";
9582 #endif
9585 PObject::Comparison H245_FlowControlCommand::Compare(const PObject & obj) const
9587 #ifndef PASN_LEANANDMEAN
9588 PAssert(PIsDescendant(&obj, H245_FlowControlCommand), PInvalidCast);
9589 #endif
9590 const H245_FlowControlCommand & other = (const H245_FlowControlCommand &)obj;
9592 Comparison result;
9594 if ((result = m_scope.Compare(other.m_scope)) != EqualTo)
9595 return result;
9596 if ((result = m_restriction.Compare(other.m_restriction)) != EqualTo)
9597 return result;
9599 return PASN_Sequence::Compare(other);
9603 PINDEX H245_FlowControlCommand::GetDataLength() const
9605 PINDEX length = 0;
9606 length += m_scope.GetObjectLength();
9607 length += m_restriction.GetObjectLength();
9608 return length;
9612 BOOL H245_FlowControlCommand::Decode(PASN_Stream & strm)
9614 if (!PreambleDecode(strm))
9615 return FALSE;
9617 if (!m_scope.Decode(strm))
9618 return FALSE;
9619 if (!m_restriction.Decode(strm))
9620 return FALSE;
9622 return UnknownExtensionsDecode(strm);
9626 void H245_FlowControlCommand::Encode(PASN_Stream & strm) const
9628 PreambleEncode(strm);
9630 m_scope.Encode(strm);
9631 m_restriction.Encode(strm);
9633 UnknownExtensionsEncode(strm);
9637 PObject * H245_FlowControlCommand::Clone() const
9639 #ifndef PASN_LEANANDMEAN
9640 PAssert(IsClass(H245_FlowControlCommand::Class()), PInvalidCast);
9641 #endif
9642 return new H245_FlowControlCommand(*this);
9647 // MiscellaneousCommand
9650 H245_MiscellaneousCommand::H245_MiscellaneousCommand(unsigned tag, PASN_Object::TagClass tagClass)
9651 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
9656 #ifndef PASN_NOPRINTON
9657 void H245_MiscellaneousCommand::PrintOn(ostream & strm) const
9659 int indent = strm.precision() + 2;
9660 strm << "{\n";
9661 strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
9662 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
9663 if (HasOptionalField(e_direction))
9664 strm << setw(indent+12) << "direction = " << setprecision(indent) << m_direction << '\n';
9665 strm << setw(indent-1) << setprecision(indent-2) << "}";
9667 #endif
9670 PObject::Comparison H245_MiscellaneousCommand::Compare(const PObject & obj) const
9672 #ifndef PASN_LEANANDMEAN
9673 PAssert(PIsDescendant(&obj, H245_MiscellaneousCommand), PInvalidCast);
9674 #endif
9675 const H245_MiscellaneousCommand & other = (const H245_MiscellaneousCommand &)obj;
9677 Comparison result;
9679 if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
9680 return result;
9681 if ((result = m_type.Compare(other.m_type)) != EqualTo)
9682 return result;
9684 return PASN_Sequence::Compare(other);
9688 PINDEX H245_MiscellaneousCommand::GetDataLength() const
9690 PINDEX length = 0;
9691 length += m_logicalChannelNumber.GetObjectLength();
9692 length += m_type.GetObjectLength();
9693 return length;
9697 BOOL H245_MiscellaneousCommand::Decode(PASN_Stream & strm)
9699 if (!PreambleDecode(strm))
9700 return FALSE;
9702 if (!m_logicalChannelNumber.Decode(strm))
9703 return FALSE;
9704 if (!m_type.Decode(strm))
9705 return FALSE;
9706 if (!KnownExtensionDecode(strm, e_direction, m_direction))
9707 return FALSE;
9709 return UnknownExtensionsDecode(strm);
9713 void H245_MiscellaneousCommand::Encode(PASN_Stream & strm) const
9715 PreambleEncode(strm);
9717 m_logicalChannelNumber.Encode(strm);
9718 m_type.Encode(strm);
9719 KnownExtensionEncode(strm, e_direction, m_direction);
9721 UnknownExtensionsEncode(strm);
9725 PObject * H245_MiscellaneousCommand::Clone() const
9727 #ifndef PASN_LEANANDMEAN
9728 PAssert(IsClass(H245_MiscellaneousCommand::Class()), PInvalidCast);
9729 #endif
9730 return new H245_MiscellaneousCommand(*this);
9735 // MobileMultilinkReconfigurationCommand
9738 H245_MobileMultilinkReconfigurationCommand::H245_MobileMultilinkReconfigurationCommand(unsigned tag, PASN_Object::TagClass tagClass)
9739 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9741 m_sampleSize.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
9742 m_samplesPerFrame.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
9746 #ifndef PASN_NOPRINTON
9747 void H245_MobileMultilinkReconfigurationCommand::PrintOn(ostream & strm) const
9749 int indent = strm.precision() + 2;
9750 strm << "{\n";
9751 strm << setw(indent+13) << "sampleSize = " << setprecision(indent) << m_sampleSize << '\n';
9752 strm << setw(indent+18) << "samplesPerFrame = " << setprecision(indent) << m_samplesPerFrame << '\n';
9753 strm << setw(indent+9) << "status = " << setprecision(indent) << m_status << '\n';
9754 strm << setw(indent-1) << setprecision(indent-2) << "}";
9756 #endif
9759 PObject::Comparison H245_MobileMultilinkReconfigurationCommand::Compare(const PObject & obj) const
9761 #ifndef PASN_LEANANDMEAN
9762 PAssert(PIsDescendant(&obj, H245_MobileMultilinkReconfigurationCommand), PInvalidCast);
9763 #endif
9764 const H245_MobileMultilinkReconfigurationCommand & other = (const H245_MobileMultilinkReconfigurationCommand &)obj;
9766 Comparison result;
9768 if ((result = m_sampleSize.Compare(other.m_sampleSize)) != EqualTo)
9769 return result;
9770 if ((result = m_samplesPerFrame.Compare(other.m_samplesPerFrame)) != EqualTo)
9771 return result;
9772 if ((result = m_status.Compare(other.m_status)) != EqualTo)
9773 return result;
9775 return PASN_Sequence::Compare(other);
9779 PINDEX H245_MobileMultilinkReconfigurationCommand::GetDataLength() const
9781 PINDEX length = 0;
9782 length += m_sampleSize.GetObjectLength();
9783 length += m_samplesPerFrame.GetObjectLength();
9784 length += m_status.GetObjectLength();
9785 return length;
9789 BOOL H245_MobileMultilinkReconfigurationCommand::Decode(PASN_Stream & strm)
9791 if (!PreambleDecode(strm))
9792 return FALSE;
9794 if (!m_sampleSize.Decode(strm))
9795 return FALSE;
9796 if (!m_samplesPerFrame.Decode(strm))
9797 return FALSE;
9798 if (!m_status.Decode(strm))
9799 return FALSE;
9801 return UnknownExtensionsDecode(strm);
9805 void H245_MobileMultilinkReconfigurationCommand::Encode(PASN_Stream & strm) const
9807 PreambleEncode(strm);
9809 m_sampleSize.Encode(strm);
9810 m_samplesPerFrame.Encode(strm);
9811 m_status.Encode(strm);
9813 UnknownExtensionsEncode(strm);
9817 PObject * H245_MobileMultilinkReconfigurationCommand::Clone() const
9819 #ifndef PASN_LEANANDMEAN
9820 PAssert(IsClass(H245_MobileMultilinkReconfigurationCommand::Class()), PInvalidCast);
9821 #endif
9822 return new H245_MobileMultilinkReconfigurationCommand(*this);
9827 // FunctionNotSupported
9830 H245_FunctionNotSupported::H245_FunctionNotSupported(unsigned tag, PASN_Object::TagClass tagClass)
9831 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
9836 #ifndef PASN_NOPRINTON
9837 void H245_FunctionNotSupported::PrintOn(ostream & strm) const
9839 int indent = strm.precision() + 2;
9840 strm << "{\n";
9841 strm << setw(indent+8) << "cause = " << setprecision(indent) << m_cause << '\n';
9842 if (HasOptionalField(e_returnedFunction))
9843 strm << setw(indent+19) << "returnedFunction = " << setprecision(indent) << m_returnedFunction << '\n';
9844 strm << setw(indent-1) << setprecision(indent-2) << "}";
9846 #endif
9849 PObject::Comparison H245_FunctionNotSupported::Compare(const PObject & obj) const
9851 #ifndef PASN_LEANANDMEAN
9852 PAssert(PIsDescendant(&obj, H245_FunctionNotSupported), PInvalidCast);
9853 #endif
9854 const H245_FunctionNotSupported & other = (const H245_FunctionNotSupported &)obj;
9856 Comparison result;
9858 if ((result = m_cause.Compare(other.m_cause)) != EqualTo)
9859 return result;
9860 if ((result = m_returnedFunction.Compare(other.m_returnedFunction)) != EqualTo)
9861 return result;
9863 return PASN_Sequence::Compare(other);
9867 PINDEX H245_FunctionNotSupported::GetDataLength() const
9869 PINDEX length = 0;
9870 length += m_cause.GetObjectLength();
9871 if (HasOptionalField(e_returnedFunction))
9872 length += m_returnedFunction.GetObjectLength();
9873 return length;
9877 BOOL H245_FunctionNotSupported::Decode(PASN_Stream & strm)
9879 if (!PreambleDecode(strm))
9880 return FALSE;
9882 if (!m_cause.Decode(strm))
9883 return FALSE;
9884 if (HasOptionalField(e_returnedFunction) && !m_returnedFunction.Decode(strm))
9885 return FALSE;
9887 return UnknownExtensionsDecode(strm);
9891 void H245_FunctionNotSupported::Encode(PASN_Stream & strm) const
9893 PreambleEncode(strm);
9895 m_cause.Encode(strm);
9896 if (HasOptionalField(e_returnedFunction))
9897 m_returnedFunction.Encode(strm);
9899 UnknownExtensionsEncode(strm);
9903 PObject * H245_FunctionNotSupported::Clone() const
9905 #ifndef PASN_LEANANDMEAN
9906 PAssert(IsClass(H245_FunctionNotSupported::Class()), PInvalidCast);
9907 #endif
9908 return new H245_FunctionNotSupported(*this);
9913 // MiscellaneousIndication
9916 H245_MiscellaneousIndication::H245_MiscellaneousIndication(unsigned tag, PASN_Object::TagClass tagClass)
9917 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
9922 #ifndef PASN_NOPRINTON
9923 void H245_MiscellaneousIndication::PrintOn(ostream & strm) const
9925 int indent = strm.precision() + 2;
9926 strm << "{\n";
9927 strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
9928 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
9929 strm << setw(indent-1) << setprecision(indent-2) << "}";
9931 #endif
9934 PObject::Comparison H245_MiscellaneousIndication::Compare(const PObject & obj) const
9936 #ifndef PASN_LEANANDMEAN
9937 PAssert(PIsDescendant(&obj, H245_MiscellaneousIndication), PInvalidCast);
9938 #endif
9939 const H245_MiscellaneousIndication & other = (const H245_MiscellaneousIndication &)obj;
9941 Comparison result;
9943 if ((result = m_logicalChannelNumber.Compare(other.m_logicalChannelNumber)) != EqualTo)
9944 return result;
9945 if ((result = m_type.Compare(other.m_type)) != EqualTo)
9946 return result;
9948 return PASN_Sequence::Compare(other);
9952 PINDEX H245_MiscellaneousIndication::GetDataLength() const
9954 PINDEX length = 0;
9955 length += m_logicalChannelNumber.GetObjectLength();
9956 length += m_type.GetObjectLength();
9957 return length;
9961 BOOL H245_MiscellaneousIndication::Decode(PASN_Stream & strm)
9963 if (!PreambleDecode(strm))
9964 return FALSE;
9966 if (!m_logicalChannelNumber.Decode(strm))
9967 return FALSE;
9968 if (!m_type.Decode(strm))
9969 return FALSE;
9971 return UnknownExtensionsDecode(strm);
9975 void H245_MiscellaneousIndication::Encode(PASN_Stream & strm) const
9977 PreambleEncode(strm);
9979 m_logicalChannelNumber.Encode(strm);
9980 m_type.Encode(strm);
9982 UnknownExtensionsEncode(strm);
9986 PObject * H245_MiscellaneousIndication::Clone() const
9988 #ifndef PASN_LEANANDMEAN
9989 PAssert(IsClass(H245_MiscellaneousIndication::Class()), PInvalidCast);
9990 #endif
9991 return new H245_MiscellaneousIndication(*this);
9996 // JitterIndication
9999 H245_JitterIndication::H245_JitterIndication(unsigned tag, PASN_Object::TagClass tagClass)
10000 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
10002 m_estimatedReceivedJitterMantissa.SetConstraints(PASN_Object::FixedConstraint, 0, 3);
10003 m_estimatedReceivedJitterExponent.SetConstraints(PASN_Object::FixedConstraint, 0, 7);
10004 m_skippedFrameCount.SetConstraints(PASN_Object::FixedConstraint, 0, 15);
10005 m_additionalDecoderBuffer.SetConstraints(PASN_Object::FixedConstraint, 0, 262143);
10009 #ifndef PASN_NOPRINTON
10010 void H245_JitterIndication::PrintOn(ostream & strm) const
10012 int indent = strm.precision() + 2;
10013 strm << "{\n";
10014 strm << setw(indent+8) << "scope = " << setprecision(indent) << m_scope << '\n';
10015 strm << setw(indent+34) << "estimatedReceivedJitterMantissa = " << setprecision(indent) << m_estimatedReceivedJitterMantissa << '\n';
10016 strm << setw(indent+34) << "estimatedReceivedJitterExponent = " << setprecision(indent) << m_estimatedReceivedJitterExponent << '\n';
10017 if (HasOptionalField(e_skippedFrameCount))
10018 strm << setw(indent+20) << "skippedFrameCount = " << setprecision(indent) << m_skippedFrameCount << '\n';
10019 if (HasOptionalField(e_additionalDecoderBuffer))
10020 strm << setw(indent+26) << "additionalDecoderBuffer = " << setprecision(indent) << m_additionalDecoderBuffer << '\n';
10021 strm << setw(indent-1) << setprecision(indent-2) << "}";
10023 #endif
10026 PObject::Comparison H245_JitterIndication::Compare(const PObject & obj) const
10028 #ifndef PASN_LEANANDMEAN
10029 PAssert(PIsDescendant(&obj, H245_JitterIndication), PInvalidCast);
10030 #endif
10031 const H245_JitterIndication & other = (const H245_JitterIndication &)obj;
10033 Comparison result;
10035 if ((result = m_scope.Compare(other.m_scope)) != EqualTo)
10036 return result;
10037 if ((result = m_estimatedReceivedJitterMantissa.Compare(other.m_estimatedReceivedJitterMantissa)) != EqualTo)
10038 return result;
10039 if ((result = m_estimatedReceivedJitterExponent.Compare(other.m_estimatedReceivedJitterExponent)) != EqualTo)
10040 return result;
10041 if ((result = m_skippedFrameCount.Compare(other.m_skippedFrameCount)) != EqualTo)
10042 return result;
10043 if ((result = m_additionalDecoderBuffer.Compare(other.m_additionalDecoderBuffer)) != EqualTo)
10044 return result;
10046 return PASN_Sequence::Compare(other);
10050 PINDEX H245_JitterIndication::GetDataLength() const
10052 PINDEX length = 0;
10053 length += m_scope.GetObjectLength();
10054 length += m_estimatedReceivedJitterMantissa.GetObjectLength();
10055 length += m_estimatedReceivedJitterExponent.GetObjectLength();
10056 if (HasOptionalField(e_skippedFrameCount))
10057 length += m_skippedFrameCount.GetObjectLength();
10058 if (HasOptionalField(e_additionalDecoderBuffer))
10059 length += m_additionalDecoderBuffer.GetObjectLength();
10060 return length;
10064 BOOL H245_JitterIndication::Decode(PASN_Stream & strm)
10066 if (!PreambleDecode(strm))
10067 return FALSE;
10069 if (!m_scope.Decode(strm))
10070 return FALSE;
10071 if (!m_estimatedReceivedJitterMantissa.Decode(strm))
10072 return FALSE;
10073 if (!m_estimatedReceivedJitterExponent.Decode(strm))
10074 return FALSE;
10075 if (HasOptionalField(e_skippedFrameCount) && !m_skippedFrameCount.Decode(strm))
10076 return FALSE;
10077 if (HasOptionalField(e_additionalDecoderBuffer) && !m_additionalDecoderBuffer.Decode(strm))
10078 return FALSE;
10080 return UnknownExtensionsDecode(strm);
10084 void H245_JitterIndication::Encode(PASN_Stream & strm) const
10086 PreambleEncode(strm);
10088 m_scope.Encode(strm);
10089 m_estimatedReceivedJitterMantissa.Encode(strm);
10090 m_estimatedReceivedJitterExponent.Encode(strm);
10091 if (HasOptionalField(e_skippedFrameCount))
10092 m_skippedFrameCount.Encode(strm);
10093 if (HasOptionalField(e_additionalDecoderBuffer))
10094 m_additionalDecoderBuffer.Encode(strm);
10096 UnknownExtensionsEncode(strm);
10100 PObject * H245_JitterIndication::Clone() const
10102 #ifndef PASN_LEANANDMEAN
10103 PAssert(IsClass(H245_JitterIndication::Class()), PInvalidCast);
10104 #endif
10105 return new H245_JitterIndication(*this);
10110 // FlowControlIndication
10113 H245_FlowControlIndication::H245_FlowControlIndication(unsigned tag, PASN_Object::TagClass tagClass)
10114 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
10119 #ifndef PASN_NOPRINTON
10120 void H245_FlowControlIndication::PrintOn(ostream & strm) const
10122 int indent = strm.precision() + 2;
10123 strm << "{\n";
10124 strm << setw(indent+8) << "scope = " << setprecision(indent) << m_scope << '\n';
10125 strm << setw(indent+14) << "restriction = " << setprecision(indent) << m_restriction << '\n';
10126 strm << setw(indent-1) << setprecision(indent-2) << "}";
10128 #endif
10131 PObject::Comparison H245_FlowControlIndication::Compare(const PObject & obj) const
10133 #ifndef PASN_LEANANDMEAN
10134 PAssert(PIsDescendant(&obj, H245_FlowControlIndication), PInvalidCast);
10135 #endif
10136 const H245_FlowControlIndication & other = (const H245_FlowControlIndication &)obj;
10138 Comparison result;
10140 if ((result = m_scope.Compare(other.m_scope)) != EqualTo)
10141 return result;
10142 if ((result = m_restriction.Compare(other.m_restriction)) != EqualTo)
10143 return result;
10145 return PASN_Sequence::Compare(other);
10149 PINDEX H245_FlowControlIndication::GetDataLength() const
10151 PINDEX length = 0;
10152 length += m_scope.GetObjectLength();
10153 length += m_restriction.GetObjectLength();
10154 return length;
10158 BOOL H245_FlowControlIndication::Decode(PASN_Stream & strm)
10160 if (!PreambleDecode(strm))
10161 return FALSE;
10163 if (!m_scope.Decode(strm))
10164 return FALSE;
10165 if (!m_restriction.Decode(strm))
10166 return FALSE;
10168 return UnknownExtensionsDecode(strm);
10172 void H245_FlowControlIndication::Encode(PASN_Stream & strm) const
10174 PreambleEncode(strm);
10176 m_scope.Encode(strm);
10177 m_restriction.Encode(strm);
10179 UnknownExtensionsEncode(strm);
10183 PObject * H245_FlowControlIndication::Clone() const
10185 #ifndef PASN_LEANANDMEAN
10186 PAssert(IsClass(H245_FlowControlIndication::Class()), PInvalidCast);
10187 #endif
10188 return new H245_FlowControlIndication(*this);
10193 // VCCapability_availableBitRates
10196 H245_VCCapability_availableBitRates::H245_VCCapability_availableBitRates(unsigned tag, PASN_Object::TagClass tagClass)
10197 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
10202 #ifndef PASN_NOPRINTON
10203 void H245_VCCapability_availableBitRates::PrintOn(ostream & strm) const
10205 int indent = strm.precision() + 2;
10206 strm << "{\n";
10207 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
10208 strm << setw(indent-1) << setprecision(indent-2) << "}";
10210 #endif
10213 PObject::Comparison H245_VCCapability_availableBitRates::Compare(const PObject & obj) const
10215 #ifndef PASN_LEANANDMEAN
10216 PAssert(PIsDescendant(&obj, H245_VCCapability_availableBitRates), PInvalidCast);
10217 #endif
10218 const H245_VCCapability_availableBitRates & other = (const H245_VCCapability_availableBitRates &)obj;
10220 Comparison result;
10222 if ((result = m_type.Compare(other.m_type)) != EqualTo)
10223 return result;
10225 return PASN_Sequence::Compare(other);
10229 PINDEX H245_VCCapability_availableBitRates::GetDataLength() const
10231 PINDEX length = 0;
10232 length += m_type.GetObjectLength();
10233 return length;
10237 BOOL H245_VCCapability_availableBitRates::Decode(PASN_Stream & strm)
10239 if (!PreambleDecode(strm))
10240 return FALSE;
10242 if (!m_type.Decode(strm))
10243 return FALSE;
10245 return UnknownExtensionsDecode(strm);
10249 void H245_VCCapability_availableBitRates::Encode(PASN_Stream & strm) const
10251 PreambleEncode(strm);
10253 m_type.Encode(strm);
10255 UnknownExtensionsEncode(strm);
10259 PObject * H245_VCCapability_availableBitRates::Clone() const
10261 #ifndef PASN_LEANANDMEAN
10262 PAssert(IsClass(H245_VCCapability_availableBitRates::Class()), PInvalidCast);
10263 #endif
10264 return new H245_VCCapability_availableBitRates(*this);
10269 // VCCapability_aal1ViaGateway
10272 H245_VCCapability_aal1ViaGateway::H245_VCCapability_aal1ViaGateway(unsigned tag, PASN_Object::TagClass tagClass)
10273 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
10275 m_gatewayAddress.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
10279 #ifndef PASN_NOPRINTON
10280 void H245_VCCapability_aal1ViaGateway::PrintOn(ostream & strm) const
10282 int indent = strm.precision() + 2;
10283 strm << "{\n";
10284 strm << setw(indent+17) << "gatewayAddress = " << setprecision(indent) << m_gatewayAddress << '\n';
10285 strm << setw(indent+20) << "nullClockRecovery = " << setprecision(indent) << m_nullClockRecovery << '\n';
10286 strm << setw(indent+20) << "srtsClockRecovery = " << setprecision(indent) << m_srtsClockRecovery << '\n';
10287 strm << setw(indent+24) << "adaptiveClockRecovery = " << setprecision(indent) << m_adaptiveClockRecovery << '\n';
10288 strm << setw(indent+22) << "nullErrorCorrection = " << setprecision(indent) << m_nullErrorCorrection << '\n';
10289 strm << setw(indent+18) << "longInterleaver = " << setprecision(indent) << m_longInterleaver << '\n';
10290 strm << setw(indent+19) << "shortInterleaver = " << setprecision(indent) << m_shortInterleaver << '\n';
10291 strm << setw(indent+22) << "errorCorrectionOnly = " << setprecision(indent) << m_errorCorrectionOnly << '\n';
10292 strm << setw(indent+25) << "structuredDataTransfer = " << setprecision(indent) << m_structuredDataTransfer << '\n';
10293 strm << setw(indent+23) << "partiallyFilledCells = " << setprecision(indent) << m_partiallyFilledCells << '\n';
10294 strm << setw(indent-1) << setprecision(indent-2) << "}";
10296 #endif
10299 PObject::Comparison H245_VCCapability_aal1ViaGateway::Compare(const PObject & obj) const
10301 #ifndef PASN_LEANANDMEAN
10302 PAssert(PIsDescendant(&obj, H245_VCCapability_aal1ViaGateway), PInvalidCast);
10303 #endif
10304 const H245_VCCapability_aal1ViaGateway & other = (const H245_VCCapability_aal1ViaGateway &)obj;
10306 Comparison result;
10308 if ((result = m_gatewayAddress.Compare(other.m_gatewayAddress)) != EqualTo)
10309 return result;
10310 if ((result = m_nullClockRecovery.Compare(other.m_nullClockRecovery)) != EqualTo)
10311 return result;
10312 if ((result = m_srtsClockRecovery.Compare(other.m_srtsClockRecovery)) != EqualTo)
10313 return result;
10314 if ((result = m_adaptiveClockRecovery.Compare(other.m_adaptiveClockRecovery)) != EqualTo)
10315 return result;
10316 if ((result = m_nullErrorCorrection.Compare(other.m_nullErrorCorrection)) != EqualTo)
10317 return result;
10318 if ((result = m_longInterleaver.Compare(other.m_longInterleaver)) != EqualTo)
10319 return result;
10320 if ((result = m_shortInterleaver.Compare(other.m_shortInterleaver)) != EqualTo)
10321 return result;
10322 if ((result = m_errorCorrectionOnly.Compare(other.m_errorCorrectionOnly)) != EqualTo)
10323 return result;
10324 if ((result = m_structuredDataTransfer.Compare(other.m_structuredDataTransfer)) != EqualTo)
10325 return result;
10326 if ((result = m_partiallyFilledCells.Compare(other.m_partiallyFilledCells)) != EqualTo)
10327 return result;
10329 return PASN_Sequence::Compare(other);
10333 PINDEX H245_VCCapability_aal1ViaGateway::GetDataLength() const
10335 PINDEX length = 0;
10336 length += m_gatewayAddress.GetObjectLength();
10337 length += m_nullClockRecovery.GetObjectLength();
10338 length += m_srtsClockRecovery.GetObjectLength();
10339 length += m_adaptiveClockRecovery.GetObjectLength();
10340 length += m_nullErrorCorrection.GetObjectLength();
10341 length += m_longInterleaver.GetObjectLength();
10342 length += m_shortInterleaver.GetObjectLength();
10343 length += m_errorCorrectionOnly.GetObjectLength();
10344 length += m_structuredDataTransfer.GetObjectLength();
10345 length += m_partiallyFilledCells.GetObjectLength();
10346 return length;
10350 BOOL H245_VCCapability_aal1ViaGateway::Decode(PASN_Stream & strm)
10352 if (!PreambleDecode(strm))
10353 return FALSE;
10355 if (!m_gatewayAddress.Decode(strm))
10356 return FALSE;
10357 if (!m_nullClockRecovery.Decode(strm))
10358 return FALSE;
10359 if (!m_srtsClockRecovery.Decode(strm))
10360 return FALSE;
10361 if (!m_adaptiveClockRecovery.Decode(strm))
10362 return FALSE;
10363 if (!m_nullErrorCorrection.Decode(strm))
10364 return FALSE;
10365 if (!m_longInterleaver.Decode(strm))
10366 return FALSE;
10367 if (!m_shortInterleaver.Decode(strm))
10368 return FALSE;
10369 if (!m_errorCorrectionOnly.Decode(strm))
10370 return FALSE;
10371 if (!m_structuredDataTransfer.Decode(strm))
10372 return FALSE;
10373 if (!m_partiallyFilledCells.Decode(strm))
10374 return FALSE;
10376 return UnknownExtensionsDecode(strm);
10380 void H245_VCCapability_aal1ViaGateway::Encode(PASN_Stream & strm) const
10382 PreambleEncode(strm);
10384 m_gatewayAddress.Encode(strm);
10385 m_nullClockRecovery.Encode(strm);
10386 m_srtsClockRecovery.Encode(strm);
10387 m_adaptiveClockRecovery.Encode(strm);
10388 m_nullErrorCorrection.Encode(strm);
10389 m_longInterleaver.Encode(strm);
10390 m_shortInterleaver.Encode(strm);
10391 m_errorCorrectionOnly.Encode(strm);
10392 m_structuredDataTransfer.Encode(strm);
10393 m_partiallyFilledCells.Encode(strm);
10395 UnknownExtensionsEncode(strm);
10399 PObject * H245_VCCapability_aal1ViaGateway::Clone() const
10401 #ifndef PASN_LEANANDMEAN
10402 PAssert(IsClass(H245_VCCapability_aal1ViaGateway::Class()), PInvalidCast);
10403 #endif
10404 return new H245_VCCapability_aal1ViaGateway(*this);
10409 // RefPictureSelection_enhancedReferencePicSelect
10412 H245_RefPictureSelection_enhancedReferencePicSelect::H245_RefPictureSelection_enhancedReferencePicSelect(unsigned tag, PASN_Object::TagClass tagClass)
10413 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
10418 #ifndef PASN_NOPRINTON
10419 void H245_RefPictureSelection_enhancedReferencePicSelect::PrintOn(ostream & strm) const
10421 int indent = strm.precision() + 2;
10422 strm << "{\n";
10423 if (HasOptionalField(e_subPictureRemovalParameters))
10424 strm << setw(indent+30) << "subPictureRemovalParameters = " << setprecision(indent) << m_subPictureRemovalParameters << '\n';
10425 strm << setw(indent-1) << setprecision(indent-2) << "}";
10427 #endif
10430 PObject::Comparison H245_RefPictureSelection_enhancedReferencePicSelect::Compare(const PObject & obj) const
10432 #ifndef PASN_LEANANDMEAN
10433 PAssert(PIsDescendant(&obj, H245_RefPictureSelection_enhancedReferencePicSelect), PInvalidCast);
10434 #endif
10435 const H245_RefPictureSelection_enhancedReferencePicSelect & other = (const H245_RefPictureSelection_enhancedReferencePicSelect &)obj;
10437 Comparison result;
10439 if ((result = m_subPictureRemovalParameters.Compare(other.m_subPictureRemovalParameters)) != EqualTo)
10440 return result;
10442 return PASN_Sequence::Compare(other);
10446 PINDEX H245_RefPictureSelection_enhancedReferencePicSelect::GetDataLength() const
10448 PINDEX length = 0;
10449 if (HasOptionalField(e_subPictureRemovalParameters))
10450 length += m_subPictureRemovalParameters.GetObjectLength();
10451 return length;
10455 BOOL H245_RefPictureSelection_enhancedReferencePicSelect::Decode(PASN_Stream & strm)
10457 if (!PreambleDecode(strm))
10458 return FALSE;
10460 if (HasOptionalField(e_subPictureRemovalParameters) && !m_subPictureRemovalParameters.Decode(strm))
10461 return FALSE;
10463 return UnknownExtensionsDecode(strm);
10467 void H245_RefPictureSelection_enhancedReferencePicSelect::Encode(PASN_Stream & strm) const
10469 PreambleEncode(strm);
10471 if (HasOptionalField(e_subPictureRemovalParameters))
10472 m_subPictureRemovalParameters.Encode(strm);
10474 UnknownExtensionsEncode(strm);
10478 PObject * H245_RefPictureSelection_enhancedReferencePicSelect::Clone() const
10480 #ifndef PASN_LEANANDMEAN
10481 PAssert(IsClass(H245_RefPictureSelection_enhancedReferencePicSelect::Class()), PInvalidCast);
10482 #endif
10483 return new H245_RefPictureSelection_enhancedReferencePicSelect(*this);
10488 // CustomPictureFormat_mPI
10491 H245_CustomPictureFormat_mPI::H245_CustomPictureFormat_mPI(unsigned tag, PASN_Object::TagClass tagClass)
10492 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
10494 m_standardMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 31);
10498 #ifndef PASN_NOPRINTON
10499 void H245_CustomPictureFormat_mPI::PrintOn(ostream & strm) const
10501 int indent = strm.precision() + 2;
10502 strm << "{\n";
10503 if (HasOptionalField(e_standardMPI))
10504 strm << setw(indent+14) << "standardMPI = " << setprecision(indent) << m_standardMPI << '\n';
10505 if (HasOptionalField(e_customPCF))
10506 strm << setw(indent+12) << "customPCF = " << setprecision(indent) << m_customPCF << '\n';
10507 strm << setw(indent-1) << setprecision(indent-2) << "}";
10509 #endif
10512 PObject::Comparison H245_CustomPictureFormat_mPI::Compare(const PObject & obj) const
10514 #ifndef PASN_LEANANDMEAN
10515 PAssert(PIsDescendant(&obj, H245_CustomPictureFormat_mPI), PInvalidCast);
10516 #endif
10517 const H245_CustomPictureFormat_mPI & other = (const H245_CustomPictureFormat_mPI &)obj;
10519 Comparison result;
10521 if ((result = m_standardMPI.Compare(other.m_standardMPI)) != EqualTo)
10522 return result;
10523 if ((result = m_customPCF.Compare(other.m_customPCF)) != EqualTo)
10524 return result;
10526 return PASN_Sequence::Compare(other);
10530 PINDEX H245_CustomPictureFormat_mPI::GetDataLength() const
10532 PINDEX length = 0;
10533 if (HasOptionalField(e_standardMPI))
10534 length += m_standardMPI.GetObjectLength();
10535 if (HasOptionalField(e_customPCF))
10536 length += m_customPCF.GetObjectLength();
10537 return length;
10541 BOOL H245_CustomPictureFormat_mPI::Decode(PASN_Stream & strm)
10543 if (!PreambleDecode(strm))
10544 return FALSE;
10546 if (HasOptionalField(e_standardMPI) && !m_standardMPI.Decode(strm))
10547 return FALSE;
10548 if (HasOptionalField(e_customPCF) && !m_customPCF.Decode(strm))
10549 return FALSE;
10551 return UnknownExtensionsDecode(strm);
10555 void H245_CustomPictureFormat_mPI::Encode(PASN_Stream & strm) const
10557 PreambleEncode(strm);
10559 if (HasOptionalField(e_standardMPI))
10560 m_standardMPI.Encode(strm);
10561 if (HasOptionalField(e_customPCF))
10562 m_customPCF.Encode(strm);
10564 UnknownExtensionsEncode(strm);
10568 PObject * H245_CustomPictureFormat_mPI::Clone() const
10570 #ifndef PASN_LEANANDMEAN
10571 PAssert(IsClass(H245_CustomPictureFormat_mPI::Class()), PInvalidCast);
10572 #endif
10573 return new H245_CustomPictureFormat_mPI(*this);
10578 // DepFECCapability_rfc2733
10581 H245_DepFECCapability_rfc2733::H245_DepFECCapability_rfc2733(unsigned tag, PASN_Object::TagClass tagClass)
10582 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
10587 #ifndef PASN_NOPRINTON
10588 void H245_DepFECCapability_rfc2733::PrintOn(ostream & strm) const
10590 int indent = strm.precision() + 2;
10591 strm << "{\n";
10592 strm << setw(indent+21) << "redundancyEncoding = " << setprecision(indent) << m_redundancyEncoding << '\n';
10593 strm << setw(indent+17) << "separateStream = " << setprecision(indent) << m_separateStream << '\n';
10594 strm << setw(indent-1) << setprecision(indent-2) << "}";
10596 #endif
10599 PObject::Comparison H245_DepFECCapability_rfc2733::Compare(const PObject & obj) const
10601 #ifndef PASN_LEANANDMEAN
10602 PAssert(PIsDescendant(&obj, H245_DepFECCapability_rfc2733), PInvalidCast);
10603 #endif
10604 const H245_DepFECCapability_rfc2733 & other = (const H245_DepFECCapability_rfc2733 &)obj;
10606 Comparison result;
10608 if ((result = m_redundancyEncoding.Compare(other.m_redundancyEncoding)) != EqualTo)
10609 return result;
10610 if ((result = m_separateStream.Compare(other.m_separateStream)) != EqualTo)
10611 return result;
10613 return PASN_Sequence::Compare(other);
10617 PINDEX H245_DepFECCapability_rfc2733::GetDataLength() const
10619 PINDEX length = 0;
10620 length += m_redundancyEncoding.GetObjectLength();
10621 length += m_separateStream.GetObjectLength();
10622 return length;
10626 BOOL H245_DepFECCapability_rfc2733::Decode(PASN_Stream & strm)
10628 if (!PreambleDecode(strm))
10629 return FALSE;
10631 if (!m_redundancyEncoding.Decode(strm))
10632 return FALSE;
10633 if (!m_separateStream.Decode(strm))
10634 return FALSE;
10636 return UnknownExtensionsDecode(strm);
10640 void H245_DepFECCapability_rfc2733::Encode(PASN_Stream & strm) const
10642 PreambleEncode(strm);
10644 m_redundancyEncoding.Encode(strm);
10645 m_separateStream.Encode(strm);
10647 UnknownExtensionsEncode(strm);
10651 PObject * H245_DepFECCapability_rfc2733::Clone() const
10653 #ifndef PASN_LEANANDMEAN
10654 PAssert(IsClass(H245_DepFECCapability_rfc2733::Class()), PInvalidCast);
10655 #endif
10656 return new H245_DepFECCapability_rfc2733(*this);
10661 // OpenLogicalChannel_forwardLogicalChannelParameters
10664 H245_OpenLogicalChannel_forwardLogicalChannelParameters::H245_OpenLogicalChannel_forwardLogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
10665 : PASN_Sequence(tag, tagClass, 1, TRUE, 2)
10667 m_portNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
10671 #ifndef PASN_NOPRINTON
10672 void H245_OpenLogicalChannel_forwardLogicalChannelParameters::PrintOn(ostream & strm) const
10674 int indent = strm.precision() + 2;
10675 strm << "{\n";
10676 if (HasOptionalField(e_portNumber))
10677 strm << setw(indent+13) << "portNumber = " << setprecision(indent) << m_portNumber << '\n';
10678 strm << setw(indent+11) << "dataType = " << setprecision(indent) << m_dataType << '\n';
10679 strm << setw(indent+22) << "multiplexParameters = " << setprecision(indent) << m_multiplexParameters << '\n';
10680 if (HasOptionalField(e_forwardLogicalChannelDependency))
10681 strm << setw(indent+34) << "forwardLogicalChannelDependency = " << setprecision(indent) << m_forwardLogicalChannelDependency << '\n';
10682 if (HasOptionalField(e_replacementFor))
10683 strm << setw(indent+17) << "replacementFor = " << setprecision(indent) << m_replacementFor << '\n';
10684 strm << setw(indent-1) << setprecision(indent-2) << "}";
10686 #endif
10689 PObject::Comparison H245_OpenLogicalChannel_forwardLogicalChannelParameters::Compare(const PObject & obj) const
10691 #ifndef PASN_LEANANDMEAN
10692 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannel_forwardLogicalChannelParameters), PInvalidCast);
10693 #endif
10694 const H245_OpenLogicalChannel_forwardLogicalChannelParameters & other = (const H245_OpenLogicalChannel_forwardLogicalChannelParameters &)obj;
10696 Comparison result;
10698 if ((result = m_portNumber.Compare(other.m_portNumber)) != EqualTo)
10699 return result;
10700 if ((result = m_dataType.Compare(other.m_dataType)) != EqualTo)
10701 return result;
10702 if ((result = m_multiplexParameters.Compare(other.m_multiplexParameters)) != EqualTo)
10703 return result;
10705 return PASN_Sequence::Compare(other);
10709 PINDEX H245_OpenLogicalChannel_forwardLogicalChannelParameters::GetDataLength() const
10711 PINDEX length = 0;
10712 if (HasOptionalField(e_portNumber))
10713 length += m_portNumber.GetObjectLength();
10714 length += m_dataType.GetObjectLength();
10715 length += m_multiplexParameters.GetObjectLength();
10716 return length;
10720 BOOL H245_OpenLogicalChannel_forwardLogicalChannelParameters::Decode(PASN_Stream & strm)
10722 if (!PreambleDecode(strm))
10723 return FALSE;
10725 if (HasOptionalField(e_portNumber) && !m_portNumber.Decode(strm))
10726 return FALSE;
10727 if (!m_dataType.Decode(strm))
10728 return FALSE;
10729 if (!m_multiplexParameters.Decode(strm))
10730 return FALSE;
10731 if (!KnownExtensionDecode(strm, e_forwardLogicalChannelDependency, m_forwardLogicalChannelDependency))
10732 return FALSE;
10733 if (!KnownExtensionDecode(strm, e_replacementFor, m_replacementFor))
10734 return FALSE;
10736 return UnknownExtensionsDecode(strm);
10740 void H245_OpenLogicalChannel_forwardLogicalChannelParameters::Encode(PASN_Stream & strm) const
10742 PreambleEncode(strm);
10744 if (HasOptionalField(e_portNumber))
10745 m_portNumber.Encode(strm);
10746 m_dataType.Encode(strm);
10747 m_multiplexParameters.Encode(strm);
10748 KnownExtensionEncode(strm, e_forwardLogicalChannelDependency, m_forwardLogicalChannelDependency);
10749 KnownExtensionEncode(strm, e_replacementFor, m_replacementFor);
10751 UnknownExtensionsEncode(strm);
10755 PObject * H245_OpenLogicalChannel_forwardLogicalChannelParameters::Clone() const
10757 #ifndef PASN_LEANANDMEAN
10758 PAssert(IsClass(H245_OpenLogicalChannel_forwardLogicalChannelParameters::Class()), PInvalidCast);
10759 #endif
10760 return new H245_OpenLogicalChannel_forwardLogicalChannelParameters(*this);
10765 // OpenLogicalChannel_reverseLogicalChannelParameters
10768 H245_OpenLogicalChannel_reverseLogicalChannelParameters::H245_OpenLogicalChannel_reverseLogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
10769 : PASN_Sequence(tag, tagClass, 1, TRUE, 2)
10774 #ifndef PASN_NOPRINTON
10775 void H245_OpenLogicalChannel_reverseLogicalChannelParameters::PrintOn(ostream & strm) const
10777 int indent = strm.precision() + 2;
10778 strm << "{\n";
10779 strm << setw(indent+11) << "dataType = " << setprecision(indent) << m_dataType << '\n';
10780 if (HasOptionalField(e_multiplexParameters))
10781 strm << setw(indent+22) << "multiplexParameters = " << setprecision(indent) << m_multiplexParameters << '\n';
10782 if (HasOptionalField(e_reverseLogicalChannelDependency))
10783 strm << setw(indent+34) << "reverseLogicalChannelDependency = " << setprecision(indent) << m_reverseLogicalChannelDependency << '\n';
10784 if (HasOptionalField(e_replacementFor))
10785 strm << setw(indent+17) << "replacementFor = " << setprecision(indent) << m_replacementFor << '\n';
10786 strm << setw(indent-1) << setprecision(indent-2) << "}";
10788 #endif
10791 PObject::Comparison H245_OpenLogicalChannel_reverseLogicalChannelParameters::Compare(const PObject & obj) const
10793 #ifndef PASN_LEANANDMEAN
10794 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannel_reverseLogicalChannelParameters), PInvalidCast);
10795 #endif
10796 const H245_OpenLogicalChannel_reverseLogicalChannelParameters & other = (const H245_OpenLogicalChannel_reverseLogicalChannelParameters &)obj;
10798 Comparison result;
10800 if ((result = m_dataType.Compare(other.m_dataType)) != EqualTo)
10801 return result;
10802 if ((result = m_multiplexParameters.Compare(other.m_multiplexParameters)) != EqualTo)
10803 return result;
10805 return PASN_Sequence::Compare(other);
10809 PINDEX H245_OpenLogicalChannel_reverseLogicalChannelParameters::GetDataLength() const
10811 PINDEX length = 0;
10812 length += m_dataType.GetObjectLength();
10813 if (HasOptionalField(e_multiplexParameters))
10814 length += m_multiplexParameters.GetObjectLength();
10815 return length;
10819 BOOL H245_OpenLogicalChannel_reverseLogicalChannelParameters::Decode(PASN_Stream & strm)
10821 if (!PreambleDecode(strm))
10822 return FALSE;
10824 if (!m_dataType.Decode(strm))
10825 return FALSE;
10826 if (HasOptionalField(e_multiplexParameters) && !m_multiplexParameters.Decode(strm))
10827 return FALSE;
10828 if (!KnownExtensionDecode(strm, e_reverseLogicalChannelDependency, m_reverseLogicalChannelDependency))
10829 return FALSE;
10830 if (!KnownExtensionDecode(strm, e_replacementFor, m_replacementFor))
10831 return FALSE;
10833 return UnknownExtensionsDecode(strm);
10837 void H245_OpenLogicalChannel_reverseLogicalChannelParameters::Encode(PASN_Stream & strm) const
10839 PreambleEncode(strm);
10841 m_dataType.Encode(strm);
10842 if (HasOptionalField(e_multiplexParameters))
10843 m_multiplexParameters.Encode(strm);
10844 KnownExtensionEncode(strm, e_reverseLogicalChannelDependency, m_reverseLogicalChannelDependency);
10845 KnownExtensionEncode(strm, e_replacementFor, m_replacementFor);
10847 UnknownExtensionsEncode(strm);
10851 PObject * H245_OpenLogicalChannel_reverseLogicalChannelParameters::Clone() const
10853 #ifndef PASN_LEANANDMEAN
10854 PAssert(IsClass(H245_OpenLogicalChannel_reverseLogicalChannelParameters::Class()), PInvalidCast);
10855 #endif
10856 return new H245_OpenLogicalChannel_reverseLogicalChannelParameters(*this);
10861 // RedundancyEncoding_rtpRedundancyEncoding
10864 H245_RedundancyEncoding_rtpRedundancyEncoding::H245_RedundancyEncoding_rtpRedundancyEncoding(unsigned tag, PASN_Object::TagClass tagClass)
10865 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
10870 #ifndef PASN_NOPRINTON
10871 void H245_RedundancyEncoding_rtpRedundancyEncoding::PrintOn(ostream & strm) const
10873 int indent = strm.precision() + 2;
10874 strm << "{\n";
10875 if (HasOptionalField(e_primary))
10876 strm << setw(indent+10) << "primary = " << setprecision(indent) << m_primary << '\n';
10877 if (HasOptionalField(e_secondary))
10878 strm << setw(indent+12) << "secondary = " << setprecision(indent) << m_secondary << '\n';
10879 strm << setw(indent-1) << setprecision(indent-2) << "}";
10881 #endif
10884 PObject::Comparison H245_RedundancyEncoding_rtpRedundancyEncoding::Compare(const PObject & obj) const
10886 #ifndef PASN_LEANANDMEAN
10887 PAssert(PIsDescendant(&obj, H245_RedundancyEncoding_rtpRedundancyEncoding), PInvalidCast);
10888 #endif
10889 const H245_RedundancyEncoding_rtpRedundancyEncoding & other = (const H245_RedundancyEncoding_rtpRedundancyEncoding &)obj;
10891 Comparison result;
10893 if ((result = m_primary.Compare(other.m_primary)) != EqualTo)
10894 return result;
10895 if ((result = m_secondary.Compare(other.m_secondary)) != EqualTo)
10896 return result;
10898 return PASN_Sequence::Compare(other);
10902 PINDEX H245_RedundancyEncoding_rtpRedundancyEncoding::GetDataLength() const
10904 PINDEX length = 0;
10905 if (HasOptionalField(e_primary))
10906 length += m_primary.GetObjectLength();
10907 if (HasOptionalField(e_secondary))
10908 length += m_secondary.GetObjectLength();
10909 return length;
10913 BOOL H245_RedundancyEncoding_rtpRedundancyEncoding::Decode(PASN_Stream & strm)
10915 if (!PreambleDecode(strm))
10916 return FALSE;
10918 if (HasOptionalField(e_primary) && !m_primary.Decode(strm))
10919 return FALSE;
10920 if (HasOptionalField(e_secondary) && !m_secondary.Decode(strm))
10921 return FALSE;
10923 return UnknownExtensionsDecode(strm);
10927 void H245_RedundancyEncoding_rtpRedundancyEncoding::Encode(PASN_Stream & strm) const
10929 PreambleEncode(strm);
10931 if (HasOptionalField(e_primary))
10932 m_primary.Encode(strm);
10933 if (HasOptionalField(e_secondary))
10934 m_secondary.Encode(strm);
10936 UnknownExtensionsEncode(strm);
10940 PObject * H245_RedundancyEncoding_rtpRedundancyEncoding::Clone() const
10942 #ifndef PASN_LEANANDMEAN
10943 PAssert(IsClass(H245_RedundancyEncoding_rtpRedundancyEncoding::Class()), PInvalidCast);
10944 #endif
10945 return new H245_RedundancyEncoding_rtpRedundancyEncoding(*this);
10950 // DepFECData_rfc2733
10953 H245_DepFECData_rfc2733::H245_DepFECData_rfc2733(unsigned tag, PASN_Object::TagClass tagClass)
10954 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
10959 #ifndef PASN_NOPRINTON
10960 void H245_DepFECData_rfc2733::PrintOn(ostream & strm) const
10962 int indent = strm.precision() + 2;
10963 strm << "{\n";
10964 strm << setw(indent+7) << "mode = " << setprecision(indent) << m_mode << '\n';
10965 strm << setw(indent-1) << setprecision(indent-2) << "}";
10967 #endif
10970 PObject::Comparison H245_DepFECData_rfc2733::Compare(const PObject & obj) const
10972 #ifndef PASN_LEANANDMEAN
10973 PAssert(PIsDescendant(&obj, H245_DepFECData_rfc2733), PInvalidCast);
10974 #endif
10975 const H245_DepFECData_rfc2733 & other = (const H245_DepFECData_rfc2733 &)obj;
10977 Comparison result;
10979 if ((result = m_mode.Compare(other.m_mode)) != EqualTo)
10980 return result;
10982 return PASN_Sequence::Compare(other);
10986 PINDEX H245_DepFECData_rfc2733::GetDataLength() const
10988 PINDEX length = 0;
10989 length += m_mode.GetObjectLength();
10990 return length;
10994 BOOL H245_DepFECData_rfc2733::Decode(PASN_Stream & strm)
10996 if (!PreambleDecode(strm))
10997 return FALSE;
10999 if (!m_mode.Decode(strm))
11000 return FALSE;
11002 return UnknownExtensionsDecode(strm);
11006 void H245_DepFECData_rfc2733::Encode(PASN_Stream & strm) const
11008 PreambleEncode(strm);
11010 m_mode.Encode(strm);
11012 UnknownExtensionsEncode(strm);
11016 PObject * H245_DepFECData_rfc2733::Clone() const
11018 #ifndef PASN_LEANANDMEAN
11019 PAssert(IsClass(H245_DepFECData_rfc2733::Class()), PInvalidCast);
11020 #endif
11021 return new H245_DepFECData_rfc2733(*this);
11026 // FECData_rfc2733
11029 H245_FECData_rfc2733::H245_FECData_rfc2733(unsigned tag, PASN_Object::TagClass tagClass)
11030 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
11032 m_protectedPayloadType.SetConstraints(PASN_Object::FixedConstraint, 0, 127);
11036 #ifndef PASN_NOPRINTON
11037 void H245_FECData_rfc2733::PrintOn(ostream & strm) const
11039 int indent = strm.precision() + 2;
11040 strm << "{\n";
11041 strm << setw(indent+23) << "protectedPayloadType = " << setprecision(indent) << m_protectedPayloadType << '\n';
11042 if (HasOptionalField(e_fecScheme))
11043 strm << setw(indent+12) << "fecScheme = " << setprecision(indent) << m_fecScheme << '\n';
11044 strm << setw(indent+10) << "pktMode = " << setprecision(indent) << m_pktMode << '\n';
11045 strm << setw(indent-1) << setprecision(indent-2) << "}";
11047 #endif
11050 PObject::Comparison H245_FECData_rfc2733::Compare(const PObject & obj) const
11052 #ifndef PASN_LEANANDMEAN
11053 PAssert(PIsDescendant(&obj, H245_FECData_rfc2733), PInvalidCast);
11054 #endif
11055 const H245_FECData_rfc2733 & other = (const H245_FECData_rfc2733 &)obj;
11057 Comparison result;
11059 if ((result = m_protectedPayloadType.Compare(other.m_protectedPayloadType)) != EqualTo)
11060 return result;
11061 if ((result = m_fecScheme.Compare(other.m_fecScheme)) != EqualTo)
11062 return result;
11063 if ((result = m_pktMode.Compare(other.m_pktMode)) != EqualTo)
11064 return result;
11066 return PASN_Sequence::Compare(other);
11070 PINDEX H245_FECData_rfc2733::GetDataLength() const
11072 PINDEX length = 0;
11073 length += m_protectedPayloadType.GetObjectLength();
11074 if (HasOptionalField(e_fecScheme))
11075 length += m_fecScheme.GetObjectLength();
11076 length += m_pktMode.GetObjectLength();
11077 return length;
11081 BOOL H245_FECData_rfc2733::Decode(PASN_Stream & strm)
11083 if (!PreambleDecode(strm))
11084 return FALSE;
11086 if (!m_protectedPayloadType.Decode(strm))
11087 return FALSE;
11088 if (HasOptionalField(e_fecScheme) && !m_fecScheme.Decode(strm))
11089 return FALSE;
11090 if (!m_pktMode.Decode(strm))
11091 return FALSE;
11093 return UnknownExtensionsDecode(strm);
11097 void H245_FECData_rfc2733::Encode(PASN_Stream & strm) const
11099 PreambleEncode(strm);
11101 m_protectedPayloadType.Encode(strm);
11102 if (HasOptionalField(e_fecScheme))
11103 m_fecScheme.Encode(strm);
11104 m_pktMode.Encode(strm);
11106 UnknownExtensionsEncode(strm);
11110 PObject * H245_FECData_rfc2733::Clone() const
11112 #ifndef PASN_LEANANDMEAN
11113 PAssert(IsClass(H245_FECData_rfc2733::Class()), PInvalidCast);
11114 #endif
11115 return new H245_FECData_rfc2733(*this);
11120 // UnicastAddress_iPSourceRouteAddress
11123 H245_UnicastAddress_iPSourceRouteAddress::H245_UnicastAddress_iPSourceRouteAddress(unsigned tag, PASN_Object::TagClass tagClass)
11124 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11126 m_network.SetConstraints(PASN_Object::FixedConstraint, 4);
11127 m_tsapIdentifier.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
11131 #ifndef PASN_NOPRINTON
11132 void H245_UnicastAddress_iPSourceRouteAddress::PrintOn(ostream & strm) const
11134 int indent = strm.precision() + 2;
11135 strm << "{\n";
11136 strm << setw(indent+10) << "routing = " << setprecision(indent) << m_routing << '\n';
11137 strm << setw(indent+10) << "network = " << setprecision(indent) << m_network << '\n';
11138 strm << setw(indent+17) << "tsapIdentifier = " << setprecision(indent) << m_tsapIdentifier << '\n';
11139 strm << setw(indent+8) << "route = " << setprecision(indent) << m_route << '\n';
11140 strm << setw(indent-1) << setprecision(indent-2) << "}";
11142 #endif
11145 PObject::Comparison H245_UnicastAddress_iPSourceRouteAddress::Compare(const PObject & obj) const
11147 #ifndef PASN_LEANANDMEAN
11148 PAssert(PIsDescendant(&obj, H245_UnicastAddress_iPSourceRouteAddress), PInvalidCast);
11149 #endif
11150 const H245_UnicastAddress_iPSourceRouteAddress & other = (const H245_UnicastAddress_iPSourceRouteAddress &)obj;
11152 Comparison result;
11154 if ((result = m_routing.Compare(other.m_routing)) != EqualTo)
11155 return result;
11156 if ((result = m_network.Compare(other.m_network)) != EqualTo)
11157 return result;
11158 if ((result = m_tsapIdentifier.Compare(other.m_tsapIdentifier)) != EqualTo)
11159 return result;
11160 if ((result = m_route.Compare(other.m_route)) != EqualTo)
11161 return result;
11163 return PASN_Sequence::Compare(other);
11167 PINDEX H245_UnicastAddress_iPSourceRouteAddress::GetDataLength() const
11169 PINDEX length = 0;
11170 length += m_routing.GetObjectLength();
11171 length += m_network.GetObjectLength();
11172 length += m_tsapIdentifier.GetObjectLength();
11173 length += m_route.GetObjectLength();
11174 return length;
11178 BOOL H245_UnicastAddress_iPSourceRouteAddress::Decode(PASN_Stream & strm)
11180 if (!PreambleDecode(strm))
11181 return FALSE;
11183 if (!m_routing.Decode(strm))
11184 return FALSE;
11185 if (!m_network.Decode(strm))
11186 return FALSE;
11187 if (!m_tsapIdentifier.Decode(strm))
11188 return FALSE;
11189 if (!m_route.Decode(strm))
11190 return FALSE;
11192 return UnknownExtensionsDecode(strm);
11196 void H245_UnicastAddress_iPSourceRouteAddress::Encode(PASN_Stream & strm) const
11198 PreambleEncode(strm);
11200 m_routing.Encode(strm);
11201 m_network.Encode(strm);
11202 m_tsapIdentifier.Encode(strm);
11203 m_route.Encode(strm);
11205 UnknownExtensionsEncode(strm);
11209 PObject * H245_UnicastAddress_iPSourceRouteAddress::Clone() const
11211 #ifndef PASN_LEANANDMEAN
11212 PAssert(IsClass(H245_UnicastAddress_iPSourceRouteAddress::Class()), PInvalidCast);
11213 #endif
11214 return new H245_UnicastAddress_iPSourceRouteAddress(*this);
11219 // OpenLogicalChannelAck_reverseLogicalChannelParameters
11222 H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::H245_OpenLogicalChannelAck_reverseLogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
11223 : PASN_Sequence(tag, tagClass, 2, TRUE, 1)
11225 m_portNumber.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
11229 #ifndef PASN_NOPRINTON
11230 void H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::PrintOn(ostream & strm) const
11232 int indent = strm.precision() + 2;
11233 strm << "{\n";
11234 strm << setw(indent+30) << "reverseLogicalChannelNumber = " << setprecision(indent) << m_reverseLogicalChannelNumber << '\n';
11235 if (HasOptionalField(e_portNumber))
11236 strm << setw(indent+13) << "portNumber = " << setprecision(indent) << m_portNumber << '\n';
11237 if (HasOptionalField(e_multiplexParameters))
11238 strm << setw(indent+22) << "multiplexParameters = " << setprecision(indent) << m_multiplexParameters << '\n';
11239 if (HasOptionalField(e_replacementFor))
11240 strm << setw(indent+17) << "replacementFor = " << setprecision(indent) << m_replacementFor << '\n';
11241 strm << setw(indent-1) << setprecision(indent-2) << "}";
11243 #endif
11246 PObject::Comparison H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::Compare(const PObject & obj) const
11248 #ifndef PASN_LEANANDMEAN
11249 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannelAck_reverseLogicalChannelParameters), PInvalidCast);
11250 #endif
11251 const H245_OpenLogicalChannelAck_reverseLogicalChannelParameters & other = (const H245_OpenLogicalChannelAck_reverseLogicalChannelParameters &)obj;
11253 Comparison result;
11255 if ((result = m_reverseLogicalChannelNumber.Compare(other.m_reverseLogicalChannelNumber)) != EqualTo)
11256 return result;
11257 if ((result = m_portNumber.Compare(other.m_portNumber)) != EqualTo)
11258 return result;
11259 if ((result = m_multiplexParameters.Compare(other.m_multiplexParameters)) != EqualTo)
11260 return result;
11262 return PASN_Sequence::Compare(other);
11266 PINDEX H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::GetDataLength() const
11268 PINDEX length = 0;
11269 length += m_reverseLogicalChannelNumber.GetObjectLength();
11270 if (HasOptionalField(e_portNumber))
11271 length += m_portNumber.GetObjectLength();
11272 if (HasOptionalField(e_multiplexParameters))
11273 length += m_multiplexParameters.GetObjectLength();
11274 return length;
11278 BOOL H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::Decode(PASN_Stream & strm)
11280 if (!PreambleDecode(strm))
11281 return FALSE;
11283 if (!m_reverseLogicalChannelNumber.Decode(strm))
11284 return FALSE;
11285 if (HasOptionalField(e_portNumber) && !m_portNumber.Decode(strm))
11286 return FALSE;
11287 if (HasOptionalField(e_multiplexParameters) && !m_multiplexParameters.Decode(strm))
11288 return FALSE;
11289 if (!KnownExtensionDecode(strm, e_replacementFor, m_replacementFor))
11290 return FALSE;
11292 return UnknownExtensionsDecode(strm);
11296 void H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::Encode(PASN_Stream & strm) const
11298 PreambleEncode(strm);
11300 m_reverseLogicalChannelNumber.Encode(strm);
11301 if (HasOptionalField(e_portNumber))
11302 m_portNumber.Encode(strm);
11303 if (HasOptionalField(e_multiplexParameters))
11304 m_multiplexParameters.Encode(strm);
11305 KnownExtensionEncode(strm, e_replacementFor, m_replacementFor);
11307 UnknownExtensionsEncode(strm);
11311 PObject * H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::Clone() const
11313 #ifndef PASN_LEANANDMEAN
11314 PAssert(IsClass(H245_OpenLogicalChannelAck_reverseLogicalChannelParameters::Class()), PInvalidCast);
11315 #endif
11316 return new H245_OpenLogicalChannelAck_reverseLogicalChannelParameters(*this);
11321 // DepFECMode_rfc2733Mode
11324 H245_DepFECMode_rfc2733Mode::H245_DepFECMode_rfc2733Mode(unsigned tag, PASN_Object::TagClass tagClass)
11325 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11330 #ifndef PASN_NOPRINTON
11331 void H245_DepFECMode_rfc2733Mode::PrintOn(ostream & strm) const
11333 int indent = strm.precision() + 2;
11334 strm << "{\n";
11335 strm << setw(indent+7) << "mode = " << setprecision(indent) << m_mode << '\n';
11336 strm << setw(indent-1) << setprecision(indent-2) << "}";
11338 #endif
11341 PObject::Comparison H245_DepFECMode_rfc2733Mode::Compare(const PObject & obj) const
11343 #ifndef PASN_LEANANDMEAN
11344 PAssert(PIsDescendant(&obj, H245_DepFECMode_rfc2733Mode), PInvalidCast);
11345 #endif
11346 const H245_DepFECMode_rfc2733Mode & other = (const H245_DepFECMode_rfc2733Mode &)obj;
11348 Comparison result;
11350 if ((result = m_mode.Compare(other.m_mode)) != EqualTo)
11351 return result;
11353 return PASN_Sequence::Compare(other);
11357 PINDEX H245_DepFECMode_rfc2733Mode::GetDataLength() const
11359 PINDEX length = 0;
11360 length += m_mode.GetObjectLength();
11361 return length;
11365 BOOL H245_DepFECMode_rfc2733Mode::Decode(PASN_Stream & strm)
11367 if (!PreambleDecode(strm))
11368 return FALSE;
11370 if (!m_mode.Decode(strm))
11371 return FALSE;
11373 return UnknownExtensionsDecode(strm);
11377 void H245_DepFECMode_rfc2733Mode::Encode(PASN_Stream & strm) const
11379 PreambleEncode(strm);
11381 m_mode.Encode(strm);
11383 UnknownExtensionsEncode(strm);
11387 PObject * H245_DepFECMode_rfc2733Mode::Clone() const
11389 #ifndef PASN_LEANANDMEAN
11390 PAssert(IsClass(H245_DepFECMode_rfc2733Mode::Class()), PInvalidCast);
11391 #endif
11392 return new H245_DepFECMode_rfc2733Mode(*this);
11397 // ConferenceRequest_requestTerminalCertificate
11400 H245_ConferenceRequest_requestTerminalCertificate::H245_ConferenceRequest_requestTerminalCertificate(unsigned tag, PASN_Object::TagClass tagClass)
11401 : PASN_Sequence(tag, tagClass, 3, TRUE, 0)
11403 m_sRandom.SetConstraints(PASN_Object::FixedConstraint, 1, 4294967295U);
11407 #ifndef PASN_NOPRINTON
11408 void H245_ConferenceRequest_requestTerminalCertificate::PrintOn(ostream & strm) const
11410 int indent = strm.precision() + 2;
11411 strm << "{\n";
11412 if (HasOptionalField(e_terminalLabel))
11413 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11414 if (HasOptionalField(e_certSelectionCriteria))
11415 strm << setw(indent+24) << "certSelectionCriteria = " << setprecision(indent) << m_certSelectionCriteria << '\n';
11416 if (HasOptionalField(e_sRandom))
11417 strm << setw(indent+10) << "sRandom = " << setprecision(indent) << m_sRandom << '\n';
11418 strm << setw(indent-1) << setprecision(indent-2) << "}";
11420 #endif
11423 PObject::Comparison H245_ConferenceRequest_requestTerminalCertificate::Compare(const PObject & obj) const
11425 #ifndef PASN_LEANANDMEAN
11426 PAssert(PIsDescendant(&obj, H245_ConferenceRequest_requestTerminalCertificate), PInvalidCast);
11427 #endif
11428 const H245_ConferenceRequest_requestTerminalCertificate & other = (const H245_ConferenceRequest_requestTerminalCertificate &)obj;
11430 Comparison result;
11432 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11433 return result;
11434 if ((result = m_certSelectionCriteria.Compare(other.m_certSelectionCriteria)) != EqualTo)
11435 return result;
11436 if ((result = m_sRandom.Compare(other.m_sRandom)) != EqualTo)
11437 return result;
11439 return PASN_Sequence::Compare(other);
11443 PINDEX H245_ConferenceRequest_requestTerminalCertificate::GetDataLength() const
11445 PINDEX length = 0;
11446 if (HasOptionalField(e_terminalLabel))
11447 length += m_terminalLabel.GetObjectLength();
11448 if (HasOptionalField(e_certSelectionCriteria))
11449 length += m_certSelectionCriteria.GetObjectLength();
11450 if (HasOptionalField(e_sRandom))
11451 length += m_sRandom.GetObjectLength();
11452 return length;
11456 BOOL H245_ConferenceRequest_requestTerminalCertificate::Decode(PASN_Stream & strm)
11458 if (!PreambleDecode(strm))
11459 return FALSE;
11461 if (HasOptionalField(e_terminalLabel) && !m_terminalLabel.Decode(strm))
11462 return FALSE;
11463 if (HasOptionalField(e_certSelectionCriteria) && !m_certSelectionCriteria.Decode(strm))
11464 return FALSE;
11465 if (HasOptionalField(e_sRandom) && !m_sRandom.Decode(strm))
11466 return FALSE;
11468 return UnknownExtensionsDecode(strm);
11472 void H245_ConferenceRequest_requestTerminalCertificate::Encode(PASN_Stream & strm) const
11474 PreambleEncode(strm);
11476 if (HasOptionalField(e_terminalLabel))
11477 m_terminalLabel.Encode(strm);
11478 if (HasOptionalField(e_certSelectionCriteria))
11479 m_certSelectionCriteria.Encode(strm);
11480 if (HasOptionalField(e_sRandom))
11481 m_sRandom.Encode(strm);
11483 UnknownExtensionsEncode(strm);
11487 PObject * H245_ConferenceRequest_requestTerminalCertificate::Clone() const
11489 #ifndef PASN_LEANANDMEAN
11490 PAssert(IsClass(H245_ConferenceRequest_requestTerminalCertificate::Class()), PInvalidCast);
11491 #endif
11492 return new H245_ConferenceRequest_requestTerminalCertificate(*this);
11497 // ConferenceResponse_mCTerminalIDResponse
11500 H245_ConferenceResponse_mCTerminalIDResponse::H245_ConferenceResponse_mCTerminalIDResponse(unsigned tag, PASN_Object::TagClass tagClass)
11501 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11506 #ifndef PASN_NOPRINTON
11507 void H245_ConferenceResponse_mCTerminalIDResponse::PrintOn(ostream & strm) const
11509 int indent = strm.precision() + 2;
11510 strm << "{\n";
11511 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11512 strm << setw(indent+13) << "terminalID = " << setprecision(indent) << m_terminalID << '\n';
11513 strm << setw(indent-1) << setprecision(indent-2) << "}";
11515 #endif
11518 PObject::Comparison H245_ConferenceResponse_mCTerminalIDResponse::Compare(const PObject & obj) const
11520 #ifndef PASN_LEANANDMEAN
11521 PAssert(PIsDescendant(&obj, H245_ConferenceResponse_mCTerminalIDResponse), PInvalidCast);
11522 #endif
11523 const H245_ConferenceResponse_mCTerminalIDResponse & other = (const H245_ConferenceResponse_mCTerminalIDResponse &)obj;
11525 Comparison result;
11527 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11528 return result;
11529 if ((result = m_terminalID.Compare(other.m_terminalID)) != EqualTo)
11530 return result;
11532 return PASN_Sequence::Compare(other);
11536 PINDEX H245_ConferenceResponse_mCTerminalIDResponse::GetDataLength() const
11538 PINDEX length = 0;
11539 length += m_terminalLabel.GetObjectLength();
11540 length += m_terminalID.GetObjectLength();
11541 return length;
11545 BOOL H245_ConferenceResponse_mCTerminalIDResponse::Decode(PASN_Stream & strm)
11547 if (!PreambleDecode(strm))
11548 return FALSE;
11550 if (!m_terminalLabel.Decode(strm))
11551 return FALSE;
11552 if (!m_terminalID.Decode(strm))
11553 return FALSE;
11555 return UnknownExtensionsDecode(strm);
11559 void H245_ConferenceResponse_mCTerminalIDResponse::Encode(PASN_Stream & strm) const
11561 PreambleEncode(strm);
11563 m_terminalLabel.Encode(strm);
11564 m_terminalID.Encode(strm);
11566 UnknownExtensionsEncode(strm);
11570 PObject * H245_ConferenceResponse_mCTerminalIDResponse::Clone() const
11572 #ifndef PASN_LEANANDMEAN
11573 PAssert(IsClass(H245_ConferenceResponse_mCTerminalIDResponse::Class()), PInvalidCast);
11574 #endif
11575 return new H245_ConferenceResponse_mCTerminalIDResponse(*this);
11580 // ConferenceResponse_terminalIDResponse
11583 H245_ConferenceResponse_terminalIDResponse::H245_ConferenceResponse_terminalIDResponse(unsigned tag, PASN_Object::TagClass tagClass)
11584 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11589 #ifndef PASN_NOPRINTON
11590 void H245_ConferenceResponse_terminalIDResponse::PrintOn(ostream & strm) const
11592 int indent = strm.precision() + 2;
11593 strm << "{\n";
11594 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11595 strm << setw(indent+13) << "terminalID = " << setprecision(indent) << m_terminalID << '\n';
11596 strm << setw(indent-1) << setprecision(indent-2) << "}";
11598 #endif
11601 PObject::Comparison H245_ConferenceResponse_terminalIDResponse::Compare(const PObject & obj) const
11603 #ifndef PASN_LEANANDMEAN
11604 PAssert(PIsDescendant(&obj, H245_ConferenceResponse_terminalIDResponse), PInvalidCast);
11605 #endif
11606 const H245_ConferenceResponse_terminalIDResponse & other = (const H245_ConferenceResponse_terminalIDResponse &)obj;
11608 Comparison result;
11610 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11611 return result;
11612 if ((result = m_terminalID.Compare(other.m_terminalID)) != EqualTo)
11613 return result;
11615 return PASN_Sequence::Compare(other);
11619 PINDEX H245_ConferenceResponse_terminalIDResponse::GetDataLength() const
11621 PINDEX length = 0;
11622 length += m_terminalLabel.GetObjectLength();
11623 length += m_terminalID.GetObjectLength();
11624 return length;
11628 BOOL H245_ConferenceResponse_terminalIDResponse::Decode(PASN_Stream & strm)
11630 if (!PreambleDecode(strm))
11631 return FALSE;
11633 if (!m_terminalLabel.Decode(strm))
11634 return FALSE;
11635 if (!m_terminalID.Decode(strm))
11636 return FALSE;
11638 return UnknownExtensionsDecode(strm);
11642 void H245_ConferenceResponse_terminalIDResponse::Encode(PASN_Stream & strm) const
11644 PreambleEncode(strm);
11646 m_terminalLabel.Encode(strm);
11647 m_terminalID.Encode(strm);
11649 UnknownExtensionsEncode(strm);
11653 PObject * H245_ConferenceResponse_terminalIDResponse::Clone() const
11655 #ifndef PASN_LEANANDMEAN
11656 PAssert(IsClass(H245_ConferenceResponse_terminalIDResponse::Class()), PInvalidCast);
11657 #endif
11658 return new H245_ConferenceResponse_terminalIDResponse(*this);
11663 // ConferenceResponse_conferenceIDResponse
11666 H245_ConferenceResponse_conferenceIDResponse::H245_ConferenceResponse_conferenceIDResponse(unsigned tag, PASN_Object::TagClass tagClass)
11667 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11672 #ifndef PASN_NOPRINTON
11673 void H245_ConferenceResponse_conferenceIDResponse::PrintOn(ostream & strm) const
11675 int indent = strm.precision() + 2;
11676 strm << "{\n";
11677 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11678 strm << setw(indent+15) << "conferenceID = " << setprecision(indent) << m_conferenceID << '\n';
11679 strm << setw(indent-1) << setprecision(indent-2) << "}";
11681 #endif
11684 PObject::Comparison H245_ConferenceResponse_conferenceIDResponse::Compare(const PObject & obj) const
11686 #ifndef PASN_LEANANDMEAN
11687 PAssert(PIsDescendant(&obj, H245_ConferenceResponse_conferenceIDResponse), PInvalidCast);
11688 #endif
11689 const H245_ConferenceResponse_conferenceIDResponse & other = (const H245_ConferenceResponse_conferenceIDResponse &)obj;
11691 Comparison result;
11693 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11694 return result;
11695 if ((result = m_conferenceID.Compare(other.m_conferenceID)) != EqualTo)
11696 return result;
11698 return PASN_Sequence::Compare(other);
11702 PINDEX H245_ConferenceResponse_conferenceIDResponse::GetDataLength() const
11704 PINDEX length = 0;
11705 length += m_terminalLabel.GetObjectLength();
11706 length += m_conferenceID.GetObjectLength();
11707 return length;
11711 BOOL H245_ConferenceResponse_conferenceIDResponse::Decode(PASN_Stream & strm)
11713 if (!PreambleDecode(strm))
11714 return FALSE;
11716 if (!m_terminalLabel.Decode(strm))
11717 return FALSE;
11718 if (!m_conferenceID.Decode(strm))
11719 return FALSE;
11721 return UnknownExtensionsDecode(strm);
11725 void H245_ConferenceResponse_conferenceIDResponse::Encode(PASN_Stream & strm) const
11727 PreambleEncode(strm);
11729 m_terminalLabel.Encode(strm);
11730 m_conferenceID.Encode(strm);
11732 UnknownExtensionsEncode(strm);
11736 PObject * H245_ConferenceResponse_conferenceIDResponse::Clone() const
11738 #ifndef PASN_LEANANDMEAN
11739 PAssert(IsClass(H245_ConferenceResponse_conferenceIDResponse::Class()), PInvalidCast);
11740 #endif
11741 return new H245_ConferenceResponse_conferenceIDResponse(*this);
11746 // ConferenceResponse_passwordResponse
11749 H245_ConferenceResponse_passwordResponse::H245_ConferenceResponse_passwordResponse(unsigned tag, PASN_Object::TagClass tagClass)
11750 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11755 #ifndef PASN_NOPRINTON
11756 void H245_ConferenceResponse_passwordResponse::PrintOn(ostream & strm) const
11758 int indent = strm.precision() + 2;
11759 strm << "{\n";
11760 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11761 strm << setw(indent+11) << "password = " << setprecision(indent) << m_password << '\n';
11762 strm << setw(indent-1) << setprecision(indent-2) << "}";
11764 #endif
11767 PObject::Comparison H245_ConferenceResponse_passwordResponse::Compare(const PObject & obj) const
11769 #ifndef PASN_LEANANDMEAN
11770 PAssert(PIsDescendant(&obj, H245_ConferenceResponse_passwordResponse), PInvalidCast);
11771 #endif
11772 const H245_ConferenceResponse_passwordResponse & other = (const H245_ConferenceResponse_passwordResponse &)obj;
11774 Comparison result;
11776 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11777 return result;
11778 if ((result = m_password.Compare(other.m_password)) != EqualTo)
11779 return result;
11781 return PASN_Sequence::Compare(other);
11785 PINDEX H245_ConferenceResponse_passwordResponse::GetDataLength() const
11787 PINDEX length = 0;
11788 length += m_terminalLabel.GetObjectLength();
11789 length += m_password.GetObjectLength();
11790 return length;
11794 BOOL H245_ConferenceResponse_passwordResponse::Decode(PASN_Stream & strm)
11796 if (!PreambleDecode(strm))
11797 return FALSE;
11799 if (!m_terminalLabel.Decode(strm))
11800 return FALSE;
11801 if (!m_password.Decode(strm))
11802 return FALSE;
11804 return UnknownExtensionsDecode(strm);
11808 void H245_ConferenceResponse_passwordResponse::Encode(PASN_Stream & strm) const
11810 PreambleEncode(strm);
11812 m_terminalLabel.Encode(strm);
11813 m_password.Encode(strm);
11815 UnknownExtensionsEncode(strm);
11819 PObject * H245_ConferenceResponse_passwordResponse::Clone() const
11821 #ifndef PASN_LEANANDMEAN
11822 PAssert(IsClass(H245_ConferenceResponse_passwordResponse::Class()), PInvalidCast);
11823 #endif
11824 return new H245_ConferenceResponse_passwordResponse(*this);
11829 // ConferenceResponse_chairTokenOwnerResponse
11832 H245_ConferenceResponse_chairTokenOwnerResponse::H245_ConferenceResponse_chairTokenOwnerResponse(unsigned tag, PASN_Object::TagClass tagClass)
11833 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
11838 #ifndef PASN_NOPRINTON
11839 void H245_ConferenceResponse_chairTokenOwnerResponse::PrintOn(ostream & strm) const
11841 int indent = strm.precision() + 2;
11842 strm << "{\n";
11843 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11844 strm << setw(indent+13) << "terminalID = " << setprecision(indent) << m_terminalID << '\n';
11845 strm << setw(indent-1) << setprecision(indent-2) << "}";
11847 #endif
11850 PObject::Comparison H245_ConferenceResponse_chairTokenOwnerResponse::Compare(const PObject & obj) const
11852 #ifndef PASN_LEANANDMEAN
11853 PAssert(PIsDescendant(&obj, H245_ConferenceResponse_chairTokenOwnerResponse), PInvalidCast);
11854 #endif
11855 const H245_ConferenceResponse_chairTokenOwnerResponse & other = (const H245_ConferenceResponse_chairTokenOwnerResponse &)obj;
11857 Comparison result;
11859 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11860 return result;
11861 if ((result = m_terminalID.Compare(other.m_terminalID)) != EqualTo)
11862 return result;
11864 return PASN_Sequence::Compare(other);
11868 PINDEX H245_ConferenceResponse_chairTokenOwnerResponse::GetDataLength() const
11870 PINDEX length = 0;
11871 length += m_terminalLabel.GetObjectLength();
11872 length += m_terminalID.GetObjectLength();
11873 return length;
11877 BOOL H245_ConferenceResponse_chairTokenOwnerResponse::Decode(PASN_Stream & strm)
11879 if (!PreambleDecode(strm))
11880 return FALSE;
11882 if (!m_terminalLabel.Decode(strm))
11883 return FALSE;
11884 if (!m_terminalID.Decode(strm))
11885 return FALSE;
11887 return UnknownExtensionsDecode(strm);
11891 void H245_ConferenceResponse_chairTokenOwnerResponse::Encode(PASN_Stream & strm) const
11893 PreambleEncode(strm);
11895 m_terminalLabel.Encode(strm);
11896 m_terminalID.Encode(strm);
11898 UnknownExtensionsEncode(strm);
11902 PObject * H245_ConferenceResponse_chairTokenOwnerResponse::Clone() const
11904 #ifndef PASN_LEANANDMEAN
11905 PAssert(IsClass(H245_ConferenceResponse_chairTokenOwnerResponse::Class()), PInvalidCast);
11906 #endif
11907 return new H245_ConferenceResponse_chairTokenOwnerResponse(*this);
11912 // ConferenceResponse_terminalCertificateResponse
11915 H245_ConferenceResponse_terminalCertificateResponse::H245_ConferenceResponse_terminalCertificateResponse(unsigned tag, PASN_Object::TagClass tagClass)
11916 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
11918 m_certificateResponse.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
11922 #ifndef PASN_NOPRINTON
11923 void H245_ConferenceResponse_terminalCertificateResponse::PrintOn(ostream & strm) const
11925 int indent = strm.precision() + 2;
11926 strm << "{\n";
11927 if (HasOptionalField(e_terminalLabel))
11928 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
11929 if (HasOptionalField(e_certificateResponse))
11930 strm << setw(indent+22) << "certificateResponse = " << setprecision(indent) << m_certificateResponse << '\n';
11931 strm << setw(indent-1) << setprecision(indent-2) << "}";
11933 #endif
11936 PObject::Comparison H245_ConferenceResponse_terminalCertificateResponse::Compare(const PObject & obj) const
11938 #ifndef PASN_LEANANDMEAN
11939 PAssert(PIsDescendant(&obj, H245_ConferenceResponse_terminalCertificateResponse), PInvalidCast);
11940 #endif
11941 const H245_ConferenceResponse_terminalCertificateResponse & other = (const H245_ConferenceResponse_terminalCertificateResponse &)obj;
11943 Comparison result;
11945 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
11946 return result;
11947 if ((result = m_certificateResponse.Compare(other.m_certificateResponse)) != EqualTo)
11948 return result;
11950 return PASN_Sequence::Compare(other);
11954 PINDEX H245_ConferenceResponse_terminalCertificateResponse::GetDataLength() const
11956 PINDEX length = 0;
11957 if (HasOptionalField(e_terminalLabel))
11958 length += m_terminalLabel.GetObjectLength();
11959 if (HasOptionalField(e_certificateResponse))
11960 length += m_certificateResponse.GetObjectLength();
11961 return length;
11965 BOOL H245_ConferenceResponse_terminalCertificateResponse::Decode(PASN_Stream & strm)
11967 if (!PreambleDecode(strm))
11968 return FALSE;
11970 if (HasOptionalField(e_terminalLabel) && !m_terminalLabel.Decode(strm))
11971 return FALSE;
11972 if (HasOptionalField(e_certificateResponse) && !m_certificateResponse.Decode(strm))
11973 return FALSE;
11975 return UnknownExtensionsDecode(strm);
11979 void H245_ConferenceResponse_terminalCertificateResponse::Encode(PASN_Stream & strm) const
11981 PreambleEncode(strm);
11983 if (HasOptionalField(e_terminalLabel))
11984 m_terminalLabel.Encode(strm);
11985 if (HasOptionalField(e_certificateResponse))
11986 m_certificateResponse.Encode(strm);
11988 UnknownExtensionsEncode(strm);
11992 PObject * H245_ConferenceResponse_terminalCertificateResponse::Clone() const
11994 #ifndef PASN_LEANANDMEAN
11995 PAssert(IsClass(H245_ConferenceResponse_terminalCertificateResponse::Class()), PInvalidCast);
11996 #endif
11997 return new H245_ConferenceResponse_terminalCertificateResponse(*this);
12002 // MultilinkRequest_maximumHeaderInterval
12005 H245_MultilinkRequest_maximumHeaderInterval::H245_MultilinkRequest_maximumHeaderInterval(unsigned tag, PASN_Object::TagClass tagClass)
12006 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
12011 #ifndef PASN_NOPRINTON
12012 void H245_MultilinkRequest_maximumHeaderInterval::PrintOn(ostream & strm) const
12014 int indent = strm.precision() + 2;
12015 strm << "{\n";
12016 strm << setw(indent+14) << "requestType = " << setprecision(indent) << m_requestType << '\n';
12017 strm << setw(indent-1) << setprecision(indent-2) << "}";
12019 #endif
12022 PObject::Comparison H245_MultilinkRequest_maximumHeaderInterval::Compare(const PObject & obj) const
12024 #ifndef PASN_LEANANDMEAN
12025 PAssert(PIsDescendant(&obj, H245_MultilinkRequest_maximumHeaderInterval), PInvalidCast);
12026 #endif
12027 const H245_MultilinkRequest_maximumHeaderInterval & other = (const H245_MultilinkRequest_maximumHeaderInterval &)obj;
12029 Comparison result;
12031 if ((result = m_requestType.Compare(other.m_requestType)) != EqualTo)
12032 return result;
12034 return PASN_Sequence::Compare(other);
12038 PINDEX H245_MultilinkRequest_maximumHeaderInterval::GetDataLength() const
12040 PINDEX length = 0;
12041 length += m_requestType.GetObjectLength();
12042 return length;
12046 BOOL H245_MultilinkRequest_maximumHeaderInterval::Decode(PASN_Stream & strm)
12048 if (!PreambleDecode(strm))
12049 return FALSE;
12051 if (!m_requestType.Decode(strm))
12052 return FALSE;
12054 return UnknownExtensionsDecode(strm);
12058 void H245_MultilinkRequest_maximumHeaderInterval::Encode(PASN_Stream & strm) const
12060 PreambleEncode(strm);
12062 m_requestType.Encode(strm);
12064 UnknownExtensionsEncode(strm);
12068 PObject * H245_MultilinkRequest_maximumHeaderInterval::Clone() const
12070 #ifndef PASN_LEANANDMEAN
12071 PAssert(IsClass(H245_MultilinkRequest_maximumHeaderInterval::Class()), PInvalidCast);
12072 #endif
12073 return new H245_MultilinkRequest_maximumHeaderInterval(*this);
12078 // MultilinkResponse_addConnection
12081 H245_MultilinkResponse_addConnection::H245_MultilinkResponse_addConnection(unsigned tag, PASN_Object::TagClass tagClass)
12082 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
12087 #ifndef PASN_NOPRINTON
12088 void H245_MultilinkResponse_addConnection::PrintOn(ostream & strm) const
12090 int indent = strm.precision() + 2;
12091 strm << "{\n";
12092 strm << setw(indent+17) << "sequenceNumber = " << setprecision(indent) << m_sequenceNumber << '\n';
12093 strm << setw(indent+15) << "responseCode = " << setprecision(indent) << m_responseCode << '\n';
12094 strm << setw(indent-1) << setprecision(indent-2) << "}";
12096 #endif
12099 PObject::Comparison H245_MultilinkResponse_addConnection::Compare(const PObject & obj) const
12101 #ifndef PASN_LEANANDMEAN
12102 PAssert(PIsDescendant(&obj, H245_MultilinkResponse_addConnection), PInvalidCast);
12103 #endif
12104 const H245_MultilinkResponse_addConnection & other = (const H245_MultilinkResponse_addConnection &)obj;
12106 Comparison result;
12108 if ((result = m_sequenceNumber.Compare(other.m_sequenceNumber)) != EqualTo)
12109 return result;
12110 if ((result = m_responseCode.Compare(other.m_responseCode)) != EqualTo)
12111 return result;
12113 return PASN_Sequence::Compare(other);
12117 PINDEX H245_MultilinkResponse_addConnection::GetDataLength() const
12119 PINDEX length = 0;
12120 length += m_sequenceNumber.GetObjectLength();
12121 length += m_responseCode.GetObjectLength();
12122 return length;
12126 BOOL H245_MultilinkResponse_addConnection::Decode(PASN_Stream & strm)
12128 if (!PreambleDecode(strm))
12129 return FALSE;
12131 if (!m_sequenceNumber.Decode(strm))
12132 return FALSE;
12133 if (!m_responseCode.Decode(strm))
12134 return FALSE;
12136 return UnknownExtensionsDecode(strm);
12140 void H245_MultilinkResponse_addConnection::Encode(PASN_Stream & strm) const
12142 PreambleEncode(strm);
12144 m_sequenceNumber.Encode(strm);
12145 m_responseCode.Encode(strm);
12147 UnknownExtensionsEncode(strm);
12151 PObject * H245_MultilinkResponse_addConnection::Clone() const
12153 #ifndef PASN_LEANANDMEAN
12154 PAssert(IsClass(H245_MultilinkResponse_addConnection::Class()), PInvalidCast);
12155 #endif
12156 return new H245_MultilinkResponse_addConnection(*this);
12161 // SendTerminalCapabilitySet_specificRequest
12164 H245_SendTerminalCapabilitySet_specificRequest::H245_SendTerminalCapabilitySet_specificRequest(unsigned tag, PASN_Object::TagClass tagClass)
12165 : PASN_Sequence(tag, tagClass, 2, TRUE, 0)
12167 m_capabilityTableEntryNumbers.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
12168 m_capabilityDescriptorNumbers.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
12172 #ifndef PASN_NOPRINTON
12173 void H245_SendTerminalCapabilitySet_specificRequest::PrintOn(ostream & strm) const
12175 int indent = strm.precision() + 2;
12176 strm << "{\n";
12177 strm << setw(indent+22) << "multiplexCapability = " << setprecision(indent) << m_multiplexCapability << '\n';
12178 if (HasOptionalField(e_capabilityTableEntryNumbers))
12179 strm << setw(indent+30) << "capabilityTableEntryNumbers = " << setprecision(indent) << m_capabilityTableEntryNumbers << '\n';
12180 if (HasOptionalField(e_capabilityDescriptorNumbers))
12181 strm << setw(indent+30) << "capabilityDescriptorNumbers = " << setprecision(indent) << m_capabilityDescriptorNumbers << '\n';
12182 strm << setw(indent-1) << setprecision(indent-2) << "}";
12184 #endif
12187 PObject::Comparison H245_SendTerminalCapabilitySet_specificRequest::Compare(const PObject & obj) const
12189 #ifndef PASN_LEANANDMEAN
12190 PAssert(PIsDescendant(&obj, H245_SendTerminalCapabilitySet_specificRequest), PInvalidCast);
12191 #endif
12192 const H245_SendTerminalCapabilitySet_specificRequest & other = (const H245_SendTerminalCapabilitySet_specificRequest &)obj;
12194 Comparison result;
12196 if ((result = m_multiplexCapability.Compare(other.m_multiplexCapability)) != EqualTo)
12197 return result;
12198 if ((result = m_capabilityTableEntryNumbers.Compare(other.m_capabilityTableEntryNumbers)) != EqualTo)
12199 return result;
12200 if ((result = m_capabilityDescriptorNumbers.Compare(other.m_capabilityDescriptorNumbers)) != EqualTo)
12201 return result;
12203 return PASN_Sequence::Compare(other);
12207 PINDEX H245_SendTerminalCapabilitySet_specificRequest::GetDataLength() const
12209 PINDEX length = 0;
12210 length += m_multiplexCapability.GetObjectLength();
12211 if (HasOptionalField(e_capabilityTableEntryNumbers))
12212 length += m_capabilityTableEntryNumbers.GetObjectLength();
12213 if (HasOptionalField(e_capabilityDescriptorNumbers))
12214 length += m_capabilityDescriptorNumbers.GetObjectLength();
12215 return length;
12219 BOOL H245_SendTerminalCapabilitySet_specificRequest::Decode(PASN_Stream & strm)
12221 if (!PreambleDecode(strm))
12222 return FALSE;
12224 if (!m_multiplexCapability.Decode(strm))
12225 return FALSE;
12226 if (HasOptionalField(e_capabilityTableEntryNumbers) && !m_capabilityTableEntryNumbers.Decode(strm))
12227 return FALSE;
12228 if (HasOptionalField(e_capabilityDescriptorNumbers) && !m_capabilityDescriptorNumbers.Decode(strm))
12229 return FALSE;
12231 return UnknownExtensionsDecode(strm);
12235 void H245_SendTerminalCapabilitySet_specificRequest::Encode(PASN_Stream & strm) const
12237 PreambleEncode(strm);
12239 m_multiplexCapability.Encode(strm);
12240 if (HasOptionalField(e_capabilityTableEntryNumbers))
12241 m_capabilityTableEntryNumbers.Encode(strm);
12242 if (HasOptionalField(e_capabilityDescriptorNumbers))
12243 m_capabilityDescriptorNumbers.Encode(strm);
12245 UnknownExtensionsEncode(strm);
12249 PObject * H245_SendTerminalCapabilitySet_specificRequest::Clone() const
12251 #ifndef PASN_LEANANDMEAN
12252 PAssert(IsClass(H245_SendTerminalCapabilitySet_specificRequest::Class()), PInvalidCast);
12253 #endif
12254 return new H245_SendTerminalCapabilitySet_specificRequest(*this);
12259 // EncryptionCommand_encryptionAlgorithmID
12262 H245_EncryptionCommand_encryptionAlgorithmID::H245_EncryptionCommand_encryptionAlgorithmID(unsigned tag, PASN_Object::TagClass tagClass)
12263 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
12268 #ifndef PASN_NOPRINTON
12269 void H245_EncryptionCommand_encryptionAlgorithmID::PrintOn(ostream & strm) const
12271 int indent = strm.precision() + 2;
12272 strm << "{\n";
12273 strm << setw(indent+26) << "h233AlgorithmIdentifier = " << setprecision(indent) << m_h233AlgorithmIdentifier << '\n';
12274 strm << setw(indent+22) << "associatedAlgorithm = " << setprecision(indent) << m_associatedAlgorithm << '\n';
12275 strm << setw(indent-1) << setprecision(indent-2) << "}";
12277 #endif
12280 PObject::Comparison H245_EncryptionCommand_encryptionAlgorithmID::Compare(const PObject & obj) const
12282 #ifndef PASN_LEANANDMEAN
12283 PAssert(PIsDescendant(&obj, H245_EncryptionCommand_encryptionAlgorithmID), PInvalidCast);
12284 #endif
12285 const H245_EncryptionCommand_encryptionAlgorithmID & other = (const H245_EncryptionCommand_encryptionAlgorithmID &)obj;
12287 Comparison result;
12289 if ((result = m_h233AlgorithmIdentifier.Compare(other.m_h233AlgorithmIdentifier)) != EqualTo)
12290 return result;
12291 if ((result = m_associatedAlgorithm.Compare(other.m_associatedAlgorithm)) != EqualTo)
12292 return result;
12294 return PASN_Sequence::Compare(other);
12298 PINDEX H245_EncryptionCommand_encryptionAlgorithmID::GetDataLength() const
12300 PINDEX length = 0;
12301 length += m_h233AlgorithmIdentifier.GetObjectLength();
12302 length += m_associatedAlgorithm.GetObjectLength();
12303 return length;
12307 BOOL H245_EncryptionCommand_encryptionAlgorithmID::Decode(PASN_Stream & strm)
12309 if (!PreambleDecode(strm))
12310 return FALSE;
12312 if (!m_h233AlgorithmIdentifier.Decode(strm))
12313 return FALSE;
12314 if (!m_associatedAlgorithm.Decode(strm))
12315 return FALSE;
12317 return UnknownExtensionsDecode(strm);
12321 void H245_EncryptionCommand_encryptionAlgorithmID::Encode(PASN_Stream & strm) const
12323 PreambleEncode(strm);
12325 m_h233AlgorithmIdentifier.Encode(strm);
12326 m_associatedAlgorithm.Encode(strm);
12328 UnknownExtensionsEncode(strm);
12332 PObject * H245_EncryptionCommand_encryptionAlgorithmID::Clone() const
12334 #ifndef PASN_LEANANDMEAN
12335 PAssert(IsClass(H245_EncryptionCommand_encryptionAlgorithmID::Class()), PInvalidCast);
12336 #endif
12337 return new H245_EncryptionCommand_encryptionAlgorithmID(*this);
12342 // NewATMVCCommand_reverseParameters
12345 H245_NewATMVCCommand_reverseParameters::H245_NewATMVCCommand_reverseParameters(unsigned tag, PASN_Object::TagClass tagClass)
12346 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
12348 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
12352 #ifndef PASN_NOPRINTON
12353 void H245_NewATMVCCommand_reverseParameters::PrintOn(ostream & strm) const
12355 int indent = strm.precision() + 2;
12356 strm << "{\n";
12357 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
12358 strm << setw(indent+26) << "bitRateLockedToPCRClock = " << setprecision(indent) << m_bitRateLockedToPCRClock << '\n';
12359 strm << setw(indent+30) << "bitRateLockedToNetworkClock = " << setprecision(indent) << m_bitRateLockedToNetworkClock << '\n';
12360 strm << setw(indent+12) << "multiplex = " << setprecision(indent) << m_multiplex << '\n';
12361 strm << setw(indent-1) << setprecision(indent-2) << "}";
12363 #endif
12366 PObject::Comparison H245_NewATMVCCommand_reverseParameters::Compare(const PObject & obj) const
12368 #ifndef PASN_LEANANDMEAN
12369 PAssert(PIsDescendant(&obj, H245_NewATMVCCommand_reverseParameters), PInvalidCast);
12370 #endif
12371 const H245_NewATMVCCommand_reverseParameters & other = (const H245_NewATMVCCommand_reverseParameters &)obj;
12373 Comparison result;
12375 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
12376 return result;
12377 if ((result = m_bitRateLockedToPCRClock.Compare(other.m_bitRateLockedToPCRClock)) != EqualTo)
12378 return result;
12379 if ((result = m_bitRateLockedToNetworkClock.Compare(other.m_bitRateLockedToNetworkClock)) != EqualTo)
12380 return result;
12381 if ((result = m_multiplex.Compare(other.m_multiplex)) != EqualTo)
12382 return result;
12384 return PASN_Sequence::Compare(other);
12388 PINDEX H245_NewATMVCCommand_reverseParameters::GetDataLength() const
12390 PINDEX length = 0;
12391 length += m_bitRate.GetObjectLength();
12392 length += m_bitRateLockedToPCRClock.GetObjectLength();
12393 length += m_bitRateLockedToNetworkClock.GetObjectLength();
12394 length += m_multiplex.GetObjectLength();
12395 return length;
12399 BOOL H245_NewATMVCCommand_reverseParameters::Decode(PASN_Stream & strm)
12401 if (!PreambleDecode(strm))
12402 return FALSE;
12404 if (!m_bitRate.Decode(strm))
12405 return FALSE;
12406 if (!m_bitRateLockedToPCRClock.Decode(strm))
12407 return FALSE;
12408 if (!m_bitRateLockedToNetworkClock.Decode(strm))
12409 return FALSE;
12410 if (!m_multiplex.Decode(strm))
12411 return FALSE;
12413 return UnknownExtensionsDecode(strm);
12417 void H245_NewATMVCCommand_reverseParameters::Encode(PASN_Stream & strm) const
12419 PreambleEncode(strm);
12421 m_bitRate.Encode(strm);
12422 m_bitRateLockedToPCRClock.Encode(strm);
12423 m_bitRateLockedToNetworkClock.Encode(strm);
12424 m_multiplex.Encode(strm);
12426 UnknownExtensionsEncode(strm);
12430 PObject * H245_NewATMVCCommand_reverseParameters::Clone() const
12432 #ifndef PASN_LEANANDMEAN
12433 PAssert(IsClass(H245_NewATMVCCommand_reverseParameters::Class()), PInvalidCast);
12434 #endif
12435 return new H245_NewATMVCCommand_reverseParameters(*this);
12440 // NewATMVCIndication_reverseParameters
12443 H245_NewATMVCIndication_reverseParameters::H245_NewATMVCIndication_reverseParameters(unsigned tag, PASN_Object::TagClass tagClass)
12444 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
12446 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
12450 #ifndef PASN_NOPRINTON
12451 void H245_NewATMVCIndication_reverseParameters::PrintOn(ostream & strm) const
12453 int indent = strm.precision() + 2;
12454 strm << "{\n";
12455 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
12456 strm << setw(indent+26) << "bitRateLockedToPCRClock = " << setprecision(indent) << m_bitRateLockedToPCRClock << '\n';
12457 strm << setw(indent+30) << "bitRateLockedToNetworkClock = " << setprecision(indent) << m_bitRateLockedToNetworkClock << '\n';
12458 strm << setw(indent+12) << "multiplex = " << setprecision(indent) << m_multiplex << '\n';
12459 strm << setw(indent-1) << setprecision(indent-2) << "}";
12461 #endif
12464 PObject::Comparison H245_NewATMVCIndication_reverseParameters::Compare(const PObject & obj) const
12466 #ifndef PASN_LEANANDMEAN
12467 PAssert(PIsDescendant(&obj, H245_NewATMVCIndication_reverseParameters), PInvalidCast);
12468 #endif
12469 const H245_NewATMVCIndication_reverseParameters & other = (const H245_NewATMVCIndication_reverseParameters &)obj;
12471 Comparison result;
12473 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
12474 return result;
12475 if ((result = m_bitRateLockedToPCRClock.Compare(other.m_bitRateLockedToPCRClock)) != EqualTo)
12476 return result;
12477 if ((result = m_bitRateLockedToNetworkClock.Compare(other.m_bitRateLockedToNetworkClock)) != EqualTo)
12478 return result;
12479 if ((result = m_multiplex.Compare(other.m_multiplex)) != EqualTo)
12480 return result;
12482 return PASN_Sequence::Compare(other);
12486 PINDEX H245_NewATMVCIndication_reverseParameters::GetDataLength() const
12488 PINDEX length = 0;
12489 length += m_bitRate.GetObjectLength();
12490 length += m_bitRateLockedToPCRClock.GetObjectLength();
12491 length += m_bitRateLockedToNetworkClock.GetObjectLength();
12492 length += m_multiplex.GetObjectLength();
12493 return length;
12497 BOOL H245_NewATMVCIndication_reverseParameters::Decode(PASN_Stream & strm)
12499 if (!PreambleDecode(strm))
12500 return FALSE;
12502 if (!m_bitRate.Decode(strm))
12503 return FALSE;
12504 if (!m_bitRateLockedToPCRClock.Decode(strm))
12505 return FALSE;
12506 if (!m_bitRateLockedToNetworkClock.Decode(strm))
12507 return FALSE;
12508 if (!m_multiplex.Decode(strm))
12509 return FALSE;
12511 return UnknownExtensionsDecode(strm);
12515 void H245_NewATMVCIndication_reverseParameters::Encode(PASN_Stream & strm) const
12517 PreambleEncode(strm);
12519 m_bitRate.Encode(strm);
12520 m_bitRateLockedToPCRClock.Encode(strm);
12521 m_bitRateLockedToNetworkClock.Encode(strm);
12522 m_multiplex.Encode(strm);
12524 UnknownExtensionsEncode(strm);
12528 PObject * H245_NewATMVCIndication_reverseParameters::Clone() const
12530 #ifndef PASN_LEANANDMEAN
12531 PAssert(IsClass(H245_NewATMVCIndication_reverseParameters::Class()), PInvalidCast);
12532 #endif
12533 return new H245_NewATMVCIndication_reverseParameters(*this);
12538 // UserInputIndication_signal
12541 H245_UserInputIndication_signal::H245_UserInputIndication_signal(unsigned tag, PASN_Object::TagClass tagClass)
12542 : PASN_Sequence(tag, tagClass, 2, TRUE, 4)
12544 m_signalType.SetConstraints(PASN_Object::FixedConstraint, 1);
12545 m_signalType.SetCharacterSet(PASN_Object::FixedConstraint, "0123456789#*ABCD!");
12546 m_duration.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
12547 m_encryptedSignalType.SetConstraints(PASN_Object::FixedConstraint, 1);
12551 #ifndef PASN_NOPRINTON
12552 void H245_UserInputIndication_signal::PrintOn(ostream & strm) const
12554 int indent = strm.precision() + 2;
12555 strm << "{\n";
12556 strm << setw(indent+13) << "signalType = " << setprecision(indent) << m_signalType << '\n';
12557 if (HasOptionalField(e_duration))
12558 strm << setw(indent+11) << "duration = " << setprecision(indent) << m_duration << '\n';
12559 if (HasOptionalField(e_rtp))
12560 strm << setw(indent+6) << "rtp = " << setprecision(indent) << m_rtp << '\n';
12561 if (HasOptionalField(e_rtpPayloadIndication))
12562 strm << setw(indent+23) << "rtpPayloadIndication = " << setprecision(indent) << m_rtpPayloadIndication << '\n';
12563 if (HasOptionalField(e_paramS))
12564 strm << setw(indent+9) << "paramS = " << setprecision(indent) << m_paramS << '\n';
12565 if (HasOptionalField(e_encryptedSignalType))
12566 strm << setw(indent+22) << "encryptedSignalType = " << setprecision(indent) << m_encryptedSignalType << '\n';
12567 if (HasOptionalField(e_algorithmOID))
12568 strm << setw(indent+15) << "algorithmOID = " << setprecision(indent) << m_algorithmOID << '\n';
12569 strm << setw(indent-1) << setprecision(indent-2) << "}";
12571 #endif
12574 PObject::Comparison H245_UserInputIndication_signal::Compare(const PObject & obj) const
12576 #ifndef PASN_LEANANDMEAN
12577 PAssert(PIsDescendant(&obj, H245_UserInputIndication_signal), PInvalidCast);
12578 #endif
12579 const H245_UserInputIndication_signal & other = (const H245_UserInputIndication_signal &)obj;
12581 Comparison result;
12583 if ((result = m_signalType.Compare(other.m_signalType)) != EqualTo)
12584 return result;
12585 if ((result = m_duration.Compare(other.m_duration)) != EqualTo)
12586 return result;
12587 if ((result = m_rtp.Compare(other.m_rtp)) != EqualTo)
12588 return result;
12590 return PASN_Sequence::Compare(other);
12594 PINDEX H245_UserInputIndication_signal::GetDataLength() const
12596 PINDEX length = 0;
12597 length += m_signalType.GetObjectLength();
12598 if (HasOptionalField(e_duration))
12599 length += m_duration.GetObjectLength();
12600 if (HasOptionalField(e_rtp))
12601 length += m_rtp.GetObjectLength();
12602 return length;
12606 BOOL H245_UserInputIndication_signal::Decode(PASN_Stream & strm)
12608 if (!PreambleDecode(strm))
12609 return FALSE;
12611 if (!m_signalType.Decode(strm))
12612 return FALSE;
12613 if (HasOptionalField(e_duration) && !m_duration.Decode(strm))
12614 return FALSE;
12615 if (HasOptionalField(e_rtp) && !m_rtp.Decode(strm))
12616 return FALSE;
12617 if (!KnownExtensionDecode(strm, e_rtpPayloadIndication, m_rtpPayloadIndication))
12618 return FALSE;
12619 if (!KnownExtensionDecode(strm, e_paramS, m_paramS))
12620 return FALSE;
12621 if (!KnownExtensionDecode(strm, e_encryptedSignalType, m_encryptedSignalType))
12622 return FALSE;
12623 if (!KnownExtensionDecode(strm, e_algorithmOID, m_algorithmOID))
12624 return FALSE;
12626 return UnknownExtensionsDecode(strm);
12630 void H245_UserInputIndication_signal::Encode(PASN_Stream & strm) const
12632 PreambleEncode(strm);
12634 m_signalType.Encode(strm);
12635 if (HasOptionalField(e_duration))
12636 m_duration.Encode(strm);
12637 if (HasOptionalField(e_rtp))
12638 m_rtp.Encode(strm);
12639 KnownExtensionEncode(strm, e_rtpPayloadIndication, m_rtpPayloadIndication);
12640 KnownExtensionEncode(strm, e_paramS, m_paramS);
12641 KnownExtensionEncode(strm, e_encryptedSignalType, m_encryptedSignalType);
12642 KnownExtensionEncode(strm, e_algorithmOID, m_algorithmOID);
12644 UnknownExtensionsEncode(strm);
12648 PObject * H245_UserInputIndication_signal::Clone() const
12650 #ifndef PASN_LEANANDMEAN
12651 PAssert(IsClass(H245_UserInputIndication_signal::Class()), PInvalidCast);
12652 #endif
12653 return new H245_UserInputIndication_signal(*this);
12658 // UserInputIndication_signalUpdate
12661 H245_UserInputIndication_signalUpdate::H245_UserInputIndication_signalUpdate(unsigned tag, PASN_Object::TagClass tagClass)
12662 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
12664 m_duration.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
12668 #ifndef PASN_NOPRINTON
12669 void H245_UserInputIndication_signalUpdate::PrintOn(ostream & strm) const
12671 int indent = strm.precision() + 2;
12672 strm << "{\n";
12673 strm << setw(indent+11) << "duration = " << setprecision(indent) << m_duration << '\n';
12674 if (HasOptionalField(e_rtp))
12675 strm << setw(indent+6) << "rtp = " << setprecision(indent) << m_rtp << '\n';
12676 strm << setw(indent-1) << setprecision(indent-2) << "}";
12678 #endif
12681 PObject::Comparison H245_UserInputIndication_signalUpdate::Compare(const PObject & obj) const
12683 #ifndef PASN_LEANANDMEAN
12684 PAssert(PIsDescendant(&obj, H245_UserInputIndication_signalUpdate), PInvalidCast);
12685 #endif
12686 const H245_UserInputIndication_signalUpdate & other = (const H245_UserInputIndication_signalUpdate &)obj;
12688 Comparison result;
12690 if ((result = m_duration.Compare(other.m_duration)) != EqualTo)
12691 return result;
12692 if ((result = m_rtp.Compare(other.m_rtp)) != EqualTo)
12693 return result;
12695 return PASN_Sequence::Compare(other);
12699 PINDEX H245_UserInputIndication_signalUpdate::GetDataLength() const
12701 PINDEX length = 0;
12702 length += m_duration.GetObjectLength();
12703 if (HasOptionalField(e_rtp))
12704 length += m_rtp.GetObjectLength();
12705 return length;
12709 BOOL H245_UserInputIndication_signalUpdate::Decode(PASN_Stream & strm)
12711 if (!PreambleDecode(strm))
12712 return FALSE;
12714 if (!m_duration.Decode(strm))
12715 return FALSE;
12716 if (HasOptionalField(e_rtp) && !m_rtp.Decode(strm))
12717 return FALSE;
12719 return UnknownExtensionsDecode(strm);
12723 void H245_UserInputIndication_signalUpdate::Encode(PASN_Stream & strm) const
12725 PreambleEncode(strm);
12727 m_duration.Encode(strm);
12728 if (HasOptionalField(e_rtp))
12729 m_rtp.Encode(strm);
12731 UnknownExtensionsEncode(strm);
12735 PObject * H245_UserInputIndication_signalUpdate::Clone() const
12737 #ifndef PASN_LEANANDMEAN
12738 PAssert(IsClass(H245_UserInputIndication_signalUpdate::Class()), PInvalidCast);
12739 #endif
12740 return new H245_UserInputIndication_signalUpdate(*this);
12745 // UserInputIndication_extendedAlphanumeric
12748 H245_UserInputIndication_extendedAlphanumeric::H245_UserInputIndication_extendedAlphanumeric(unsigned tag, PASN_Object::TagClass tagClass)
12749 : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
12754 #ifndef PASN_NOPRINTON
12755 void H245_UserInputIndication_extendedAlphanumeric::PrintOn(ostream & strm) const
12757 int indent = strm.precision() + 2;
12758 strm << "{\n";
12759 strm << setw(indent+15) << "alphanumeric = " << setprecision(indent) << m_alphanumeric << '\n';
12760 if (HasOptionalField(e_rtpPayloadIndication))
12761 strm << setw(indent+23) << "rtpPayloadIndication = " << setprecision(indent) << m_rtpPayloadIndication << '\n';
12762 if (HasOptionalField(e_encryptedAlphanumeric))
12763 strm << setw(indent+24) << "encryptedAlphanumeric = " << setprecision(indent) << m_encryptedAlphanumeric << '\n';
12764 strm << setw(indent-1) << setprecision(indent-2) << "}";
12766 #endif
12769 PObject::Comparison H245_UserInputIndication_extendedAlphanumeric::Compare(const PObject & obj) const
12771 #ifndef PASN_LEANANDMEAN
12772 PAssert(PIsDescendant(&obj, H245_UserInputIndication_extendedAlphanumeric), PInvalidCast);
12773 #endif
12774 const H245_UserInputIndication_extendedAlphanumeric & other = (const H245_UserInputIndication_extendedAlphanumeric &)obj;
12776 Comparison result;
12778 if ((result = m_alphanumeric.Compare(other.m_alphanumeric)) != EqualTo)
12779 return result;
12780 if ((result = m_rtpPayloadIndication.Compare(other.m_rtpPayloadIndication)) != EqualTo)
12781 return result;
12783 return PASN_Sequence::Compare(other);
12787 PINDEX H245_UserInputIndication_extendedAlphanumeric::GetDataLength() const
12789 PINDEX length = 0;
12790 length += m_alphanumeric.GetObjectLength();
12791 if (HasOptionalField(e_rtpPayloadIndication))
12792 length += m_rtpPayloadIndication.GetObjectLength();
12793 return length;
12797 BOOL H245_UserInputIndication_extendedAlphanumeric::Decode(PASN_Stream & strm)
12799 if (!PreambleDecode(strm))
12800 return FALSE;
12802 if (!m_alphanumeric.Decode(strm))
12803 return FALSE;
12804 if (HasOptionalField(e_rtpPayloadIndication) && !m_rtpPayloadIndication.Decode(strm))
12805 return FALSE;
12806 if (!KnownExtensionDecode(strm, e_encryptedAlphanumeric, m_encryptedAlphanumeric))
12807 return FALSE;
12809 return UnknownExtensionsDecode(strm);
12813 void H245_UserInputIndication_extendedAlphanumeric::Encode(PASN_Stream & strm) const
12815 PreambleEncode(strm);
12817 m_alphanumeric.Encode(strm);
12818 if (HasOptionalField(e_rtpPayloadIndication))
12819 m_rtpPayloadIndication.Encode(strm);
12820 KnownExtensionEncode(strm, e_encryptedAlphanumeric, m_encryptedAlphanumeric);
12822 UnknownExtensionsEncode(strm);
12826 PObject * H245_UserInputIndication_extendedAlphanumeric::Clone() const
12828 #ifndef PASN_LEANANDMEAN
12829 PAssert(IsClass(H245_UserInputIndication_extendedAlphanumeric::Class()), PInvalidCast);
12830 #endif
12831 return new H245_UserInputIndication_extendedAlphanumeric(*this);
12836 // V76LogicalChannelParameters_mode_eRM
12839 H245_V76LogicalChannelParameters_mode_eRM::H245_V76LogicalChannelParameters_mode_eRM(unsigned tag, PASN_Object::TagClass tagClass)
12840 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
12842 m_windowSize.SetConstraints(PASN_Object::FixedConstraint, 1, 127);
12846 #ifndef PASN_NOPRINTON
12847 void H245_V76LogicalChannelParameters_mode_eRM::PrintOn(ostream & strm) const
12849 int indent = strm.precision() + 2;
12850 strm << "{\n";
12851 strm << setw(indent+13) << "windowSize = " << setprecision(indent) << m_windowSize << '\n';
12852 strm << setw(indent+11) << "recovery = " << setprecision(indent) << m_recovery << '\n';
12853 strm << setw(indent-1) << setprecision(indent-2) << "}";
12855 #endif
12858 PObject::Comparison H245_V76LogicalChannelParameters_mode_eRM::Compare(const PObject & obj) const
12860 #ifndef PASN_LEANANDMEAN
12861 PAssert(PIsDescendant(&obj, H245_V76LogicalChannelParameters_mode_eRM), PInvalidCast);
12862 #endif
12863 const H245_V76LogicalChannelParameters_mode_eRM & other = (const H245_V76LogicalChannelParameters_mode_eRM &)obj;
12865 Comparison result;
12867 if ((result = m_windowSize.Compare(other.m_windowSize)) != EqualTo)
12868 return result;
12869 if ((result = m_recovery.Compare(other.m_recovery)) != EqualTo)
12870 return result;
12872 return PASN_Sequence::Compare(other);
12876 PINDEX H245_V76LogicalChannelParameters_mode_eRM::GetDataLength() const
12878 PINDEX length = 0;
12879 length += m_windowSize.GetObjectLength();
12880 length += m_recovery.GetObjectLength();
12881 return length;
12885 BOOL H245_V76LogicalChannelParameters_mode_eRM::Decode(PASN_Stream & strm)
12887 if (!PreambleDecode(strm))
12888 return FALSE;
12890 if (!m_windowSize.Decode(strm))
12891 return FALSE;
12892 if (!m_recovery.Decode(strm))
12893 return FALSE;
12895 return UnknownExtensionsDecode(strm);
12899 void H245_V76LogicalChannelParameters_mode_eRM::Encode(PASN_Stream & strm) const
12901 PreambleEncode(strm);
12903 m_windowSize.Encode(strm);
12904 m_recovery.Encode(strm);
12906 UnknownExtensionsEncode(strm);
12910 PObject * H245_V76LogicalChannelParameters_mode_eRM::Clone() const
12912 #ifndef PASN_LEANANDMEAN
12913 PAssert(IsClass(H245_V76LogicalChannelParameters_mode_eRM::Class()), PInvalidCast);
12914 #endif
12915 return new H245_V76LogicalChannelParameters_mode_eRM(*this);
12920 // MiscellaneousCommand_type_progressiveRefinementStart
12923 H245_MiscellaneousCommand_type_progressiveRefinementStart::H245_MiscellaneousCommand_type_progressiveRefinementStart(unsigned tag, PASN_Object::TagClass tagClass)
12924 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
12929 #ifndef PASN_NOPRINTON
12930 void H245_MiscellaneousCommand_type_progressiveRefinementStart::PrintOn(ostream & strm) const
12932 int indent = strm.precision() + 2;
12933 strm << "{\n";
12934 strm << setw(indent+14) << "repeatCount = " << setprecision(indent) << m_repeatCount << '\n';
12935 strm << setw(indent-1) << setprecision(indent-2) << "}";
12937 #endif
12940 PObject::Comparison H245_MiscellaneousCommand_type_progressiveRefinementStart::Compare(const PObject & obj) const
12942 #ifndef PASN_LEANANDMEAN
12943 PAssert(PIsDescendant(&obj, H245_MiscellaneousCommand_type_progressiveRefinementStart), PInvalidCast);
12944 #endif
12945 const H245_MiscellaneousCommand_type_progressiveRefinementStart & other = (const H245_MiscellaneousCommand_type_progressiveRefinementStart &)obj;
12947 Comparison result;
12949 if ((result = m_repeatCount.Compare(other.m_repeatCount)) != EqualTo)
12950 return result;
12952 return PASN_Sequence::Compare(other);
12956 PINDEX H245_MiscellaneousCommand_type_progressiveRefinementStart::GetDataLength() const
12958 PINDEX length = 0;
12959 length += m_repeatCount.GetObjectLength();
12960 return length;
12964 BOOL H245_MiscellaneousCommand_type_progressiveRefinementStart::Decode(PASN_Stream & strm)
12966 if (!PreambleDecode(strm))
12967 return FALSE;
12969 if (!m_repeatCount.Decode(strm))
12970 return FALSE;
12972 return UnknownExtensionsDecode(strm);
12976 void H245_MiscellaneousCommand_type_progressiveRefinementStart::Encode(PASN_Stream & strm) const
12978 PreambleEncode(strm);
12980 m_repeatCount.Encode(strm);
12982 UnknownExtensionsEncode(strm);
12986 PObject * H245_MiscellaneousCommand_type_progressiveRefinementStart::Clone() const
12988 #ifndef PASN_LEANANDMEAN
12989 PAssert(IsClass(H245_MiscellaneousCommand_type_progressiveRefinementStart::Class()), PInvalidCast);
12990 #endif
12991 return new H245_MiscellaneousCommand_type_progressiveRefinementStart(*this);
12996 // MiscellaneousCommand_type_encryptionUpdateCommand
12999 H245_MiscellaneousCommand_type_encryptionUpdateCommand::H245_MiscellaneousCommand_type_encryptionUpdateCommand(unsigned tag, PASN_Object::TagClass tagClass)
13000 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
13005 #ifndef PASN_NOPRINTON
13006 void H245_MiscellaneousCommand_type_encryptionUpdateCommand::PrintOn(ostream & strm) const
13008 int indent = strm.precision() + 2;
13009 strm << "{\n";
13010 strm << setw(indent+17) << "encryptionSync = " << setprecision(indent) << m_encryptionSync << '\n';
13011 if (HasOptionalField(e_multiplePayloadStream))
13012 strm << setw(indent+24) << "multiplePayloadStream = " << setprecision(indent) << m_multiplePayloadStream << '\n';
13013 strm << setw(indent-1) << setprecision(indent-2) << "}";
13015 #endif
13018 PObject::Comparison H245_MiscellaneousCommand_type_encryptionUpdateCommand::Compare(const PObject & obj) const
13020 #ifndef PASN_LEANANDMEAN
13021 PAssert(PIsDescendant(&obj, H245_MiscellaneousCommand_type_encryptionUpdateCommand), PInvalidCast);
13022 #endif
13023 const H245_MiscellaneousCommand_type_encryptionUpdateCommand & other = (const H245_MiscellaneousCommand_type_encryptionUpdateCommand &)obj;
13025 Comparison result;
13027 if ((result = m_encryptionSync.Compare(other.m_encryptionSync)) != EqualTo)
13028 return result;
13029 if ((result = m_multiplePayloadStream.Compare(other.m_multiplePayloadStream)) != EqualTo)
13030 return result;
13032 return PASN_Sequence::Compare(other);
13036 PINDEX H245_MiscellaneousCommand_type_encryptionUpdateCommand::GetDataLength() const
13038 PINDEX length = 0;
13039 length += m_encryptionSync.GetObjectLength();
13040 if (HasOptionalField(e_multiplePayloadStream))
13041 length += m_multiplePayloadStream.GetObjectLength();
13042 return length;
13046 BOOL H245_MiscellaneousCommand_type_encryptionUpdateCommand::Decode(PASN_Stream & strm)
13048 if (!PreambleDecode(strm))
13049 return FALSE;
13051 if (!m_encryptionSync.Decode(strm))
13052 return FALSE;
13053 if (HasOptionalField(e_multiplePayloadStream) && !m_multiplePayloadStream.Decode(strm))
13054 return FALSE;
13056 return UnknownExtensionsDecode(strm);
13060 void H245_MiscellaneousCommand_type_encryptionUpdateCommand::Encode(PASN_Stream & strm) const
13062 PreambleEncode(strm);
13064 m_encryptionSync.Encode(strm);
13065 if (HasOptionalField(e_multiplePayloadStream))
13066 m_multiplePayloadStream.Encode(strm);
13068 UnknownExtensionsEncode(strm);
13072 PObject * H245_MiscellaneousCommand_type_encryptionUpdateCommand::Clone() const
13074 #ifndef PASN_LEANANDMEAN
13075 PAssert(IsClass(H245_MiscellaneousCommand_type_encryptionUpdateCommand::Class()), PInvalidCast);
13076 #endif
13077 return new H245_MiscellaneousCommand_type_encryptionUpdateCommand(*this);
13082 // NewATMVCCommand_aal_aal1
13085 H245_NewATMVCCommand_aal_aal1::H245_NewATMVCCommand_aal_aal1(unsigned tag, PASN_Object::TagClass tagClass)
13086 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
13091 #ifndef PASN_NOPRINTON
13092 void H245_NewATMVCCommand_aal_aal1::PrintOn(ostream & strm) const
13094 int indent = strm.precision() + 2;
13095 strm << "{\n";
13096 strm << setw(indent+16) << "clockRecovery = " << setprecision(indent) << m_clockRecovery << '\n';
13097 strm << setw(indent+18) << "errorCorrection = " << setprecision(indent) << m_errorCorrection << '\n';
13098 strm << setw(indent+25) << "structuredDataTransfer = " << setprecision(indent) << m_structuredDataTransfer << '\n';
13099 strm << setw(indent+23) << "partiallyFilledCells = " << setprecision(indent) << m_partiallyFilledCells << '\n';
13100 strm << setw(indent-1) << setprecision(indent-2) << "}";
13102 #endif
13105 PObject::Comparison H245_NewATMVCCommand_aal_aal1::Compare(const PObject & obj) const
13107 #ifndef PASN_LEANANDMEAN
13108 PAssert(PIsDescendant(&obj, H245_NewATMVCCommand_aal_aal1), PInvalidCast);
13109 #endif
13110 const H245_NewATMVCCommand_aal_aal1 & other = (const H245_NewATMVCCommand_aal_aal1 &)obj;
13112 Comparison result;
13114 if ((result = m_clockRecovery.Compare(other.m_clockRecovery)) != EqualTo)
13115 return result;
13116 if ((result = m_errorCorrection.Compare(other.m_errorCorrection)) != EqualTo)
13117 return result;
13118 if ((result = m_structuredDataTransfer.Compare(other.m_structuredDataTransfer)) != EqualTo)
13119 return result;
13120 if ((result = m_partiallyFilledCells.Compare(other.m_partiallyFilledCells)) != EqualTo)
13121 return result;
13123 return PASN_Sequence::Compare(other);
13127 PINDEX H245_NewATMVCCommand_aal_aal1::GetDataLength() const
13129 PINDEX length = 0;
13130 length += m_clockRecovery.GetObjectLength();
13131 length += m_errorCorrection.GetObjectLength();
13132 length += m_structuredDataTransfer.GetObjectLength();
13133 length += m_partiallyFilledCells.GetObjectLength();
13134 return length;
13138 BOOL H245_NewATMVCCommand_aal_aal1::Decode(PASN_Stream & strm)
13140 if (!PreambleDecode(strm))
13141 return FALSE;
13143 if (!m_clockRecovery.Decode(strm))
13144 return FALSE;
13145 if (!m_errorCorrection.Decode(strm))
13146 return FALSE;
13147 if (!m_structuredDataTransfer.Decode(strm))
13148 return FALSE;
13149 if (!m_partiallyFilledCells.Decode(strm))
13150 return FALSE;
13152 return UnknownExtensionsDecode(strm);
13156 void H245_NewATMVCCommand_aal_aal1::Encode(PASN_Stream & strm) const
13158 PreambleEncode(strm);
13160 m_clockRecovery.Encode(strm);
13161 m_errorCorrection.Encode(strm);
13162 m_structuredDataTransfer.Encode(strm);
13163 m_partiallyFilledCells.Encode(strm);
13165 UnknownExtensionsEncode(strm);
13169 PObject * H245_NewATMVCCommand_aal_aal1::Clone() const
13171 #ifndef PASN_LEANANDMEAN
13172 PAssert(IsClass(H245_NewATMVCCommand_aal_aal1::Class()), PInvalidCast);
13173 #endif
13174 return new H245_NewATMVCCommand_aal_aal1(*this);
13179 // NewATMVCIndication_aal_aal1
13182 H245_NewATMVCIndication_aal_aal1::H245_NewATMVCIndication_aal_aal1(unsigned tag, PASN_Object::TagClass tagClass)
13183 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
13188 #ifndef PASN_NOPRINTON
13189 void H245_NewATMVCIndication_aal_aal1::PrintOn(ostream & strm) const
13191 int indent = strm.precision() + 2;
13192 strm << "{\n";
13193 strm << setw(indent+16) << "clockRecovery = " << setprecision(indent) << m_clockRecovery << '\n';
13194 strm << setw(indent+18) << "errorCorrection = " << setprecision(indent) << m_errorCorrection << '\n';
13195 strm << setw(indent+25) << "structuredDataTransfer = " << setprecision(indent) << m_structuredDataTransfer << '\n';
13196 strm << setw(indent+23) << "partiallyFilledCells = " << setprecision(indent) << m_partiallyFilledCells << '\n';
13197 strm << setw(indent-1) << setprecision(indent-2) << "}";
13199 #endif
13202 PObject::Comparison H245_NewATMVCIndication_aal_aal1::Compare(const PObject & obj) const
13204 #ifndef PASN_LEANANDMEAN
13205 PAssert(PIsDescendant(&obj, H245_NewATMVCIndication_aal_aal1), PInvalidCast);
13206 #endif
13207 const H245_NewATMVCIndication_aal_aal1 & other = (const H245_NewATMVCIndication_aal_aal1 &)obj;
13209 Comparison result;
13211 if ((result = m_clockRecovery.Compare(other.m_clockRecovery)) != EqualTo)
13212 return result;
13213 if ((result = m_errorCorrection.Compare(other.m_errorCorrection)) != EqualTo)
13214 return result;
13215 if ((result = m_structuredDataTransfer.Compare(other.m_structuredDataTransfer)) != EqualTo)
13216 return result;
13217 if ((result = m_partiallyFilledCells.Compare(other.m_partiallyFilledCells)) != EqualTo)
13218 return result;
13220 return PASN_Sequence::Compare(other);
13224 PINDEX H245_NewATMVCIndication_aal_aal1::GetDataLength() const
13226 PINDEX length = 0;
13227 length += m_clockRecovery.GetObjectLength();
13228 length += m_errorCorrection.GetObjectLength();
13229 length += m_structuredDataTransfer.GetObjectLength();
13230 length += m_partiallyFilledCells.GetObjectLength();
13231 return length;
13235 BOOL H245_NewATMVCIndication_aal_aal1::Decode(PASN_Stream & strm)
13237 if (!PreambleDecode(strm))
13238 return FALSE;
13240 if (!m_clockRecovery.Decode(strm))
13241 return FALSE;
13242 if (!m_errorCorrection.Decode(strm))
13243 return FALSE;
13244 if (!m_structuredDataTransfer.Decode(strm))
13245 return FALSE;
13246 if (!m_partiallyFilledCells.Decode(strm))
13247 return FALSE;
13249 return UnknownExtensionsDecode(strm);
13253 void H245_NewATMVCIndication_aal_aal1::Encode(PASN_Stream & strm) const
13255 PreambleEncode(strm);
13257 m_clockRecovery.Encode(strm);
13258 m_errorCorrection.Encode(strm);
13259 m_structuredDataTransfer.Encode(strm);
13260 m_partiallyFilledCells.Encode(strm);
13262 UnknownExtensionsEncode(strm);
13266 PObject * H245_NewATMVCIndication_aal_aal1::Clone() const
13268 #ifndef PASN_LEANANDMEAN
13269 PAssert(IsClass(H245_NewATMVCIndication_aal_aal1::Class()), PInvalidCast);
13270 #endif
13271 return new H245_NewATMVCIndication_aal_aal1(*this);
13276 // NonStandardMessage
13279 H245_NonStandardMessage::H245_NonStandardMessage(unsigned tag, PASN_Object::TagClass tagClass)
13280 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
13285 #ifndef PASN_NOPRINTON
13286 void H245_NonStandardMessage::PrintOn(ostream & strm) const
13288 int indent = strm.precision() + 2;
13289 strm << "{\n";
13290 strm << setw(indent+18) << "nonStandardData = " << setprecision(indent) << m_nonStandardData << '\n';
13291 strm << setw(indent-1) << setprecision(indent-2) << "}";
13293 #endif
13296 PObject::Comparison H245_NonStandardMessage::Compare(const PObject & obj) const
13298 #ifndef PASN_LEANANDMEAN
13299 PAssert(PIsDescendant(&obj, H245_NonStandardMessage), PInvalidCast);
13300 #endif
13301 const H245_NonStandardMessage & other = (const H245_NonStandardMessage &)obj;
13303 Comparison result;
13305 if ((result = m_nonStandardData.Compare(other.m_nonStandardData)) != EqualTo)
13306 return result;
13308 return PASN_Sequence::Compare(other);
13312 PINDEX H245_NonStandardMessage::GetDataLength() const
13314 PINDEX length = 0;
13315 length += m_nonStandardData.GetObjectLength();
13316 return length;
13320 BOOL H245_NonStandardMessage::Decode(PASN_Stream & strm)
13322 if (!PreambleDecode(strm))
13323 return FALSE;
13325 if (!m_nonStandardData.Decode(strm))
13326 return FALSE;
13328 return UnknownExtensionsDecode(strm);
13332 void H245_NonStandardMessage::Encode(PASN_Stream & strm) const
13334 PreambleEncode(strm);
13336 m_nonStandardData.Encode(strm);
13338 UnknownExtensionsEncode(strm);
13342 PObject * H245_NonStandardMessage::Clone() const
13344 #ifndef PASN_LEANANDMEAN
13345 PAssert(IsClass(H245_NonStandardMessage::Class()), PInvalidCast);
13346 #endif
13347 return new H245_NonStandardMessage(*this);
13352 // VCCapability
13355 H245_VCCapability::H245_VCCapability(unsigned tag, PASN_Object::TagClass tagClass)
13356 : PASN_Sequence(tag, tagClass, 2, TRUE, 1)
13361 #ifndef PASN_NOPRINTON
13362 void H245_VCCapability::PrintOn(ostream & strm) const
13364 int indent = strm.precision() + 2;
13365 strm << "{\n";
13366 if (HasOptionalField(e_aal1))
13367 strm << setw(indent+7) << "aal1 = " << setprecision(indent) << m_aal1 << '\n';
13368 if (HasOptionalField(e_aal5))
13369 strm << setw(indent+7) << "aal5 = " << setprecision(indent) << m_aal5 << '\n';
13370 strm << setw(indent+18) << "transportStream = " << setprecision(indent) << m_transportStream << '\n';
13371 strm << setw(indent+16) << "programStream = " << setprecision(indent) << m_programStream << '\n';
13372 strm << setw(indent+20) << "availableBitRates = " << setprecision(indent) << m_availableBitRates << '\n';
13373 if (HasOptionalField(e_aal1ViaGateway))
13374 strm << setw(indent+17) << "aal1ViaGateway = " << setprecision(indent) << m_aal1ViaGateway << '\n';
13375 strm << setw(indent-1) << setprecision(indent-2) << "}";
13377 #endif
13380 PObject::Comparison H245_VCCapability::Compare(const PObject & obj) const
13382 #ifndef PASN_LEANANDMEAN
13383 PAssert(PIsDescendant(&obj, H245_VCCapability), PInvalidCast);
13384 #endif
13385 const H245_VCCapability & other = (const H245_VCCapability &)obj;
13387 Comparison result;
13389 if ((result = m_aal1.Compare(other.m_aal1)) != EqualTo)
13390 return result;
13391 if ((result = m_aal5.Compare(other.m_aal5)) != EqualTo)
13392 return result;
13393 if ((result = m_transportStream.Compare(other.m_transportStream)) != EqualTo)
13394 return result;
13395 if ((result = m_programStream.Compare(other.m_programStream)) != EqualTo)
13396 return result;
13397 if ((result = m_availableBitRates.Compare(other.m_availableBitRates)) != EqualTo)
13398 return result;
13400 return PASN_Sequence::Compare(other);
13404 PINDEX H245_VCCapability::GetDataLength() const
13406 PINDEX length = 0;
13407 if (HasOptionalField(e_aal1))
13408 length += m_aal1.GetObjectLength();
13409 if (HasOptionalField(e_aal5))
13410 length += m_aal5.GetObjectLength();
13411 length += m_transportStream.GetObjectLength();
13412 length += m_programStream.GetObjectLength();
13413 length += m_availableBitRates.GetObjectLength();
13414 return length;
13418 BOOL H245_VCCapability::Decode(PASN_Stream & strm)
13420 if (!PreambleDecode(strm))
13421 return FALSE;
13423 if (HasOptionalField(e_aal1) && !m_aal1.Decode(strm))
13424 return FALSE;
13425 if (HasOptionalField(e_aal5) && !m_aal5.Decode(strm))
13426 return FALSE;
13427 if (!m_transportStream.Decode(strm))
13428 return FALSE;
13429 if (!m_programStream.Decode(strm))
13430 return FALSE;
13431 if (!m_availableBitRates.Decode(strm))
13432 return FALSE;
13433 if (!KnownExtensionDecode(strm, e_aal1ViaGateway, m_aal1ViaGateway))
13434 return FALSE;
13436 return UnknownExtensionsDecode(strm);
13440 void H245_VCCapability::Encode(PASN_Stream & strm) const
13442 PreambleEncode(strm);
13444 if (HasOptionalField(e_aal1))
13445 m_aal1.Encode(strm);
13446 if (HasOptionalField(e_aal5))
13447 m_aal5.Encode(strm);
13448 m_transportStream.Encode(strm);
13449 m_programStream.Encode(strm);
13450 m_availableBitRates.Encode(strm);
13451 KnownExtensionEncode(strm, e_aal1ViaGateway, m_aal1ViaGateway);
13453 UnknownExtensionsEncode(strm);
13457 PObject * H245_VCCapability::Clone() const
13459 #ifndef PASN_LEANANDMEAN
13460 PAssert(IsClass(H245_VCCapability::Class()), PInvalidCast);
13461 #endif
13462 return new H245_VCCapability(*this);
13467 // H2250Capability
13470 H245_H2250Capability::H245_H2250Capability(unsigned tag, PASN_Object::TagClass tagClass)
13471 : PASN_Sequence(tag, tagClass, 0, TRUE, 4)
13473 m_maximumAudioDelayJitter.SetConstraints(PASN_Object::FixedConstraint, 0, 1023);
13474 m_redundancyEncodingCapability.SetConstraints(PASN_Object::FixedConstraint, 1, 256);
13475 IncludeOptionalField(e_logicalChannelSwitchingCapability);
13476 IncludeOptionalField(e_t120DynamicPortCapability);
13480 #ifndef PASN_NOPRINTON
13481 void H245_H2250Capability::PrintOn(ostream & strm) const
13483 int indent = strm.precision() + 2;
13484 strm << "{\n";
13485 strm << setw(indent+26) << "maximumAudioDelayJitter = " << setprecision(indent) << m_maximumAudioDelayJitter << '\n';
13486 strm << setw(indent+30) << "receiveMultipointCapability = " << setprecision(indent) << m_receiveMultipointCapability << '\n';
13487 strm << setw(indent+31) << "transmitMultipointCapability = " << setprecision(indent) << m_transmitMultipointCapability << '\n';
13488 strm << setw(indent+41) << "receiveAndTransmitMultipointCapability = " << setprecision(indent) << m_receiveAndTransmitMultipointCapability << '\n';
13489 strm << setw(indent+15) << "mcCapability = " << setprecision(indent) << m_mcCapability << '\n';
13490 strm << setw(indent+29) << "rtcpVideoControlCapability = " << setprecision(indent) << m_rtcpVideoControlCapability << '\n';
13491 strm << setw(indent+31) << "mediaPacketizationCapability = " << setprecision(indent) << m_mediaPacketizationCapability << '\n';
13492 if (HasOptionalField(e_transportCapability))
13493 strm << setw(indent+22) << "transportCapability = " << setprecision(indent) << m_transportCapability << '\n';
13494 if (HasOptionalField(e_redundancyEncodingCapability))
13495 strm << setw(indent+31) << "redundancyEncodingCapability = " << setprecision(indent) << m_redundancyEncodingCapability << '\n';
13496 if (HasOptionalField(e_logicalChannelSwitchingCapability))
13497 strm << setw(indent+36) << "logicalChannelSwitchingCapability = " << setprecision(indent) << m_logicalChannelSwitchingCapability << '\n';
13498 if (HasOptionalField(e_t120DynamicPortCapability))
13499 strm << setw(indent+28) << "t120DynamicPortCapability = " << setprecision(indent) << m_t120DynamicPortCapability << '\n';
13500 strm << setw(indent-1) << setprecision(indent-2) << "}";
13502 #endif
13505 PObject::Comparison H245_H2250Capability::Compare(const PObject & obj) const
13507 #ifndef PASN_LEANANDMEAN
13508 PAssert(PIsDescendant(&obj, H245_H2250Capability), PInvalidCast);
13509 #endif
13510 const H245_H2250Capability & other = (const H245_H2250Capability &)obj;
13512 Comparison result;
13514 if ((result = m_maximumAudioDelayJitter.Compare(other.m_maximumAudioDelayJitter)) != EqualTo)
13515 return result;
13516 if ((result = m_receiveMultipointCapability.Compare(other.m_receiveMultipointCapability)) != EqualTo)
13517 return result;
13518 if ((result = m_transmitMultipointCapability.Compare(other.m_transmitMultipointCapability)) != EqualTo)
13519 return result;
13520 if ((result = m_receiveAndTransmitMultipointCapability.Compare(other.m_receiveAndTransmitMultipointCapability)) != EqualTo)
13521 return result;
13522 if ((result = m_mcCapability.Compare(other.m_mcCapability)) != EqualTo)
13523 return result;
13524 if ((result = m_rtcpVideoControlCapability.Compare(other.m_rtcpVideoControlCapability)) != EqualTo)
13525 return result;
13526 if ((result = m_mediaPacketizationCapability.Compare(other.m_mediaPacketizationCapability)) != EqualTo)
13527 return result;
13529 return PASN_Sequence::Compare(other);
13533 PINDEX H245_H2250Capability::GetDataLength() const
13535 PINDEX length = 0;
13536 length += m_maximumAudioDelayJitter.GetObjectLength();
13537 length += m_receiveMultipointCapability.GetObjectLength();
13538 length += m_transmitMultipointCapability.GetObjectLength();
13539 length += m_receiveAndTransmitMultipointCapability.GetObjectLength();
13540 length += m_mcCapability.GetObjectLength();
13541 length += m_rtcpVideoControlCapability.GetObjectLength();
13542 length += m_mediaPacketizationCapability.GetObjectLength();
13543 return length;
13547 BOOL H245_H2250Capability::Decode(PASN_Stream & strm)
13549 if (!PreambleDecode(strm))
13550 return FALSE;
13552 if (!m_maximumAudioDelayJitter.Decode(strm))
13553 return FALSE;
13554 if (!m_receiveMultipointCapability.Decode(strm))
13555 return FALSE;
13556 if (!m_transmitMultipointCapability.Decode(strm))
13557 return FALSE;
13558 if (!m_receiveAndTransmitMultipointCapability.Decode(strm))
13559 return FALSE;
13560 if (!m_mcCapability.Decode(strm))
13561 return FALSE;
13562 if (!m_rtcpVideoControlCapability.Decode(strm))
13563 return FALSE;
13564 if (!m_mediaPacketizationCapability.Decode(strm))
13565 return FALSE;
13566 if (!KnownExtensionDecode(strm, e_transportCapability, m_transportCapability))
13567 return FALSE;
13568 if (!KnownExtensionDecode(strm, e_redundancyEncodingCapability, m_redundancyEncodingCapability))
13569 return FALSE;
13570 if (!KnownExtensionDecode(strm, e_logicalChannelSwitchingCapability, m_logicalChannelSwitchingCapability))
13571 return FALSE;
13572 if (!KnownExtensionDecode(strm, e_t120DynamicPortCapability, m_t120DynamicPortCapability))
13573 return FALSE;
13575 return UnknownExtensionsDecode(strm);
13579 void H245_H2250Capability::Encode(PASN_Stream & strm) const
13581 PreambleEncode(strm);
13583 m_maximumAudioDelayJitter.Encode(strm);
13584 m_receiveMultipointCapability.Encode(strm);
13585 m_transmitMultipointCapability.Encode(strm);
13586 m_receiveAndTransmitMultipointCapability.Encode(strm);
13587 m_mcCapability.Encode(strm);
13588 m_rtcpVideoControlCapability.Encode(strm);
13589 m_mediaPacketizationCapability.Encode(strm);
13590 KnownExtensionEncode(strm, e_transportCapability, m_transportCapability);
13591 KnownExtensionEncode(strm, e_redundancyEncodingCapability, m_redundancyEncodingCapability);
13592 KnownExtensionEncode(strm, e_logicalChannelSwitchingCapability, m_logicalChannelSwitchingCapability);
13593 KnownExtensionEncode(strm, e_t120DynamicPortCapability, m_t120DynamicPortCapability);
13595 UnknownExtensionsEncode(strm);
13599 PObject * H245_H2250Capability::Clone() const
13601 #ifndef PASN_LEANANDMEAN
13602 PAssert(IsClass(H245_H2250Capability::Class()), PInvalidCast);
13603 #endif
13604 return new H245_H2250Capability(*this);
13609 // RefPictureSelection
13612 H245_RefPictureSelection::H245_RefPictureSelection(unsigned tag, PASN_Object::TagClass tagClass)
13613 : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
13615 IncludeOptionalField(e_enhancedReferencePicSelect);
13619 #ifndef PASN_NOPRINTON
13620 void H245_RefPictureSelection::PrintOn(ostream & strm) const
13622 int indent = strm.precision() + 2;
13623 strm << "{\n";
13624 if (HasOptionalField(e_additionalPictureMemory))
13625 strm << setw(indent+26) << "additionalPictureMemory = " << setprecision(indent) << m_additionalPictureMemory << '\n';
13626 strm << setw(indent+11) << "videoMux = " << setprecision(indent) << m_videoMux << '\n';
13627 strm << setw(indent+23) << "videoBackChannelSend = " << setprecision(indent) << m_videoBackChannelSend << '\n';
13628 if (HasOptionalField(e_enhancedReferencePicSelect))
13629 strm << setw(indent+29) << "enhancedReferencePicSelect = " << setprecision(indent) << m_enhancedReferencePicSelect << '\n';
13630 strm << setw(indent-1) << setprecision(indent-2) << "}";
13632 #endif
13635 PObject::Comparison H245_RefPictureSelection::Compare(const PObject & obj) const
13637 #ifndef PASN_LEANANDMEAN
13638 PAssert(PIsDescendant(&obj, H245_RefPictureSelection), PInvalidCast);
13639 #endif
13640 const H245_RefPictureSelection & other = (const H245_RefPictureSelection &)obj;
13642 Comparison result;
13644 if ((result = m_additionalPictureMemory.Compare(other.m_additionalPictureMemory)) != EqualTo)
13645 return result;
13646 if ((result = m_videoMux.Compare(other.m_videoMux)) != EqualTo)
13647 return result;
13648 if ((result = m_videoBackChannelSend.Compare(other.m_videoBackChannelSend)) != EqualTo)
13649 return result;
13651 return PASN_Sequence::Compare(other);
13655 PINDEX H245_RefPictureSelection::GetDataLength() const
13657 PINDEX length = 0;
13658 if (HasOptionalField(e_additionalPictureMemory))
13659 length += m_additionalPictureMemory.GetObjectLength();
13660 length += m_videoMux.GetObjectLength();
13661 length += m_videoBackChannelSend.GetObjectLength();
13662 return length;
13666 BOOL H245_RefPictureSelection::Decode(PASN_Stream & strm)
13668 if (!PreambleDecode(strm))
13669 return FALSE;
13671 if (HasOptionalField(e_additionalPictureMemory) && !m_additionalPictureMemory.Decode(strm))
13672 return FALSE;
13673 if (!m_videoMux.Decode(strm))
13674 return FALSE;
13675 if (!m_videoBackChannelSend.Decode(strm))
13676 return FALSE;
13677 if (!KnownExtensionDecode(strm, e_enhancedReferencePicSelect, m_enhancedReferencePicSelect))
13678 return FALSE;
13680 return UnknownExtensionsDecode(strm);
13684 void H245_RefPictureSelection::Encode(PASN_Stream & strm) const
13686 PreambleEncode(strm);
13688 if (HasOptionalField(e_additionalPictureMemory))
13689 m_additionalPictureMemory.Encode(strm);
13690 m_videoMux.Encode(strm);
13691 m_videoBackChannelSend.Encode(strm);
13692 KnownExtensionEncode(strm, e_enhancedReferencePicSelect, m_enhancedReferencePicSelect);
13694 UnknownExtensionsEncode(strm);
13698 PObject * H245_RefPictureSelection::Clone() const
13700 #ifndef PASN_LEANANDMEAN
13701 PAssert(IsClass(H245_RefPictureSelection::Class()), PInvalidCast);
13702 #endif
13703 return new H245_RefPictureSelection(*this);
13708 // CustomPictureFormat
13711 H245_CustomPictureFormat::H245_CustomPictureFormat(unsigned tag, PASN_Object::TagClass tagClass)
13712 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
13714 m_maxCustomPictureWidth.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
13715 m_maxCustomPictureHeight.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
13716 m_minCustomPictureWidth.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
13717 m_minCustomPictureHeight.SetConstraints(PASN_Object::FixedConstraint, 1, 2048);
13721 #ifndef PASN_NOPRINTON
13722 void H245_CustomPictureFormat::PrintOn(ostream & strm) const
13724 int indent = strm.precision() + 2;
13725 strm << "{\n";
13726 strm << setw(indent+24) << "maxCustomPictureWidth = " << setprecision(indent) << m_maxCustomPictureWidth << '\n';
13727 strm << setw(indent+25) << "maxCustomPictureHeight = " << setprecision(indent) << m_maxCustomPictureHeight << '\n';
13728 strm << setw(indent+24) << "minCustomPictureWidth = " << setprecision(indent) << m_minCustomPictureWidth << '\n';
13729 strm << setw(indent+25) << "minCustomPictureHeight = " << setprecision(indent) << m_minCustomPictureHeight << '\n';
13730 strm << setw(indent+6) << "mPI = " << setprecision(indent) << m_mPI << '\n';
13731 strm << setw(indent+25) << "pixelAspectInformation = " << setprecision(indent) << m_pixelAspectInformation << '\n';
13732 strm << setw(indent-1) << setprecision(indent-2) << "}";
13734 #endif
13737 PObject::Comparison H245_CustomPictureFormat::Compare(const PObject & obj) const
13739 #ifndef PASN_LEANANDMEAN
13740 PAssert(PIsDescendant(&obj, H245_CustomPictureFormat), PInvalidCast);
13741 #endif
13742 const H245_CustomPictureFormat & other = (const H245_CustomPictureFormat &)obj;
13744 Comparison result;
13746 if ((result = m_maxCustomPictureWidth.Compare(other.m_maxCustomPictureWidth)) != EqualTo)
13747 return result;
13748 if ((result = m_maxCustomPictureHeight.Compare(other.m_maxCustomPictureHeight)) != EqualTo)
13749 return result;
13750 if ((result = m_minCustomPictureWidth.Compare(other.m_minCustomPictureWidth)) != EqualTo)
13751 return result;
13752 if ((result = m_minCustomPictureHeight.Compare(other.m_minCustomPictureHeight)) != EqualTo)
13753 return result;
13754 if ((result = m_mPI.Compare(other.m_mPI)) != EqualTo)
13755 return result;
13756 if ((result = m_pixelAspectInformation.Compare(other.m_pixelAspectInformation)) != EqualTo)
13757 return result;
13759 return PASN_Sequence::Compare(other);
13763 PINDEX H245_CustomPictureFormat::GetDataLength() const
13765 PINDEX length = 0;
13766 length += m_maxCustomPictureWidth.GetObjectLength();
13767 length += m_maxCustomPictureHeight.GetObjectLength();
13768 length += m_minCustomPictureWidth.GetObjectLength();
13769 length += m_minCustomPictureHeight.GetObjectLength();
13770 length += m_mPI.GetObjectLength();
13771 length += m_pixelAspectInformation.GetObjectLength();
13772 return length;
13776 BOOL H245_CustomPictureFormat::Decode(PASN_Stream & strm)
13778 if (!PreambleDecode(strm))
13779 return FALSE;
13781 if (!m_maxCustomPictureWidth.Decode(strm))
13782 return FALSE;
13783 if (!m_maxCustomPictureHeight.Decode(strm))
13784 return FALSE;
13785 if (!m_minCustomPictureWidth.Decode(strm))
13786 return FALSE;
13787 if (!m_minCustomPictureHeight.Decode(strm))
13788 return FALSE;
13789 if (!m_mPI.Decode(strm))
13790 return FALSE;
13791 if (!m_pixelAspectInformation.Decode(strm))
13792 return FALSE;
13794 return UnknownExtensionsDecode(strm);
13798 void H245_CustomPictureFormat::Encode(PASN_Stream & strm) const
13800 PreambleEncode(strm);
13802 m_maxCustomPictureWidth.Encode(strm);
13803 m_maxCustomPictureHeight.Encode(strm);
13804 m_minCustomPictureWidth.Encode(strm);
13805 m_minCustomPictureHeight.Encode(strm);
13806 m_mPI.Encode(strm);
13807 m_pixelAspectInformation.Encode(strm);
13809 UnknownExtensionsEncode(strm);
13813 PObject * H245_CustomPictureFormat::Clone() const
13815 #ifndef PASN_LEANANDMEAN
13816 PAssert(IsClass(H245_CustomPictureFormat::Class()), PInvalidCast);
13817 #endif
13818 return new H245_CustomPictureFormat(*this);
13823 // H263VideoModeCombos
13826 H245_H263VideoModeCombos::H245_H263VideoModeCombos(unsigned tag, PASN_Object::TagClass tagClass)
13827 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
13829 m_h263VideoCoupledModes.SetConstraints(PASN_Object::FixedConstraint, 1, 16);
13833 #ifndef PASN_NOPRINTON
13834 void H245_H263VideoModeCombos::PrintOn(ostream & strm) const
13836 int indent = strm.precision() + 2;
13837 strm << "{\n";
13838 strm << setw(indent+26) << "h263VideoUncoupledModes = " << setprecision(indent) << m_h263VideoUncoupledModes << '\n';
13839 strm << setw(indent+24) << "h263VideoCoupledModes = " << setprecision(indent) << m_h263VideoCoupledModes << '\n';
13840 strm << setw(indent-1) << setprecision(indent-2) << "}";
13842 #endif
13845 PObject::Comparison H245_H263VideoModeCombos::Compare(const PObject & obj) const
13847 #ifndef PASN_LEANANDMEAN
13848 PAssert(PIsDescendant(&obj, H245_H263VideoModeCombos), PInvalidCast);
13849 #endif
13850 const H245_H263VideoModeCombos & other = (const H245_H263VideoModeCombos &)obj;
13852 Comparison result;
13854 if ((result = m_h263VideoUncoupledModes.Compare(other.m_h263VideoUncoupledModes)) != EqualTo)
13855 return result;
13856 if ((result = m_h263VideoCoupledModes.Compare(other.m_h263VideoCoupledModes)) != EqualTo)
13857 return result;
13859 return PASN_Sequence::Compare(other);
13863 PINDEX H245_H263VideoModeCombos::GetDataLength() const
13865 PINDEX length = 0;
13866 length += m_h263VideoUncoupledModes.GetObjectLength();
13867 length += m_h263VideoCoupledModes.GetObjectLength();
13868 return length;
13872 BOOL H245_H263VideoModeCombos::Decode(PASN_Stream & strm)
13874 if (!PreambleDecode(strm))
13875 return FALSE;
13877 if (!m_h263VideoUncoupledModes.Decode(strm))
13878 return FALSE;
13879 if (!m_h263VideoCoupledModes.Decode(strm))
13880 return FALSE;
13882 return UnknownExtensionsDecode(strm);
13886 void H245_H263VideoModeCombos::Encode(PASN_Stream & strm) const
13888 PreambleEncode(strm);
13890 m_h263VideoUncoupledModes.Encode(strm);
13891 m_h263VideoCoupledModes.Encode(strm);
13893 UnknownExtensionsEncode(strm);
13897 PObject * H245_H263VideoModeCombos::Clone() const
13899 #ifndef PASN_LEANANDMEAN
13900 PAssert(IsClass(H245_H263VideoModeCombos::Class()), PInvalidCast);
13901 #endif
13902 return new H245_H263VideoModeCombos(*this);
13907 // T38FaxProfile
13910 H245_T38FaxProfile::H245_T38FaxProfile(unsigned tag, PASN_Object::TagClass tagClass)
13911 : PASN_Sequence(tag, tagClass, 0, TRUE, 4)
13913 m_version.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
13914 IncludeOptionalField(e_version);
13915 IncludeOptionalField(e_t38FaxRateManagement);
13919 #ifndef PASN_NOPRINTON
13920 void H245_T38FaxProfile::PrintOn(ostream & strm) const
13922 int indent = strm.precision() + 2;
13923 strm << "{\n";
13924 strm << setw(indent+17) << "fillBitRemoval = " << setprecision(indent) << m_fillBitRemoval << '\n';
13925 strm << setw(indent+18) << "transcodingJBIG = " << setprecision(indent) << m_transcodingJBIG << '\n';
13926 strm << setw(indent+17) << "transcodingMMR = " << setprecision(indent) << m_transcodingMMR << '\n';
13927 if (HasOptionalField(e_version))
13928 strm << setw(indent+10) << "version = " << setprecision(indent) << m_version << '\n';
13929 if (HasOptionalField(e_t38FaxRateManagement))
13930 strm << setw(indent+23) << "t38FaxRateManagement = " << setprecision(indent) << m_t38FaxRateManagement << '\n';
13931 if (HasOptionalField(e_t38FaxUdpOptions))
13932 strm << setw(indent+19) << "t38FaxUdpOptions = " << setprecision(indent) << m_t38FaxUdpOptions << '\n';
13933 if (HasOptionalField(e_t38FaxTcpOptions))
13934 strm << setw(indent+19) << "t38FaxTcpOptions = " << setprecision(indent) << m_t38FaxTcpOptions << '\n';
13935 strm << setw(indent-1) << setprecision(indent-2) << "}";
13937 #endif
13940 PObject::Comparison H245_T38FaxProfile::Compare(const PObject & obj) const
13942 #ifndef PASN_LEANANDMEAN
13943 PAssert(PIsDescendant(&obj, H245_T38FaxProfile), PInvalidCast);
13944 #endif
13945 const H245_T38FaxProfile & other = (const H245_T38FaxProfile &)obj;
13947 Comparison result;
13949 if ((result = m_fillBitRemoval.Compare(other.m_fillBitRemoval)) != EqualTo)
13950 return result;
13951 if ((result = m_transcodingJBIG.Compare(other.m_transcodingJBIG)) != EqualTo)
13952 return result;
13953 if ((result = m_transcodingMMR.Compare(other.m_transcodingMMR)) != EqualTo)
13954 return result;
13956 return PASN_Sequence::Compare(other);
13960 PINDEX H245_T38FaxProfile::GetDataLength() const
13962 PINDEX length = 0;
13963 length += m_fillBitRemoval.GetObjectLength();
13964 length += m_transcodingJBIG.GetObjectLength();
13965 length += m_transcodingMMR.GetObjectLength();
13966 return length;
13970 BOOL H245_T38FaxProfile::Decode(PASN_Stream & strm)
13972 if (!PreambleDecode(strm))
13973 return FALSE;
13975 if (!m_fillBitRemoval.Decode(strm))
13976 return FALSE;
13977 if (!m_transcodingJBIG.Decode(strm))
13978 return FALSE;
13979 if (!m_transcodingMMR.Decode(strm))
13980 return FALSE;
13981 if (!KnownExtensionDecode(strm, e_version, m_version))
13982 return FALSE;
13983 if (!KnownExtensionDecode(strm, e_t38FaxRateManagement, m_t38FaxRateManagement))
13984 return FALSE;
13985 if (!KnownExtensionDecode(strm, e_t38FaxUdpOptions, m_t38FaxUdpOptions))
13986 return FALSE;
13987 if (!KnownExtensionDecode(strm, e_t38FaxTcpOptions, m_t38FaxTcpOptions))
13988 return FALSE;
13990 return UnknownExtensionsDecode(strm);
13994 void H245_T38FaxProfile::Encode(PASN_Stream & strm) const
13996 PreambleEncode(strm);
13998 m_fillBitRemoval.Encode(strm);
13999 m_transcodingJBIG.Encode(strm);
14000 m_transcodingMMR.Encode(strm);
14001 KnownExtensionEncode(strm, e_version, m_version);
14002 KnownExtensionEncode(strm, e_t38FaxRateManagement, m_t38FaxRateManagement);
14003 KnownExtensionEncode(strm, e_t38FaxUdpOptions, m_t38FaxUdpOptions);
14004 KnownExtensionEncode(strm, e_t38FaxTcpOptions, m_t38FaxTcpOptions);
14006 UnknownExtensionsEncode(strm);
14010 PObject * H245_T38FaxProfile::Clone() const
14012 #ifndef PASN_LEANANDMEAN
14013 PAssert(IsClass(H245_T38FaxProfile::Class()), PInvalidCast);
14014 #endif
14015 return new H245_T38FaxProfile(*this);
14020 // EncryptionAuthenticationAndIntegrity
14023 H245_EncryptionAuthenticationAndIntegrity::H245_EncryptionAuthenticationAndIntegrity(unsigned tag, PASN_Object::TagClass tagClass)
14024 : PASN_Sequence(tag, tagClass, 3, TRUE, 1)
14029 #ifndef PASN_NOPRINTON
14030 void H245_EncryptionAuthenticationAndIntegrity::PrintOn(ostream & strm) const
14032 int indent = strm.precision() + 2;
14033 strm << "{\n";
14034 if (HasOptionalField(e_encryptionCapability))
14035 strm << setw(indent+23) << "encryptionCapability = " << setprecision(indent) << m_encryptionCapability << '\n';
14036 if (HasOptionalField(e_authenticationCapability))
14037 strm << setw(indent+27) << "authenticationCapability = " << setprecision(indent) << m_authenticationCapability << '\n';
14038 if (HasOptionalField(e_integrityCapability))
14039 strm << setw(indent+22) << "integrityCapability = " << setprecision(indent) << m_integrityCapability << '\n';
14040 if (HasOptionalField(e_genericH235SecurityCapability))
14041 strm << setw(indent+32) << "genericH235SecurityCapability = " << setprecision(indent) << m_genericH235SecurityCapability << '\n';
14042 strm << setw(indent-1) << setprecision(indent-2) << "}";
14044 #endif
14047 PObject::Comparison H245_EncryptionAuthenticationAndIntegrity::Compare(const PObject & obj) const
14049 #ifndef PASN_LEANANDMEAN
14050 PAssert(PIsDescendant(&obj, H245_EncryptionAuthenticationAndIntegrity), PInvalidCast);
14051 #endif
14052 const H245_EncryptionAuthenticationAndIntegrity & other = (const H245_EncryptionAuthenticationAndIntegrity &)obj;
14054 Comparison result;
14056 if ((result = m_encryptionCapability.Compare(other.m_encryptionCapability)) != EqualTo)
14057 return result;
14058 if ((result = m_authenticationCapability.Compare(other.m_authenticationCapability)) != EqualTo)
14059 return result;
14060 if ((result = m_integrityCapability.Compare(other.m_integrityCapability)) != EqualTo)
14061 return result;
14063 return PASN_Sequence::Compare(other);
14067 PINDEX H245_EncryptionAuthenticationAndIntegrity::GetDataLength() const
14069 PINDEX length = 0;
14070 if (HasOptionalField(e_encryptionCapability))
14071 length += m_encryptionCapability.GetObjectLength();
14072 if (HasOptionalField(e_authenticationCapability))
14073 length += m_authenticationCapability.GetObjectLength();
14074 if (HasOptionalField(e_integrityCapability))
14075 length += m_integrityCapability.GetObjectLength();
14076 return length;
14080 BOOL H245_EncryptionAuthenticationAndIntegrity::Decode(PASN_Stream & strm)
14082 if (!PreambleDecode(strm))
14083 return FALSE;
14085 if (HasOptionalField(e_encryptionCapability) && !m_encryptionCapability.Decode(strm))
14086 return FALSE;
14087 if (HasOptionalField(e_authenticationCapability) && !m_authenticationCapability.Decode(strm))
14088 return FALSE;
14089 if (HasOptionalField(e_integrityCapability) && !m_integrityCapability.Decode(strm))
14090 return FALSE;
14091 if (!KnownExtensionDecode(strm, e_genericH235SecurityCapability, m_genericH235SecurityCapability))
14092 return FALSE;
14094 return UnknownExtensionsDecode(strm);
14098 void H245_EncryptionAuthenticationAndIntegrity::Encode(PASN_Stream & strm) const
14100 PreambleEncode(strm);
14102 if (HasOptionalField(e_encryptionCapability))
14103 m_encryptionCapability.Encode(strm);
14104 if (HasOptionalField(e_authenticationCapability))
14105 m_authenticationCapability.Encode(strm);
14106 if (HasOptionalField(e_integrityCapability))
14107 m_integrityCapability.Encode(strm);
14108 KnownExtensionEncode(strm, e_genericH235SecurityCapability, m_genericH235SecurityCapability);
14110 UnknownExtensionsEncode(strm);
14114 PObject * H245_EncryptionAuthenticationAndIntegrity::Clone() const
14116 #ifndef PASN_LEANANDMEAN
14117 PAssert(IsClass(H245_EncryptionAuthenticationAndIntegrity::Class()), PInvalidCast);
14118 #endif
14119 return new H245_EncryptionAuthenticationAndIntegrity(*this);
14124 // OpenLogicalChannel
14127 H245_OpenLogicalChannel::H245_OpenLogicalChannel(unsigned tag, PASN_Object::TagClass tagClass)
14128 : PASN_Sequence(tag, tagClass, 1, TRUE, 3)
14133 #ifndef PASN_NOPRINTON
14134 void H245_OpenLogicalChannel::PrintOn(ostream & strm) const
14136 int indent = strm.precision() + 2;
14137 strm << "{\n";
14138 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
14139 strm << setw(indent+34) << "forwardLogicalChannelParameters = " << setprecision(indent) << m_forwardLogicalChannelParameters << '\n';
14140 if (HasOptionalField(e_reverseLogicalChannelParameters))
14141 strm << setw(indent+34) << "reverseLogicalChannelParameters = " << setprecision(indent) << m_reverseLogicalChannelParameters << '\n';
14142 if (HasOptionalField(e_separateStack))
14143 strm << setw(indent+16) << "separateStack = " << setprecision(indent) << m_separateStack << '\n';
14144 if (HasOptionalField(e_encryptionSync))
14145 strm << setw(indent+17) << "encryptionSync = " << setprecision(indent) << m_encryptionSync << '\n';
14146 if (HasOptionalField(e_genericInformation))
14147 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
14148 strm << setw(indent-1) << setprecision(indent-2) << "}";
14150 #endif
14153 PObject::Comparison H245_OpenLogicalChannel::Compare(const PObject & obj) const
14155 #ifndef PASN_LEANANDMEAN
14156 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannel), PInvalidCast);
14157 #endif
14158 const H245_OpenLogicalChannel & other = (const H245_OpenLogicalChannel &)obj;
14160 Comparison result;
14162 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
14163 return result;
14164 if ((result = m_forwardLogicalChannelParameters.Compare(other.m_forwardLogicalChannelParameters)) != EqualTo)
14165 return result;
14166 if ((result = m_reverseLogicalChannelParameters.Compare(other.m_reverseLogicalChannelParameters)) != EqualTo)
14167 return result;
14169 return PASN_Sequence::Compare(other);
14173 PINDEX H245_OpenLogicalChannel::GetDataLength() const
14175 PINDEX length = 0;
14176 length += m_forwardLogicalChannelNumber.GetObjectLength();
14177 length += m_forwardLogicalChannelParameters.GetObjectLength();
14178 if (HasOptionalField(e_reverseLogicalChannelParameters))
14179 length += m_reverseLogicalChannelParameters.GetObjectLength();
14180 return length;
14184 BOOL H245_OpenLogicalChannel::Decode(PASN_Stream & strm)
14186 if (!PreambleDecode(strm))
14187 return FALSE;
14189 if (!m_forwardLogicalChannelNumber.Decode(strm))
14190 return FALSE;
14191 if (!m_forwardLogicalChannelParameters.Decode(strm))
14192 return FALSE;
14193 if (HasOptionalField(e_reverseLogicalChannelParameters) && !m_reverseLogicalChannelParameters.Decode(strm))
14194 return FALSE;
14195 if (!KnownExtensionDecode(strm, e_separateStack, m_separateStack))
14196 return FALSE;
14197 if (!KnownExtensionDecode(strm, e_encryptionSync, m_encryptionSync))
14198 return FALSE;
14199 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
14200 return FALSE;
14202 return UnknownExtensionsDecode(strm);
14206 void H245_OpenLogicalChannel::Encode(PASN_Stream & strm) const
14208 PreambleEncode(strm);
14210 m_forwardLogicalChannelNumber.Encode(strm);
14211 m_forwardLogicalChannelParameters.Encode(strm);
14212 if (HasOptionalField(e_reverseLogicalChannelParameters))
14213 m_reverseLogicalChannelParameters.Encode(strm);
14214 KnownExtensionEncode(strm, e_separateStack, m_separateStack);
14215 KnownExtensionEncode(strm, e_encryptionSync, m_encryptionSync);
14216 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
14218 UnknownExtensionsEncode(strm);
14222 PObject * H245_OpenLogicalChannel::Clone() const
14224 #ifndef PASN_LEANANDMEAN
14225 PAssert(IsClass(H245_OpenLogicalChannel::Class()), PInvalidCast);
14226 #endif
14227 return new H245_OpenLogicalChannel(*this);
14232 // H235Media
14235 H245_H235Media::H245_H235Media(unsigned tag, PASN_Object::TagClass tagClass)
14236 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
14241 #ifndef PASN_NOPRINTON
14242 void H245_H235Media::PrintOn(ostream & strm) const
14244 int indent = strm.precision() + 2;
14245 strm << "{\n";
14246 strm << setw(indent+39) << "encryptionAuthenticationAndIntegrity = " << setprecision(indent) << m_encryptionAuthenticationAndIntegrity << '\n';
14247 strm << setw(indent+12) << "mediaType = " << setprecision(indent) << m_mediaType << '\n';
14248 strm << setw(indent-1) << setprecision(indent-2) << "}";
14250 #endif
14253 PObject::Comparison H245_H235Media::Compare(const PObject & obj) const
14255 #ifndef PASN_LEANANDMEAN
14256 PAssert(PIsDescendant(&obj, H245_H235Media), PInvalidCast);
14257 #endif
14258 const H245_H235Media & other = (const H245_H235Media &)obj;
14260 Comparison result;
14262 if ((result = m_encryptionAuthenticationAndIntegrity.Compare(other.m_encryptionAuthenticationAndIntegrity)) != EqualTo)
14263 return result;
14264 if ((result = m_mediaType.Compare(other.m_mediaType)) != EqualTo)
14265 return result;
14267 return PASN_Sequence::Compare(other);
14271 PINDEX H245_H235Media::GetDataLength() const
14273 PINDEX length = 0;
14274 length += m_encryptionAuthenticationAndIntegrity.GetObjectLength();
14275 length += m_mediaType.GetObjectLength();
14276 return length;
14280 BOOL H245_H235Media::Decode(PASN_Stream & strm)
14282 if (!PreambleDecode(strm))
14283 return FALSE;
14285 if (!m_encryptionAuthenticationAndIntegrity.Decode(strm))
14286 return FALSE;
14287 if (!m_mediaType.Decode(strm))
14288 return FALSE;
14290 return UnknownExtensionsDecode(strm);
14294 void H245_H235Media::Encode(PASN_Stream & strm) const
14296 PreambleEncode(strm);
14298 m_encryptionAuthenticationAndIntegrity.Encode(strm);
14299 m_mediaType.Encode(strm);
14301 UnknownExtensionsEncode(strm);
14305 PObject * H245_H235Media::Clone() const
14307 #ifndef PASN_LEANANDMEAN
14308 PAssert(IsClass(H245_H235Media::Class()), PInvalidCast);
14309 #endif
14310 return new H245_H235Media(*this);
14315 // V76LogicalChannelParameters
14318 H245_V76LogicalChannelParameters::H245_V76LogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
14319 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
14324 #ifndef PASN_NOPRINTON
14325 void H245_V76LogicalChannelParameters::PrintOn(ostream & strm) const
14327 int indent = strm.precision() + 2;
14328 strm << "{\n";
14329 strm << setw(indent+17) << "hdlcParameters = " << setprecision(indent) << m_hdlcParameters << '\n';
14330 strm << setw(indent+16) << "suspendResume = " << setprecision(indent) << m_suspendResume << '\n';
14331 strm << setw(indent+6) << "uIH = " << setprecision(indent) << m_uIH << '\n';
14332 strm << setw(indent+7) << "mode = " << setprecision(indent) << m_mode << '\n';
14333 strm << setw(indent+16) << "v75Parameters = " << setprecision(indent) << m_v75Parameters << '\n';
14334 strm << setw(indent-1) << setprecision(indent-2) << "}";
14336 #endif
14339 PObject::Comparison H245_V76LogicalChannelParameters::Compare(const PObject & obj) const
14341 #ifndef PASN_LEANANDMEAN
14342 PAssert(PIsDescendant(&obj, H245_V76LogicalChannelParameters), PInvalidCast);
14343 #endif
14344 const H245_V76LogicalChannelParameters & other = (const H245_V76LogicalChannelParameters &)obj;
14346 Comparison result;
14348 if ((result = m_hdlcParameters.Compare(other.m_hdlcParameters)) != EqualTo)
14349 return result;
14350 if ((result = m_suspendResume.Compare(other.m_suspendResume)) != EqualTo)
14351 return result;
14352 if ((result = m_uIH.Compare(other.m_uIH)) != EqualTo)
14353 return result;
14354 if ((result = m_mode.Compare(other.m_mode)) != EqualTo)
14355 return result;
14356 if ((result = m_v75Parameters.Compare(other.m_v75Parameters)) != EqualTo)
14357 return result;
14359 return PASN_Sequence::Compare(other);
14363 PINDEX H245_V76LogicalChannelParameters::GetDataLength() const
14365 PINDEX length = 0;
14366 length += m_hdlcParameters.GetObjectLength();
14367 length += m_suspendResume.GetObjectLength();
14368 length += m_uIH.GetObjectLength();
14369 length += m_mode.GetObjectLength();
14370 length += m_v75Parameters.GetObjectLength();
14371 return length;
14375 BOOL H245_V76LogicalChannelParameters::Decode(PASN_Stream & strm)
14377 if (!PreambleDecode(strm))
14378 return FALSE;
14380 if (!m_hdlcParameters.Decode(strm))
14381 return FALSE;
14382 if (!m_suspendResume.Decode(strm))
14383 return FALSE;
14384 if (!m_uIH.Decode(strm))
14385 return FALSE;
14386 if (!m_mode.Decode(strm))
14387 return FALSE;
14388 if (!m_v75Parameters.Decode(strm))
14389 return FALSE;
14391 return UnknownExtensionsDecode(strm);
14395 void H245_V76LogicalChannelParameters::Encode(PASN_Stream & strm) const
14397 PreambleEncode(strm);
14399 m_hdlcParameters.Encode(strm);
14400 m_suspendResume.Encode(strm);
14401 m_uIH.Encode(strm);
14402 m_mode.Encode(strm);
14403 m_v75Parameters.Encode(strm);
14405 UnknownExtensionsEncode(strm);
14409 PObject * H245_V76LogicalChannelParameters::Clone() const
14411 #ifndef PASN_LEANANDMEAN
14412 PAssert(IsClass(H245_V76LogicalChannelParameters::Class()), PInvalidCast);
14413 #endif
14414 return new H245_V76LogicalChannelParameters(*this);
14419 // RedundancyEncoding
14422 H245_RedundancyEncoding::H245_RedundancyEncoding(unsigned tag, PASN_Object::TagClass tagClass)
14423 : PASN_Sequence(tag, tagClass, 1, TRUE, 1)
14428 #ifndef PASN_NOPRINTON
14429 void H245_RedundancyEncoding::PrintOn(ostream & strm) const
14431 int indent = strm.precision() + 2;
14432 strm << "{\n";
14433 strm << setw(indent+27) << "redundancyEncodingMethod = " << setprecision(indent) << m_redundancyEncodingMethod << '\n';
14434 if (HasOptionalField(e_secondaryEncoding))
14435 strm << setw(indent+20) << "secondaryEncoding = " << setprecision(indent) << m_secondaryEncoding << '\n';
14436 if (HasOptionalField(e_rtpRedundancyEncoding))
14437 strm << setw(indent+24) << "rtpRedundancyEncoding = " << setprecision(indent) << m_rtpRedundancyEncoding << '\n';
14438 strm << setw(indent-1) << setprecision(indent-2) << "}";
14440 #endif
14443 PObject::Comparison H245_RedundancyEncoding::Compare(const PObject & obj) const
14445 #ifndef PASN_LEANANDMEAN
14446 PAssert(PIsDescendant(&obj, H245_RedundancyEncoding), PInvalidCast);
14447 #endif
14448 const H245_RedundancyEncoding & other = (const H245_RedundancyEncoding &)obj;
14450 Comparison result;
14452 if ((result = m_redundancyEncodingMethod.Compare(other.m_redundancyEncodingMethod)) != EqualTo)
14453 return result;
14454 if ((result = m_secondaryEncoding.Compare(other.m_secondaryEncoding)) != EqualTo)
14455 return result;
14457 return PASN_Sequence::Compare(other);
14461 PINDEX H245_RedundancyEncoding::GetDataLength() const
14463 PINDEX length = 0;
14464 length += m_redundancyEncodingMethod.GetObjectLength();
14465 if (HasOptionalField(e_secondaryEncoding))
14466 length += m_secondaryEncoding.GetObjectLength();
14467 return length;
14471 BOOL H245_RedundancyEncoding::Decode(PASN_Stream & strm)
14473 if (!PreambleDecode(strm))
14474 return FALSE;
14476 if (!m_redundancyEncodingMethod.Decode(strm))
14477 return FALSE;
14478 if (HasOptionalField(e_secondaryEncoding) && !m_secondaryEncoding.Decode(strm))
14479 return FALSE;
14480 if (!KnownExtensionDecode(strm, e_rtpRedundancyEncoding, m_rtpRedundancyEncoding))
14481 return FALSE;
14483 return UnknownExtensionsDecode(strm);
14487 void H245_RedundancyEncoding::Encode(PASN_Stream & strm) const
14489 PreambleEncode(strm);
14491 m_redundancyEncodingMethod.Encode(strm);
14492 if (HasOptionalField(e_secondaryEncoding))
14493 m_secondaryEncoding.Encode(strm);
14494 KnownExtensionEncode(strm, e_rtpRedundancyEncoding, m_rtpRedundancyEncoding);
14496 UnknownExtensionsEncode(strm);
14500 PObject * H245_RedundancyEncoding::Clone() const
14502 #ifndef PASN_LEANANDMEAN
14503 PAssert(IsClass(H245_RedundancyEncoding::Class()), PInvalidCast);
14504 #endif
14505 return new H245_RedundancyEncoding(*this);
14510 // OpenLogicalChannelAck
14513 H245_OpenLogicalChannelAck::H245_OpenLogicalChannelAck(unsigned tag, PASN_Object::TagClass tagClass)
14514 : PASN_Sequence(tag, tagClass, 1, TRUE, 4)
14519 #ifndef PASN_NOPRINTON
14520 void H245_OpenLogicalChannelAck::PrintOn(ostream & strm) const
14522 int indent = strm.precision() + 2;
14523 strm << "{\n";
14524 strm << setw(indent+30) << "forwardLogicalChannelNumber = " << setprecision(indent) << m_forwardLogicalChannelNumber << '\n';
14525 if (HasOptionalField(e_reverseLogicalChannelParameters))
14526 strm << setw(indent+34) << "reverseLogicalChannelParameters = " << setprecision(indent) << m_reverseLogicalChannelParameters << '\n';
14527 if (HasOptionalField(e_separateStack))
14528 strm << setw(indent+16) << "separateStack = " << setprecision(indent) << m_separateStack << '\n';
14529 if (HasOptionalField(e_forwardMultiplexAckParameters))
14530 strm << setw(indent+32) << "forwardMultiplexAckParameters = " << setprecision(indent) << m_forwardMultiplexAckParameters << '\n';
14531 if (HasOptionalField(e_encryptionSync))
14532 strm << setw(indent+17) << "encryptionSync = " << setprecision(indent) << m_encryptionSync << '\n';
14533 if (HasOptionalField(e_genericInformation))
14534 strm << setw(indent+21) << "genericInformation = " << setprecision(indent) << m_genericInformation << '\n';
14535 strm << setw(indent-1) << setprecision(indent-2) << "}";
14537 #endif
14540 PObject::Comparison H245_OpenLogicalChannelAck::Compare(const PObject & obj) const
14542 #ifndef PASN_LEANANDMEAN
14543 PAssert(PIsDescendant(&obj, H245_OpenLogicalChannelAck), PInvalidCast);
14544 #endif
14545 const H245_OpenLogicalChannelAck & other = (const H245_OpenLogicalChannelAck &)obj;
14547 Comparison result;
14549 if ((result = m_forwardLogicalChannelNumber.Compare(other.m_forwardLogicalChannelNumber)) != EqualTo)
14550 return result;
14551 if ((result = m_reverseLogicalChannelParameters.Compare(other.m_reverseLogicalChannelParameters)) != EqualTo)
14552 return result;
14554 return PASN_Sequence::Compare(other);
14558 PINDEX H245_OpenLogicalChannelAck::GetDataLength() const
14560 PINDEX length = 0;
14561 length += m_forwardLogicalChannelNumber.GetObjectLength();
14562 if (HasOptionalField(e_reverseLogicalChannelParameters))
14563 length += m_reverseLogicalChannelParameters.GetObjectLength();
14564 return length;
14568 BOOL H245_OpenLogicalChannelAck::Decode(PASN_Stream & strm)
14570 if (!PreambleDecode(strm))
14571 return FALSE;
14573 if (!m_forwardLogicalChannelNumber.Decode(strm))
14574 return FALSE;
14575 if (HasOptionalField(e_reverseLogicalChannelParameters) && !m_reverseLogicalChannelParameters.Decode(strm))
14576 return FALSE;
14577 if (!KnownExtensionDecode(strm, e_separateStack, m_separateStack))
14578 return FALSE;
14579 if (!KnownExtensionDecode(strm, e_forwardMultiplexAckParameters, m_forwardMultiplexAckParameters))
14580 return FALSE;
14581 if (!KnownExtensionDecode(strm, e_encryptionSync, m_encryptionSync))
14582 return FALSE;
14583 if (!KnownExtensionDecode(strm, e_genericInformation, m_genericInformation))
14584 return FALSE;
14586 return UnknownExtensionsDecode(strm);
14590 void H245_OpenLogicalChannelAck::Encode(PASN_Stream & strm) const
14592 PreambleEncode(strm);
14594 m_forwardLogicalChannelNumber.Encode(strm);
14595 if (HasOptionalField(e_reverseLogicalChannelParameters))
14596 m_reverseLogicalChannelParameters.Encode(strm);
14597 KnownExtensionEncode(strm, e_separateStack, m_separateStack);
14598 KnownExtensionEncode(strm, e_forwardMultiplexAckParameters, m_forwardMultiplexAckParameters);
14599 KnownExtensionEncode(strm, e_encryptionSync, m_encryptionSync);
14600 KnownExtensionEncode(strm, e_genericInformation, m_genericInformation);
14602 UnknownExtensionsEncode(strm);
14606 PObject * H245_OpenLogicalChannelAck::Clone() const
14608 #ifndef PASN_LEANANDMEAN
14609 PAssert(IsClass(H245_OpenLogicalChannelAck::Class()), PInvalidCast);
14610 #endif
14611 return new H245_OpenLogicalChannelAck(*this);
14616 // H235Mode
14619 H245_H235Mode::H245_H235Mode(unsigned tag, PASN_Object::TagClass tagClass)
14620 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
14625 #ifndef PASN_NOPRINTON
14626 void H245_H235Mode::PrintOn(ostream & strm) const
14628 int indent = strm.precision() + 2;
14629 strm << "{\n";
14630 strm << setw(indent+39) << "encryptionAuthenticationAndIntegrity = " << setprecision(indent) << m_encryptionAuthenticationAndIntegrity << '\n';
14631 strm << setw(indent+12) << "mediaMode = " << setprecision(indent) << m_mediaMode << '\n';
14632 strm << setw(indent-1) << setprecision(indent-2) << "}";
14634 #endif
14637 PObject::Comparison H245_H235Mode::Compare(const PObject & obj) const
14639 #ifndef PASN_LEANANDMEAN
14640 PAssert(PIsDescendant(&obj, H245_H235Mode), PInvalidCast);
14641 #endif
14642 const H245_H235Mode & other = (const H245_H235Mode &)obj;
14644 Comparison result;
14646 if ((result = m_encryptionAuthenticationAndIntegrity.Compare(other.m_encryptionAuthenticationAndIntegrity)) != EqualTo)
14647 return result;
14648 if ((result = m_mediaMode.Compare(other.m_mediaMode)) != EqualTo)
14649 return result;
14651 return PASN_Sequence::Compare(other);
14655 PINDEX H245_H235Mode::GetDataLength() const
14657 PINDEX length = 0;
14658 length += m_encryptionAuthenticationAndIntegrity.GetObjectLength();
14659 length += m_mediaMode.GetObjectLength();
14660 return length;
14664 BOOL H245_H235Mode::Decode(PASN_Stream & strm)
14666 if (!PreambleDecode(strm))
14667 return FALSE;
14669 if (!m_encryptionAuthenticationAndIntegrity.Decode(strm))
14670 return FALSE;
14671 if (!m_mediaMode.Decode(strm))
14672 return FALSE;
14674 return UnknownExtensionsDecode(strm);
14678 void H245_H235Mode::Encode(PASN_Stream & strm) const
14680 PreambleEncode(strm);
14682 m_encryptionAuthenticationAndIntegrity.Encode(strm);
14683 m_mediaMode.Encode(strm);
14685 UnknownExtensionsEncode(strm);
14689 PObject * H245_H235Mode::Clone() const
14691 #ifndef PASN_LEANANDMEAN
14692 PAssert(IsClass(H245_H235Mode::Class()), PInvalidCast);
14693 #endif
14694 return new H245_H235Mode(*this);
14699 // RedundancyEncodingDTMode
14702 H245_RedundancyEncodingDTMode::H245_RedundancyEncodingDTMode(unsigned tag, PASN_Object::TagClass tagClass)
14703 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
14708 #ifndef PASN_NOPRINTON
14709 void H245_RedundancyEncodingDTMode::PrintOn(ostream & strm) const
14711 int indent = strm.precision() + 2;
14712 strm << "{\n";
14713 strm << setw(indent+27) << "redundancyEncodingMethod = " << setprecision(indent) << m_redundancyEncodingMethod << '\n';
14714 strm << setw(indent+10) << "primary = " << setprecision(indent) << m_primary << '\n';
14715 strm << setw(indent+12) << "secondary = " << setprecision(indent) << m_secondary << '\n';
14716 strm << setw(indent-1) << setprecision(indent-2) << "}";
14718 #endif
14721 PObject::Comparison H245_RedundancyEncodingDTMode::Compare(const PObject & obj) const
14723 #ifndef PASN_LEANANDMEAN
14724 PAssert(PIsDescendant(&obj, H245_RedundancyEncodingDTMode), PInvalidCast);
14725 #endif
14726 const H245_RedundancyEncodingDTMode & other = (const H245_RedundancyEncodingDTMode &)obj;
14728 Comparison result;
14730 if ((result = m_redundancyEncodingMethod.Compare(other.m_redundancyEncodingMethod)) != EqualTo)
14731 return result;
14732 if ((result = m_primary.Compare(other.m_primary)) != EqualTo)
14733 return result;
14734 if ((result = m_secondary.Compare(other.m_secondary)) != EqualTo)
14735 return result;
14737 return PASN_Sequence::Compare(other);
14741 PINDEX H245_RedundancyEncodingDTMode::GetDataLength() const
14743 PINDEX length = 0;
14744 length += m_redundancyEncodingMethod.GetObjectLength();
14745 length += m_primary.GetObjectLength();
14746 length += m_secondary.GetObjectLength();
14747 return length;
14751 BOOL H245_RedundancyEncodingDTMode::Decode(PASN_Stream & strm)
14753 if (!PreambleDecode(strm))
14754 return FALSE;
14756 if (!m_redundancyEncodingMethod.Decode(strm))
14757 return FALSE;
14758 if (!m_primary.Decode(strm))
14759 return FALSE;
14760 if (!m_secondary.Decode(strm))
14761 return FALSE;
14763 return UnknownExtensionsDecode(strm);
14767 void H245_RedundancyEncodingDTMode::Encode(PASN_Stream & strm) const
14769 PreambleEncode(strm);
14771 m_redundancyEncodingMethod.Encode(strm);
14772 m_primary.Encode(strm);
14773 m_secondary.Encode(strm);
14775 UnknownExtensionsEncode(strm);
14779 PObject * H245_RedundancyEncodingDTMode::Clone() const
14781 #ifndef PASN_LEANANDMEAN
14782 PAssert(IsClass(H245_RedundancyEncodingDTMode::Class()), PInvalidCast);
14783 #endif
14784 return new H245_RedundancyEncodingDTMode(*this);
14789 // H2250ModeParameters
14792 H245_H2250ModeParameters::H245_H2250ModeParameters(unsigned tag, PASN_Object::TagClass tagClass)
14793 : PASN_Sequence(tag, tagClass, 1, TRUE, 0)
14798 #ifndef PASN_NOPRINTON
14799 void H245_H2250ModeParameters::PrintOn(ostream & strm) const
14801 int indent = strm.precision() + 2;
14802 strm << "{\n";
14803 if (HasOptionalField(e_redundancyEncodingMode))
14804 strm << setw(indent+25) << "redundancyEncodingMode = " << setprecision(indent) << m_redundancyEncodingMode << '\n';
14805 strm << setw(indent-1) << setprecision(indent-2) << "}";
14807 #endif
14810 PObject::Comparison H245_H2250ModeParameters::Compare(const PObject & obj) const
14812 #ifndef PASN_LEANANDMEAN
14813 PAssert(PIsDescendant(&obj, H245_H2250ModeParameters), PInvalidCast);
14814 #endif
14815 const H245_H2250ModeParameters & other = (const H245_H2250ModeParameters &)obj;
14817 Comparison result;
14819 if ((result = m_redundancyEncodingMode.Compare(other.m_redundancyEncodingMode)) != EqualTo)
14820 return result;
14822 return PASN_Sequence::Compare(other);
14826 PINDEX H245_H2250ModeParameters::GetDataLength() const
14828 PINDEX length = 0;
14829 if (HasOptionalField(e_redundancyEncodingMode))
14830 length += m_redundancyEncodingMode.GetObjectLength();
14831 return length;
14835 BOOL H245_H2250ModeParameters::Decode(PASN_Stream & strm)
14837 if (!PreambleDecode(strm))
14838 return FALSE;
14840 if (HasOptionalField(e_redundancyEncodingMode) && !m_redundancyEncodingMode.Decode(strm))
14841 return FALSE;
14843 return UnknownExtensionsDecode(strm);
14847 void H245_H2250ModeParameters::Encode(PASN_Stream & strm) const
14849 PreambleEncode(strm);
14851 if (HasOptionalField(e_redundancyEncodingMode))
14852 m_redundancyEncodingMode.Encode(strm);
14854 UnknownExtensionsEncode(strm);
14858 PObject * H245_H2250ModeParameters::Clone() const
14860 #ifndef PASN_LEANANDMEAN
14861 PAssert(IsClass(H245_H2250ModeParameters::Class()), PInvalidCast);
14862 #endif
14863 return new H245_H2250ModeParameters(*this);
14868 // CommunicationModeTableEntry
14871 H245_CommunicationModeTableEntry::H245_CommunicationModeTableEntry(unsigned tag, PASN_Object::TagClass tagClass)
14872 : PASN_Sequence(tag, tagClass, 7, TRUE, 3)
14874 m_sessionID.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
14875 m_associatedSessionID.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
14876 m_sessionDescription.SetConstraints(PASN_Object::FixedConstraint, 1, 128);
14877 m_sessionDependency.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
14881 #ifndef PASN_NOPRINTON
14882 void H245_CommunicationModeTableEntry::PrintOn(ostream & strm) const
14884 int indent = strm.precision() + 2;
14885 strm << "{\n";
14886 if (HasOptionalField(e_nonStandard))
14887 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
14888 strm << setw(indent+12) << "sessionID = " << setprecision(indent) << m_sessionID << '\n';
14889 if (HasOptionalField(e_associatedSessionID))
14890 strm << setw(indent+22) << "associatedSessionID = " << setprecision(indent) << m_associatedSessionID << '\n';
14891 if (HasOptionalField(e_terminalLabel))
14892 strm << setw(indent+16) << "terminalLabel = " << setprecision(indent) << m_terminalLabel << '\n';
14893 strm << setw(indent+21) << "sessionDescription = " << setprecision(indent) << m_sessionDescription << '\n';
14894 strm << setw(indent+11) << "dataType = " << setprecision(indent) << m_dataType << '\n';
14895 if (HasOptionalField(e_mediaChannel))
14896 strm << setw(indent+15) << "mediaChannel = " << setprecision(indent) << m_mediaChannel << '\n';
14897 if (HasOptionalField(e_mediaGuaranteedDelivery))
14898 strm << setw(indent+26) << "mediaGuaranteedDelivery = " << setprecision(indent) << m_mediaGuaranteedDelivery << '\n';
14899 if (HasOptionalField(e_mediaControlChannel))
14900 strm << setw(indent+22) << "mediaControlChannel = " << setprecision(indent) << m_mediaControlChannel << '\n';
14901 if (HasOptionalField(e_mediaControlGuaranteedDelivery))
14902 strm << setw(indent+33) << "mediaControlGuaranteedDelivery = " << setprecision(indent) << m_mediaControlGuaranteedDelivery << '\n';
14903 if (HasOptionalField(e_redundancyEncoding))
14904 strm << setw(indent+21) << "redundancyEncoding = " << setprecision(indent) << m_redundancyEncoding << '\n';
14905 if (HasOptionalField(e_sessionDependency))
14906 strm << setw(indent+20) << "sessionDependency = " << setprecision(indent) << m_sessionDependency << '\n';
14907 if (HasOptionalField(e_destination))
14908 strm << setw(indent+14) << "destination = " << setprecision(indent) << m_destination << '\n';
14909 strm << setw(indent-1) << setprecision(indent-2) << "}";
14911 #endif
14914 PObject::Comparison H245_CommunicationModeTableEntry::Compare(const PObject & obj) const
14916 #ifndef PASN_LEANANDMEAN
14917 PAssert(PIsDescendant(&obj, H245_CommunicationModeTableEntry), PInvalidCast);
14918 #endif
14919 const H245_CommunicationModeTableEntry & other = (const H245_CommunicationModeTableEntry &)obj;
14921 Comparison result;
14923 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
14924 return result;
14925 if ((result = m_sessionID.Compare(other.m_sessionID)) != EqualTo)
14926 return result;
14927 if ((result = m_associatedSessionID.Compare(other.m_associatedSessionID)) != EqualTo)
14928 return result;
14929 if ((result = m_terminalLabel.Compare(other.m_terminalLabel)) != EqualTo)
14930 return result;
14931 if ((result = m_sessionDescription.Compare(other.m_sessionDescription)) != EqualTo)
14932 return result;
14933 if ((result = m_dataType.Compare(other.m_dataType)) != EqualTo)
14934 return result;
14935 if ((result = m_mediaChannel.Compare(other.m_mediaChannel)) != EqualTo)
14936 return result;
14937 if ((result = m_mediaGuaranteedDelivery.Compare(other.m_mediaGuaranteedDelivery)) != EqualTo)
14938 return result;
14939 if ((result = m_mediaControlChannel.Compare(other.m_mediaControlChannel)) != EqualTo)
14940 return result;
14941 if ((result = m_mediaControlGuaranteedDelivery.Compare(other.m_mediaControlGuaranteedDelivery)) != EqualTo)
14942 return result;
14944 return PASN_Sequence::Compare(other);
14948 PINDEX H245_CommunicationModeTableEntry::GetDataLength() const
14950 PINDEX length = 0;
14951 if (HasOptionalField(e_nonStandard))
14952 length += m_nonStandard.GetObjectLength();
14953 length += m_sessionID.GetObjectLength();
14954 if (HasOptionalField(e_associatedSessionID))
14955 length += m_associatedSessionID.GetObjectLength();
14956 if (HasOptionalField(e_terminalLabel))
14957 length += m_terminalLabel.GetObjectLength();
14958 length += m_sessionDescription.GetObjectLength();
14959 length += m_dataType.GetObjectLength();
14960 if (HasOptionalField(e_mediaChannel))
14961 length += m_mediaChannel.GetObjectLength();
14962 if (HasOptionalField(e_mediaGuaranteedDelivery))
14963 length += m_mediaGuaranteedDelivery.GetObjectLength();
14964 if (HasOptionalField(e_mediaControlChannel))
14965 length += m_mediaControlChannel.GetObjectLength();
14966 if (HasOptionalField(e_mediaControlGuaranteedDelivery))
14967 length += m_mediaControlGuaranteedDelivery.GetObjectLength();
14968 return length;
14972 BOOL H245_CommunicationModeTableEntry::Decode(PASN_Stream & strm)
14974 if (!PreambleDecode(strm))
14975 return FALSE;
14977 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
14978 return FALSE;
14979 if (!m_sessionID.Decode(strm))
14980 return FALSE;
14981 if (HasOptionalField(e_associatedSessionID) && !m_associatedSessionID.Decode(strm))
14982 return FALSE;
14983 if (HasOptionalField(e_terminalLabel) && !m_terminalLabel.Decode(strm))
14984 return FALSE;
14985 if (!m_sessionDescription.Decode(strm))
14986 return FALSE;
14987 if (!m_dataType.Decode(strm))
14988 return FALSE;
14989 if (HasOptionalField(e_mediaChannel) && !m_mediaChannel.Decode(strm))
14990 return FALSE;
14991 if (HasOptionalField(e_mediaGuaranteedDelivery) && !m_mediaGuaranteedDelivery.Decode(strm))
14992 return FALSE;
14993 if (HasOptionalField(e_mediaControlChannel) && !m_mediaControlChannel.Decode(strm))
14994 return FALSE;
14995 if (HasOptionalField(e_mediaControlGuaranteedDelivery) && !m_mediaControlGuaranteedDelivery.Decode(strm))
14996 return FALSE;
14997 if (!KnownExtensionDecode(strm, e_redundancyEncoding, m_redundancyEncoding))
14998 return FALSE;
14999 if (!KnownExtensionDecode(strm, e_sessionDependency, m_sessionDependency))
15000 return FALSE;
15001 if (!KnownExtensionDecode(strm, e_destination, m_destination))
15002 return FALSE;
15004 return UnknownExtensionsDecode(strm);
15008 void H245_CommunicationModeTableEntry::Encode(PASN_Stream & strm) const
15010 PreambleEncode(strm);
15012 if (HasOptionalField(e_nonStandard))
15013 m_nonStandard.Encode(strm);
15014 m_sessionID.Encode(strm);
15015 if (HasOptionalField(e_associatedSessionID))
15016 m_associatedSessionID.Encode(strm);
15017 if (HasOptionalField(e_terminalLabel))
15018 m_terminalLabel.Encode(strm);
15019 m_sessionDescription.Encode(strm);
15020 m_dataType.Encode(strm);
15021 if (HasOptionalField(e_mediaChannel))
15022 m_mediaChannel.Encode(strm);
15023 if (HasOptionalField(e_mediaGuaranteedDelivery))
15024 m_mediaGuaranteedDelivery.Encode(strm);
15025 if (HasOptionalField(e_mediaControlChannel))
15026 m_mediaControlChannel.Encode(strm);
15027 if (HasOptionalField(e_mediaControlGuaranteedDelivery))
15028 m_mediaControlGuaranteedDelivery.Encode(strm);
15029 KnownExtensionEncode(strm, e_redundancyEncoding, m_redundancyEncoding);
15030 KnownExtensionEncode(strm, e_sessionDependency, m_sessionDependency);
15031 KnownExtensionEncode(strm, e_destination, m_destination);
15033 UnknownExtensionsEncode(strm);
15037 PObject * H245_CommunicationModeTableEntry::Clone() const
15039 #ifndef PASN_LEANANDMEAN
15040 PAssert(IsClass(H245_CommunicationModeTableEntry::Class()), PInvalidCast);
15041 #endif
15042 return new H245_CommunicationModeTableEntry(*this);
15047 // NewATMVCCommand
15050 H245_NewATMVCCommand::H245_NewATMVCCommand(unsigned tag, PASN_Object::TagClass tagClass)
15051 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
15053 m_resourceID.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
15054 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
15058 #ifndef PASN_NOPRINTON
15059 void H245_NewATMVCCommand::PrintOn(ostream & strm) const
15061 int indent = strm.precision() + 2;
15062 strm << "{\n";
15063 strm << setw(indent+13) << "resourceID = " << setprecision(indent) << m_resourceID << '\n';
15064 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
15065 strm << setw(indent+26) << "bitRateLockedToPCRClock = " << setprecision(indent) << m_bitRateLockedToPCRClock << '\n';
15066 strm << setw(indent+30) << "bitRateLockedToNetworkClock = " << setprecision(indent) << m_bitRateLockedToNetworkClock << '\n';
15067 strm << setw(indent+6) << "aal = " << setprecision(indent) << m_aal << '\n';
15068 strm << setw(indent+12) << "multiplex = " << setprecision(indent) << m_multiplex << '\n';
15069 strm << setw(indent+20) << "reverseParameters = " << setprecision(indent) << m_reverseParameters << '\n';
15070 strm << setw(indent-1) << setprecision(indent-2) << "}";
15072 #endif
15075 PObject::Comparison H245_NewATMVCCommand::Compare(const PObject & obj) const
15077 #ifndef PASN_LEANANDMEAN
15078 PAssert(PIsDescendant(&obj, H245_NewATMVCCommand), PInvalidCast);
15079 #endif
15080 const H245_NewATMVCCommand & other = (const H245_NewATMVCCommand &)obj;
15082 Comparison result;
15084 if ((result = m_resourceID.Compare(other.m_resourceID)) != EqualTo)
15085 return result;
15086 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
15087 return result;
15088 if ((result = m_bitRateLockedToPCRClock.Compare(other.m_bitRateLockedToPCRClock)) != EqualTo)
15089 return result;
15090 if ((result = m_bitRateLockedToNetworkClock.Compare(other.m_bitRateLockedToNetworkClock)) != EqualTo)
15091 return result;
15092 if ((result = m_aal.Compare(other.m_aal)) != EqualTo)
15093 return result;
15094 if ((result = m_multiplex.Compare(other.m_multiplex)) != EqualTo)
15095 return result;
15096 if ((result = m_reverseParameters.Compare(other.m_reverseParameters)) != EqualTo)
15097 return result;
15099 return PASN_Sequence::Compare(other);
15103 PINDEX H245_NewATMVCCommand::GetDataLength() const
15105 PINDEX length = 0;
15106 length += m_resourceID.GetObjectLength();
15107 length += m_bitRate.GetObjectLength();
15108 length += m_bitRateLockedToPCRClock.GetObjectLength();
15109 length += m_bitRateLockedToNetworkClock.GetObjectLength();
15110 length += m_aal.GetObjectLength();
15111 length += m_multiplex.GetObjectLength();
15112 length += m_reverseParameters.GetObjectLength();
15113 return length;
15117 BOOL H245_NewATMVCCommand::Decode(PASN_Stream & strm)
15119 if (!PreambleDecode(strm))
15120 return FALSE;
15122 if (!m_resourceID.Decode(strm))
15123 return FALSE;
15124 if (!m_bitRate.Decode(strm))
15125 return FALSE;
15126 if (!m_bitRateLockedToPCRClock.Decode(strm))
15127 return FALSE;
15128 if (!m_bitRateLockedToNetworkClock.Decode(strm))
15129 return FALSE;
15130 if (!m_aal.Decode(strm))
15131 return FALSE;
15132 if (!m_multiplex.Decode(strm))
15133 return FALSE;
15134 if (!m_reverseParameters.Decode(strm))
15135 return FALSE;
15137 return UnknownExtensionsDecode(strm);
15141 void H245_NewATMVCCommand::Encode(PASN_Stream & strm) const
15143 PreambleEncode(strm);
15145 m_resourceID.Encode(strm);
15146 m_bitRate.Encode(strm);
15147 m_bitRateLockedToPCRClock.Encode(strm);
15148 m_bitRateLockedToNetworkClock.Encode(strm);
15149 m_aal.Encode(strm);
15150 m_multiplex.Encode(strm);
15151 m_reverseParameters.Encode(strm);
15153 UnknownExtensionsEncode(strm);
15157 PObject * H245_NewATMVCCommand::Clone() const
15159 #ifndef PASN_LEANANDMEAN
15160 PAssert(IsClass(H245_NewATMVCCommand::Class()), PInvalidCast);
15161 #endif
15162 return new H245_NewATMVCCommand(*this);
15167 // NewATMVCIndication
15170 H245_NewATMVCIndication::H245_NewATMVCIndication(unsigned tag, PASN_Object::TagClass tagClass)
15171 : PASN_Sequence(tag, tagClass, 0, TRUE, 1)
15173 m_resourceID.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
15174 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 65535);
15175 IncludeOptionalField(e_reverseParameters);
15179 #ifndef PASN_NOPRINTON
15180 void H245_NewATMVCIndication::PrintOn(ostream & strm) const
15182 int indent = strm.precision() + 2;
15183 strm << "{\n";
15184 strm << setw(indent+13) << "resourceID = " << setprecision(indent) << m_resourceID << '\n';
15185 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
15186 strm << setw(indent+26) << "bitRateLockedToPCRClock = " << setprecision(indent) << m_bitRateLockedToPCRClock << '\n';
15187 strm << setw(indent+30) << "bitRateLockedToNetworkClock = " << setprecision(indent) << m_bitRateLockedToNetworkClock << '\n';
15188 strm << setw(indent+6) << "aal = " << setprecision(indent) << m_aal << '\n';
15189 strm << setw(indent+12) << "multiplex = " << setprecision(indent) << m_multiplex << '\n';
15190 if (HasOptionalField(e_reverseParameters))
15191 strm << setw(indent+20) << "reverseParameters = " << setprecision(indent) << m_reverseParameters << '\n';
15192 strm << setw(indent-1) << setprecision(indent-2) << "}";
15194 #endif
15197 PObject::Comparison H245_NewATMVCIndication::Compare(const PObject & obj) const
15199 #ifndef PASN_LEANANDMEAN
15200 PAssert(PIsDescendant(&obj, H245_NewATMVCIndication), PInvalidCast);
15201 #endif
15202 const H245_NewATMVCIndication & other = (const H245_NewATMVCIndication &)obj;
15204 Comparison result;
15206 if ((result = m_resourceID.Compare(other.m_resourceID)) != EqualTo)
15207 return result;
15208 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
15209 return result;
15210 if ((result = m_bitRateLockedToPCRClock.Compare(other.m_bitRateLockedToPCRClock)) != EqualTo)
15211 return result;
15212 if ((result = m_bitRateLockedToNetworkClock.Compare(other.m_bitRateLockedToNetworkClock)) != EqualTo)
15213 return result;
15214 if ((result = m_aal.Compare(other.m_aal)) != EqualTo)
15215 return result;
15216 if ((result = m_multiplex.Compare(other.m_multiplex)) != EqualTo)
15217 return result;
15219 return PASN_Sequence::Compare(other);
15223 PINDEX H245_NewATMVCIndication::GetDataLength() const
15225 PINDEX length = 0;
15226 length += m_resourceID.GetObjectLength();
15227 length += m_bitRate.GetObjectLength();
15228 length += m_bitRateLockedToPCRClock.GetObjectLength();
15229 length += m_bitRateLockedToNetworkClock.GetObjectLength();
15230 length += m_aal.GetObjectLength();
15231 length += m_multiplex.GetObjectLength();
15232 return length;
15236 BOOL H245_NewATMVCIndication::Decode(PASN_Stream & strm)
15238 if (!PreambleDecode(strm))
15239 return FALSE;
15241 if (!m_resourceID.Decode(strm))
15242 return FALSE;
15243 if (!m_bitRate.Decode(strm))
15244 return FALSE;
15245 if (!m_bitRateLockedToPCRClock.Decode(strm))
15246 return FALSE;
15247 if (!m_bitRateLockedToNetworkClock.Decode(strm))
15248 return FALSE;
15249 if (!m_aal.Decode(strm))
15250 return FALSE;
15251 if (!m_multiplex.Decode(strm))
15252 return FALSE;
15253 if (!KnownExtensionDecode(strm, e_reverseParameters, m_reverseParameters))
15254 return FALSE;
15256 return UnknownExtensionsDecode(strm);
15260 void H245_NewATMVCIndication::Encode(PASN_Stream & strm) const
15262 PreambleEncode(strm);
15264 m_resourceID.Encode(strm);
15265 m_bitRate.Encode(strm);
15266 m_bitRateLockedToPCRClock.Encode(strm);
15267 m_bitRateLockedToNetworkClock.Encode(strm);
15268 m_aal.Encode(strm);
15269 m_multiplex.Encode(strm);
15270 KnownExtensionEncode(strm, e_reverseParameters, m_reverseParameters);
15272 UnknownExtensionsEncode(strm);
15276 PObject * H245_NewATMVCIndication::Clone() const
15278 #ifndef PASN_LEANANDMEAN
15279 PAssert(IsClass(H245_NewATMVCIndication::Class()), PInvalidCast);
15280 #endif
15281 return new H245_NewATMVCIndication(*this);
15286 // DataApplicationCapability_application_t38fax
15289 H245_DataApplicationCapability_application_t38fax::H245_DataApplicationCapability_application_t38fax(unsigned tag, PASN_Object::TagClass tagClass)
15290 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
15295 #ifndef PASN_NOPRINTON
15296 void H245_DataApplicationCapability_application_t38fax::PrintOn(ostream & strm) const
15298 int indent = strm.precision() + 2;
15299 strm << "{\n";
15300 strm << setw(indent+17) << "t38FaxProtocol = " << setprecision(indent) << m_t38FaxProtocol << '\n';
15301 strm << setw(indent+16) << "t38FaxProfile = " << setprecision(indent) << m_t38FaxProfile << '\n';
15302 strm << setw(indent-1) << setprecision(indent-2) << "}";
15304 #endif
15307 PObject::Comparison H245_DataApplicationCapability_application_t38fax::Compare(const PObject & obj) const
15309 #ifndef PASN_LEANANDMEAN
15310 PAssert(PIsDescendant(&obj, H245_DataApplicationCapability_application_t38fax), PInvalidCast);
15311 #endif
15312 const H245_DataApplicationCapability_application_t38fax & other = (const H245_DataApplicationCapability_application_t38fax &)obj;
15314 Comparison result;
15316 if ((result = m_t38FaxProtocol.Compare(other.m_t38FaxProtocol)) != EqualTo)
15317 return result;
15318 if ((result = m_t38FaxProfile.Compare(other.m_t38FaxProfile)) != EqualTo)
15319 return result;
15321 return PASN_Sequence::Compare(other);
15325 PINDEX H245_DataApplicationCapability_application_t38fax::GetDataLength() const
15327 PINDEX length = 0;
15328 length += m_t38FaxProtocol.GetObjectLength();
15329 length += m_t38FaxProfile.GetObjectLength();
15330 return length;
15334 BOOL H245_DataApplicationCapability_application_t38fax::Decode(PASN_Stream & strm)
15336 if (!PreambleDecode(strm))
15337 return FALSE;
15339 if (!m_t38FaxProtocol.Decode(strm))
15340 return FALSE;
15341 if (!m_t38FaxProfile.Decode(strm))
15342 return FALSE;
15344 return UnknownExtensionsDecode(strm);
15348 void H245_DataApplicationCapability_application_t38fax::Encode(PASN_Stream & strm) const
15350 PreambleEncode(strm);
15352 m_t38FaxProtocol.Encode(strm);
15353 m_t38FaxProfile.Encode(strm);
15355 UnknownExtensionsEncode(strm);
15359 PObject * H245_DataApplicationCapability_application_t38fax::Clone() const
15361 #ifndef PASN_LEANANDMEAN
15362 PAssert(IsClass(H245_DataApplicationCapability_application_t38fax::Class()), PInvalidCast);
15363 #endif
15364 return new H245_DataApplicationCapability_application_t38fax(*this);
15369 // DataMode_application_t38fax
15372 H245_DataMode_application_t38fax::H245_DataMode_application_t38fax(unsigned tag, PASN_Object::TagClass tagClass)
15373 : PASN_Sequence(tag, tagClass, 0, FALSE, 0)
15378 #ifndef PASN_NOPRINTON
15379 void H245_DataMode_application_t38fax::PrintOn(ostream & strm) const
15381 int indent = strm.precision() + 2;
15382 strm << "{\n";
15383 strm << setw(indent+17) << "t38FaxProtocol = " << setprecision(indent) << m_t38FaxProtocol << '\n';
15384 strm << setw(indent+16) << "t38FaxProfile = " << setprecision(indent) << m_t38FaxProfile << '\n';
15385 strm << setw(indent-1) << setprecision(indent-2) << "}";
15387 #endif
15390 PObject::Comparison H245_DataMode_application_t38fax::Compare(const PObject & obj) const
15392 #ifndef PASN_LEANANDMEAN
15393 PAssert(PIsDescendant(&obj, H245_DataMode_application_t38fax), PInvalidCast);
15394 #endif
15395 const H245_DataMode_application_t38fax & other = (const H245_DataMode_application_t38fax &)obj;
15397 Comparison result;
15399 if ((result = m_t38FaxProtocol.Compare(other.m_t38FaxProtocol)) != EqualTo)
15400 return result;
15401 if ((result = m_t38FaxProfile.Compare(other.m_t38FaxProfile)) != EqualTo)
15402 return result;
15404 return PASN_Sequence::Compare(other);
15408 PINDEX H245_DataMode_application_t38fax::GetDataLength() const
15410 PINDEX length = 0;
15411 length += m_t38FaxProtocol.GetObjectLength();
15412 length += m_t38FaxProfile.GetObjectLength();
15413 return length;
15417 BOOL H245_DataMode_application_t38fax::Decode(PASN_Stream & strm)
15419 if (!PreambleDecode(strm))
15420 return FALSE;
15422 if (!m_t38FaxProtocol.Decode(strm))
15423 return FALSE;
15424 if (!m_t38FaxProfile.Decode(strm))
15425 return FALSE;
15427 return UnknownExtensionsDecode(strm);
15431 void H245_DataMode_application_t38fax::Encode(PASN_Stream & strm) const
15433 PreambleEncode(strm);
15435 m_t38FaxProtocol.Encode(strm);
15436 m_t38FaxProfile.Encode(strm);
15438 UnknownExtensionsEncode(strm);
15442 PObject * H245_DataMode_application_t38fax::Clone() const
15444 #ifndef PASN_LEANANDMEAN
15445 PAssert(IsClass(H245_DataMode_application_t38fax::Class()), PInvalidCast);
15446 #endif
15447 return new H245_DataMode_application_t38fax(*this);
15452 // H235SecurityCapability
15455 H245_H235SecurityCapability::H245_H235SecurityCapability(unsigned tag, PASN_Object::TagClass tagClass)
15456 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
15461 #ifndef PASN_NOPRINTON
15462 void H245_H235SecurityCapability::PrintOn(ostream & strm) const
15464 int indent = strm.precision() + 2;
15465 strm << "{\n";
15466 strm << setw(indent+39) << "encryptionAuthenticationAndIntegrity = " << setprecision(indent) << m_encryptionAuthenticationAndIntegrity << '\n';
15467 strm << setw(indent+18) << "mediaCapability = " << setprecision(indent) << m_mediaCapability << '\n';
15468 strm << setw(indent-1) << setprecision(indent-2) << "}";
15470 #endif
15473 PObject::Comparison H245_H235SecurityCapability::Compare(const PObject & obj) const
15475 #ifndef PASN_LEANANDMEAN
15476 PAssert(PIsDescendant(&obj, H245_H235SecurityCapability), PInvalidCast);
15477 #endif
15478 const H245_H235SecurityCapability & other = (const H245_H235SecurityCapability &)obj;
15480 Comparison result;
15482 if ((result = m_encryptionAuthenticationAndIntegrity.Compare(other.m_encryptionAuthenticationAndIntegrity)) != EqualTo)
15483 return result;
15484 if ((result = m_mediaCapability.Compare(other.m_mediaCapability)) != EqualTo)
15485 return result;
15487 return PASN_Sequence::Compare(other);
15491 PINDEX H245_H235SecurityCapability::GetDataLength() const
15493 PINDEX length = 0;
15494 length += m_encryptionAuthenticationAndIntegrity.GetObjectLength();
15495 length += m_mediaCapability.GetObjectLength();
15496 return length;
15500 BOOL H245_H235SecurityCapability::Decode(PASN_Stream & strm)
15502 if (!PreambleDecode(strm))
15503 return FALSE;
15505 if (!m_encryptionAuthenticationAndIntegrity.Decode(strm))
15506 return FALSE;
15507 if (!m_mediaCapability.Decode(strm))
15508 return FALSE;
15510 return UnknownExtensionsDecode(strm);
15514 void H245_H235SecurityCapability::Encode(PASN_Stream & strm) const
15516 PreambleEncode(strm);
15518 m_encryptionAuthenticationAndIntegrity.Encode(strm);
15519 m_mediaCapability.Encode(strm);
15521 UnknownExtensionsEncode(strm);
15525 PObject * H245_H235SecurityCapability::Clone() const
15527 #ifndef PASN_LEANANDMEAN
15528 PAssert(IsClass(H245_H235SecurityCapability::Class()), PInvalidCast);
15529 #endif
15530 return new H245_H235SecurityCapability(*this);
15535 // H263Options
15538 H245_H263Options::H245_H263Options(unsigned tag, PASN_Object::TagClass tagClass)
15539 : PASN_Sequence(tag, tagClass, 5, TRUE, 2)
15541 m_customPictureClockFrequency.SetConstraints(PASN_Object::FixedConstraint, 1, 16);
15542 m_customPictureFormat.SetConstraints(PASN_Object::FixedConstraint, 1, 16);
15543 m_modeCombos.SetConstraints(PASN_Object::FixedConstraint, 1, 16);
15544 IncludeOptionalField(e_videoBadMBsCap);
15545 IncludeOptionalField(e_h263Version3Options);
15549 #ifndef PASN_NOPRINTON
15550 void H245_H263Options::PrintOn(ostream & strm) const
15552 int indent = strm.precision() + 2;
15553 strm << "{\n";
15554 strm << setw(indent+26) << "advancedIntraCodingMode = " << setprecision(indent) << m_advancedIntraCodingMode << '\n';
15555 strm << setw(indent+23) << "deblockingFilterMode = " << setprecision(indent) << m_deblockingFilterMode << '\n';
15556 strm << setw(indent+23) << "improvedPBFramesMode = " << setprecision(indent) << m_improvedPBFramesMode << '\n';
15557 strm << setw(indent+25) << "unlimitedMotionVectors = " << setprecision(indent) << m_unlimitedMotionVectors << '\n';
15558 strm << setw(indent+20) << "fullPictureFreeze = " << setprecision(indent) << m_fullPictureFreeze << '\n';
15559 strm << setw(indent+33) << "partialPictureFreezeAndRelease = " << setprecision(indent) << m_partialPictureFreezeAndRelease << '\n';
15560 strm << setw(indent+34) << "resizingPartPicFreezeAndRelease = " << setprecision(indent) << m_resizingPartPicFreezeAndRelease << '\n';
15561 strm << setw(indent+22) << "fullPictureSnapshot = " << setprecision(indent) << m_fullPictureSnapshot << '\n';
15562 strm << setw(indent+25) << "partialPictureSnapshot = " << setprecision(indent) << m_partialPictureSnapshot << '\n';
15563 strm << setw(indent+22) << "videoSegmentTagging = " << setprecision(indent) << m_videoSegmentTagging << '\n';
15564 strm << setw(indent+24) << "progressiveRefinement = " << setprecision(indent) << m_progressiveRefinement << '\n';
15565 strm << setw(indent+31) << "dynamicPictureResizingByFour = " << setprecision(indent) << m_dynamicPictureResizingByFour << '\n';
15566 strm << setw(indent+37) << "dynamicPictureResizingSixteenthPel = " << setprecision(indent) << m_dynamicPictureResizingSixteenthPel << '\n';
15567 strm << setw(indent+24) << "dynamicWarpingHalfPel = " << setprecision(indent) << m_dynamicWarpingHalfPel << '\n';
15568 strm << setw(indent+29) << "dynamicWarpingSixteenthPel = " << setprecision(indent) << m_dynamicWarpingSixteenthPel << '\n';
15569 strm << setw(indent+29) << "independentSegmentDecoding = " << setprecision(indent) << m_independentSegmentDecoding << '\n';
15570 strm << setw(indent+24) << "slicesInOrder_NonRect = " << setprecision(indent) << m_slicesInOrder_NonRect << '\n';
15571 strm << setw(indent+21) << "slicesInOrder_Rect = " << setprecision(indent) << m_slicesInOrder_Rect << '\n';
15572 strm << setw(indent+24) << "slicesNoOrder_NonRect = " << setprecision(indent) << m_slicesNoOrder_NonRect << '\n';
15573 strm << setw(indent+21) << "slicesNoOrder_Rect = " << setprecision(indent) << m_slicesNoOrder_Rect << '\n';
15574 strm << setw(indent+24) << "alternateInterVLCMode = " << setprecision(indent) << m_alternateInterVLCMode << '\n';
15575 strm << setw(indent+27) << "modifiedQuantizationMode = " << setprecision(indent) << m_modifiedQuantizationMode << '\n';
15576 strm << setw(indent+26) << "reducedResolutionUpdate = " << setprecision(indent) << m_reducedResolutionUpdate << '\n';
15577 if (HasOptionalField(e_transparencyParameters))
15578 strm << setw(indent+25) << "transparencyParameters = " << setprecision(indent) << m_transparencyParameters << '\n';
15579 strm << setw(indent+27) << "separateVideoBackChannel = " << setprecision(indent) << m_separateVideoBackChannel << '\n';
15580 if (HasOptionalField(e_refPictureSelection))
15581 strm << setw(indent+22) << "refPictureSelection = " << setprecision(indent) << m_refPictureSelection << '\n';
15582 if (HasOptionalField(e_customPictureClockFrequency))
15583 strm << setw(indent+30) << "customPictureClockFrequency = " << setprecision(indent) << m_customPictureClockFrequency << '\n';
15584 if (HasOptionalField(e_customPictureFormat))
15585 strm << setw(indent+22) << "customPictureFormat = " << setprecision(indent) << m_customPictureFormat << '\n';
15586 if (HasOptionalField(e_modeCombos))
15587 strm << setw(indent+13) << "modeCombos = " << setprecision(indent) << m_modeCombos << '\n';
15588 if (HasOptionalField(e_videoBadMBsCap))
15589 strm << setw(indent+17) << "videoBadMBsCap = " << setprecision(indent) << m_videoBadMBsCap << '\n';
15590 if (HasOptionalField(e_h263Version3Options))
15591 strm << setw(indent+22) << "h263Version3Options = " << setprecision(indent) << m_h263Version3Options << '\n';
15592 strm << setw(indent-1) << setprecision(indent-2) << "}";
15594 #endif
15597 PObject::Comparison H245_H263Options::Compare(const PObject & obj) const
15599 #ifndef PASN_LEANANDMEAN
15600 PAssert(PIsDescendant(&obj, H245_H263Options), PInvalidCast);
15601 #endif
15602 const H245_H263Options & other = (const H245_H263Options &)obj;
15604 Comparison result;
15606 if ((result = m_advancedIntraCodingMode.Compare(other.m_advancedIntraCodingMode)) != EqualTo)
15607 return result;
15608 if ((result = m_deblockingFilterMode.Compare(other.m_deblockingFilterMode)) != EqualTo)
15609 return result;
15610 if ((result = m_improvedPBFramesMode.Compare(other.m_improvedPBFramesMode)) != EqualTo)
15611 return result;
15612 if ((result = m_unlimitedMotionVectors.Compare(other.m_unlimitedMotionVectors)) != EqualTo)
15613 return result;
15614 if ((result = m_fullPictureFreeze.Compare(other.m_fullPictureFreeze)) != EqualTo)
15615 return result;
15616 if ((result = m_partialPictureFreezeAndRelease.Compare(other.m_partialPictureFreezeAndRelease)) != EqualTo)
15617 return result;
15618 if ((result = m_resizingPartPicFreezeAndRelease.Compare(other.m_resizingPartPicFreezeAndRelease)) != EqualTo)
15619 return result;
15620 if ((result = m_fullPictureSnapshot.Compare(other.m_fullPictureSnapshot)) != EqualTo)
15621 return result;
15622 if ((result = m_partialPictureSnapshot.Compare(other.m_partialPictureSnapshot)) != EqualTo)
15623 return result;
15624 if ((result = m_videoSegmentTagging.Compare(other.m_videoSegmentTagging)) != EqualTo)
15625 return result;
15626 if ((result = m_progressiveRefinement.Compare(other.m_progressiveRefinement)) != EqualTo)
15627 return result;
15628 if ((result = m_dynamicPictureResizingByFour.Compare(other.m_dynamicPictureResizingByFour)) != EqualTo)
15629 return result;
15630 if ((result = m_dynamicPictureResizingSixteenthPel.Compare(other.m_dynamicPictureResizingSixteenthPel)) != EqualTo)
15631 return result;
15632 if ((result = m_dynamicWarpingHalfPel.Compare(other.m_dynamicWarpingHalfPel)) != EqualTo)
15633 return result;
15634 if ((result = m_dynamicWarpingSixteenthPel.Compare(other.m_dynamicWarpingSixteenthPel)) != EqualTo)
15635 return result;
15636 if ((result = m_independentSegmentDecoding.Compare(other.m_independentSegmentDecoding)) != EqualTo)
15637 return result;
15638 if ((result = m_slicesInOrder_NonRect.Compare(other.m_slicesInOrder_NonRect)) != EqualTo)
15639 return result;
15640 if ((result = m_slicesInOrder_Rect.Compare(other.m_slicesInOrder_Rect)) != EqualTo)
15641 return result;
15642 if ((result = m_slicesNoOrder_NonRect.Compare(other.m_slicesNoOrder_NonRect)) != EqualTo)
15643 return result;
15644 if ((result = m_slicesNoOrder_Rect.Compare(other.m_slicesNoOrder_Rect)) != EqualTo)
15645 return result;
15646 if ((result = m_alternateInterVLCMode.Compare(other.m_alternateInterVLCMode)) != EqualTo)
15647 return result;
15648 if ((result = m_modifiedQuantizationMode.Compare(other.m_modifiedQuantizationMode)) != EqualTo)
15649 return result;
15650 if ((result = m_reducedResolutionUpdate.Compare(other.m_reducedResolutionUpdate)) != EqualTo)
15651 return result;
15652 if ((result = m_transparencyParameters.Compare(other.m_transparencyParameters)) != EqualTo)
15653 return result;
15654 if ((result = m_separateVideoBackChannel.Compare(other.m_separateVideoBackChannel)) != EqualTo)
15655 return result;
15656 if ((result = m_refPictureSelection.Compare(other.m_refPictureSelection)) != EqualTo)
15657 return result;
15658 if ((result = m_customPictureClockFrequency.Compare(other.m_customPictureClockFrequency)) != EqualTo)
15659 return result;
15660 if ((result = m_customPictureFormat.Compare(other.m_customPictureFormat)) != EqualTo)
15661 return result;
15662 if ((result = m_modeCombos.Compare(other.m_modeCombos)) != EqualTo)
15663 return result;
15665 return PASN_Sequence::Compare(other);
15669 PINDEX H245_H263Options::GetDataLength() const
15671 PINDEX length = 0;
15672 length += m_advancedIntraCodingMode.GetObjectLength();
15673 length += m_deblockingFilterMode.GetObjectLength();
15674 length += m_improvedPBFramesMode.GetObjectLength();
15675 length += m_unlimitedMotionVectors.GetObjectLength();
15676 length += m_fullPictureFreeze.GetObjectLength();
15677 length += m_partialPictureFreezeAndRelease.GetObjectLength();
15678 length += m_resizingPartPicFreezeAndRelease.GetObjectLength();
15679 length += m_fullPictureSnapshot.GetObjectLength();
15680 length += m_partialPictureSnapshot.GetObjectLength();
15681 length += m_videoSegmentTagging.GetObjectLength();
15682 length += m_progressiveRefinement.GetObjectLength();
15683 length += m_dynamicPictureResizingByFour.GetObjectLength();
15684 length += m_dynamicPictureResizingSixteenthPel.GetObjectLength();
15685 length += m_dynamicWarpingHalfPel.GetObjectLength();
15686 length += m_dynamicWarpingSixteenthPel.GetObjectLength();
15687 length += m_independentSegmentDecoding.GetObjectLength();
15688 length += m_slicesInOrder_NonRect.GetObjectLength();
15689 length += m_slicesInOrder_Rect.GetObjectLength();
15690 length += m_slicesNoOrder_NonRect.GetObjectLength();
15691 length += m_slicesNoOrder_Rect.GetObjectLength();
15692 length += m_alternateInterVLCMode.GetObjectLength();
15693 length += m_modifiedQuantizationMode.GetObjectLength();
15694 length += m_reducedResolutionUpdate.GetObjectLength();
15695 if (HasOptionalField(e_transparencyParameters))
15696 length += m_transparencyParameters.GetObjectLength();
15697 length += m_separateVideoBackChannel.GetObjectLength();
15698 if (HasOptionalField(e_refPictureSelection))
15699 length += m_refPictureSelection.GetObjectLength();
15700 if (HasOptionalField(e_customPictureClockFrequency))
15701 length += m_customPictureClockFrequency.GetObjectLength();
15702 if (HasOptionalField(e_customPictureFormat))
15703 length += m_customPictureFormat.GetObjectLength();
15704 if (HasOptionalField(e_modeCombos))
15705 length += m_modeCombos.GetObjectLength();
15706 return length;
15710 BOOL H245_H263Options::Decode(PASN_Stream & strm)
15712 if (!PreambleDecode(strm))
15713 return FALSE;
15715 if (!m_advancedIntraCodingMode.Decode(strm))
15716 return FALSE;
15717 if (!m_deblockingFilterMode.Decode(strm))
15718 return FALSE;
15719 if (!m_improvedPBFramesMode.Decode(strm))
15720 return FALSE;
15721 if (!m_unlimitedMotionVectors.Decode(strm))
15722 return FALSE;
15723 if (!m_fullPictureFreeze.Decode(strm))
15724 return FALSE;
15725 if (!m_partialPictureFreezeAndRelease.Decode(strm))
15726 return FALSE;
15727 if (!m_resizingPartPicFreezeAndRelease.Decode(strm))
15728 return FALSE;
15729 if (!m_fullPictureSnapshot.Decode(strm))
15730 return FALSE;
15731 if (!m_partialPictureSnapshot.Decode(strm))
15732 return FALSE;
15733 if (!m_videoSegmentTagging.Decode(strm))
15734 return FALSE;
15735 if (!m_progressiveRefinement.Decode(strm))
15736 return FALSE;
15737 if (!m_dynamicPictureResizingByFour.Decode(strm))
15738 return FALSE;
15739 if (!m_dynamicPictureResizingSixteenthPel.Decode(strm))
15740 return FALSE;
15741 if (!m_dynamicWarpingHalfPel.Decode(strm))
15742 return FALSE;
15743 if (!m_dynamicWarpingSixteenthPel.Decode(strm))
15744 return FALSE;
15745 if (!m_independentSegmentDecoding.Decode(strm))
15746 return FALSE;
15747 if (!m_slicesInOrder_NonRect.Decode(strm))
15748 return FALSE;
15749 if (!m_slicesInOrder_Rect.Decode(strm))
15750 return FALSE;
15751 if (!m_slicesNoOrder_NonRect.Decode(strm))
15752 return FALSE;
15753 if (!m_slicesNoOrder_Rect.Decode(strm))
15754 return FALSE;
15755 if (!m_alternateInterVLCMode.Decode(strm))
15756 return FALSE;
15757 if (!m_modifiedQuantizationMode.Decode(strm))
15758 return FALSE;
15759 if (!m_reducedResolutionUpdate.Decode(strm))
15760 return FALSE;
15761 if (HasOptionalField(e_transparencyParameters) && !m_transparencyParameters.Decode(strm))
15762 return FALSE;
15763 if (!m_separateVideoBackChannel.Decode(strm))
15764 return FALSE;
15765 if (HasOptionalField(e_refPictureSelection) && !m_refPictureSelection.Decode(strm))
15766 return FALSE;
15767 if (HasOptionalField(e_customPictureClockFrequency) && !m_customPictureClockFrequency.Decode(strm))
15768 return FALSE;
15769 if (HasOptionalField(e_customPictureFormat) && !m_customPictureFormat.Decode(strm))
15770 return FALSE;
15771 if (HasOptionalField(e_modeCombos) && !m_modeCombos.Decode(strm))
15772 return FALSE;
15773 if (!KnownExtensionDecode(strm, e_videoBadMBsCap, m_videoBadMBsCap))
15774 return FALSE;
15775 if (!KnownExtensionDecode(strm, e_h263Version3Options, m_h263Version3Options))
15776 return FALSE;
15778 return UnknownExtensionsDecode(strm);
15782 void H245_H263Options::Encode(PASN_Stream & strm) const
15784 PreambleEncode(strm);
15786 m_advancedIntraCodingMode.Encode(strm);
15787 m_deblockingFilterMode.Encode(strm);
15788 m_improvedPBFramesMode.Encode(strm);
15789 m_unlimitedMotionVectors.Encode(strm);
15790 m_fullPictureFreeze.Encode(strm);
15791 m_partialPictureFreezeAndRelease.Encode(strm);
15792 m_resizingPartPicFreezeAndRelease.Encode(strm);
15793 m_fullPictureSnapshot.Encode(strm);
15794 m_partialPictureSnapshot.Encode(strm);
15795 m_videoSegmentTagging.Encode(strm);
15796 m_progressiveRefinement.Encode(strm);
15797 m_dynamicPictureResizingByFour.Encode(strm);
15798 m_dynamicPictureResizingSixteenthPel.Encode(strm);
15799 m_dynamicWarpingHalfPel.Encode(strm);
15800 m_dynamicWarpingSixteenthPel.Encode(strm);
15801 m_independentSegmentDecoding.Encode(strm);
15802 m_slicesInOrder_NonRect.Encode(strm);
15803 m_slicesInOrder_Rect.Encode(strm);
15804 m_slicesNoOrder_NonRect.Encode(strm);
15805 m_slicesNoOrder_Rect.Encode(strm);
15806 m_alternateInterVLCMode.Encode(strm);
15807 m_modifiedQuantizationMode.Encode(strm);
15808 m_reducedResolutionUpdate.Encode(strm);
15809 if (HasOptionalField(e_transparencyParameters))
15810 m_transparencyParameters.Encode(strm);
15811 m_separateVideoBackChannel.Encode(strm);
15812 if (HasOptionalField(e_refPictureSelection))
15813 m_refPictureSelection.Encode(strm);
15814 if (HasOptionalField(e_customPictureClockFrequency))
15815 m_customPictureClockFrequency.Encode(strm);
15816 if (HasOptionalField(e_customPictureFormat))
15817 m_customPictureFormat.Encode(strm);
15818 if (HasOptionalField(e_modeCombos))
15819 m_modeCombos.Encode(strm);
15820 KnownExtensionEncode(strm, e_videoBadMBsCap, m_videoBadMBsCap);
15821 KnownExtensionEncode(strm, e_h263Version3Options, m_h263Version3Options);
15823 UnknownExtensionsEncode(strm);
15827 PObject * H245_H263Options::Clone() const
15829 #ifndef PASN_LEANANDMEAN
15830 PAssert(IsClass(H245_H263Options::Class()), PInvalidCast);
15831 #endif
15832 return new H245_H263Options(*this);
15837 // H2250LogicalChannelParameters
15840 H245_H2250LogicalChannelParameters::H245_H2250LogicalChannelParameters(unsigned tag, PASN_Object::TagClass tagClass)
15841 : PASN_Sequence(tag, tagClass, 10, TRUE, 3)
15843 m_sessionID.SetConstraints(PASN_Object::FixedConstraint, 0, 255);
15844 m_associatedSessionID.SetConstraints(PASN_Object::FixedConstraint, 1, 255);
15845 m_dynamicRTPPayloadType.SetConstraints(PASN_Object::FixedConstraint, 96, 127);
15849 #ifndef PASN_NOPRINTON
15850 void H245_H2250LogicalChannelParameters::PrintOn(ostream & strm) const
15852 int indent = strm.precision() + 2;
15853 strm << "{\n";
15854 if (HasOptionalField(e_nonStandard))
15855 strm << setw(indent+14) << "nonStandard = " << setprecision(indent) << m_nonStandard << '\n';
15856 strm << setw(indent+12) << "sessionID = " << setprecision(indent) << m_sessionID << '\n';
15857 if (HasOptionalField(e_associatedSessionID))
15858 strm << setw(indent+22) << "associatedSessionID = " << setprecision(indent) << m_associatedSessionID << '\n';
15859 if (HasOptionalField(e_mediaChannel))
15860 strm << setw(indent+15) << "mediaChannel = " << setprecision(indent) << m_mediaChannel << '\n';
15861 if (HasOptionalField(e_mediaGuaranteedDelivery))
15862 strm << setw(indent+26) << "mediaGuaranteedDelivery = " << setprecision(indent) << m_mediaGuaranteedDelivery << '\n';
15863 if (HasOptionalField(e_mediaControlChannel))
15864 strm << setw(indent+22) << "mediaControlChannel = " << setprecision(indent) << m_mediaControlChannel << '\n';
15865 if (HasOptionalField(e_mediaControlGuaranteedDelivery))
15866 strm << setw(indent+33) << "mediaControlGuaranteedDelivery = " << setprecision(indent) << m_mediaControlGuaranteedDelivery << '\n';
15867 if (HasOptionalField(e_silenceSuppression))
15868 strm << setw(indent+21) << "silenceSuppression = " << setprecision(indent) << m_silenceSuppression << '\n';
15869 if (HasOptionalField(e_destination))
15870 strm << setw(indent+14) << "destination = " << setprecision(indent) << m_destination << '\n';
15871 if (HasOptionalField(e_dynamicRTPPayloadType))
15872 strm << setw(indent+24) << "dynamicRTPPayloadType = " << setprecision(indent) << m_dynamicRTPPayloadType << '\n';
15873 if (HasOptionalField(e_mediaPacketization))
15874 strm << setw(indent+21) << "mediaPacketization = " << setprecision(indent) << m_mediaPacketization << '\n';
15875 if (HasOptionalField(e_transportCapability))
15876 strm << setw(indent+22) << "transportCapability = " << setprecision(indent) << m_transportCapability << '\n';
15877 if (HasOptionalField(e_redundancyEncoding))
15878 strm << setw(indent+21) << "redundancyEncoding = " << setprecision(indent) << m_redundancyEncoding << '\n';
15879 if (HasOptionalField(e_source))
15880 strm << setw(indent+9) << "source = " << setprecision(indent) << m_source << '\n';
15881 strm << setw(indent-1) << setprecision(indent-2) << "}";
15883 #endif
15886 PObject::Comparison H245_H2250LogicalChannelParameters::Compare(const PObject & obj) const
15888 #ifndef PASN_LEANANDMEAN
15889 PAssert(PIsDescendant(&obj, H245_H2250LogicalChannelParameters), PInvalidCast);
15890 #endif
15891 const H245_H2250LogicalChannelParameters & other = (const H245_H2250LogicalChannelParameters &)obj;
15893 Comparison result;
15895 if ((result = m_nonStandard.Compare(other.m_nonStandard)) != EqualTo)
15896 return result;
15897 if ((result = m_sessionID.Compare(other.m_sessionID)) != EqualTo)
15898 return result;
15899 if ((result = m_associatedSessionID.Compare(other.m_associatedSessionID)) != EqualTo)
15900 return result;
15901 if ((result = m_mediaChannel.Compare(other.m_mediaChannel)) != EqualTo)
15902 return result;
15903 if ((result = m_mediaGuaranteedDelivery.Compare(other.m_mediaGuaranteedDelivery)) != EqualTo)
15904 return result;
15905 if ((result = m_mediaControlChannel.Compare(other.m_mediaControlChannel)) != EqualTo)
15906 return result;
15907 if ((result = m_mediaControlGuaranteedDelivery.Compare(other.m_mediaControlGuaranteedDelivery)) != EqualTo)
15908 return result;
15909 if ((result = m_silenceSuppression.Compare(other.m_silenceSuppression)) != EqualTo)
15910 return result;
15911 if ((result = m_destination.Compare(other.m_destination)) != EqualTo)
15912 return result;
15913 if ((result = m_dynamicRTPPayloadType.Compare(other.m_dynamicRTPPayloadType)) != EqualTo)
15914 return result;
15915 if ((result = m_mediaPacketization.Compare(other.m_mediaPacketization)) != EqualTo)
15916 return result;
15918 return PASN_Sequence::Compare(other);
15922 PINDEX H245_H2250LogicalChannelParameters::GetDataLength() const
15924 PINDEX length = 0;
15925 if (HasOptionalField(e_nonStandard))
15926 length += m_nonStandard.GetObjectLength();
15927 length += m_sessionID.GetObjectLength();
15928 if (HasOptionalField(e_associatedSessionID))
15929 length += m_associatedSessionID.GetObjectLength();
15930 if (HasOptionalField(e_mediaChannel))
15931 length += m_mediaChannel.GetObjectLength();
15932 if (HasOptionalField(e_mediaGuaranteedDelivery))
15933 length += m_mediaGuaranteedDelivery.GetObjectLength();
15934 if (HasOptionalField(e_mediaControlChannel))
15935 length += m_mediaControlChannel.GetObjectLength();
15936 if (HasOptionalField(e_mediaControlGuaranteedDelivery))
15937 length += m_mediaControlGuaranteedDelivery.GetObjectLength();
15938 if (HasOptionalField(e_silenceSuppression))
15939 length += m_silenceSuppression.GetObjectLength();
15940 if (HasOptionalField(e_destination))
15941 length += m_destination.GetObjectLength();
15942 if (HasOptionalField(e_dynamicRTPPayloadType))
15943 length += m_dynamicRTPPayloadType.GetObjectLength();
15944 if (HasOptionalField(e_mediaPacketization))
15945 length += m_mediaPacketization.GetObjectLength();
15946 return length;
15950 BOOL H245_H2250LogicalChannelParameters::Decode(PASN_Stream & strm)
15952 if (!PreambleDecode(strm))
15953 return FALSE;
15955 if (HasOptionalField(e_nonStandard) && !m_nonStandard.Decode(strm))
15956 return FALSE;
15957 if (!m_sessionID.Decode(strm))
15958 return FALSE;
15959 if (HasOptionalField(e_associatedSessionID) && !m_associatedSessionID.Decode(strm))
15960 return FALSE;
15961 if (HasOptionalField(e_mediaChannel) && !m_mediaChannel.Decode(strm))
15962 return FALSE;
15963 if (HasOptionalField(e_mediaGuaranteedDelivery) && !m_mediaGuaranteedDelivery.Decode(strm))
15964 return FALSE;
15965 if (HasOptionalField(e_mediaControlChannel) && !m_mediaControlChannel.Decode(strm))
15966 return FALSE;
15967 if (HasOptionalField(e_mediaControlGuaranteedDelivery) && !m_mediaControlGuaranteedDelivery.Decode(strm))
15968 return FALSE;
15969 if (HasOptionalField(e_silenceSuppression) && !m_silenceSuppression.Decode(strm))
15970 return FALSE;
15971 if (HasOptionalField(e_destination) && !m_destination.Decode(strm))
15972 return FALSE;
15973 if (HasOptionalField(e_dynamicRTPPayloadType) && !m_dynamicRTPPayloadType.Decode(strm))
15974 return FALSE;
15975 if (HasOptionalField(e_mediaPacketization) && !m_mediaPacketization.Decode(strm))
15976 return FALSE;
15977 if (!KnownExtensionDecode(strm, e_transportCapability, m_transportCapability))
15978 return FALSE;
15979 if (!KnownExtensionDecode(strm, e_redundancyEncoding, m_redundancyEncoding))
15980 return FALSE;
15981 if (!KnownExtensionDecode(strm, e_source, m_source))
15982 return FALSE;
15984 return UnknownExtensionsDecode(strm);
15988 void H245_H2250LogicalChannelParameters::Encode(PASN_Stream & strm) const
15990 PreambleEncode(strm);
15992 if (HasOptionalField(e_nonStandard))
15993 m_nonStandard.Encode(strm);
15994 m_sessionID.Encode(strm);
15995 if (HasOptionalField(e_associatedSessionID))
15996 m_associatedSessionID.Encode(strm);
15997 if (HasOptionalField(e_mediaChannel))
15998 m_mediaChannel.Encode(strm);
15999 if (HasOptionalField(e_mediaGuaranteedDelivery))
16000 m_mediaGuaranteedDelivery.Encode(strm);
16001 if (HasOptionalField(e_mediaControlChannel))
16002 m_mediaControlChannel.Encode(strm);
16003 if (HasOptionalField(e_mediaControlGuaranteedDelivery))
16004 m_mediaControlGuaranteedDelivery.Encode(strm);
16005 if (HasOptionalField(e_silenceSuppression))
16006 m_silenceSuppression.Encode(strm);
16007 if (HasOptionalField(e_destination))
16008 m_destination.Encode(strm);
16009 if (HasOptionalField(e_dynamicRTPPayloadType))
16010 m_dynamicRTPPayloadType.Encode(strm);
16011 if (HasOptionalField(e_mediaPacketization))
16012 m_mediaPacketization.Encode(strm);
16013 KnownExtensionEncode(strm, e_transportCapability, m_transportCapability);
16014 KnownExtensionEncode(strm, e_redundancyEncoding, m_redundancyEncoding);
16015 KnownExtensionEncode(strm, e_source, m_source);
16017 UnknownExtensionsEncode(strm);
16021 PObject * H245_H2250LogicalChannelParameters::Clone() const
16023 #ifndef PASN_LEANANDMEAN
16024 PAssert(IsClass(H245_H2250LogicalChannelParameters::Class()), PInvalidCast);
16025 #endif
16026 return new H245_H2250LogicalChannelParameters(*this);
16031 // ModeElement
16034 H245_ModeElement::H245_ModeElement(unsigned tag, PASN_Object::TagClass tagClass)
16035 : PASN_Sequence(tag, tagClass, 1, TRUE, 5)
16040 #ifndef PASN_NOPRINTON
16041 void H245_ModeElement::PrintOn(ostream & strm) const
16043 int indent = strm.precision() + 2;
16044 strm << "{\n";
16045 strm << setw(indent+7) << "type = " << setprecision(indent) << m_type << '\n';
16046 if (HasOptionalField(e_h223ModeParameters))
16047 strm << setw(indent+21) << "h223ModeParameters = " << setprecision(indent) << m_h223ModeParameters << '\n';
16048 if (HasOptionalField(e_v76ModeParameters))
16049 strm << setw(indent+20) << "v76ModeParameters = " << setprecision(indent) << m_v76ModeParameters << '\n';
16050 if (HasOptionalField(e_h2250ModeParameters))
16051 strm << setw(indent+22) << "h2250ModeParameters = " << setprecision(indent) << m_h2250ModeParameters << '\n';
16052 if (HasOptionalField(e_genericModeParameters))
16053 strm << setw(indent+24) << "genericModeParameters = " << setprecision(indent) << m_genericModeParameters << '\n';
16054 if (HasOptionalField(e_multiplexedStreamModeParameters))
16055 strm << setw(indent+34) << "multiplexedStreamModeParameters = " << setprecision(indent) << m_multiplexedStreamModeParameters << '\n';
16056 if (HasOptionalField(e_logicalChannelNumber))
16057 strm << setw(indent+23) << "logicalChannelNumber = " << setprecision(indent) << m_logicalChannelNumber << '\n';
16058 strm << setw(indent-1) << setprecision(indent-2) << "}";
16060 #endif
16063 PObject::Comparison H245_ModeElement::Compare(const PObject & obj) const
16065 #ifndef PASN_LEANANDMEAN
16066 PAssert(PIsDescendant(&obj, H245_ModeElement), PInvalidCast);
16067 #endif
16068 const H245_ModeElement & other = (const H245_ModeElement &)obj;
16070 Comparison result;
16072 if ((result = m_type.Compare(other.m_type)) != EqualTo)
16073 return result;
16074 if ((result = m_h223ModeParameters.Compare(other.m_h223ModeParameters)) != EqualTo)
16075 return result;
16077 return PASN_Sequence::Compare(other);
16081 PINDEX H245_ModeElement::GetDataLength() const
16083 PINDEX length = 0;
16084 length += m_type.GetObjectLength();
16085 if (HasOptionalField(e_h223ModeParameters))
16086 length += m_h223ModeParameters.GetObjectLength();
16087 return length;
16091 BOOL H245_ModeElement::Decode(PASN_Stream & strm)
16093 if (!PreambleDecode(strm))
16094 return FALSE;
16096 if (!m_type.Decode(strm))
16097 return FALSE;
16098 if (HasOptionalField(e_h223ModeParameters) && !m_h223ModeParameters.Decode(strm))
16099 return FALSE;
16100 if (!KnownExtensionDecode(strm, e_v76ModeParameters, m_v76ModeParameters))
16101 return FALSE;
16102 if (!KnownExtensionDecode(strm, e_h2250ModeParameters, m_h2250ModeParameters))
16103 return FALSE;
16104 if (!KnownExtensionDecode(strm, e_genericModeParameters, m_genericModeParameters))
16105 return FALSE;
16106 if (!KnownExtensionDecode(strm, e_multiplexedStreamModeParameters, m_multiplexedStreamModeParameters))
16107 return FALSE;
16108 if (!KnownExtensionDecode(strm, e_logicalChannelNumber, m_logicalChannelNumber))
16109 return FALSE;
16111 return UnknownExtensionsDecode(strm);
16115 void H245_ModeElement::Encode(PASN_Stream & strm) const
16117 PreambleEncode(strm);
16119 m_type.Encode(strm);
16120 if (HasOptionalField(e_h223ModeParameters))
16121 m_h223ModeParameters.Encode(strm);
16122 KnownExtensionEncode(strm, e_v76ModeParameters, m_v76ModeParameters);
16123 KnownExtensionEncode(strm, e_h2250ModeParameters, m_h2250ModeParameters);
16124 KnownExtensionEncode(strm, e_genericModeParameters, m_genericModeParameters);
16125 KnownExtensionEncode(strm, e_multiplexedStreamModeParameters, m_multiplexedStreamModeParameters);
16126 KnownExtensionEncode(strm, e_logicalChannelNumber, m_logicalChannelNumber);
16128 UnknownExtensionsEncode(strm);
16132 PObject * H245_ModeElement::Clone() const
16134 #ifndef PASN_LEANANDMEAN
16135 PAssert(IsClass(H245_ModeElement::Class()), PInvalidCast);
16136 #endif
16137 return new H245_ModeElement(*this);
16142 // H263VideoMode
16145 H245_H263VideoMode::H245_H263VideoMode(unsigned tag, PASN_Object::TagClass tagClass)
16146 : PASN_Sequence(tag, tagClass, 0, TRUE, 3)
16148 m_bitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 19200);
16149 IncludeOptionalField(e_errorCompensation);
16153 #ifndef PASN_NOPRINTON
16154 void H245_H263VideoMode::PrintOn(ostream & strm) const
16156 int indent = strm.precision() + 2;
16157 strm << "{\n";
16158 strm << setw(indent+13) << "resolution = " << setprecision(indent) << m_resolution << '\n';
16159 strm << setw(indent+10) << "bitRate = " << setprecision(indent) << m_bitRate << '\n';
16160 strm << setw(indent+21) << "unrestrictedVector = " << setprecision(indent) << m_unrestrictedVector << '\n';
16161 strm << setw(indent+19) << "arithmeticCoding = " << setprecision(indent) << m_arithmeticCoding << '\n';
16162 strm << setw(indent+21) << "advancedPrediction = " << setprecision(indent) << m_advancedPrediction << '\n';
16163 strm << setw(indent+11) << "pbFrames = " << setprecision(indent) << m_pbFrames << '\n';
16164 if (HasOptionalField(e_errorCompensation))
16165 strm << setw(indent+20) << "errorCompensation = " << setprecision(indent) << m_errorCompensation << '\n';
16166 if (HasOptionalField(e_enhancementLayerInfo))
16167 strm << setw(indent+23) << "enhancementLayerInfo = " << setprecision(indent) << m_enhancementLayerInfo << '\n';
16168 if (HasOptionalField(e_h263Options))
16169 strm << setw(indent+14) << "h263Options = " << setprecision(indent) << m_h263Options << '\n';
16170 strm << setw(indent-1) << setprecision(indent-2) << "}";
16172 #endif
16175 PObject::Comparison H245_H263VideoMode::Compare(const PObject & obj) const
16177 #ifndef PASN_LEANANDMEAN
16178 PAssert(PIsDescendant(&obj, H245_H263VideoMode), PInvalidCast);
16179 #endif
16180 const H245_H263VideoMode & other = (const H245_H263VideoMode &)obj;
16182 Comparison result;
16184 if ((result = m_resolution.Compare(other.m_resolution)) != EqualTo)
16185 return result;
16186 if ((result = m_bitRate.Compare(other.m_bitRate)) != EqualTo)
16187 return result;
16188 if ((result = m_unrestrictedVector.Compare(other.m_unrestrictedVector)) != EqualTo)
16189 return result;
16190 if ((result = m_arithmeticCoding.Compare(other.m_arithmeticCoding)) != EqualTo)
16191 return result;
16192 if ((result = m_advancedPrediction.Compare(other.m_advancedPrediction)) != EqualTo)
16193 return result;
16194 if ((result = m_pbFrames.Compare(other.m_pbFrames)) != EqualTo)
16195 return result;
16197 return PASN_Sequence::Compare(other);
16201 PINDEX H245_H263VideoMode::GetDataLength() const
16203 PINDEX length = 0;
16204 length += m_resolution.GetObjectLength();
16205 length += m_bitRate.GetObjectLength();
16206 length += m_unrestrictedVector.GetObjectLength();
16207 length += m_arithmeticCoding.GetObjectLength();
16208 length += m_advancedPrediction.GetObjectLength();
16209 length += m_pbFrames.GetObjectLength();
16210 return length;
16214 BOOL H245_H263VideoMode::Decode(PASN_Stream & strm)
16216 if (!PreambleDecode(strm))
16217 return FALSE;
16219 if (!m_resolution.Decode(strm))
16220 return FALSE;
16221 if (!m_bitRate.Decode(strm))
16222 return FALSE;
16223 if (!m_unrestrictedVector.Decode(strm))
16224 return FALSE;
16225 if (!m_arithmeticCoding.Decode(strm))
16226 return FALSE;
16227 if (!m_advancedPrediction.Decode(strm))
16228 return FALSE;
16229 if (!m_pbFrames.Decode(strm))
16230 return FALSE;
16231 if (!KnownExtensionDecode(strm, e_errorCompensation, m_errorCompensation))
16232 return FALSE;
16233 if (!KnownExtensionDecode(strm, e_enhancementLayerInfo, m_enhancementLayerInfo))
16234 return FALSE;
16235 if (!KnownExtensionDecode(strm, e_h263Options, m_h263Options))
16236 return FALSE;
16238 return UnknownExtensionsDecode(strm);
16242 void H245_H263VideoMode::Encode(PASN_Stream & strm) const
16244 PreambleEncode(strm);
16246 m_resolution.Encode(strm);
16247 m_bitRate.Encode(strm);
16248 m_unrestrictedVector.Encode(strm);
16249 m_arithmeticCoding.Encode(strm);
16250 m_advancedPrediction.Encode(strm);
16251 m_pbFrames.Encode(strm);
16252 KnownExtensionEncode(strm, e_errorCompensation, m_errorCompensation);
16253 KnownExtensionEncode(strm, e_enhancementLayerInfo, m_enhancementLayerInfo);
16254 KnownExtensionEncode(strm, e_h263Options, m_h263Options);
16256 UnknownExtensionsEncode(strm);
16260 PObject * H245_H263VideoMode::Clone() const
16262 #ifndef PASN_LEANANDMEAN
16263 PAssert(IsClass(H245_H263VideoMode::Class()), PInvalidCast);
16264 #endif
16265 return new H245_H263VideoMode(*this);
16270 // H263VideoCapability
16273 H245_H263VideoCapability::H245_H263VideoCapability(unsigned tag, PASN_Object::TagClass tagClass)
16274 : PASN_Sequence(tag, tagClass, 7, TRUE, 8)
16276 m_sqcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16277 m_qcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16278 m_cifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16279 m_cif4MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16280 m_cif16MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16281 m_maxBitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 192400);
16282 m_hrd_B.SetConstraints(PASN_Object::FixedConstraint, 0, 524287);
16283 m_bppMaxKb.SetConstraints(PASN_Object::FixedConstraint, 0, 65535);
16284 m_slowSqcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16285 m_slowQcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16286 m_slowCifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16287 m_slowCif4MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16288 m_slowCif16MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16289 IncludeOptionalField(e_errorCompensation);
16293 #ifndef PASN_NOPRINTON
16294 void H245_H263VideoCapability::PrintOn(ostream & strm) const
16296 int indent = strm.precision() + 2;
16297 strm << "{\n";
16298 if (HasOptionalField(e_sqcifMPI))
16299 strm << setw(indent+11) << "sqcifMPI = " << setprecision(indent) << m_sqcifMPI << '\n';
16300 if (HasOptionalField(e_qcifMPI))
16301 strm << setw(indent+10) << "qcifMPI = " << setprecision(indent) << m_qcifMPI << '\n';
16302 if (HasOptionalField(e_cifMPI))
16303 strm << setw(indent+9) << "cifMPI = " << setprecision(indent) << m_cifMPI << '\n';
16304 if (HasOptionalField(e_cif4MPI))
16305 strm << setw(indent+10) << "cif4MPI = " << setprecision(indent) << m_cif4MPI << '\n';
16306 if (HasOptionalField(e_cif16MPI))
16307 strm << setw(indent+11) << "cif16MPI = " << setprecision(indent) << m_cif16MPI << '\n';
16308 strm << setw(indent+13) << "maxBitRate = " << setprecision(indent) << m_maxBitRate << '\n';
16309 strm << setw(indent+21) << "unrestrictedVector = " << setprecision(indent) << m_unrestrictedVector << '\n';
16310 strm << setw(indent+19) << "arithmeticCoding = " << setprecision(indent) << m_arithmeticCoding << '\n';
16311 strm << setw(indent+21) << "advancedPrediction = " << setprecision(indent) << m_advancedPrediction << '\n';
16312 strm << setw(indent+11) << "pbFrames = " << setprecision(indent) << m_pbFrames << '\n';
16313 strm << setw(indent+36) << "temporalSpatialTradeOffCapability = " << setprecision(indent) << m_temporalSpatialTradeOffCapability << '\n';
16314 if (HasOptionalField(e_hrd_B))
16315 strm << setw(indent+8) << "hrd_B = " << setprecision(indent) << m_hrd_B << '\n';
16316 if (HasOptionalField(e_bppMaxKb))
16317 strm << setw(indent+11) << "bppMaxKb = " << setprecision(indent) << m_bppMaxKb << '\n';
16318 if (HasOptionalField(e_slowSqcifMPI))
16319 strm << setw(indent+15) << "slowSqcifMPI = " << setprecision(indent) << m_slowSqcifMPI << '\n';
16320 if (HasOptionalField(e_slowQcifMPI))
16321 strm << setw(indent+14) << "slowQcifMPI = " << setprecision(indent) << m_slowQcifMPI << '\n';
16322 if (HasOptionalField(e_slowCifMPI))
16323 strm << setw(indent+13) << "slowCifMPI = " << setprecision(indent) << m_slowCifMPI << '\n';
16324 if (HasOptionalField(e_slowCif4MPI))
16325 strm << setw(indent+14) << "slowCif4MPI = " << setprecision(indent) << m_slowCif4MPI << '\n';
16326 if (HasOptionalField(e_slowCif16MPI))
16327 strm << setw(indent+15) << "slowCif16MPI = " << setprecision(indent) << m_slowCif16MPI << '\n';
16328 if (HasOptionalField(e_errorCompensation))
16329 strm << setw(indent+20) << "errorCompensation = " << setprecision(indent) << m_errorCompensation << '\n';
16330 if (HasOptionalField(e_enhancementLayerInfo))
16331 strm << setw(indent+23) << "enhancementLayerInfo = " << setprecision(indent) << m_enhancementLayerInfo << '\n';
16332 if (HasOptionalField(e_h263Options))
16333 strm << setw(indent+14) << "h263Options = " << setprecision(indent) << m_h263Options << '\n';
16334 strm << setw(indent-1) << setprecision(indent-2) << "}";
16336 #endif
16339 PObject::Comparison H245_H263VideoCapability::Compare(const PObject & obj) const
16341 #ifndef PASN_LEANANDMEAN
16342 PAssert(PIsDescendant(&obj, H245_H263VideoCapability), PInvalidCast);
16343 #endif
16344 const H245_H263VideoCapability & other = (const H245_H263VideoCapability &)obj;
16346 Comparison result;
16348 if ((result = m_sqcifMPI.Compare(other.m_sqcifMPI)) != EqualTo)
16349 return result;
16350 if ((result = m_qcifMPI.Compare(other.m_qcifMPI)) != EqualTo)
16351 return result;
16352 if ((result = m_cifMPI.Compare(other.m_cifMPI)) != EqualTo)
16353 return result;
16354 if ((result = m_cif4MPI.Compare(other.m_cif4MPI)) != EqualTo)
16355 return result;
16356 if ((result = m_cif16MPI.Compare(other.m_cif16MPI)) != EqualTo)
16357 return result;
16358 if ((result = m_maxBitRate.Compare(other.m_maxBitRate)) != EqualTo)
16359 return result;
16360 if ((result = m_unrestrictedVector.Compare(other.m_unrestrictedVector)) != EqualTo)
16361 return result;
16362 if ((result = m_arithmeticCoding.Compare(other.m_arithmeticCoding)) != EqualTo)
16363 return result;
16364 if ((result = m_advancedPrediction.Compare(other.m_advancedPrediction)) != EqualTo)
16365 return result;
16366 if ((result = m_pbFrames.Compare(other.m_pbFrames)) != EqualTo)
16367 return result;
16368 if ((result = m_temporalSpatialTradeOffCapability.Compare(other.m_temporalSpatialTradeOffCapability)) != EqualTo)
16369 return result;
16370 if ((result = m_hrd_B.Compare(other.m_hrd_B)) != EqualTo)
16371 return result;
16372 if ((result = m_bppMaxKb.Compare(other.m_bppMaxKb)) != EqualTo)
16373 return result;
16375 return PASN_Sequence::Compare(other);
16379 PINDEX H245_H263VideoCapability::GetDataLength() const
16381 PINDEX length = 0;
16382 if (HasOptionalField(e_sqcifMPI))
16383 length += m_sqcifMPI.GetObjectLength();
16384 if (HasOptionalField(e_qcifMPI))
16385 length += m_qcifMPI.GetObjectLength();
16386 if (HasOptionalField(e_cifMPI))
16387 length += m_cifMPI.GetObjectLength();
16388 if (HasOptionalField(e_cif4MPI))
16389 length += m_cif4MPI.GetObjectLength();
16390 if (HasOptionalField(e_cif16MPI))
16391 length += m_cif16MPI.GetObjectLength();
16392 length += m_maxBitRate.GetObjectLength();
16393 length += m_unrestrictedVector.GetObjectLength();
16394 length += m_arithmeticCoding.GetObjectLength();
16395 length += m_advancedPrediction.GetObjectLength();
16396 length += m_pbFrames.GetObjectLength();
16397 length += m_temporalSpatialTradeOffCapability.GetObjectLength();
16398 if (HasOptionalField(e_hrd_B))
16399 length += m_hrd_B.GetObjectLength();
16400 if (HasOptionalField(e_bppMaxKb))
16401 length += m_bppMaxKb.GetObjectLength();
16402 return length;
16406 BOOL H245_H263VideoCapability::Decode(PASN_Stream & strm)
16408 if (!PreambleDecode(strm))
16409 return FALSE;
16411 if (HasOptionalField(e_sqcifMPI) && !m_sqcifMPI.Decode(strm))
16412 return FALSE;
16413 if (HasOptionalField(e_qcifMPI) && !m_qcifMPI.Decode(strm))
16414 return FALSE;
16415 if (HasOptionalField(e_cifMPI) && !m_cifMPI.Decode(strm))
16416 return FALSE;
16417 if (HasOptionalField(e_cif4MPI) && !m_cif4MPI.Decode(strm))
16418 return FALSE;
16419 if (HasOptionalField(e_cif16MPI) && !m_cif16MPI.Decode(strm))
16420 return FALSE;
16421 if (!m_maxBitRate.Decode(strm))
16422 return FALSE;
16423 if (!m_unrestrictedVector.Decode(strm))
16424 return FALSE;
16425 if (!m_arithmeticCoding.Decode(strm))
16426 return FALSE;
16427 if (!m_advancedPrediction.Decode(strm))
16428 return FALSE;
16429 if (!m_pbFrames.Decode(strm))
16430 return FALSE;
16431 if (!m_temporalSpatialTradeOffCapability.Decode(strm))
16432 return FALSE;
16433 if (HasOptionalField(e_hrd_B) && !m_hrd_B.Decode(strm))
16434 return FALSE;
16435 if (HasOptionalField(e_bppMaxKb) && !m_bppMaxKb.Decode(strm))
16436 return FALSE;
16437 if (!KnownExtensionDecode(strm, e_slowSqcifMPI, m_slowSqcifMPI))
16438 return FALSE;
16439 if (!KnownExtensionDecode(strm, e_slowQcifMPI, m_slowQcifMPI))
16440 return FALSE;
16441 if (!KnownExtensionDecode(strm, e_slowCifMPI, m_slowCifMPI))
16442 return FALSE;
16443 if (!KnownExtensionDecode(strm, e_slowCif4MPI, m_slowCif4MPI))
16444 return FALSE;
16445 if (!KnownExtensionDecode(strm, e_slowCif16MPI, m_slowCif16MPI))
16446 return FALSE;
16447 if (!KnownExtensionDecode(strm, e_errorCompensation, m_errorCompensation))
16448 return FALSE;
16449 if (!KnownExtensionDecode(strm, e_enhancementLayerInfo, m_enhancementLayerInfo))
16450 return FALSE;
16451 if (!KnownExtensionDecode(strm, e_h263Options, m_h263Options))
16452 return FALSE;
16454 return UnknownExtensionsDecode(strm);
16458 void H245_H263VideoCapability::Encode(PASN_Stream & strm) const
16460 PreambleEncode(strm);
16462 if (HasOptionalField(e_sqcifMPI))
16463 m_sqcifMPI.Encode(strm);
16464 if (HasOptionalField(e_qcifMPI))
16465 m_qcifMPI.Encode(strm);
16466 if (HasOptionalField(e_cifMPI))
16467 m_cifMPI.Encode(strm);
16468 if (HasOptionalField(e_cif4MPI))
16469 m_cif4MPI.Encode(strm);
16470 if (HasOptionalField(e_cif16MPI))
16471 m_cif16MPI.Encode(strm);
16472 m_maxBitRate.Encode(strm);
16473 m_unrestrictedVector.Encode(strm);
16474 m_arithmeticCoding.Encode(strm);
16475 m_advancedPrediction.Encode(strm);
16476 m_pbFrames.Encode(strm);
16477 m_temporalSpatialTradeOffCapability.Encode(strm);
16478 if (HasOptionalField(e_hrd_B))
16479 m_hrd_B.Encode(strm);
16480 if (HasOptionalField(e_bppMaxKb))
16481 m_bppMaxKb.Encode(strm);
16482 KnownExtensionEncode(strm, e_slowSqcifMPI, m_slowSqcifMPI);
16483 KnownExtensionEncode(strm, e_slowQcifMPI, m_slowQcifMPI);
16484 KnownExtensionEncode(strm, e_slowCifMPI, m_slowCifMPI);
16485 KnownExtensionEncode(strm, e_slowCif4MPI, m_slowCif4MPI);
16486 KnownExtensionEncode(strm, e_slowCif16MPI, m_slowCif16MPI);
16487 KnownExtensionEncode(strm, e_errorCompensation, m_errorCompensation);
16488 KnownExtensionEncode(strm, e_enhancementLayerInfo, m_enhancementLayerInfo);
16489 KnownExtensionEncode(strm, e_h263Options, m_h263Options);
16491 UnknownExtensionsEncode(strm);
16495 PObject * H245_H263VideoCapability::Clone() const
16497 #ifndef PASN_LEANANDMEAN
16498 PAssert(IsClass(H245_H263VideoCapability::Class()), PInvalidCast);
16499 #endif
16500 return new H245_H263VideoCapability(*this);
16505 // EnhancementOptions
16508 H245_EnhancementOptions::H245_EnhancementOptions(unsigned tag, PASN_Object::TagClass tagClass)
16509 : PASN_Sequence(tag, tagClass, 11, TRUE, 0)
16511 m_sqcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16512 m_qcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16513 m_cifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16514 m_cif4MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16515 m_cif16MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 32);
16516 m_maxBitRate.SetConstraints(PASN_Object::FixedConstraint, 1, 192400);
16517 m_slowSqcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16518 m_slowQcifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16519 m_slowCifMPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16520 m_slowCif4MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16521 m_slowCif16MPI.SetConstraints(PASN_Object::FixedConstraint, 1, 3600);
16525 #ifndef PASN_NOPRINTON
16526 void H245_EnhancementOptions::PrintOn(ostream & strm) const
16528 int indent = strm.precision() + 2;
16529 strm << "{\n";
16530 if (HasOptionalField(e_sqcifMPI))
16531 strm << setw(indent+11) << "sqcifMPI = " << setprecision(indent) << m_sqcifMPI << '\n';
16532 if (HasOptionalField(e_qcifMPI))
16533 strm << setw(indent+10) << "qcifMPI = " << setprecision(indent) << m_qcifMPI << '\n';
16534 if (HasOptionalField(e_cifMPI))
16535 strm << setw(indent+9) << "cifMPI = " << setprecision(indent) << m_cifMPI << '\n';
16536 if (HasOptionalField(e_cif4MPI))
16537 strm << setw(indent+10) << "cif4MPI = " << setprecision(indent) << m_cif4MPI << '\n';
16538 if (HasOptionalField(e_cif16MPI))
16539 strm << setw(indent+11) << "cif16MPI = " << setprecision(indent) << m_cif16MPI << '\n';
16540 strm << setw(indent+13) << "maxBitRate = " << setprecision(indent) << m_maxBitRate << '\n';
16541 strm << setw(indent+21) << "unrestrictedVector = " << setprecision(indent) << m_unrestrictedVector << '\n';
16542 strm << setw(indent+19) << "arithmeticCoding = " << setprecision(indent) << m_arithmeticCoding << '\n';
16543 strm << setw(indent+36) << "temporalSpatialTradeOffCapability = " << setprecision(indent) << m_temporalSpatialTradeOffCapability << '\n';
16544 if (HasOptionalField(e_slowSqcifMPI))
16545 strm << setw(indent+15) << "slowSqcifMPI = " << setprecision(indent) << m_slowSqcifMPI << '\n';
16546 if (HasOptionalField(e_slowQcifMPI))
16547 strm << setw(indent+14) << "slowQcifMPI = " << setprecision(indent) << m_slowQcifMPI << '\n';
16548 if (HasOptionalField(e_slowCifMPI))
16549 strm << setw(indent+13) << "slowCifMPI = " << setprecision(indent) << m_slowCifMPI << '\n';
16550 if (HasOptionalField(e_slowCif4MPI))
16551 strm << setw(indent+14) << "slowCif4MPI = " << setprecision(indent) << m_slowCif4MPI << '\n';
16552 if (HasOptionalField(e_slowCif16MPI))
16553 strm << setw(indent+15) << "slowCif16MPI = " << setprecision(indent) << m_slowCif16MPI << '\n';
16554 strm << setw(indent+20) << "errorCompensation = " << setprecision(indent) << m_errorCompensation << '\n';
16555 if (HasOptionalField(e_h263Options))
16556 strm << setw(indent+14) << "h263Options = " << setprecision(indent) << m_h263Options << '\n';
16557 strm << setw(indent-1) << setprecision(indent-2) << "}";
16559 #endif
16562 PObject::Comparison H245_EnhancementOptions::Compare(const PObject & obj) const
16564 #ifndef PASN_LEANANDMEAN
16565 PAssert(PIsDescendant(&obj, H245_EnhancementOptions), PInvalidCast);
16566 #endif
16567 const H245_EnhancementOptions & other = (const H245_EnhancementOptions &)obj;
16569 Comparison result;
16571 if ((result = m_sqcifMPI.Compare(other.m_sqcifMPI)) != EqualTo)
16572 return result;
16573 if ((result = m_qcifMPI.Compare(other.m_qcifMPI)) != EqualTo)
16574 return result;
16575 if ((result = m_cifMPI.Compare(other.m_cifMPI)) != EqualTo)
16576 return result;
16577 if ((result = m_cif4MPI.Compare(other.m_cif4MPI)) != EqualTo)
16578 return result;
16579 if ((result = m_cif16MPI.Compare(other.m_cif16MPI)) != EqualTo)
16580 return result;
16581 if ((result = m_maxBitRate.Compare(other.m_maxBitRate)) != EqualTo)
16582 return result;
16583 if ((result = m_unrestrictedVector.Compare(other.m_unrestrictedVector)) != EqualTo)
16584 return result;
16585 if ((result = m_arithmeticCoding.Compare(other.m_arithmeticCoding)) != EqualTo)
16586 return result;
16587 if ((result = m_temporalSpatialTradeOffCapability.Compare(other.m_temporalSpatialTradeOffCapability)) != EqualTo)
16588 return result;
16589 if ((result = m_slowSqcifMPI.Compare(other.m_slowSqcifMPI)) != EqualTo)
16590 return result;
16591 if ((result = m_slowQcifMPI.Compare(other.m_slowQcifMPI)) != EqualTo)
16592 return result;
16593 if ((result = m_slowCifMPI.Compare(other.m_slowCifMPI)) != EqualTo)
16594 return result;
16595 if ((result = m_slowCif4MPI.Compare(other.m_slowCif4MPI)) != EqualTo)
16596 return result;
16597 if ((result = m_slowCif16MPI.Compare(other.m_slowCif16MPI)) != EqualTo)
16598 return result;
16599 if ((result = m_errorCompensation.Compare(other.m_errorCompensation)) != EqualTo)
16600 return result;
16601 if ((result = m_h263Options.Compare(other.m_h263Options)) != EqualTo)
16602 return result;
16604 return PASN_Sequence::Compare(other);
16608 PINDEX H245_EnhancementOptions::GetDataLength() const
16610 PINDEX length = 0;
16611 if (HasOptionalField(e_sqcifMPI))
16612 length += m_sqcifMPI.GetObjectLength();
16613 if (HasOptionalField(e_qcifMPI))
16614 length += m_qcifMPI.GetObjectLength();
16615 if (HasOptionalField(e_cifMPI))
16616 length += m_cifMPI.GetObjectLength();
16617 if (HasOptionalField(e_cif4MPI))
16618 length += m_cif4MPI.GetObjectLength();
16619 if (HasOptionalField(e_cif16MPI))
16620 length += m_cif16MPI.GetObjectLength();
16621 length += m_maxBitRate.GetObjectLength();
16622 length += m_unrestrictedVector.GetObjectLength();
16623 length += m_arithmeticCoding.GetObjectLength();
16624 length += m_temporalSpatialTradeOffCapability.GetObjectLength();
16625 if (HasOptionalField(e_slowSqcifMPI))
16626 length += m_slowSqcifMPI.GetObjectLength();
16627 if (HasOptionalField(e_slowQcifMPI))
16628 length += m_slowQcifMPI.GetObjectLength();
16629 if (HasOptionalField(e_slowCifMPI))
16630 length += m_slowCifMPI.GetObjectLength();
16631 if (HasOptionalField(e_slowCif4MPI))
16632 length += m_slowCif4MPI.GetObjectLength();
16633 if (HasOptionalField(e_slowCif16MPI))
16634 length += m_slowCif16MPI.GetObjectLength();
16635 length += m_errorCompensation.GetObjectLength();
16636 if (HasOptionalField(e_h263Options))
16637 length += m_h263Options.GetObjectLength();
16638 return length;
16642 BOOL H245_EnhancementOptions::Decode(PASN_Stream & strm)
16644 if (!PreambleDecode(strm))
16645 return FALSE;
16647 if (HasOptionalField(e_sqcifMPI) && !m_sqcifMPI.Decode(strm))
16648 return FALSE;
16649 if (HasOptionalField(e_qcifMPI) && !m_qcifMPI.Decode(strm))
16650 return FALSE;
16651 if (HasOptionalField(e_cifMPI) && !m_cifMPI.Decode(strm))
16652 return FALSE;
16653 if (HasOptionalField(e_cif4MPI) && !m_cif4MPI.Decode(strm))
16654 return FALSE;
16655 if (HasOptionalField(e_cif16MPI) && !m_cif16MPI.Decode(strm))
16656 return FALSE;
16657 if (!m_maxBitRate.Decode(strm))
16658 return FALSE;
16659 if (!m_unrestrictedVector.Decode(strm))
16660 return FALSE;
16661 if (!m_arithmeticCoding.Decode(strm))
16662 return FALSE;
16663 if (!m_temporalSpatialTradeOffCapability.Decode(strm))
16664 return FALSE;
16665 if (HasOptionalField(e_slowSqcifMPI) && !m_slowSqcifMPI.Decode(strm))
16666 return FALSE;
16667 if (HasOptionalField(e_slowQcifMPI) && !m_slowQcifMPI.Decode(strm))
16668 return FALSE;
16669 if (HasOptionalField(e_slowCifMPI) && !m_slowCifMPI.Decode(strm))
16670 return FALSE;
16671 if (HasOptionalField(e_slowCif4MPI) && !m_slowCif4MPI.Decode(strm))
16672 return FALSE;
16673 if (HasOptionalField(e_slowCif16MPI) && !m_slowCif16MPI.Decode(strm))
16674 return FALSE;
16675 if (!m_errorCompensation.Decode(strm))
16676 return FALSE;
16677 if (HasOptionalField(e_h263Options) && !m_h263Options.Decode(strm))
16678 return FALSE;
16680 return UnknownExtensionsDecode(strm);
16684 void H245_EnhancementOptions::Encode(PASN_Stream & strm) const
16686 PreambleEncode(strm);
16688 if (HasOptionalField(e_sqcifMPI))
16689 m_sqcifMPI.Encode(strm);
16690 if (HasOptionalField(e_qcifMPI))
16691 m_qcifMPI.Encode(strm);
16692 if (HasOptionalField(e_cifMPI))
16693 m_cifMPI.Encode(strm);
16694 if (HasOptionalField(e_cif4MPI))
16695 m_cif4MPI.Encode(strm);
16696 if (HasOptionalField(e_cif16MPI))
16697 m_cif16MPI.Encode(strm);
16698 m_maxBitRate.Encode(strm);
16699 m_unrestrictedVector.Encode(strm);
16700 m_arithmeticCoding.Encode(strm);
16701 m_temporalSpatialTradeOffCapability.Encode(strm);
16702 if (HasOptionalField(e_slowSqcifMPI))
16703 m_slowSqcifMPI.Encode(strm);
16704 if (HasOptionalField(e_slowQcifMPI))
16705 m_slowQcifMPI.Encode(strm);
16706 if (HasOptionalField(e_slowCifMPI))
16707 m_slowCifMPI.Encode(strm);
16708 if (HasOptionalField(e_slowCif4MPI))
16709 m_slowCif4MPI.Encode(strm);
16710 if (HasOptionalField(e_slowCif16MPI))
16711 m_slowCif16MPI.Encode(strm);
16712 m_errorCompensation.Encode(strm);
16713 if (HasOptionalField(e_h263Options))
16714 m_h263Options.Encode(strm);
16716 UnknownExtensionsEncode(strm);
16720 PObject * H245_EnhancementOptions::Clone() const
16722 #ifndef PASN_LEANANDMEAN
16723 PAssert(IsClass(H245_EnhancementOptions::Class()), PInvalidCast);
16724 #endif
16725 return new H245_EnhancementOptions(*this);
16730 // BEnhancementParameters
16733 H245_BEnhancementParameters::H245_BEnhancementParameters(unsigned tag, PASN_Object::TagClass tagClass)
16734 : PASN_Sequence(tag, tagClass, 0, TRUE, 0)
16736 m_numberOfBPictures.SetConstraints(PASN_Object::FixedConstraint, 1, 64);
16740 #ifndef PASN_NOPRINTON
16741 void H245_BEnhancementParameters::PrintOn(ostream & strm) const
16743 int indent = strm.precision() + 2;
16744 strm << "{\n";
16745 strm << setw(indent+21) << "enhancementOptions = " << setprecision(indent) << m_enhancementOptions << '\n';
16746 strm << setw(indent+20) << "numberOfBPictures = " << setprecision(indent) << m_numberOfBPictures << '\n';
16747 strm << setw(indent-1) << setprecision(indent-2) << "}";
16749 #endif
16752 PObject::Comparison H245_BEnhancementParameters::Compare(const PObject & obj) const
16754 #ifndef PASN_LEANANDMEAN
16755 PAssert(PIsDescendant(&obj, H245_BEnhancementParameters), PInvalidCast);
16756 #endif
16757 const H245_BEnhancementParameters & other = (const H245_BEnhancementParameters &)obj;
16759 Comparison result;
16761 if ((result = m_enhancementOptions.Compare(other.m_enhancementOptions)) != EqualTo)
16762 return result;
16763 if ((result = m_numberOfBPictures.Compare(other.m_numberOfBPictures)) != EqualTo)
16764 return result;
16766 return PASN_Sequence::Compare(other);
16770 PINDEX H245_BEnhancementParameters::GetDataLength() const
16772 PINDEX length = 0;
16773 length += m_enhancementOptions.GetObjectLength();
16774 length += m_numberOfBPictures.GetObjectLength();
16775 return length;
16779 BOOL H245_BEnhancementParameters::Decode(PASN_Stream & strm)
16781 if (!PreambleDecode(strm))
16782 return FALSE;
16784 if (!m_enhancementOptions.Decode(strm))
16785 return FALSE;
16786 if (!m_numberOfBPictures.Decode(strm))
16787 return FALSE;
16789 return UnknownExtensionsDecode(strm);
16793 void H245_BEnhancementParameters::Encode(PASN_Stream & strm) const
16795 PreambleEncode(strm);
16797 m_enhancementOptions.Encode(strm);
16798 m_numberOfBPictures.Encode(strm);
16800 UnknownExtensionsEncode(strm);
16804 PObject * H245_BEnhancementParameters::Clone() const
16806 #ifndef PASN_LEANANDMEAN
16807 PAssert(IsClass(H245_BEnhancementParameters::Class()), PInvalidCast);
16808 #endif
16809 return new H245_BEnhancementParameters(*this);
16813 #endif // if ! H323_DISABLE_H245
16816 // End of h245_3.cxx