aja-vpid-data.cpp 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. #include "aja-vpid-data.hpp"
  2. VPIDData::VPIDData()
  3. : mVpidA{0},
  4. mVpidB{0},
  5. mStandardA{VPIDStandard_Unknown},
  6. mStandardB{VPIDStandard_Unknown},
  7. mSamplingA{VPIDSampling_XYZ_444},
  8. mSamplingB{VPIDSampling_XYZ_444}
  9. {
  10. }
  11. VPIDData::VPIDData(ULWord vpidA, ULWord vpidB)
  12. : mVpidA{vpidA},
  13. mVpidB{vpidB},
  14. mStandardA{VPIDStandard_Unknown},
  15. mStandardB{VPIDStandard_Unknown},
  16. mSamplingA{VPIDSampling_XYZ_444},
  17. mSamplingB{VPIDSampling_XYZ_444}
  18. {
  19. Parse();
  20. }
  21. VPIDData::VPIDData(const VPIDData &other)
  22. : mVpidA{other.mVpidA},
  23. mVpidB{other.mVpidB},
  24. mStandardA{VPIDStandard_Unknown},
  25. mStandardB{VPIDStandard_Unknown},
  26. mSamplingA{VPIDSampling_XYZ_444},
  27. mSamplingB{VPIDSampling_XYZ_444}
  28. {
  29. Parse();
  30. }
  31. VPIDData::VPIDData(VPIDData &&other)
  32. : mVpidA{other.mVpidA},
  33. mVpidB{other.mVpidB},
  34. mStandardA{VPIDStandard_Unknown},
  35. mStandardB{VPIDStandard_Unknown},
  36. mSamplingA{VPIDSampling_XYZ_444},
  37. mSamplingB{VPIDSampling_XYZ_444}
  38. {
  39. Parse();
  40. }
  41. VPIDData &VPIDData::operator=(const VPIDData &other)
  42. {
  43. mVpidA = other.mVpidA;
  44. mVpidB = other.mVpidB;
  45. return *this;
  46. }
  47. VPIDData &VPIDData::operator=(VPIDData &&other)
  48. {
  49. mVpidA = other.mVpidA;
  50. mVpidB = other.mVpidB;
  51. return *this;
  52. }
  53. bool VPIDData::operator==(const VPIDData &rhs) const
  54. {
  55. return (mVpidA == rhs.mVpidA && mVpidB == rhs.mVpidB);
  56. }
  57. bool VPIDData::operator!=(const VPIDData &rhs) const
  58. {
  59. return !operator==(rhs);
  60. }
  61. void VPIDData::SetA(ULWord vpidA)
  62. {
  63. mVpidA = vpidA;
  64. }
  65. void VPIDData::SetB(ULWord vpidB)
  66. {
  67. mVpidB = vpidB;
  68. }
  69. void VPIDData::Parse()
  70. {
  71. CNTV2VPID parserA;
  72. parserA.SetVPID(mVpidA);
  73. mStandardA = parserA.GetStandard();
  74. mSamplingA = parserA.GetSampling();
  75. CNTV2VPID parserB;
  76. parserB.SetVPID(mVpidB);
  77. mStandardB = parserB.GetStandard();
  78. mSamplingB = parserB.GetSampling();
  79. }
  80. bool VPIDData::IsRGB() const
  81. {
  82. switch (mSamplingA) {
  83. default:
  84. break;
  85. case VPIDSampling_GBR_444:
  86. case VPIDSampling_GBRA_4444:
  87. case VPIDSampling_GBRD_4444:
  88. return true;
  89. }
  90. return false;
  91. }
  92. VPIDStandard VPIDData::Standard() const
  93. {
  94. return mStandardA;
  95. }
  96. VPIDSampling VPIDData::Sampling() const
  97. {
  98. return mSamplingA;
  99. }