[matroska] r1235 - in trunk/libmatroska: matroska src

[email protected] Sun, 16 Oct 2005 14:28:55 +0400 (MSD)
Newsgroups gmane.comp.multimedia.matroska.cvs
Message-ID <[email protected]>
Author: robux4
Date: 2005-10-16 14:28:52 +0400 (Sun, 16 Oct 2005)
New Revision: 1235

Modified:
   trunk/libmatroska/matroska/KaxBlock.h
   trunk/libmatroska/src/KaxBlock.cpp
Log:
libmatroska: support for reading extra features of SimpleBlock

Modified: trunk/libmatroska/matroska/KaxBlock.h
===================================================================
--- trunk/libmatroska/matroska/KaxBlock.h	2005-10-15 17:00:00 UTC (rev 1234)
+++ trunk/libmatroska/matroska/KaxBlock.h	2005-10-16 10:28:52 UTC (rev 1235)
@@ -296,6 +296,9 @@
 		void SetKeyframe(bool b_keyframe) { bIsKeyframe = b_keyframe; }
 		void SetDiscardable(bool b_discard) { bIsDiscardable = b_discard; }
 
+		bool IsKeyframe() const    { return bIsKeyframe; }
+		bool IsDiscardable() const { return bIsDiscardable; }
+
 		operator KaxInternalBlock &() { return *this; }
 };
 #endif // MATROSKA_VERSION

Modified: trunk/libmatroska/src/KaxBlock.cpp
===================================================================
--- trunk/libmatroska/src/KaxBlock.cpp	2005-10-15 17:00:00 UTC (rev 1234)
+++ trunk/libmatroska/src/KaxBlock.cpp	2005-10-16 10:28:52 UTC (rev 1235)
@@ -539,6 +539,10 @@
 		bLocalTimecodeUsed = true;
 		cursor += 2;
 
+		if (EbmlId(*this) == KaxSimpleBlock::ClassInfos.GlobalId) {
+			bIsKeyframe = (*cursor & 0x80) != 0;
+			bIsDiscardable = (*cursor & 0x01) != 0;
+		}
 		mInvisible = (*cursor & 0x08) >> 3;
 		mLacing = LacingType((*cursor++ & 0x06) >> 1);
 
@@ -642,6 +646,10 @@
 		bLocalTimecodeUsed = true;
 		cursor += 2;
 
+		if (EbmlId(*this) == KaxSimpleBlock::ClassInfos.GlobalId) {
+			bIsKeyframe = (*cursor & 0x80) != 0;
+			bIsDiscardable = (*cursor & 0x01) != 0;
+		}
 		mInvisible = (*cursor & 0x08) >> 3;
 		mLacing = LacingType((*cursor++ & 0x06) >> 1);
 		if (cursor == &_TempHead[4])