]> granicus.if.org Git - libmatroska/commitdiff
allow reading the stored/raw timestamp value of a Block
authorSteve Lhomme <slhomme@matroska.org>
Sun, 21 Feb 2021 09:20:08 +0000 (10:20 +0100)
committerSteve Lhomme <robux4@ycbcr.xyz>
Sun, 21 Feb 2021 14:50:29 +0000 (15:50 +0100)
Given the API to get the GlobalTimecode of a Block doesn't handle the floating
point value of the TrackTimestampScale (attaching a parent track is not common
and even though the value is not directly available unlike a fractional
timestampscale), it allows external code to compute the proper timestamp
when TrackTimestampScale is not 1.0.

ChangeLog
matroska/KaxBlock.h

index 182beb9055858467af11973f4ae398309135c598..ef297ce75b5e1a9b8a403043e6b9908d91d3ae0c 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
 
         * Remove Coremake project files
 
+        * Add GetRelativeTimestamp() to access unscaled Block timestamps.
+
 2021-02-18  Moritz Bunkus  <mo@bunkus.online>
 
         * Release v1.6.3.
index 10c28bad8c82aa22854b16d3292f588d0c22f165..69d67da4a213158870af4b309b69a89c9636fafb 100644 (file)
@@ -267,6 +267,12 @@ class MATROSKA_DLL_API KaxInternalBlock : public EbmlBinary {
 
     uint64 ClusterPosition() const;
 
+    /*!
+     * \return Get the timestamp as written in the Block (not scaled).
+     * \since LIBMATROSKA_VERSION >= 0x010604
+     */
+    int16 GetRelativeTimestamp() const { return LocalTimecode; }
+
   protected:
     std::vector<DataBuffer *> myBuffers;
     std::vector<int32>        SizeList;