32 #ifndef OPAL_OPAL_MEDIAFMT_H
33 #define OPAL_OPAL_MEDIAFMT_H
43 #include <ptlib/bitwise_enum.h>
46 #include <ptlib/videoio.h>
94 void SetH225(H225_BandWidth & bw)
const;
95 void SetH245(PASN_Integer & bitRate)
const;
96 void FromH245(
const PASN_Integer & bitRate);
140 const char * wildcard
141 ) { PConstString w(wildcard);
return operator+=(w); }
147 const PString & wildcard
196 const unsigned clockRate = 0,
197 const char * rtpEncodingName = NULL,
198 const char * protocol = NULL,
199 const_iterator start = const_iterator()
219 const PString & wildcard,
220 const_iterator start = const_iterator()
227 )
const {
return FindFormat(rtpPayloadType) != end(); }
235 const PString & wildcard
236 )
const {
return FindFormat(wildcard) != end(); }
242 bool mustBeTransportable =
true
265 const PStringArray & order
287 const PStringArray & mask
296 virtual PINDEX Append(PObject *) {
return P_MAX_INDEX; }
297 virtual PINDEX Insert(
const PObject &, PObject *) {
return P_MAX_INDEX; }
336 virtual Comparison
Compare(
const PObject & obj)
const;
371 void SetFMTP(
const char * name,
const char * dflt)
376 #define OPAL_SET_MEDIA_OPTION_FMTP(opt, name, dflt) (opt)->SetFMTP(name, dflt)
378 #define OPAL_SET_MEDIA_OPTION_FMTP(opt, name, dflt)
386 const char * dflt = NULL
412 #define OPAL_SET_MEDIA_OPTION_H245(opt, ...) (opt)->SetH245Generic(OpalMediaOption::H245GenericInfo(__VA_ARGS__))
414 #define OPAL_SET_MEDIA_OPTION_H245(opt, ...)
433 template <
typename T>
470 if (otherOption == NULL)
480 if (otherOption == NULL)
482 if (m_value < otherOption->
m_value)
484 if (m_value > otherOption->
m_value)
492 if (otherOption != NULL)
511 template <
typename T>
522 T minimum = std::numeric_limits<T>::min(),
523 T maximum = std::numeric_limits<T>::max()
525 :
BaseClass(name, readOnly, merge, value)
545 strm.setstate(ios::badbit);
584 operator double()
const {
return m_value; }
585 void operator&=(
double other) {
if (m_value > other) m_value = other; }
604 const char *
const * enumerations,
610 virtual PObject *
Clone()
const;
611 virtual void PrintOn(ostream & strm)
const;
612 virtual void ReadFrom(istream & strm);
644 const PString & value
647 virtual PObject *
Clone()
const;
648 virtual void PrintOn(ostream & strm)
const;
649 virtual void ReadFrom(istream & strm);
656 void SetValue(
const PString & value);
676 const PBYTEArray & value
686 virtual PObject *
Clone()
const;
687 virtual void PrintOn(ostream & strm)
const;
688 virtual void ReadFrom(istream & strm);
694 void SetValue(
const PBYTEArray & value);
695 void SetValue(
const BYTE * data, PINDEX length);
715 const char * fullName,
718 const char * encodingName,
729 virtual PObject *
Clone()
const;
730 virtual void PrintOn(ostream & strm)
const;
736 virtual bool GetOptionValue(
const PString & name, PString & value)
const;
737 virtual bool SetOptionValue(
const PString & name,
const PString & value);
742 virtual double GetOptionReal(
const PString & name,
double dflt)
const;
743 virtual bool SetOptionReal(
const PString & name,
double value);
744 virtual PINDEX
GetOptionEnum(
const PString & name, PINDEX dflt)
const;
745 virtual bool SetOptionEnum(
const PString & name, PINDEX value);
746 virtual PString
GetOptionString(
const PString & name,
const PString & dflt)
const;
747 virtual bool SetOptionString(
const PString & name,
const PString & value);
748 virtual bool GetOptionOctets(
const PString & name, PBYTEArray & octets)
const;
749 virtual bool SetOptionOctets(
const PString & name,
const PBYTEArray & octets);
750 virtual bool SetOptionOctets(
const PString & name,
const BYTE * data, PINDEX length);
764 PTRACE_PARAM(
const char * operation,)
828 const char * fullName,
831 const char * encodingName,
832 PBoolean needsJitter,
852 const char * rtpEncodingName = NULL,
853 const char * protocol = NULL
870 const char * wildcard
887 const PString & wildcard
901 const char * wildcard
908 const PString & wildcard
913 virtual PObject *
Clone()
const;
917 virtual Comparison
Compare(
const PObject & obj)
const;
923 virtual void PrintOn(ostream & strm)
const;
927 virtual void ReadFrom(istream & strm);
958 bool copyPayloadType =
false
1083 const PString & name,
1094 const PString & name,
1095 const PString & value
1102 const PString & name,
1113 const PString & name,
1121 const PString & name,
1133 const PString & name,
1141 const PString & name,
1152 const PString & name,
1163 template <
typename Enum>
1165 const PString & name,
1178 template <
typename Enum>
1180 const PString & name,
1188 const PString & name,
1189 const PString & dflt = PString::Empty()
1199 const PString & name,
1200 const PString & value
1207 const PString & name,
1218 const PString & name,
1219 const PBYTEArray & octets
1222 const PString & name,
1241 const PString & name = PString::Empty()
1263 PBoolean overwrite =
false
1275 const PString & name
1282 const PString & name
1283 )
const {
return dynamic_cast<T *
>(
FindOption(name)); }
1298 strm << setw(-1) << *
m_info;
1306 PVideoDevice::OpenArgs & args
1334 PBoolean SetSize(PINDEX) {
return true; }
1352 const char * fullName,
1354 const char * encodingName,
1361 time_t timeStamp = 0,
1362 unsigned channels = 1
1364 virtual PObject *
Clone()
const;
1376 const char * fullName
1379 const char * fullName,
1381 const char * encodingName,
1386 unsigned maxFrames = 256,
1387 unsigned clockRate = 8000,
1388 time_t timeStamp = 0,
1389 unsigned channels = 1
1410 const char * fullName
1413 const char * fullName,
1415 const char * encodingName,
1416 unsigned maxFrameWidth,
1417 unsigned maxFrameHeight,
1418 unsigned maxFrameRate,
1419 unsigned maxBitRate,
1420 time_t timeStamp = 0
1456 __inline
static unsigned ContentRoleBit(ContentRole contentRole) {
return contentRole != eNoRole ? (1<<(contentRole-1)) : 0; }
1474 "",
"pli",
"fir",
"tmmbr",
"tstr",
"vcbm",
"nack",
"sli"
1482 ImageAttrSuppressed,
1484 ImageAttrAnswerRequired
1503 const char * fullName,
1505 const char * encodingName,
1506 unsigned maxFrameWidth,
1507 unsigned maxFrameHeight,
1508 unsigned maxFrameRate,
1509 unsigned maxBitRate,
1510 time_t timeStamp = 0
1512 virtual PObject *
Clone()
const;
1517 #endif // OPAL_VIDEO
1582 #endif // OPAL_VIDEO
1586 #if OPAL_T38_CAPABILITY
1592 #define OpalPCM16 GetOpalPCM16()
1593 #define OpalPCM16S GetOpalPCM16S()
1594 #define OpalPCM16_12KHZ GetOpalPCM16_12KHZ()
1595 #define OpalPCM16S_12KHZ GetOpalPCM16S_12KHZ()
1596 #define OpalPCM16_16KHZ GetOpalPCM16_16KHZ()
1597 #define OpalPCM16S_16KHZ GetOpalPCM16S_16KHZ()
1598 #define OpalPCM16_24KHZ GetOpalPCM16_24KHZ()
1599 #define OpalPCM16S_24KHZ GetOpalPCM16S_24KHZ()
1600 #define OpalPCM16_32KHZ GetOpalPCM16_32KHZ()
1601 #define OpalPCM16S_32KHZ GetOpalPCM16S_32KHZ()
1602 #define OpalPCM16_48KHZ GetOpalPCM16_48KHZ()
1603 #define OpalPCM16S_48KHZ GetOpalPCM16S_48KHZ()
1604 #define OpalL16_MONO_8KHZ GetOpalL16_MONO_8KHZ()
1605 #define OpalL16_STEREO_8KHZ GetOpalL16_STEREO_8KHZ()
1606 #define OpalL16_MONO_16KHZ GetOpalL16_MONO_16KHZ()
1607 #define OpalL16_STEREO_16KHZ GetOpalL16_STEREO_16KHZ()
1608 #define OpalL16_MONO_32KHZ GetOpalL16_MONO_32KHZ()
1609 #define OpalL16_STEREO_32KHZ GetOpalL16_STEREO_32KHZ()
1610 #define OpalL16_MONO_48KHZ GetOpalL16_MONO_48KHZ()
1611 #define OpalL16_STEREO_48KHZ GetOpalL16_STEREO_48KHZ()
1612 #define OpalG711_ULAW_64K GetOpalG711_ULAW_64K()
1613 #define OpalG711_ALAW_64K GetOpalG711_ALAW_64K()
1614 #define OpalG722 GetOpalG722()
1615 #define OpalG7221 OpalG7221_32K
1616 #define OpalG7221_24K GetOpalG7221_24K()
1617 #define OpalG7221_32K GetOpalG7221_32K()
1618 #define OpalG7221C_24K GetOpalG7221C_24K()
1619 #define OpalG7221C_32K GetOpalG7221C_32K()
1620 #define OpalG7221C_48K GetOpalG7221C_48K()
1621 #define OpalG7222 GetOpalG7222()
1622 #define OpalG726_40K GetOpalG726_40K()
1623 #define OpalG726_32K GetOpalG726_32K()
1624 #define OpalG726_24K GetOpalG726_24K()
1625 #define OpalG726_16K GetOpalG726_16K()
1626 #define OpalG728 GetOpalG728()
1627 #define OpalG729 GetOpalG729()
1628 #define OpalG729A GetOpalG729A()
1629 #define OpalG729B GetOpalG729B()
1630 #define OpalG729AB GetOpalG729AB()
1631 #define OpalG7231_6k3 GetOpalG7231_6k3()
1632 #define OpalG7231_5k3 GetOpalG7231_5k3()
1633 #define OpalG7231A_6k3 GetOpalG7231A_6k3()
1634 #define OpalG7231A_5k3 GetOpalG7231A_5k3()
1635 #define OpalG7231_Cisco_A GetOpalG7231_Cisco_A()
1636 #define OpalG7231_Cisco_AR GetOpalG7231_Cisco_AR()
1637 #define OpalGSM0610 GetOpalGSM0610()
1638 #define OpalGSMAMR GetOpalGSMAMR()
1639 #define OpaliLBC GetOpaliLBC()
1640 #define OpalSpeexNB GetOpalSpeexNB()
1641 #define OpalSpeexWB GetOpalSpeexWB()
1642 #define OpalRFC2833 GetOpalRFC2833()
1643 #define OpalCiscoNSE GetOpalCiscoNSE()
1644 #define OpalT38 GetOpalT38()
1647 #define OpalH261 GetOpalH261()
1648 #define OpalH263 GetOpalH263()
1649 #define OpalH263plus GetOpalH263plus()
1650 #define OpalH264 GetOpalH264_MODE1()
1651 #define OpalH264_MODE0 GetOpalH264_MODE0()
1652 #define OpalH264_MODE1 GetOpalH264_MODE1()
1653 #define OpalMPEG4 GetOpalMPEG4()
1656 #define OpalL16Mono8kHz OpalL16_MONO_8KHZ
1657 #define OpalL16Mono16kHz OpalL16_MONO_16KHZ
1658 #define OpalG711uLaw OpalG711_ULAW_64K
1659 #define OpalG711ALaw OpalG711_ALAW_64K
1662 #endif // OPAL_OPAL_MEDIAFMT_H