rrrrr
[asdcplib.git] / src / AS_DCP.h
index f8711d1281bbf6bd82730a7329d750dae11712bf..383f270b6ca25b3e8f89722687db37be9868b495 100755 (executable)
@@ -1,5 +1,5 @@
 /*
-Copyright (c) 2003-2009, John Hurst
+Copyright (c) 2003-2010, John Hurst
 All rights reserved.
 
 Redistribution and use in source and binary forms, with or without
@@ -246,6 +246,18 @@ namespace ASDCP {
     inline bool operator!=(const Rational& rhs) const {
       return ( rhs.Numerator != Numerator || rhs.Denominator != Denominator );
     }
+
+    inline bool operator<(const Rational& rhs) {
+      if ( Numerator < rhs.Numerator )     return true;
+      if ( Numerator == rhs.Numerator && Denominator < rhs.Denominator )    return true;
+      return false;
+    }
+    inline bool operator>(const Rational& rhs) {
+      if ( Numerator > rhs.Numerator )     return true;
+      if ( Numerator == rhs.Numerator && Denominator > rhs.Denominator )     return true;
+      return false;
+    }
   };
 
   // common edit rates, use these instead of hard coded constants
@@ -255,9 +267,9 @@ namespace ASDCP {
   const Rational SampleRate_48k(48000,1);
   const Rational SampleRate_96k(96000,1);
 
-  // Additional frame rates, see SMPTE 428-11
-  // These rates are new and not supported by all systems. Do not assume that a package
-  // made using on of these rates will work just anywhere!
+  // Additional frame rates, see ST 428-11
+  // These rates are new and not supported by all systems. Do not assume that
+  // a package made using on of these rates will work just anywhere!
   const Rational EditRate_25(25,1);
   const Rational EditRate_30(30,1);
   const Rational EditRate_50(50,1);
@@ -785,7 +797,7 @@ namespace ASDCP {
 
       struct AudioDescriptor
        {
-         Rational SampleRate;         // rate of frame wrapping
+         Rational EditRate;         // rate of frame wrapping
          Rational AudioSamplingRate;  // rate of audio sample
          ui32_t   Locked;             // 
          ui32_t   ChannelCount;       // number of channels
@@ -811,7 +823,7 @@ namespace ASDCP {
       // Returns number of samples per frame of data described by ADesc
       inline ui32_t CalcSamplesPerFrame(const AudioDescriptor& ADesc)
        {
-         double tmpd = ADesc.AudioSamplingRate.Quotient() / ADesc.SampleRate.Quotient();
+         double tmpd = ADesc.AudioSamplingRate.Quotient() / ADesc.EditRate.Quotient();
          return (ui32_t)ceil(tmpd);
        }