[asterisk-scf-commits] asterisk-scf/release/matroska.git branch "master" created.

Commits to the Asterisk SCF project code repositories asterisk-scf-commits at lists.digium.com
Mon Aug 8 09:48:18 CDT 2011


branch "master" has been created
        at  3625a9e93e949fa7735e7c8d65ba41e73d76f492 (commit)

- Log -----------------------------------------------------------------
commit 3625a9e93e949fa7735e7c8d65ba41e73d76f492
Author: Brent Eagles <beagles at digium.com>
Date:   Wed Jul 27 11:44:24 2011 -0230

    Added building of test apps. Apparently some of the tests are not currently maintained and not expected to build.
    One of the tests bonks, but it appears to be a shared pointer mess up. Requires some more investigation.

diff --git a/libebml/src/EbmlElement.cpp b/libebml/src/EbmlElement.cpp
index 425487b..7182121 100644
--- a/libebml/src/EbmlElement.cpp
+++ b/libebml/src/EbmlElement.cpp
@@ -469,7 +469,7 @@ EbmlElement * EbmlElement::SkipData(EbmlStream & DataStream, const EbmlSemanticC
 	EbmlElement * Result = NULL;
 	if (bSizeIsFinite) {
 		assert(TestReadElt == NULL);
-		assert(ElementPosition < SizePosition);
+		assert(ElementPosition <= SizePosition);
 		DataStream.I_O().setFilePointer(SizePosition + CodedSizeLength(Size, SizeLength, bSizeIsFinite) + Size, seek_beginning);
 //		DataStream.I_O().setFilePointer(Size, seek_current);
 	} else {
diff --git a/libmatroska/CMakeLists.txt b/libmatroska/CMakeLists.txt
index fc2e181..e5c28b2 100644
--- a/libmatroska/CMakeLists.txt
+++ b/libmatroska/CMakeLists.txt
@@ -6,4 +6,5 @@ astscf_project(astscf-matroska 1.2.0)
 set(astscf-matroska_dir ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
 
 add_subdirectory(src)
+add_subdirectory(test)
 astscf_headers_install(matroska/)
diff --git a/libmatroska/test/CMakeLists.txt b/libmatroska/test/CMakeLists.txt
new file mode 100644
index 0000000..e4e4494
--- /dev/null
+++ b/libmatroska/test/CMakeLists.txt
@@ -0,0 +1,16 @@
+#
+# The ebml test suite is so full of compiler errors, there is basically no
+# way that it can be part of the current active test suite.
+#
+# add_subdirectory(ebml)
+
+
+add_subdirectory(mux)
+
+#
+# Also broken and refers to files not found in the source distribution. 
+# Apparently this is a known state of affairs.
+# http://lists.matroska.org/pipermail/matroska-devel/2011-July/004075.html
+# 
+# add_subdirectory(utf8)
+# add_subdirectory(tags)
diff --git a/libmatroska/test/ebml/CMakeLists.txt b/libmatroska/test/ebml/CMakeLists.txt
new file mode 100644
index 0000000..3c4ecba
--- /dev/null
+++ b/libmatroska/test/ebml/CMakeLists.txt
@@ -0,0 +1,19 @@
+include_directories(../../src)
+include_directories(../..)
+include_directories(../../../libebml)
+
+astscf_component_init(ebml1_matroska_test)
+astscf_component_add_files(ebml1_matroska_test
+	"test00.cpp"
+)
+
+astscf_component_build_standalone(ebml1_matroska_test)
+target_link_libraries(ebml1_matroska_test astscf-matroska)
+
+astscf_component_init(ebml2_matroska_test)
+astscf_component_add_files(ebml2_matroska_test
+	"test0.cpp"
+)
+
+astscf_component_build_standalone(ebml2_matroska_test)
+target_link_libraries(ebml2_matroska_test astscf-matroska)
diff --git a/libmatroska/test/ebml/test00.cpp b/libmatroska/test/ebml/test00.cpp
index 60e95df..abc8493 100644
--- a/libmatroska/test/ebml/test00.cpp
+++ b/libmatroska/test/ebml/test00.cpp
@@ -103,7 +103,7 @@ int main(void)
 	KaxFileName * pFileName1 = static_cast<KaxFileName *>(pAttachment1->FindFirstElt(KaxFileName::ClassInfos, true));
 	if (pFileName1 == NULL)
 		return -1;
-	*static_cast<EbmlUnicodeString *>(pFileName1) = "file1.txt";
+	*static_cast<EbmlUnicodeString *>(pFileName1) = L"file1.txt";
 	KaxFileData * pFileData1 = static_cast<KaxFileData *>(pAttachment1->FindFirstElt(KaxFileData::ClassInfos, true));
 	if (pFileData1 == NULL)
 		return -1;
@@ -118,7 +118,7 @@ int main(void)
 	KaxFileName * pFileName2 = static_cast<KaxFileName *>(pAttachment2->FindFirstElt(KaxFileName::ClassInfos, true));
 	if (pFileName2 == NULL)
 		return -1;
-	*static_cast<EbmlUnicodeString *>(pFileName2) = "file2.txt";
+	*static_cast<EbmlUnicodeString *>(pFileName2) = L"file2.txt";
 	// Add a void element (data is discarded)
 	EbmlVoid * pVoid = static_cast<EbmlVoid *>(pAttachment2->FindFirstElt(EbmlVoid::ClassInfos, true));
 	if (pVoid == NULL)
@@ -147,13 +147,15 @@ int main(void)
 	// read the data until a possible element is found (valid ID + size combination)
 	printf("Read EBML elements & skip data\n");
 	// find the EBML head in the file
-	ElementLevel0 = aStream.FindNextID(EbmlHead::ClassInfos, 0xFFFFFFFFL, false);
+	ElementLevel0 = aStream.FindNextID(EbmlHead::ClassInfos, 0xFFFFFFFFL);
 	if (ElementLevel0 != NULL)
 	{
 		printf("ID : ");
-		for (unsigned int i=0; i<EbmlId(*ElementLevel0).Length; i++)
+                uint32 idValue = ((EbmlId)*ElementLevel0).GetValue();
+                unsigned char* index = reinterpret_cast<unsigned char*>(&idValue);
+		for (unsigned int i = 0; i < (sizeof(idValue)/sizeof(*index)); i++)
 		{
-			printf("[%02X]", EbmlId(*ElementLevel0).Value[i]);
+			printf("[%02X]", index[i]);
 		}
 		printf("\n");
 
@@ -163,26 +165,28 @@ int main(void)
 	}
 
 	// example to read attachements in the file
-	ElementLevel0 = aStream.FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFL, false);
+	ElementLevel0 = aStream.FindNextID(KaxSegment::ClassInfos, 0xFFFFFFFFL);
 	while (ElementLevel0 != NULL)
 	{
 		printf("ID : ");
-		for (unsigned int i=0; i<EbmlId(*ElementLevel0).Length; i++)
+                uint32 idValue = ((EbmlId)*ElementLevel0).GetValue();
+                unsigned char* index = reinterpret_cast<unsigned char*>(&idValue);
+		for (unsigned int i = 0; i < (sizeof(idValue)/sizeof(*index)); i++)
 		{
-			printf("[%02X]", EbmlId(*ElementLevel0).Value[i]);
+			printf("[%02X]", index[i]);
 		}
 		printf("\n");
 
 		int bUpperElement = 0;
 
-		ElementLevel1 = aStream.FindNextID(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
+		ElementLevel1 = aStream.FindNextElement(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
 
 		while (ElementLevel1 != NULL) {
 			/// \todo switch the type of the element to check if it's one we want to handle, like attachements
 			if (EbmlId(*ElementLevel1) == KaxAttachments::ClassInfos.GlobalId) {
 				printf("Attachments detected\n");
 
-				ElementLevel2 = aStream.FindNextID(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
+				ElementLevel2 = aStream.FindNextElement(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
 				while (ElementLevel2 != NULL) {
 					/// \todo switch the type of the element to check if it's one we want to handle, like attachements
 					if (EbmlId(*ElementLevel2) == KaxAttached::ClassInfos.GlobalId) {
@@ -191,7 +195,7 @@ int main(void)
 #ifdef SKIP_ATTACHED
 					ElementLevel2 = ElementLevel2->SkipData(aStream, KaxAttached_Context);
 					if (ElementLevel2 == NULL) {
-						ElementLevel2 = aStream.FindNextID(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
+						ElementLevel2 = aStream.FindNextElement(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
 
 						if (bUpperElement) {
 							printf("Upper level1 element found\n");
@@ -202,7 +206,7 @@ int main(void)
 					}
 #else // SKIP_ATTACHED
 					// Display the filename (if it exists)
-					ElementLevel3 = aStream.FindNextID(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
+					ElementLevel3 = aStream.FindNextElement(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
 					while (ElementLevel3 != NULL) {
 						/// \todo switch the type of the element to check if it's one we want to handle, like attachements
 						if (EbmlId(*ElementLevel3) == KaxFileName::ClassInfos.GlobalId) {
@@ -213,7 +217,7 @@ int main(void)
 							ElementLevel3->SkipData(aStream, KaxAttached_Context);
 						}
 						delete ElementLevel3;
-						ElementLevel3 = aStream.FindNextID(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
+						ElementLevel3 = aStream.FindNextElement(KaxAttached_Context, bUpperElement, 0xFFFFFFFFL, false);
 						if (bUpperElement)
 							break;
 					}
@@ -225,7 +229,7 @@ int main(void)
 						ElementLevel2->SkipData(aStream, KaxAttached_Context);
 						delete ElementLevel2;
 
-						ElementLevel2 = aStream.FindNextID(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
+						ElementLevel2 = aStream.FindNextElement(KaxAttachments_Context, bUpperElement, 0xFFFFFFFFL, true);
 					}
 #endif // SKIP_ATTACHED
 				}
@@ -233,14 +237,14 @@ int main(void)
 			ElementLevel1->SkipData(aStream, KaxAttachments_Context);
 			delete ElementLevel1;
 	
-			ElementLevel1 = aStream.FindNextID(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
+			ElementLevel1 = aStream.FindNextElement(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
 		}
 
 		ElementLevel0->SkipData(aStream, KaxSegment_Context);
 		if (ElementLevel0 != NULL)
 			delete ElementLevel0;
 	
-		ElementLevel0 = aStream.FindNextID(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
+		ElementLevel0 = aStream.FindNextElement(KaxSegment_Context, bUpperElement, 0xFFFFFFFFL, true);
 	}
 
 	Ebml_Wfile.close();
diff --git a/libmatroska/test/mux/CMakeLists.txt b/libmatroska/test/mux/CMakeLists.txt
new file mode 100644
index 0000000..eebf9d8
--- /dev/null
+++ b/libmatroska/test/mux/CMakeLists.txt
@@ -0,0 +1,19 @@
+include_directories(../../src)
+include_directories(../..)
+include_directories(../../../libebml)
+
+astscf_component_init(mux1_matroska_test)
+astscf_component_add_files(mux1_matroska_test
+	"test6.cpp"
+)
+
+astscf_component_build_standalone(mux1_matroska_test)
+target_link_libraries(mux1_matroska_test astscf-matroska)
+
+astscf_component_init(mux2_matroska_test)
+astscf_component_add_files(mux2_matroska_test
+	"test8.cpp"
+)
+
+astscf_component_build_standalone(mux2_matroska_test)
+target_link_libraries(mux2_matroska_test astscf-matroska)
diff --git a/libmatroska/test/mux/test6.cpp b/libmatroska/test/mux/test6.cpp
index cf466ee..40b440d 100644
--- a/libmatroska/test/mux/test6.cpp
+++ b/libmatroska/test/mux/test6.cpp
@@ -68,7 +68,7 @@ const bool bWriteDefaultValues = false;
     The first file is a "binary" file with data scaling from 0x00 to 0xFF repeatedly
     The second file is a "text" file with data scaling from 'z' to 'a'
 */
-int main(int argc, char **argv)
+int main(int, char **)
 {
     cout << "Creating \"muxed.mkv\"" << endl;
 
@@ -113,7 +113,7 @@ int main(int argc, char **argv)
 		*(static_cast<EbmlFloat *>(&SegDuration)) = 0.0;
 
 		*((EbmlUnicodeString *)&GetChild<KaxMuxingApp>(MyInfos))  = L"libmatroska 0.5.0";
-		*((EbmlUnicodeString *)&GetChild<KaxWritingApp>(MyInfos)) = L"éàôï";
+		*((EbmlUnicodeString *)&GetChild<KaxWritingApp>(MyInfos)) = L"éàôï";
 		GetChild<KaxWritingApp>(MyInfos).SetDefaultSize(25);
 
 		filepos_t InfoSize = MyInfos.Render(out_file);
@@ -162,7 +162,7 @@ int main(int argc, char **argv)
 		*(static_cast<EbmlFloat *>(&MyTrack1Freq)) = 44100.0;
 		MyTrack1Freq.ValidateSize();
 
-#if MATROSKA_VERSION >= 2
+#if 0
 		KaxAudioPosition & MyTrack1Pos = GetChild<KaxAudioPosition>(MyTrack1Audio);
 		binary *_Pos = new binary[5];
 		_Pos[0] = '0';
@@ -319,7 +319,7 @@ int main(int argc, char **argv)
 
 		KaxChapterDisplay & aDisplay = GetChild<KaxChapterDisplay>(aAtom);
 		KaxChapterString & aChapString = GetChild<KaxChapterString>(aDisplay);
-		*static_cast<EbmlUnicodeString *>(&aChapString) = L"Le film réduit à un chapitre";
+		*static_cast<EbmlUnicodeString *>(&aChapString) = L"Le film réduit à un chapitre";
 
 		KaxChapterLanguage & aChapLang = GetChild<KaxChapterLanguage>(aDisplay);
 		*static_cast<EbmlString *>(&aChapLang) = "fra";
@@ -351,7 +351,7 @@ int main(int argc, char **argv)
         *static_cast<EbmlUnicodeString *>(&aTagName) = L"NAME";
 
         KaxTagString & aTagtring = GetChild<KaxTagString>(TagSimple);
-        *static_cast<EbmlUnicodeString *>(&aTagtring) = L"Testé123";
+        *static_cast<EbmlUnicodeString *>(&aTagtring) = L"Testé123";
 
 		filepos_t TagsSize = AllTags.Render(out_file, bWriteDefaultValues);
 		MetaSeek.IndexThis(AllTags, FileSegment);
@@ -383,10 +383,10 @@ int main(int argc, char **argv)
 #endif // OLD
 		out_file.close();
 
-        delete Blob1;
-        delete Blob2;
-        delete Blob3;
-        delete Blob4;
+//        delete Blob1;
+//        delete Blob2;
+//        delete Blob3; 
+//        delete Blob4;
     }
     catch (exception & Ex)
     {
diff --git a/libmatroska/test/mux/test8.cpp b/libmatroska/test/mux/test8.cpp
index 4cf4717..c6f2ce0 100644
--- a/libmatroska/test/mux/test8.cpp
+++ b/libmatroska/test/mux/test8.cpp
@@ -276,9 +276,9 @@ int main(int argc, char **argv)
 							KaxWritingApp *pApp = static_cast<KaxWritingApp*>(ElementLevel2);
 							pApp->ReadData(aStream.I_O());
 #if !defined(__CYGWIN__) && !defined(__APPLE__) && !defined(__BEOS__) && !defined(__NetBSD__)
-							wprintf(L"Writing App : %ls (éàôï)\n", UTFstring(*pApp).c_str());
+							wprintf(L"Writing App : %ls (éàôï)\n", UTFstring(*pApp).c_str());
 #else
-							printf("Writing App : %s (éàôï)\n", UTFstring(*pApp).c_str());
+							printf("Writing App : %s (éàôï)\n", UTFstring(*pApp).c_str());
 #endif
 						}
 
@@ -380,7 +380,7 @@ int main(int argc, char **argv)
 									DataBlock.ReadData(aStream.I_O(), SCOPE_ALL_DATA);
 #endif // NO_DISPLAY_DATA
 									DataBlock.SetParent(*SegmentCluster);
-									printf("   Track # %d / %d frame%s / Timecode %I64d\n",DataBlock.TrackNum(), DataBlock.NumberFrames(), (DataBlock.NumberFrames() > 1)?"s":"", DataBlock.GlobalTimecode());
+									printf("   Track # %d / %d frame%s / Timecode %zd\n",DataBlock.TrackNum(), DataBlock.NumberFrames(), (DataBlock.NumberFrames() > 1)?"s":"", DataBlock.GlobalTimecode());
 #ifndef NO_DISPLAY_DATA
 									for (unsigned int i=0; i< DataBlock.NumberFrames(); i++) {
 										printf("   [%s]\n",DataBlock.GetBuffer(i).Buffer()); // STRING ONLY POSSIBLE WITH THIS PARTICULAR EXAMPLE (the binary data is a string)
@@ -398,7 +398,7 @@ int main(int argc, char **argv)
 								} else if (EbmlId(*ElementLevel3) == KaxReferenceBlock::ClassInfos.GlobalId) {
 									KaxReferenceBlock & RefTime = *static_cast<KaxReferenceBlock*>(ElementLevel3);
 									RefTime.ReadData(aStream.I_O());
-									printf("  Reference frame at scaled (%d) timecode %ld\n", int32(RefTime), int32(int64(RefTime) * TimecodeScale));
+									printf("  Reference frame at scaled (%d) timecode %d\n", int32(RefTime), int32(int64(RefTime) * TimecodeScale));
 								} else if (EbmlId(*ElementLevel3) == KaxBlockDuration::ClassInfos.GlobalId) {
 									KaxBlockDuration & BlockDuration = *static_cast<KaxBlockDuration*>(ElementLevel3);
 									BlockDuration.ReadData(aStream.I_O());
@@ -449,7 +449,7 @@ int main(int argc, char **argv)
 						aStream.I_O().setFilePointer(CrcPositionStart);
 						aStream.I_O().readFully(SupposedBufferInCrc, CrcPositionEnd - CrcPositionStart);
 						aStream.I_O().setFilePointer(CurrPosition);
-						ComputedChecksum.FillCRC32(SupposedBufferInCrc, CrcPositionEnd - CrcPositionStart);
+						ComputedChecksum.FillCRC32(SupposedBufferInCrc, static_cast<uint32>(CrcPositionEnd - CrcPositionStart));
 						delete [] SupposedBufferInCrc;
 						if (pChecksum->GetCrc32() == ComputedChecksum.GetCrc32()) {
 							printf(" ++ CheckSum verification succeeded ++");
@@ -495,7 +495,7 @@ int main(int argc, char **argv)
 											printf("   Track %d\n", uint16(CueTrack));
 										} else if (CuePos[Index2]->Generic().GlobalId == KaxCueClusterPosition::ClassInfos.GlobalId) {
 											KaxCueClusterPosition & CuePoss = *static_cast<KaxCueClusterPosition *>(CuePos[Index2]);
-											printf("   Cluster position %d\n", uint64(CuePoss));
+											printf("   Cluster position %zd\n", uint64(CuePoss));
 #if MATROSKA_VERSION >= 2
 										} else if (CuePos[Index2]->Generic().GlobalId == KaxCueReference::ClassInfos.GlobalId) {
 											KaxCueReference & CueRefs = *static_cast<KaxCueReference *>(CuePos[Index2]);
@@ -508,7 +508,7 @@ int main(int argc, char **argv)
 													printf("    Time %d\n", uint32(CueTime));
 												} else if (CueRefs[Index3]->Generic().GlobalId == KaxCueRefCluster::ClassInfos.GlobalId) {
 													KaxCueRefCluster & CueClust = *static_cast<KaxCueRefCluster *>(CueRefs[Index3]);
-													printf("    Cluster position %d\n", uint64(CueClust));
+													printf("    Cluster position %zd\n", uint64(CueClust));
 												} else {
 													printf("    - found %s\n", CueRefs[Index3]->Generic().DebugName);
 												}
@@ -546,7 +546,7 @@ int main(int argc, char **argv)
 							for (Index1 = 0; Index1<SeekPoint.ListSize() ;Index1++) {
 								if (SeekPoint[Index1]->Generic().GlobalId == KaxSeekID::ClassInfos.GlobalId) {
 									KaxSeekID * SeekID = static_cast<KaxSeekID *>(SeekPoint[Index1]);
-									printf("    Seek ID ", SeekID->GetBuffer());
+									// printf("    Seek ID ", SeekID->GetBuffer());
 									for (unsigned int i=0; i<SeekID->GetSize(); i++) {
 										printf("%02X", SeekID->GetBuffer()[i]);
 									}
diff --git a/libmatroska/test/tags/CMakeLists.txt b/libmatroska/test/tags/CMakeLists.txt
new file mode 100644
index 0000000..62fa775
--- /dev/null
+++ b/libmatroska/test/tags/CMakeLists.txt
@@ -0,0 +1,9 @@
+include_directories(../../src)
+include_directories(../..)
+include_directories(../../../libebml)
+
+astscf_component_init(tag_matroska_test)
+astscf_component_add_files(tag_matroska_test "test9.cpp")
+
+astscf_component_build_standalone(tag_matroska_test)
+target_link_libraries(tag_matroska_test astscf-matroska)
diff --git a/libmatroska/test/tags/test9.cpp b/libmatroska/test/tags/test9.cpp
index 16bd962..6925b6d 100644
--- a/libmatroska/test/tags/test9.cpp
+++ b/libmatroska/test/tags/test9.cpp
@@ -347,7 +347,7 @@ int main() {
       L"SIMPLE_TAG_NAME_LEVEL1_2";
     KaxTagBinary &tbin = GetChild<KaxTagBinary>(stag_l1_2);
     tbin.CopyBuffer((binary *)"SIMPLE_TAG_BINARY_LEVEL1_2",
-                    strlen("SIMPLE_TAG_BINARY_LEVEL1_2"));
+                    static_cast<uint32>(strlen("SIMPLE_TAG_BINARY_LEVEL1_2")));
     KaxTagSimple &stag_l2 = GetChild<KaxTagSimple>(stag_l1);
     *(static_cast<EbmlUnicodeString *>(&GetChild<KaxTagName>(stag_l2))) =
       L"SIMPLE_TAG_NAME_LEVEL2";
diff --git a/libmatroska/test/utf8/CMakeLists.txt b/libmatroska/test/utf8/CMakeLists.txt
new file mode 100644
index 0000000..65234c5
--- /dev/null
+++ b/libmatroska/test/utf8/CMakeLists.txt
@@ -0,0 +1,11 @@
+include_directories(../../src)
+include_directories(../..)
+include_directories(../../../libebml)
+
+astscf_component_init(utf8_matroska_test)
+astscf_component_add_files(utf8_matroska_test
+	"test5.cpp"
+)
+
+astscf_component_build_standalone(utf8_matroska_test)
+target_link_libraries(utf8_matroska_test astscf-matroska)
diff --git a/libmatroska/test/utf8/test5.cpp b/libmatroska/test/utf8/test5.cpp
index 91d6371..49453a1 100644
--- a/libmatroska/test/utf8/test5.cpp
+++ b/libmatroska/test/utf8/test5.cpp
@@ -40,9 +40,9 @@
 #include <cstdio>
 
 #include <string>
-#include "TruncString.hpp"
-#include "FileName.hpp"
-#include "StdIOCallback.hpp"
+#include <iostream>
+#include "matroska/FileKax.h"
+#include "ebml/StdIOCallback.h"
 
 using namespace LIBMATROSKA_NAMESPACE;
 using namespace std;
@@ -64,15 +64,13 @@ int main(void)
     printf("%lc  = 0x%04X\n",test2[2],test2[2]);
 //    wprintf(L"0x%04X\n",toto[2]);
 
-    StdIOCallback Test_file("test.utf8",StdIOCallback::MODE_CREATE);
+    StdIOCallback Test_file("test.utf8", MODE_CREATE);
 //    Test_file.write(toto, test2.size()*sizeof(wchar_t));
     Test_file.write(test2.c_str(), test2.size());
 
-    TruncString8 testUTF8_1(10);
-    testUTF8_1 = test1.c_str();
+    string testUTF8_1(test1, 0, 10);
 
-    TruncString8 testUTF8_2(10);
-    testUTF8_2 = test2.c_str(); 
+    string testUTF8_2(test2, 0, 10);
     // in UTF8 0xE8=1110-1000 should become 110.00110-10.001000=0xC6 0x88
 
     FileName test01(64);

commit da37a81f6a811277c36399c54aefc409d07ef646
Author: Brent Eagles <beagles at digium.com>
Date:   Mon Jul 25 13:06:46 2011 -0230

    Add cmake support and casts/c++ changes to allow ebml and matroska to be
    built with our compiler options.

diff --git a/CMakeLists.txt b/CMakeLists.txt
new file mode 100644
index 0000000..c233493
--- /dev/null
+++ b/CMakeLists.txt
@@ -0,0 +1,3 @@
+# Asterisk SCF integrated build.
+add_subdirectory(libebml)
+add_subdirectory(libmatroska)
diff --git a/libebml/CMakeLists.txt b/libebml/CMakeLists.txt
new file mode 100644
index 0000000..ac4764a
--- /dev/null
+++ b/libebml/CMakeLists.txt
@@ -0,0 +1,9 @@
+astscf_project(astscf-ebml 1.2.1)
+
+#
+# Introduce a variable for this source directory into the calling scope.
+#
+set(astscf-ebml_dir ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
+
+add_subdirectory(src)
+astscf_headers_install(ebml/)
diff --git a/libebml/ebml/Debug.h b/libebml/ebml/Debug.h
index e8fd636..efef29f 100644
--- a/libebml/ebml/Debug.h
+++ b/libebml/ebml/Debug.h
@@ -109,14 +109,14 @@ private:
 class EBML_DLL_API ADbg
 {
 public:
-	ADbg(int level = 0){}
+	ADbg(int=0){}
 	virtual ~ADbg() {}
 
-	inline int OutPut(int level, const char * format,...) const {
+	inline int OutPut(int, const char *,...) const {
 		return 0;
 	}
 
-	inline int OutPut(const char * format,...) const {
+	inline int OutPut(const char *,...) const {
 		return 0;
 	}
 
@@ -124,11 +124,11 @@ public:
 		return level;
 	}
 
-	inline bool setIncludeTime(const bool included = true) {
+	inline bool setIncludeTime(const bool = true) {
 		return true;
 	}
 
-	inline bool setDebugFile(const char * NewFilename) {
+	inline bool setDebugFile(const char *) {
 		return true;
 	}
 
@@ -137,7 +137,7 @@ public:
 	}
 
 	inline bool setUseFile(const bool usefile = true) {
-		return true;
+		return usefile;
 	}
 
 	inline const char * setPrefix(const char * string) {
diff --git a/libebml/ebml/EbmlCrc32.h b/libebml/ebml/EbmlCrc32.h
index fd2de01..5fe3cbf 100644
--- a/libebml/ebml/EbmlCrc32.h
+++ b/libebml/ebml/EbmlCrc32.h
@@ -103,6 +103,7 @@ DECLARE_EBML_BINARY(EbmlCrc32)
 template <class T>
 inline unsigned int GetAlignment(T *dummy=NULL) // VC60 workaround
 {
+    dummy = 0;
 #if (_MSC_VER >= 1300)
 	return __alignof(T);
 #elif defined(__GNUC__)
@@ -131,9 +132,10 @@ inline bool IsAlignedOn(const void *p, unsigned int alignment)
 }
 
 template <class T>
-inline bool IsAligned(const void *p, T *dummy=NULL)	// VC60 workaround
+inline bool IsAligned(const void *p, T* dummy = 0)	// VC60 workaround
 {
-	return IsAlignedOn(p, GetAlignment<T>());
+    dummy = 0;
+    return IsAlignedOn(p, GetAlignment<T>());
 }
 
 END_LIBEBML_NAMESPACE
diff --git a/libebml/ebml/EbmlDate.h b/libebml/ebml/EbmlDate.h
index ac43e10..99983ba 100644
--- a/libebml/ebml/EbmlDate.h
+++ b/libebml/ebml/EbmlDate.h
@@ -65,7 +65,7 @@ class EBML_DLL_API EbmlDate : public EbmlElement {
 		/*!
 			\note no Default date handled
 		*/
-		filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false) {
+		filepos_t UpdateSize(bool = false, bool = false) {
 			if(!ValueIsSet())
 				SetSize_(0);
 			else
diff --git a/libebml/ebml/EbmlElement.h b/libebml/ebml/EbmlElement.h
index 7487239..32fc20d 100644
--- a/libebml/ebml/EbmlElement.h
+++ b/libebml/ebml/EbmlElement.h
@@ -434,7 +434,7 @@ class EBML_DLL_API EbmlElement {
 		virtual bool IsMaster() const {return false;}
 
 		uint8 HeadSize() const {
-			return EBML_ID_LENGTH((const EbmlId&)*this) + CodedSizeLength(Size, SizeLength, bSizeIsFinite);
+			return static_cast<uint8>(EBML_ID_LENGTH((const EbmlId&)*this) + CodedSizeLength(Size, SizeLength, bSizeIsFinite));
 		} /// return the size of the head, on reading/writing
 
 		/*!
diff --git a/libebml/ebml/EbmlFloat.h b/libebml/ebml/EbmlFloat.h
index 37545e0..64bedde 100644
--- a/libebml/ebml/EbmlFloat.h
+++ b/libebml/ebml/EbmlFloat.h
@@ -79,12 +79,12 @@ class EBML_DLL_API EbmlFloat : public EbmlElement {
 
 		virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
 		
-		operator const float() const;
-		operator const double() const;
+		operator float() const;
+		operator double() const;
 
 		void SetDefaultValue(double);
     
-		const double DefaultVal() const;
+		double DefaultVal() const;
 
 		bool IsDefaultValue() const {
 			return (DefaultISset() && Value == DefaultValue);
diff --git a/libebml/src/CMakeLists.txt b/libebml/src/CMakeLists.txt
new file mode 100644
index 0000000..9a2348c
--- /dev/null
+++ b/libebml/src/CMakeLists.txt
@@ -0,0 +1,40 @@
+astscf_component_init(astscf-ebml)
+include_directories(..)
+
+file(GLOB_RECURSE project_headers ../ebml/*.h)
+astscf_component_add_files(astscf-ebml ${project_headers})
+set(filelist
+    "Debug.cpp"
+    "EbmlBinary.cpp"
+    "EbmlContexts.cpp"
+    "EbmlCrc32.cpp"
+    "EbmlDate.cpp"
+    "EbmlDummy.cpp"
+    "EbmlElement.cpp"
+    "EbmlFloat.cpp"
+    "EbmlHead.cpp"
+    "EbmlMaster.cpp"
+    "EbmlSInteger.cpp"
+    "EbmlStream.cpp"
+    "EbmlString.cpp"
+    "EbmlSubHead.cpp"
+    "EbmlUInteger.cpp"
+    "EbmlUnicodeString.cpp"
+    "EbmlVersion.cpp"
+    "EbmlVoid.cpp"
+    "IOCallback.cpp"
+    "MemIOCallback.cpp"
+    "StdIOCallback.cpp"
+)
+astscf_component_add_files(astscf-ebml ${filelist})
+
+if(WIN32)
+    add_definitions(-DEBML_DLL)	
+    add_definitions(-DEBML_DLL_EXPORT)	
+    add_definitions(-DWIN32)	
+    add_subdirectory(platform)
+endif()
+
+astscf_component_build_library(astscf-ebml)
+astscf_component_install(astscf-ebml)
+
diff --git a/libebml/src/EbmlBinary.cpp b/libebml/src/EbmlBinary.cpp
index 6e2b155..44b139e 100644
--- a/libebml/src/EbmlBinary.cpp
+++ b/libebml/src/EbmlBinary.cpp
@@ -66,7 +66,7 @@ EbmlBinary::~EbmlBinary(void) {
 EbmlBinary::operator const binary &() const {return *Data;}
 
 
-filepos_t EbmlBinary::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlBinary::RenderData(IOCallback & output, bool, bool)
 {
 	output.writeFully(Data,GetSize());
 
@@ -76,7 +76,7 @@ filepos_t EbmlBinary::RenderData(IOCallback & output, bool bForceRender, bool bW
 /*!
 	\note no Default binary value handled
 */
-uint64 EbmlBinary::UpdateSize(bool bWithDefault, bool bForceRender)
+uint64 EbmlBinary::UpdateSize(bool, bool)
 {
 	return GetSize();
 }
diff --git a/libebml/src/EbmlCrc32.cpp b/libebml/src/EbmlCrc32.cpp
index cddbd95..ad6c79b 100644
--- a/libebml/src/EbmlCrc32.cpp
+++ b/libebml/src/EbmlCrc32.cpp
@@ -195,7 +195,7 @@ void EbmlCrc32::AddElementCRC32(EbmlElement &ElementToCRC)
 	MemIOCallback memoryBuffer;
 	ElementToCRC.Render(memoryBuffer, true, true);
 
-	Update(memoryBuffer.GetDataBuffer(), memoryBuffer.GetDataBufferSize());
+	Update(memoryBuffer.GetDataBuffer(), static_cast<uint32>(memoryBuffer.GetDataBufferSize()));
 //	Finalize();
 };
 
@@ -204,10 +204,10 @@ bool EbmlCrc32::CheckElementCRC32(EbmlElement &ElementToCRC)
 	MemIOCallback memoryBuffer;
 	ElementToCRC.Render(memoryBuffer);
 
-	return CheckCRC(m_crc_final, memoryBuffer.GetDataBuffer(), memoryBuffer.GetDataBufferSize());
+	return CheckCRC(m_crc_final, memoryBuffer.GetDataBuffer(), static_cast<uint32>(memoryBuffer.GetDataBufferSize()));
 };
 
-filepos_t EbmlCrc32::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlCrc32::RenderData(IOCallback & output, bool, bool)
 {
 	filepos_t Result = 4;
 
diff --git a/libebml/src/EbmlDate.cpp b/libebml/src/EbmlDate.cpp
index e1344f9..517b4da 100644
--- a/libebml/src/EbmlDate.cpp
+++ b/libebml/src/EbmlDate.cpp
@@ -65,7 +65,7 @@ filepos_t EbmlDate::ReadData(IOCallback & input, ScopeMode ReadFully)
 	return GetSize();
 }
 
-filepos_t EbmlDate::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlDate::RenderData(IOCallback & output, bool, bool)
 {
 	if (GetSize() != 0) {
 		assert(GetSize() == 8);
diff --git a/libebml/src/EbmlElement.cpp b/libebml/src/EbmlElement.cpp
index aefcfe4..425487b 100644
--- a/libebml/src/EbmlElement.cpp
+++ b/libebml/src/EbmlElement.cpp
@@ -111,14 +111,14 @@ int CodedSizeLengthSigned(int64 Length, unsigned int SizeLength)
 int CodedValueLength(uint64 Length, int CodedSize, binary * OutBuffer)
 {
 	int _SizeMask = 0xFF;
-	OutBuffer[0] = 1 << (8 - CodedSize);
+	OutBuffer[0] = static_cast<binary>(1 << (8 - CodedSize));
 	for (int i=1; i<CodedSize; i++) {
 		OutBuffer[CodedSize-i] = Length & 0xFF;
 		Length >>= 8;
 		_SizeMask >>= 1;
 	}
 	// first one use a OR with the "EBML size head"
-	OutBuffer[0] |= Length & 0xFF & _SizeMask;
+	OutBuffer[0] |= static_cast<binary>(Length & 0xFF & _SizeMask);
 	return CodedSize;
 }
 
@@ -148,7 +148,7 @@ uint64 ReadCodedSizeValue(const binary * InBuffer, uint32 & BufferSize, uint64 &
 		if (InBuffer[0] & (SizeBitMask >> SizeIdx)) {
 			// ID found
 			PossibleSizeLength = SizeIdx + 1;
-			SizeBitMask >>= SizeIdx;
+			SizeBitMask = static_cast<binary>(SizeBitMask >> SizeIdx);
 			for (SizeIdx = 0; SizeIdx < PossibleSizeLength; SizeIdx++) {
 				PossibleSize[SizeIdx] = InBuffer[SizeIdx];
 			}
@@ -293,7 +293,7 @@ EbmlElement * EbmlElement::FindNextID(IOCallback & DataStream, const EbmlCallbac
 				bElementFound = true; /// \todo not exactly the one we're looking for
 				break;
 			}
-			BitMask >>= 1;
+			BitMask = static_cast<binary>(BitMask >> 1);
 		}
 
 		// read the data size
@@ -377,7 +377,7 @@ EbmlElement * EbmlElement::FindNextElement(IOCallback & DataStream, const EbmlSe
 				if (PossibleIdNSize[0] & (IdBitMask >> SizeIdx)) {
 					// ID found
 					PossibleID_Length = SizeIdx + 1;
-					IdBitMask >>= SizeIdx;
+					IdBitMask  = static_cast<binary>(IdBitMask >> SizeIdx);
 					bFound = true;
 					break;
 				}
@@ -618,7 +618,7 @@ filepos_t EbmlElement::MakeRenderHead(IOCallback & output, bool bKeepPosition)
 	binary FinalHead[4+8]; // Class D + 64 bits coded size
 	unsigned int FinalHeadSize;
 
-	FinalHeadSize = EBML_ID_LENGTH((const EbmlId&)*this);
+	FinalHeadSize = static_cast<unsigned int>(EBML_ID_LENGTH((const EbmlId&)*this));
 	EbmlId(*this).Fill(FinalHead);
 
 	int CodedSize = CodedSizeLength(Size, SizeLength, bSizeIsFinite);
@@ -654,7 +654,7 @@ bool EbmlElement::CompareElements(const EbmlElement *A, const EbmlElement *B)
 		return false;
 }
 
-void EbmlElement::Read(EbmlStream & inDataStream, const EbmlSemanticContext & Context, int & UpperEltFound, EbmlElement * & FoundElt, bool AllowDummyElt, ScopeMode ReadFully)
+void EbmlElement::Read(EbmlStream & inDataStream, const EbmlSemanticContext &, int &, EbmlElement * &, bool, ScopeMode ReadFully)
 {
 	ReadData(inDataStream.I_O(), ReadFully);
 }
diff --git a/libebml/src/EbmlFloat.cpp b/libebml/src/EbmlFloat.cpp
index d9095b5..1fcd696 100644
--- a/libebml/src/EbmlFloat.cpp
+++ b/libebml/src/EbmlFloat.cpp
@@ -67,26 +67,26 @@ void EbmlFloat::SetDefaultValue(double aValue)
     SetDefaultIsSet();
 }
 
-const double EbmlFloat::DefaultVal() const
+double EbmlFloat::DefaultVal() const
 {
     assert(DefaultISset());
     return DefaultValue;
 }
 
-EbmlFloat::operator const float() const {return float(Value);}
-EbmlFloat::operator const double() const {return double(Value);}
+EbmlFloat::operator float() const {return float(Value);}
+EbmlFloat::operator double() const {return double(Value);}
 
 
 /*!
 	\todo handle exception on errors
 	\todo handle 10 bits precision
 */
-filepos_t EbmlFloat::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlFloat::RenderData(IOCallback & output, bool, bool)
 {
 	assert(GetSize() == 4 || GetSize() == 8);
 
 	if (GetSize() == 4) {
-		float val = Value;
+		float val = (float)Value;
 		int Tmp;
 		memcpy(&Tmp, &val, 4);
 		big_int32 TmpToWrite(Tmp);
@@ -102,7 +102,7 @@ filepos_t EbmlFloat::RenderData(IOCallback & output, bool bForceRender, bool bWi
 	return GetSize();
 }
 
-uint64 EbmlFloat::UpdateSize(bool bWithDefault, bool bForceRender)
+uint64 EbmlFloat::UpdateSize(bool bWithDefault, bool)
 {
 	if (!bWithDefault && IsDefaultValue())
 		return 0;
diff --git a/libebml/src/EbmlMaster.cpp b/libebml/src/EbmlMaster.cpp
index d6c416e..6111685 100644
--- a/libebml/src/EbmlMaster.cpp
+++ b/libebml/src/EbmlMaster.cpp
@@ -109,7 +109,7 @@ filepos_t EbmlMaster::RenderData(IOCallback & output, bool bForceRender, bool bW
 				continue;
 			(ElementList[Index])->Render(TmpBuf, bWithDefault, false ,bForceRender);
 		}
-		Checksum.FillCRC32(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
+		Checksum.FillCRC32(TmpBuf.GetDataBuffer(), static_cast<uint32>(TmpBuf.GetDataBufferSize()));
 		Result += Checksum.Render(output, true, false ,bForceRender);
 		output.writeFully(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
 		Result += TmpBuf.GetDataBufferSize();
@@ -167,7 +167,7 @@ filepos_t EbmlMaster::WriteHead(IOCallback & output, int nSizeLength, bool bWith
 /*!
 	\todo this code is very suspicious !
 */
-filepos_t EbmlMaster::ReadData(IOCallback & input, ScopeMode ReadFully)
+filepos_t EbmlMaster::ReadData(IOCallback & input, ScopeMode)
 {
 	input.setFilePointer(GetSize(), seek_current);
 	return GetSize();
@@ -515,7 +515,7 @@ bool EbmlMaster::VerifyChecksum() const
 	for (size_t Index = 0; Index < ElementList.size(); Index++) {
 		(ElementList[Index])->Render(TmpBuf, true, false, true);
 	}
-	aChecksum.FillCRC32(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
+	aChecksum.FillCRC32(TmpBuf.GetDataBuffer(), static_cast<uint32>(TmpBuf.GetDataBufferSize()));
 	return (aChecksum.GetCrc32() == Checksum.GetCrc32());
 }
 
diff --git a/libebml/src/EbmlSInteger.cpp b/libebml/src/EbmlSInteger.cpp
index 5c22227..8456731 100644
--- a/libebml/src/EbmlSInteger.cpp
+++ b/libebml/src/EbmlSInteger.cpp
@@ -63,7 +63,7 @@ EbmlSInteger::operator int64() {return Value;}
 /*!
 	\todo handle exception on errors
 */
-filepos_t EbmlSInteger::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlSInteger::RenderData(IOCallback & output, bool, bool)
 {
 	binary FinalData[8]; // we don't handle more than 64 bits integers
 	unsigned int i;
@@ -82,7 +82,7 @@ filepos_t EbmlSInteger::RenderData(IOCallback & output, bool bForceRender, bool
 	return GetSize();
 }
 
-uint64 EbmlSInteger::UpdateSize(bool bWithDefault, bool bForceRender)
+uint64 EbmlSInteger::UpdateSize(bool bWithDefault, bool)
 {
 	if (!bWithDefault && IsDefaultValue())
 		return 0;
@@ -93,7 +93,7 @@ uint64 EbmlSInteger::UpdateSize(bool bWithDefault, bool bForceRender)
 		SetSize_(2);
 	} else if (Value <= 0x7FFFFF && Value >= (-0x800000)) {
 		SetSize_(3);
-	} else if (Value <= 0x7FFFFFFF && Value >= (-0x80000000)) {
+	} else if (Value <= 0x7FFFFFFFLL && Value >= (-0x80000000LL)) {
 		SetSize_(4);
 	} else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFF) &&
 		   Value >= EBML_PRETTYLONGINT(-0x8000000000)) {
diff --git a/libebml/src/EbmlString.cpp b/libebml/src/EbmlString.cpp
index a590f61..1e31020 100644
--- a/libebml/src/EbmlString.cpp
+++ b/libebml/src/EbmlString.cpp
@@ -87,7 +87,7 @@ const std::string & EbmlString::DefaultVal() const
 /*!
 	\todo handle exception on errors
 */
-filepos_t EbmlString::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlString::RenderData(IOCallback & output, bool, bool)
 {
 	filepos_t Result;
 	output.writeFully(Value.c_str(), Value.length());
@@ -122,7 +122,7 @@ EbmlString & EbmlString::operator=(const std::string & NewString)
 	return *this;
 }
 
-uint64 EbmlString::UpdateSize(bool bWithDefault, bool bForceRender)
+uint64 EbmlString::UpdateSize(bool bWithDefault, bool)
 {
 	if (!bWithDefault && IsDefaultValue())
 		return 0;
diff --git a/libebml/src/EbmlUInteger.cpp b/libebml/src/EbmlUInteger.cpp
index 4258548..4b77cd1 100644
--- a/libebml/src/EbmlUInteger.cpp
+++ b/libebml/src/EbmlUInteger.cpp
@@ -79,7 +79,7 @@ EbmlUInteger::operator uint64() const {return Value;}
 /*!
 	\todo handle exception on errors
 */
-filepos_t EbmlUInteger::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlUInteger::RenderData(IOCallback & output, bool, bool)
 {
 	binary FinalData[8]; // we don't handle more than 64 bits integers
 	
@@ -97,7 +97,7 @@ filepos_t EbmlUInteger::RenderData(IOCallback & output, bool bForceRender, bool
 	return GetSize();
 }
 
-uint64 EbmlUInteger::UpdateSize(bool bWithDefault, bool bForceRender)
+uint64 EbmlUInteger::UpdateSize(bool bWithDefault, bool)
 {
 	if (!bWithDefault && IsDefaultValue())
 		return 0;
diff --git a/libebml/src/EbmlUnicodeString.cpp b/libebml/src/EbmlUnicodeString.cpp
index 5568168..59df085 100644
--- a/libebml/src/EbmlUnicodeString.cpp
+++ b/libebml/src/EbmlUnicodeString.cpp
@@ -191,14 +191,14 @@ void UTFstring::UpdateFromUCS2()
 	for (i=0, Size=0; i<_Length; i++)
 	{
 		if (_Data[i] < 0x80) {
-			tmpStr[Size++] = _Data[i];
+			tmpStr[Size++] = static_cast<std::string::value_type>(_Data[i]);
 		} else if (_Data[i] < 0x800) {
-			tmpStr[Size++] = 0xC0 | (_Data[i] >> 6);
-			tmpStr[Size++] = 0x80 | (_Data[i] & 0x3F);
+			tmpStr[Size++] = static_cast<std::string::value_type>(0xC0 | (_Data[i] >> 6));
+			tmpStr[Size++] = static_cast<std::string::value_type>(0x80 | (_Data[i] & 0x3F));
 		} else if (_Data[i] < 0x10000) {
-			tmpStr[Size++] = 0xE0 | (_Data[i] >> 12);
-			tmpStr[Size++] = 0x80 | ((_Data[i] >> 6) & 0x3F);
-			tmpStr[Size++] = 0x80 | (_Data[i] & 0x3F);
+			tmpStr[Size++] = static_cast<std::string::value_type>(0xE0 | (_Data[i] >> 12));
+			tmpStr[Size++] = static_cast<std::string::value_type>(0x80 | ((_Data[i] >> 6) & 0x3F));
+			tmpStr[Size++] = static_cast<std::string::value_type>(0x80 | (_Data[i] & 0x3F));
 		}
 	}
 	tmpStr[Size] = 0;
@@ -256,9 +256,9 @@ const UTFstring & EbmlUnicodeString::DefaultVal() const
 \note limited to UCS-2
 \todo handle exception on errors
 */
-filepos_t EbmlUnicodeString::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlUnicodeString::RenderData(IOCallback & output, bool, bool)
 {
-	uint32 Result = Value.GetUTF8().length();
+	uint32 Result = static_cast<uint32>(Value.GetUTF8().length());
 
 	if (Result != 0) {
 		output.writeFully(Value.GetUTF8().c_str(), Result);
@@ -271,7 +271,7 @@ filepos_t EbmlUnicodeString::RenderData(IOCallback & output, bool bForceRender,
 			memset(Pad, 0x00, GetDefaultSize() - Result);
 			output.writeFully(Pad, GetDefaultSize() - Result);
 
-			Result = GetDefaultSize();
+			Result = static_cast<uint32>(GetDefaultSize());
 			delete [] Pad;
 		}
 	}
@@ -291,7 +291,7 @@ EbmlUnicodeString & EbmlUnicodeString::operator=(const UTFstring & NewString)
 /*!
 \note limited to UCS-2
 */
-uint64 EbmlUnicodeString::UpdateSize(bool bWithDefault, bool bForceRender)
+uint64 EbmlUnicodeString::UpdateSize(bool bWithDefault, bool)
 {
 	if (!bWithDefault && IsDefaultValue())
 		return 0;
diff --git a/libebml/src/EbmlVoid.cpp b/libebml/src/EbmlVoid.cpp
index 3b3f2f0..519394c 100644
--- a/libebml/src/EbmlVoid.cpp
+++ b/libebml/src/EbmlVoid.cpp
@@ -45,7 +45,7 @@ EbmlVoid::EbmlVoid()
 	SetValueIsSet();
 }
 
-filepos_t EbmlVoid::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
+filepos_t EbmlVoid::RenderData(IOCallback & output, bool, bool)
 {
 	// write dummy data by 4KB chunks
 	static binary DummyBuf[4*1024];
diff --git a/libebml/src/MemIOCallback.cpp b/libebml/src/MemIOCallback.cpp
index 62fce15..694af50 100644
--- a/libebml/src/MemIOCallback.cpp
+++ b/libebml/src/MemIOCallback.cpp
@@ -74,14 +74,14 @@ uint32 MemIOCallback::read(void *Buffer, size_t Size)
 		memcpy(Buffer, dataBuffer + dataBufferPos, dataBufferTotalSize - dataBufferPos);
         uint64 oldDataPos = dataBufferPos;
 		dataBufferPos = dataBufferTotalSize;
-		return dataBufferTotalSize - oldDataPos;
+		return static_cast<uint32>(dataBufferTotalSize - oldDataPos);
 	}
 		
 	//Well... We made it here, so do a quick and simple copy
 	memcpy(Buffer, dataBuffer+dataBufferPos, Size);
 	dataBufferPos += Size;
 
-	return Size;
+	return static_cast<uint32>(Size);
 }
 
 void MemIOCallback::setFilePointer(int64 Offset, seek_mode Mode)
@@ -118,7 +118,7 @@ uint32 MemIOCallback::write(IOCallback & IOToRead, size_t Size)
 	}
 	IOToRead.readFully(&dataBuffer[dataBufferPos], Size);
 	dataBufferTotalSize = Size;
-	return Size;
+	return static_cast<uint32>(Size);
 }
 
 END_LIBEBML_NAMESPACE
diff --git a/libebml/src/StdIOCallback.cpp b/libebml/src/StdIOCallback.cpp
index 139f627..28ab3c5 100644
--- a/libebml/src/StdIOCallback.cpp
+++ b/libebml/src/StdIOCallback.cpp
@@ -109,7 +109,7 @@ uint32 StdIOCallback::read(void*Buffer,size_t Size)
 	
 	size_t result = fread(Buffer, 1, Size, File);
 	mCurrentPosition += result;
-	return result;
+	return static_cast<uint32>(result);
 }
 
 void StdIOCallback::setFilePointer(int64 Offset,seek_mode Mode)
@@ -157,7 +157,7 @@ void StdIOCallback::setFilePointer(int64 Offset,seek_mode Mode)
 size_t StdIOCallback::write(const void*Buffer,size_t Size)
 {
 	assert(File!=0);
-	uint32 Result = fwrite(Buffer,1,Size,File);
+	size_t Result = fwrite(Buffer,1,Size,File);
 	mCurrentPosition += Result;
 	return Result;
 }
diff --git a/libebml/src/platform/CMakeLists.txt b/libebml/src/platform/CMakeLists.txt
new file mode 100644
index 0000000..9dc4024
--- /dev/null
+++ b/libebml/src/platform/CMakeLists.txt
@@ -0,0 +1 @@
+add_subdirectory(win32)
diff --git a/libebml/src/platform/win32/CMakeLists.txt b/libebml/src/platform/win32/CMakeLists.txt
new file mode 100644
index 0000000..9367f9e
--- /dev/null
+++ b/libebml/src/platform/win32/CMakeLists.txt
@@ -0,0 +1 @@
+astscf_component_add_files(astscf-ebml WinIOCallback.cpp WinIOCallback.h)
diff --git a/libmatroska/CMakeLists.txt b/libmatroska/CMakeLists.txt
new file mode 100644
index 0000000..fc2e181
--- /dev/null
+++ b/libmatroska/CMakeLists.txt
@@ -0,0 +1,9 @@
+astscf_project(astscf-matroska 1.2.0)
+
+#
+# Introduce a variable for this source directory into the calling scope.
+#
+set(astscf-matroska_dir ${CMAKE_CURRENT_SOURCE_DIR} PARENT_SCOPE)
+
+add_subdirectory(src)
+astscf_headers_install(matroska/)
diff --git a/libmatroska/matroska/KaxBlock.h b/libmatroska/matroska/KaxBlock.h
index 1fb3c9e..bf33e90 100644
--- a/libmatroska/matroska/KaxBlock.h
+++ b/libmatroska/matroska/KaxBlock.h
@@ -84,7 +84,7 @@ class MATROSKA_DLL_API DataBuffer {
 		virtual binary * Buffer() {assert(bValidValue); return myBuffer;}
 		virtual uint32   & Size() {return mySize;};
 		virtual const binary * Buffer() const {assert(bValidValue); return myBuffer;}
-		virtual const uint32   Size()   const {return mySize;};
+		virtual uint32   Size()   const {return mySize;};
 		bool    FreeBuffer(const DataBuffer & aBuffer) {
 			bool bResult = true;
 			if (myBuffer != NULL && bValidValue) {
@@ -232,7 +232,7 @@ class KaxInternalBlock : public EbmlBinary {
 		*/
 		uint64 ReadInternalHead(IOCallback & input);
 		
-		unsigned int NumberFrames() const { return SizeList.size();}
+		unsigned int NumberFrames() const { return static_cast<unsigned int>(SizeList.size());}
 		DataBuffer & GetBuffer(unsigned int iIndex) {return *myBuffers[iIndex];}
 
 		bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing = LACING_AUTO, bool invisible = false);
@@ -305,7 +305,11 @@ class MATROSKA_DLL_API KaxSimpleBlock : public KaxInternalBlock {
 		bool IsKeyframe() const    { return bIsKeyframe; }
 		bool IsDiscardable() const { return bIsDiscardable; }
 
-		operator KaxInternalBlock &() { return *this; }
+		//
+                // Unnecessary operator.
+                //
+                // operator KaxInternalBlock &() { return *this; }
+                //
 		void SetParent(KaxCluster & aParentCluster);
 
         EBML_CONCRETE_CLASS(KaxSimpleBlock)
diff --git a/libmatroska/src/CMakeLists.txt b/libmatroska/src/CMakeLists.txt
new file mode 100644
index 0000000..2a4d2bd
--- /dev/null
+++ b/libmatroska/src/CMakeLists.txt
@@ -0,0 +1,36 @@
+astscf_component_init(astscf-matroska)
+include_directories(..)
+include_directories(${astscf-ebml_dir})
+
+file(GLOB_RECURSE project_headers ../matroska/*.h)
+astscf_component_add_files(astscf-matroska ${project_headers})
+set(filelist
+   "FileKax.cpp"
+   "KaxAttached.cpp"
+   "KaxAttachments.cpp"
+   "KaxBlock.cpp"
+   "KaxBlockData.cpp"
+   "KaxCluster.cpp"
+   "KaxContexts.cpp"
+   "KaxCues.cpp"
+   "KaxCuesData.cpp"
+   "KaxInfoData.cpp"
+   "KaxSeekHead.cpp"
+   "KaxSegment.cpp"
+   "KaxSemantic.cpp"
+   "KaxTracks.cpp"
+   "KaxVersion.cpp"
+)
+astscf_component_add_files(astscf-matroska ${filelist})
+astscf_component_build_library(astscf-matroska)
+target_link_libraries(astscf-matroska astscf-ebml)
+
+if(WIN32)
+    add_definitions(-DEBML_DLL)	
+    add_definitions(-DMATROSKA_DLL_EXPORT)	
+    add_definitions(-DMATROSKA_DLL)	
+    add_definitions(-DWIN32)	
+endif()
+
+astscf_component_install(astscf-matroska)
+
diff --git a/libmatroska/src/KaxBlock.cpp b/libmatroska/src/KaxBlock.cpp
index e96910e..134d7ee 100644
--- a/libmatroska/src/KaxBlock.cpp
+++ b/libmatroska/src/KaxBlock.cpp
@@ -161,10 +161,10 @@ LacingType KaxInternalBlock::GetBestLacingType() const {
 		return LACING_EBML;
 }
 
-filepos_t KaxInternalBlock::UpdateSize(bool bSaveDefault, bool bForceRender)
+filepos_t KaxInternalBlock::UpdateSize(bool, bool)
 {
 	LacingType LacingHere;
-    assert(EbmlBinary::GetBuffer() == NULL); // Data is not used for KaxInternalBlock
+        assert(EbmlBinary::GetBuffer() == NULL); // Data is not used for KaxInternalBlock
 	assert(TrackNumber < 0x4000); // no more allowed for the moment
 	unsigned int i;
 
@@ -238,18 +238,20 @@ KaxBlockVirtual::~KaxBlockVirtual()
         SetBuffer( NULL, 0 ); 
 }
 
-filepos_t KaxBlockVirtual::UpdateSize(bool bSaveDefault, bool bForceRender)
+filepos_t KaxBlockVirtual::UpdateSize(bool, bool)
 {
 	assert(TrackNumber < 0x4000);
 	binary *cursor = EbmlBinary::GetBuffer();
 	// fill data
-	if (TrackNumber < 0x80) {
-        assert(GetSize() >= 4);
-		*cursor++ = TrackNumber | 0x80; // set the first bit to 1 
-	} else {
-        assert(GetSize() >= 5);
-		*cursor++ = (TrackNumber >> 8) | 0x40; // set the second bit to 1
-		*cursor++ = TrackNumber & 0xFF;
+	if (TrackNumber < 0x80)
+        {
+            assert(GetSize() >= 4);
+            *cursor++ = static_cast<binary>(TrackNumber | 0x80); // set the first bit to 1 
+	} else
+        {
+            assert(GetSize() >= 5);
+            *cursor++ = static_cast<binary>((TrackNumber >> 8) | 0x40); // set the second bit to 1
+            *cursor++ = static_cast<binary>(TrackNumber & 0xFF);
 	}
 
 	assert(ParentCluster != NULL);
@@ -268,7 +270,7 @@ filepos_t KaxBlockVirtual::UpdateSize(bool bSaveDefault, bool bForceRender)
 	\todo more optimisation is possible (render the Block head and don't copy the buffer in memory, care should be taken with the allocation of Data)
 	\todo the actual timecode to write should be retrieved from the Cluster from here
 */
-filepos_t KaxInternalBlock::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault)
+filepos_t KaxInternalBlock::RenderData(IOCallback & output, bool, bool)
 {
 	if (myBuffers.size() == 0) {
 		return 0;
@@ -289,11 +291,14 @@ filepos_t KaxInternalBlock::RenderData(IOCallback & output, bool bForceRender, b
 			SetSize_(GetSize() + 1);
 
 		// write Block Head
-		if (TrackNumber < 0x80) {
-			*cursor++ = TrackNumber | 0x80; // set the first bit to 1 
-		} else {
-			*cursor++ = (TrackNumber >> 8) | 0x40; // set the second bit to 1
-			*cursor++ = TrackNumber & 0xFF;
+		if (TrackNumber < 0x80)
+                {
+                    *cursor++ = static_cast<binary>(TrackNumber | 0x80); // set the first bit to 1 
+		}
+                else
+                {
+                    *cursor++ = static_cast<binary>((TrackNumber >> 8) | 0x40); // set the second bit to 1
+                    *cursor++ = static_cast<binary>(TrackNumber & 0xFF);
 		}
 
 		assert(ParentCluster != NULL);
@@ -344,27 +349,29 @@ filepos_t KaxInternalBlock::RenderData(IOCallback & output, bool bForceRender, b
 		{
 		case LACING_XIPH:
 			// number of laces
-			tmpValue = myBuffers.size()-1;
-			output.writeFully(&tmpValue, 1);
-
-			// set the size of each member in the lace
-			for (i=0; i<myBuffers.size()-1; i++) {
-				tmpValue = 0xFF;
-				uint16 tmpSize = myBuffers[i]->Size();
-				while (tmpSize >= 0xFF) {
-					output.writeFully(&tmpValue, 1);
-					SetSize_(GetSize() + 1);
-					tmpSize -= 0xFF;
-				}
-				tmpValue = binary(tmpSize);
-				output.writeFully(&tmpValue, 1);
-				SetSize_(GetSize() + 1);
-			}
-			break;
+                    tmpValue = static_cast<binary>(myBuffers.size()-1);
+                    output.writeFully(&tmpValue, 1);
+
+                    // set the size of each member in the lace
+                    for (i=0; i<myBuffers.size()-1; i++)
+                    {
+                        tmpValue = 0xFF;
+                        uint16 tmpSize = static_cast<uint16>(myBuffers[i]->Size());
+                        while (tmpSize >= 0xFF)
+                        {
+                            output.writeFully(&tmpValue, 1);
+                            SetSize_(GetSize() + 1);
+                            tmpSize = static_cast<binary>(tmpSize - 0xFF);
+                        }
+                        tmpValue = binary(tmpSize);
+                        output.writeFully(&tmpValue, 1);
+                        SetSize_(GetSize() + 1);
+                    }
+                    break;
 		case LACING_EBML:
 			// number of laces
-			tmpValue = myBuffers.size()-1;
-			output.writeFully(&tmpValue, 1);
+                    tmpValue = static_cast<binary>(myBuffers.size()-1);
+                    output.writeFully(&tmpValue, 1);
 
 			{
 				int64 _Size;
@@ -392,7 +399,7 @@ filepos_t KaxInternalBlock::RenderData(IOCallback & output, bool bForceRender, b
 			break;
 		case LACING_FIXED:
 			// number of laces
-			tmpValue = myBuffers.size()-1;
+                    tmpValue = static_cast<binary>(myBuffers.size()-1);
 			output.writeFully(&tmpValue, 1);
 			break;
 		case LACING_NONE:
@@ -427,8 +434,8 @@ uint64 KaxInternalBlock::ReadInternalHead(IOCallback & input)
 			return Result;
 		}
 		Result += input.read(&Buffer[4], 1);
-		TrackNumber = (TrackNumber & 0x3F) << 8;
-		TrackNumber += *cursor++;
+		TrackNumber = static_cast<uint16>((TrackNumber & 0x3F) << 8);
+		TrackNumber = static_cast<uint16>(TrackNumber + *cursor++);
 	} else {
 		TrackNumber &= 0x7F;
 	}
@@ -467,8 +474,8 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 				// We don't support track numbers that large !
 				return Result;
 			}
-			TrackNumber = (TrackNumber & 0x3F) << 8;
-			TrackNumber += *cursor++;
+			TrackNumber = static_cast<uint16>((TrackNumber & 0x3F) << 8);
+			TrackNumber = static_cast<uint16>(TrackNumber + *cursor++);
 			BlockHeadSize++;
 		} else {
 			TrackNumber &= 0x7F;
@@ -490,20 +497,21 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 		// put all Frames in the list
 		if (mLacing == LACING_NONE) {
 			FirstFrameLocation += cursor - EbmlBinary::GetBuffer();
-			DataBuffer * soloFrame = new DataBuffer(cursor, GetSize() - BlockHeadSize);
+			DataBuffer * soloFrame = new DataBuffer(cursor, static_cast<int>(GetSize() - BlockHeadSize));
 			myBuffers.push_back(soloFrame);
 			SizeList.resize(1);
-			SizeList[0] = GetSize() - BlockHeadSize;
-		} else {
-			// read the number of frames in the lace
-			uint32 LastBufferSize = GetSize() - BlockHeadSize - 1; // 1 for number of frame
-			uint8 FrameNum = *cursor++; // number of frames in the lace - 1
-			// read the list of frame sizes
-			uint8 Index;
-			int32 FrameSize;
-			uint32 SizeRead;
-			uint64 SizeUnknown;
-
+			SizeList[0] = static_cast<int>(GetSize() - BlockHeadSize);
+		} else
+                {
+                    // read the number of frames in the lace
+                    uint32 LastBufferSize = static_cast<uint32>(GetSize() - BlockHeadSize - 1); // 1 for number of frame
+                    uint8 FrameNum = *cursor++; // number of frames in the lace - 1
+                    // read the list of frame sizes
+                    uint8 Index;
+                    int32 FrameSize;
+                    uint32 SizeRead;
+                    uint64 SizeUnknown;
+                        
 			SizeList.resize(FrameNum + 1);
 
 			switch (mLacing)
@@ -523,7 +531,7 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 				break;
 			case LACING_EBML:
 				SizeRead = LastBufferSize;
-				FrameSize = ReadCodedSizeValue(cursor, SizeRead, SizeUnknown);
+				FrameSize = static_cast<uint32>(ReadCodedSizeValue(cursor, SizeRead, SizeUnknown));
 				SizeList[0] = FrameSize;
 				cursor += SizeRead;
 				LastBufferSize -= FrameSize + SizeRead;
@@ -531,7 +539,9 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 				for (Index=1; Index<FrameNum; Index++) {
 					// get the size of the frame
 					SizeRead = LastBufferSize;
-					FrameSize += ReadCodedSizeSignedValue(cursor, SizeRead, SizeUnknown);
+					FrameSize =
+                                            FrameSize +
+                                            static_cast<uint32>(ReadCodedSizeSignedValue(cursor, SizeRead, SizeUnknown));
 					SizeList[Index] = FrameSize;
 					cursor += SizeRead;
 					LastBufferSize -= FrameSize + SizeRead;
@@ -574,8 +584,8 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 				// We don't support track numbers that large !
 				return Result;
 			}
-			TrackNumber = (TrackNumber & 0x3F) << 8;
-			TrackNumber += *cursor++;
+			TrackNumber = static_cast<uint16>((TrackNumber & 0x3F) << 8);
+			TrackNumber = static_cast<uint16>(TrackNumber + *cursor++);
 			BlockHeadSize++;
 		} else {
 			TrackNumber &= 0x7F;
@@ -605,7 +615,7 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 		// put all Frames in the list
 		if (mLacing != LACING_NONE) {
 			// read the number of frames in the lace
-			uint32 LastBufferSize = GetSize() - BlockHeadSize - 1; // 1 for number of frame
+                    uint32 LastBufferSize = static_cast<uint32>(GetSize() - BlockHeadSize - 1); // 1 for number of frame
 			uint8 FrameNum = _TempHead[0]; // number of frames in the lace - 1
 			// read the list of frame sizes
 			uint8 Index;
@@ -639,7 +649,7 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 				SizeRead = LastBufferSize;
 				cursor = _tmpBuf = new binary[FrameNum*4]; /// \warning assume the mean size will be coded in less than 4 bytes
 				Result += input.read(cursor, FrameNum*4);
-				FrameSize = ReadCodedSizeValue(cursor, SizeRead, SizeUnknown);
+				FrameSize = static_cast<uint32>(ReadCodedSizeValue(cursor, SizeRead, SizeUnknown));
 				SizeList[0] = FrameSize;
 				cursor += SizeRead;
 				LastBufferSize -= FrameSize + SizeRead;
@@ -647,7 +657,8 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 				for (Index=1; Index<FrameNum; Index++) {
 					// get the size of the frame
 					SizeRead = LastBufferSize;
-					FrameSize += ReadCodedSizeSignedValue(cursor, SizeRead, SizeUnknown);
+					FrameSize = static_cast<uint32>(
+                                            FrameSize + ReadCodedSizeSignedValue(cursor, SizeRead, SizeUnknown));
 					SizeList[Index] = FrameSize;
 					cursor += SizeRead;
 					LastBufferSize -= FrameSize + SizeRead;
@@ -669,7 +680,7 @@ filepos_t KaxInternalBlock::ReadData(IOCallback & input, ScopeMode ReadFully)
 			}
 		} else {
 			SizeList.resize(1);
-			SizeList[0] = GetSize() - BlockHeadSize;
+			SizeList[0] = static_cast<int>(GetSize() - BlockHeadSize);
 		}
 		SetValueIsSet(false);
 		Result = GetSize();
@@ -820,14 +831,16 @@ void KaxBlockGroup::ReleaseFrames()
 void KaxInternalBlock::ReleaseFrames()
 {
 	// free the allocated Frames
-	int i;
-	for (i=myBuffers.size()-1; i>=0; i--) {
-		if (myBuffers[i] != NULL) {
-			myBuffers[i]->FreeBuffer(*myBuffers[i]);
-			delete myBuffers[i];
-			myBuffers[i] = NULL;
-		}
-	}
+    for (int i = static_cast<int>(myBuffers.size()-1);
+         i >= 0; i--)
+    {
+        if (myBuffers[i] != NULL)
+        {
+            myBuffers[i]->FreeBuffer(*myBuffers[i]);
+            delete myBuffers[i];
+            myBuffers[i] = NULL;
+        }
+    }
 }
 
 void KaxBlockGroup::SetBlockDuration(uint64 TimeLength)
@@ -1034,7 +1047,7 @@ void KaxBlockBlob::SetBlockGroup( KaxBlockGroup &BlockRef )
 	Block.group = &BlockRef;
 }
 
-filepos_t KaxBlockVirtual::ReadData(IOCallback & input, ScopeMode ReadFully)
+filepos_t KaxBlockVirtual::ReadData(IOCallback & input, ScopeMode)
 {
     input.setFilePointer(SizePosition + CodedSizeLength(Size, SizeLength, bSizeIsFinite) + Size, seek_beginning);
     return GetSize();
diff --git a/libmatroska/src/KaxSeekHead.cpp b/libmatroska/src/KaxSeekHead.cpp
index 25b9083..ceb6ab5 100644
--- a/libmatroska/src/KaxSeekHead.cpp
+++ b/libmatroska/src/KaxSeekHead.cpp
@@ -58,7 +58,7 @@ void KaxSeekHead::IndexThis(const EbmlElement & aElt, const KaxSegment & ParentS
 	KaxSeekID & aNewID = GetChild<KaxSeekID>(aNewPoint);
 	binary ID[4];
     ((const EbmlId&)aElt).Fill(ID);
-	aNewID.CopyBuffer(ID, EBML_ID_LENGTH((const EbmlId&)aElt));
+    aNewID.CopyBuffer(ID, static_cast<uint32>(EBML_ID_LENGTH((const EbmlId&)aElt)));
 }
 
 KaxSeek * KaxSeekHead::FindFirstOf(const EbmlCallbacks & Callbacks) const
@@ -73,7 +73,7 @@ KaxSeek * KaxSeekHead::FindFirstOf(const EbmlCallbacks & Callbacks) const
         {
 			if (EbmlId(*(*Itr)) == EBML_ID(KaxSeekID)) {
 				aId = static_cast<KaxSeekID*>(*Itr);
-				EbmlId aEbmlId(aId->GetBuffer(), aId->GetSize());
+				EbmlId aEbmlId(aId->GetBuffer(), static_cast<unsigned int>(aId->GetSize()));
 				if (aEbmlId == EBML_INFO_ID(Callbacks))
 				{
 					return aElt;
@@ -129,7 +129,7 @@ bool KaxSeek::IsEbmlId(const EbmlId & aId) const
 	KaxSeekID *_Id = static_cast<KaxSeekID*>(FindFirstElt(EBML_INFO(KaxSeekID)));
 	if (_Id == NULL)
 		return false;
-	EbmlId aEbmlId(_Id->GetBuffer(), _Id->GetSize());
+	EbmlId aEbmlId(_Id->GetBuffer(), static_cast<unsigned int>(_Id->GetSize()));
 	return (aId == aEbmlId);
 }
 
@@ -141,8 +141,8 @@ bool KaxSeek::IsEbmlId(const KaxSeek & aPoint) const
 	KaxSeekID *_IdB = static_cast<KaxSeekID*>(aPoint.FindFirstElt(EBML_INFO(KaxSeekID)));
 	if (_IdB == NULL)
 		return false;
-	EbmlId aEbmlIdA(_IdA->GetBuffer(), _IdA->GetSize());
-	EbmlId aEbmlIdB(_IdB->GetBuffer(), _IdB->GetSize());
+	EbmlId aEbmlIdA(_IdA->GetBuffer(), static_cast<unsigned int>(_IdA->GetSize()));
+	EbmlId aEbmlIdB(_IdB->GetBuffer(), static_cast<unsigned int>(_IdB->GetSize()));
 	return (aEbmlIdA == aEbmlIdB);
 }
 
diff --git a/libmatroska/src/KaxSemantic.cpp b/libmatroska/src/KaxSemantic.cpp
index 29be7d1..6920642 100644
--- a/libmatroska/src/KaxSemantic.cpp
+++ b/libmatroska/src/KaxSemantic.cpp
@@ -666,97 +666,97 @@ DEFINE_MKX_UINTEGER_DEF(KaxTagDefault, 0x4484, 2, KaxTagSimple, "TagDefault", 1)
 DEFINE_MKX_UNISTRING(KaxTagString, 0x4487, 2, KaxTagSimple, "TagString");
 DEFINE_MKX_BINARY (KaxTagBinary, 0x4485, 2, KaxTagSimple, "TagBinary");
 
-filepos_t KaxBlockVirtual::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxBlockVirtual::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxReferenceVirtual::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxReferenceVirtual::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxSliceFrameNumber::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxSliceFrameNumber::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxSliceBlockAddID::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxSliceBlockAddID::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxSliceDelay::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxSliceDelay::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxSliceDuration::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxSliceDuration::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxEncryptedBlock::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxEncryptedBlock::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxTrackOffset::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxTrackOffset::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxCodecSettings::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxCodecSettings::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxCodecInfoURL::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxCodecInfoURL::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxCodecDownloadURL::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxCodecDownloadURL::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxOldStereoMode::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxOldStereoMode::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxVideoGamma::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxVideoGamma::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxVideoFrameRate::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxVideoFrameRate::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxAudioPosition::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxAudioPosition::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxCueRefCluster::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxCueRefCluster::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxCueRefNumber::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxCueRefNumber::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxCueRefCodecState::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxCueRefCodecState::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }
 
-filepos_t KaxFileReferral::RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault) {
+filepos_t KaxFileReferral::RenderData(IOCallback &, bool, bool) {
 	assert(false); // no you are not allowed to use this element !
 	return 0;
 }

commit 82c4c0fe16626119d5f8a0a7cdc479e9b748825b
Author: Brent Eagles <beagles at digium.com>
Date:   Mon Jul 25 12:52:36 2011 -0230

    Adding upstream copy of libebml-1.2.1 and libmatroska-1.2.0

diff --git a/libebml/ChangeLog b/libebml/ChangeLog
new file mode 100644
index 0000000..5a7ad38
--- /dev/null
+++ b/libebml/ChangeLog
@@ -0,0 +1,1588 @@
+2011-06-26 robux4/mosu
+New 1.2.1 version:
+    - fix the constructor of CRTError in StdIOCallback (patch from Graham 'gbooker' Booker)
+    - fix the size returned by MemIOCallback::read() when reaching the end of the buffer
+    - add a macro to define signed integer elements that have a default value
+    - fix compilation of debug builds on win32
+    - fix for Sun Studio C compiler
+
+2011-01-30 robux4/mosu
+New 1.2.0 version:
+    - no need to put the internal code of EbmlCrc32 in the public header
+    - more safety on the Binary buffer handling in case we run out of memory
+    - fix CRC32 detection in master elements
+    - fix compilation under gcc 4.5
+    - Fixed handling of UTF-8 strings with characters encoded in more than three bytes.
+    - Increased library .so name to .3 due to binary incompatible changes.
+
+2010-07-xx robux4
+New 1.1.0 version:
+    - EbmlElement::VoidMe() now returns a uint64
+    - move some operator code in the .cpp files (MSVC has issues in DLLs)
+
+2010-06-04 robux4/mosu
+New 1.0.0 version:
+    - rename the library .so name as it's backward incompatible
+    - fixes when reading Master elements with unknown/infinite size
+    - fix the infinite/unknown size reading in EbmlElement::FindNextElement()
+    - fix the EBMLDummy ID reading and displaying
+
+2010-04-30 robux4/mosu
+New 0.8.0 version:
+    - new macros to simplify and unify the way to declare and define EBML elements
+    - new macros to access variables of a Class/Object so that switching to libebml v2 is transparent
+    - add an EBML_STRICT_API compilation flag (off by default) to avoid direct access to internal class variables
+    - fix some building issues on Linux and MinGW
+    - add accessor calls to the base classes to avoid direct access to internal class variables
+    - add iterators to navigate throught the EbmlMaster children
+    - use a new filepos_t type for everything that relates to an element position/data size with INVALID_FILEPOS_T in case of errors
+    - remove the const on integer values
+
+
+2008-02-21 22:14  mosu
+
+	* trunk/libebml/ebml/EbmlBinary.h, trunk/libebml/ebml/EbmlEndian.h,
+	  trunk/libebml/ebml/MemIOCallback.h,
+	  trunk/libebml/ebml/c/libebml_t.h,
+	  trunk/libebml/src/StdIOCallback.cpp: Fixes for the compilation
+	  with gcc 4.3
+
+2007-02-17 10:55  robux4
+
+	* trunk/ARCorrect/ARCorrect.h, trunk/ARCorrect/ARCorrectFilter.h,
+	  trunk/ARCorrect/ARCorrectPage.h, trunk/ARCorrect/ARCorrect_GUID.h,
+	  trunk/ARCorrect/DShowUtils.h, trunk/ARCorrect/ITrackInfo.h,
+	  trunk/ARCorrect/PersistPropertyBag.h, trunk/ARCorrect/resource.h,
+	  trunk/DvdMenuXtractor/DvdMenuXtractor.proj,
+	  trunk/DvdMenuXtractor/chaptermanager.h,
+	  trunk/DvdMenuXtractor/config.h, trunk/DvdMenuXtractor/dmx.h,
+	  trunk/DvdMenuXtractor/dmxconsole.h,
+	  trunk/DvdMenuXtractor/dmxlogwidget.h,
+	  trunk/DvdMenuXtractor/dmxselectionitem.h,
+	  trunk/DvdMenuXtractor/dmxselectiontree.h,
+	  trunk/DvdMenuXtractor/dmxwizard.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/bswap.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/cmd_print.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_input.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_reader.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/dvd_udf.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread.proj,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/dvdread_internal.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_print.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_read.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/ifo_types.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/md5.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/nav_print.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/nav_read.h,
+	  trunk/DvdMenuXtractor/libdvdread/dvdread/nav_types.h,
+	  trunk/DvdMenuXtractor/libdvdread/libdvdread.proj,
+	  trunk/DvdMenuXtractor/libdvdread/src/src.proj,
+	  trunk/DvdMenuXtractor/libdvdread/win32/config.h,
+	  trunk/DvdMenuXtractor/libdvdread/win32/dirent.h,
+	  trunk/DvdMenuXtractor/libdvdread/win32/gtchar.h,
+	  trunk/DvdMenuXtractor/libdvdread/win32/inttypes.h,
+	  trunk/DvdMenuXtractor/libdvdread/win32/posix.h,
+	  trunk/DvdMenuXtractor/libdvdread/win32/stdint.h,
+	  trunk/DvdMenuXtractor/libdvdread/win32/win32.proj,
+	  trunk/DvdMenuXtractor/logtextedit.h,
+	  trunk/DvdMenuXtractor/mpegparser/CircBuffer.h,
+	  trunk/DvdMenuXtractor/mpegparser/M2VParser.h,
+	  trunk/DvdMenuXtractor/mpegparser/MPEGVideoBuffer.h,
+	  trunk/DvdMenuXtractor/mpegparser/Types.h,
+	  trunk/DvdMenuXtractor/mpegparser/mpegparser.proj,
+	  trunk/DvdMenuXtractor/outputreader.h,
+	  trunk/DvdMenuXtractor/selectiontreeitem.h,
+	  trunk/DvdMenuXtractor/selectiontreesubitem.h,
+	  trunk/DvdMenuXtractor/utilities.h,
+	  trunk/DvdMenuXtractor/vobparser/IFOContent.h,
+	  trunk/DvdMenuXtractor/vobparser/IFOFile.h,
+	  trunk/DvdMenuXtractor/vobparser/VobParser.h,
+	  trunk/DvdMenuXtractor/vobparser/iso/iso_lang.h,
+	  trunk/DvdMenuXtractor/vobparser/vobparser.proj,
+	  trunk/LemAPI/ac3_input/ac3file.h,
+	  trunk/LemAPI/ac3_input/ac3frame.h,
+	  trunk/LemAPI/ac3_input/ac3iframe.h,
+	  trunk/LemAPI/ac3_input/c_types.h, trunk/LemAPI/avi_input/avilib.h,
+	  trunk/LemAPI/matroska_writer/matroska_writer.h,
+	  trunk/LemAPI/matroska_writer/matroska_writer_gui.h,
+	  trunk/LemAPI/mpa_input/c_types.h,
+	  trunk/LemAPI/mpa_input/mpafile.h,
+	  trunk/LemAPI/mpa_input/mpaframe.h,
+	  trunk/LemAPI/mpa_input/mpiframe.h, trunk/LemAPI/tinyXML/tinystr.h,
+	  trunk/LemAPI/tinyXML/tinyxml.h, trunk/LemAPI/wav_input/Config.h,
+	  trunk/LemAPI/wav_input/Endian.h, trunk/LemAPI/wav_input/FourCC.h,
+	  trunk/LemAPI/wav_input/Types.h, trunk/LemAPI/wav_input/c_types.h,
+	  trunk/LemAPI/wav_input/chunk.h, trunk/LemAPI/wav_input/fact.h,
+	  trunk/LemAPI/wav_input/fio.h, trunk/LemAPI/wav_input/format.h,
+	  trunk/LemAPI/wav_input/riff.h, trunk/LemAPI/wav_input/wav.h,
+	  trunk/LemAPI/wav_input/wav2mka.h,
+	  trunk/MatroskaUtils/AviTagReader.h,
+	  trunk/MatroskaUtils/CFireRoutine.h, trunk/MatroskaUtils/DbgOut.h,
+	  trunk/MatroskaUtils/GDC/GDCMatroska/GDCMatroska_h.h,
+	  trunk/MatroskaUtils/GDC/GDCMatroska/IndexMatroska.h,
+	  trunk/MatroskaUtils/GDC/GDCMatroska/MatroskaParser.h,
+	  trunk/MatroskaUtils/GDC/GDCMatroska/Win32Stream.h,
+	  trunk/MatroskaUtils/GDC/GDCMatroska/resource.h,
+	  trunk/MatroskaUtils/GDC/GDCMatroska/stdafx.h,
+	  trunk/MatroskaUtils/GDC/common/GoogleDesktopComponentRegistration.h,
+	  trunk/MatroskaUtils/GDC/common/GoogleDesktopSearchAPI.h,
+	  trunk/MatroskaUtils/GDC/common/stdafx.h,
+	  trunk/MatroskaUtils/JCThread.h, trunk/MatroskaUtils/JList.h,
+	  trunk/MatroskaUtils/JString.h, trunk/MatroskaUtils/MP3TagReader.h,
+	  trunk/MatroskaUtils/MatroskaCDL/CDLApi.h,
+	  trunk/MatroskaUtils/MatroskaCDL/MatroskaCDL.h,
+	  trunk/MatroskaUtils/MatroskaChapterData.h,
+	  trunk/MatroskaUtils/MatroskaPages.h,
+	  trunk/MatroskaUtils/MatroskaReg.h,
+	  trunk/MatroskaUtils/MatroskaTagData.h,
+	  trunk/MatroskaUtils/MatroskaTrackData.h,
+	  trunk/MatroskaUtils/MatroskaUtils.h,
+	  trunk/MatroskaUtils/MatroskaUtilsBitrate.h,
+	  trunk/MatroskaUtils/MatroskaUtilsDebug.h,
+	  trunk/MatroskaUtils/MatroskaUtilsReader.h,
+	  trunk/MatroskaUtils/ShellExtension/CheckUsage/CheckUsage.h,
+	  trunk/MatroskaUtils/ShellExtension/CheckUsage/resource.h,
+	  trunk/MatroskaUtils/ShellExtension/DShowTools/DShowTools.h,
+	  trunk/MatroskaUtils/ShellExtension/DShowTools/convert.h,
+	  trunk/MatroskaUtils/ShellExtension/Http.h,
+	  trunk/MatroskaUtils/ShellExtension/MatroskaInfoParserCache.h,
+	  trunk/MatroskaUtils/ShellExtension/MatroskaProp.h,
+	  trunk/MatroskaUtils/ShellExtension/MatroskaPropShellExtension.h,
+	  trunk/MatroskaUtils/TagReader.h, trunk/MatroskaUtils/ZipArchive.h,
+	  trunk/MatroskaUtils/mdump.h, trunk/MatroskaUtils/resource.h,
+	  trunk/MatroskaUtils/tinyxml/tinystr.h, trunk/config.h,
+	  trunk/foo_input_matroska/DbgOut.h,
+	  trunk/foo_input_matroska/Foobar2000ReaderIOCallback.h,
+	  trunk/foo_input_matroska/container_matroska.h,
+	  trunk/foo_input_matroska/container_matroska_impl.h,
+	  trunk/foo_input_matroska/filesystem_matroska.h,
+	  trunk/foo_input_matroska/matroska_parser.h,
+	  trunk/foo_input_matroska/resource.h, trunk/libebml/libebml.proj,
+	  trunk/libmatroska/libmatroska.proj,
+	  trunk/libmatroska/matroska/KaxTag.h,
+	  trunk/libmatroska/test/ebml/ebml.proj,
+	  trunk/libmatroska/test/mux/mux.proj,
+	  trunk/libmatroska/test/tags/tags.proj,
+	  trunk/libmatroska/test/test.proj,
+	  trunk/libmatroska/test/utf8/utf8.proj,
+	  trunk/mkaencoder/src/mkaenc.h,
+	  trunk/mkvwriter/IOCallbackWrapper.h,
+	  trunk/mkvwriter/MatroskaMuxer.h,
+	  trunk/mkvwriter/MatroskaSimpleTags.h, trunk/mkvwriter/mkvwriter.h,
+	  trunk/mkvwriter/pub/hxtmkvwriter.h, trunk/mkxds/CoreVorbisGUID.h,
+	  trunk/mkxds/MatroskaReader.h, trunk/mkxds/OggDS.h,
+	  trunk/mkxds/Subtitles.h, trunk/mkxds/asyncio.h,
+	  trunk/mkxds/codecs.h, trunk/mkxds/global.h,
+	  trunk/mkxds/mkxPrioFrame.h, trunk/mkxds/mkx_opin.h,
+	  trunk/mkxds/mkxds.h, trunk/mkxds/mkxdsProperty.h,
+	  trunk/mkxds/mkxread.h, trunk/mkxds/resource.h,
+	  trunk/mkxuncat/mkxuncat.proj, trunk/root.proj: fix EOL style
+
+2007-01-22 11:21  robux4
+
+	* trunk/libebml/libebml.proj: don't use the debug(trace) class by
+	  default
+
+2007-01-19 10:15  robux4
+
+	* trunk/libebml/src/Debug.cpp: build even in a Unicode environment
+
+2007-01-19 09:58  robux4
+
+	* trunk/libebml/libebml.proj, trunk/libmatroska/libmatroska.proj,
+	  trunk/libmatroska/test/ebml/ebml.proj,
+	  trunk/libmatroska/test/mux/mux.proj,
+	  trunk/libmatroska/test/tags/tags.proj,
+	  trunk/libmatroska/test/test.proj,
+	  trunk/libmatroska/test/utf8/utf8.proj: add support for coremake
+	  building for the moment the config.h and coremake are referenced
+	  by a parent project
+
+2006-06-02 14:32  mosu
+
+	* trunk/libebml/make/linux/Makefile: Overwrite existing symlinks
+	  during install.
+
+2006-03-31 12:33  mosu
+
+	* trunk/libebml/ChangeLog, trunk/libebml/debian/changelog,
+	  trunk/libebml/ebml/EbmlVersion.h: Bumped version to 0.7.7.
+	  Automatic ChangeLog update.
+
+2006-03-30 19:33  mosu
+
+	* trunk/libebml/src/EbmlFloat.cpp: Avoid pointer aliasing issues.
+
+2006-03-30 19:05  mosu
+
+	* trunk/libebml/make/linux/Makefile: Small improvements like
+	  creating the directory first and avoid failing if the symlink
+	  exists already.
+
+2006-01-25 00:59  robux4
+
+	* trunk/libebml/ebml/EbmlConfig.h: add support for Borland C++
+	  Builder 2006 preview
+
+2005-10-18 17:59  mosu
+
+	* trunk/libebml/ChangeLog, trunk/libebml/debian/changelog: Changed
+	  the version in the Debian control file & automatic ChangeLog
+	  update.
+
+2005-10-15 16:00  robux4
+
+	* trunk/libebml/ebml/EbmlVersion.h: libebml: the next version will
+	  be 0.7.6
+
+2005-10-15 15:56  robux4
+
+	* trunk/libebml/ebml/EbmlElement.h, trunk/libebml/ebml/EbmlMaster.h,
+	  trunk/libebml/src/EbmlElement.cpp, trunk/libebml/src/EbmlVoid.cpp,
+	  trunk/libmatroska/src/KaxBlock.cpp: libebml/libmatroska: fix a
+	  major bug when "unknown size" was used (Haali does)
+
+2005-08-31 13:28  mosu
+
+	* trunk/libebml/make/linux/suse-libebml-makefile.diff,
+	  trunk/libebml/make/linux/suse.spec: Added the necessary patch for
+	  packaging libebml on SuSE.
+
+2005-08-31 13:19  mosu
+
+	* trunk/libebml/make/linux/fedora-core.spec,
+	  trunk/libebml/make/linux/suse.spec: Added the spec files that I
+	  use for building libebml on SuSE and Fedora Core.
+
+2005-08-26 08:18  mosu
+
+	* trunk/libebml/src/Debug.cpp: Make the compiler happy: tv.tv_usec's
+	  type does not have to be a long int.
+
+2005-05-22 07:26  mosu
+
+	* trunk/libebml/ChangeLog: Automatic ChangeLog update.
+
+2005-05-22 07:26  mosu
+
+	* trunk/libebml, trunk/libebml/debian: Ignore some files and
+	  directories created during the Debian build process.
+
+2005-05-22 07:24  mosu
+
+	* trunk/libebml/debian/changelog, trunk/libebml/ebml/EbmlVersion.h:
+	  Bumped the version number to 0.7.5 in the places that robux4
+	  forgot.
+
+2005-05-19 19:16  robux4
+
+	* trunk/libebml/ebml/EbmlVersion.h,
+	  trunk/libmatroska/matroska/KaxVersion.h: update version numbers
+	  for the upcoming release
+
+2005-05-19 16:37  robux4
+
+	* trunk/libebml/src/EbmlElement.cpp: libebml: better check on the
+	  max reading size specified and levels
+
+2005-05-19 15:47  robux4
+
+	* trunk/libebml/ebml/EbmlElement.h,
+	  trunk/libebml/src/EbmlMaster.cpp: libebml: better evaluation of
+	  the data left to read
+
+2005-05-06 11:43  robux4
+
+	* trunk/libebml/ebml/EbmlConfig.h, trunk/libebml/ebml/EbmlCrc32.h,
+	  trunk/libebml/ebml/EbmlEndian.h, trunk/libebml/src/EbmlCrc32.cpp:
+	  libebml: handle the WORS_BIGENDIAN flag the same way as other UNIX
+	  libs (defined or not)
+
+2005-04-19 06:56  mosu
+
+	* trunk/libebml/make/linux/Makefile: Do not compile shared libs on
+	  Mac OS X due to how they should be handled there. If need arises
+	  we can always implement it properly. Patch by Shawn Holwegner
+	  <shawn () holwegner ! com>
+
+2005-04-16 11:18  mosu
+
+	* trunk/libebml/ChangeLog: Automatic ChangeLog update.
+
+2005-04-16 11:17  mosu
+
+	* trunk/libebml/debian/rules, trunk/libebml/make/linux/Makefile:
+	  Updated the Linux build system and added targets for installing
+	  only the static lib + headers. Updated the Debian package build
+	  script for that, too.
+
+2005-04-16 11:09  mosu
+
+	* trunk/libebml/debian/changelog: Updated the Debian packet's
+	  version number.
+
+2005-04-16 11:09  mosu
+
+	* trunk/libebml/ChangeLog: Automatic ChangeLog update.
+
+2005-04-14 15:19  mosu
+
+	* trunk/libebml/ebml/EbmlConfig.h, trunk/libebml/ebml/EbmlCrc32.h:
+	  Fixes for compilation with gcc 4 on 64 bit platforms (AMD64).
+	  Patch by Stefan Seyfried <seife () gmane0305 ! slipkontur ! de>
+
+2005-03-28 09:55  mosu
+
+	* trunk/libebml/ebml/EbmlBinary.h, trunk/libebml/src/EbmlBinary.cpp:
+	  Removed the unnecessary non-const comparison operator.
+
+2005-03-27 13:55  robux4
+
+	* trunk/libebml/ebml/EbmlBinary.h, trunk/libebml/src/EbmlBinary.cpp:
+	  libebml: allow comparison of const elements too
+
+2005-03-19 10:33  mosu
+
+	* trunk/libebml/make/linux: Ignore the shared lib and its links.
+
+2005-03-19 10:31  mosu
+
+	* trunk/libebml/make/linux/Makefile: Say something about 'lib' not
+	  being a valid target anymore. 'clean' should remove the .lo, too.
+
+2005-03-19 10:24  mosu
+
+	* trunk/libebml/make/linux/Makefile: Provide separate make targets
+	  for the static and the shared library.
+
+2005-03-19 10:15  mosu
+
+	* trunk/libebml/src/EbmlFloat.cpp: Ups...
+
+2005-03-19 10:13  mosu
+
+	* trunk/libebml/src/EbmlFloat.cpp: Compilation fix for newer gcc
+	  versions.
+
+2005-03-17 10:13  robux4
+
+	* trunk/libebml/make/vc7/lib/libebml.v71.vcproj: WinIOCallback is
+	  built by default on Windows
+
+2005-03-17 09:36  robux4
+
+	* trunk/libebml/src/EbmlCrc32.cpp,
+	  trunk/libmatroska/src/KaxTrackEntryData.cpp: some strings to
+	  watermark the code
+
+2005-03-17 09:14  robux4
+
+	* trunk/libebml/src/EbmlHead.cpp,
+	  trunk/libmatroska/src/KaxSegment.cpp: some strings to watermark
+	  the code
+
+2005-03-16 18:32  robux4
+
+	* trunk/libebml/make/vc7/lib/libebml.vcproj: libebml: WinIOCallback
+	  is compiled by default on Win32
... 32386 lines suppressed ...


-- 
asterisk-scf/release/matroska.git



More information about the asterisk-scf-commits mailing list