Index: source/libvpx/third_party/libmkv/testlibmkv.c |
=================================================================== |
--- source/libvpx/third_party/libmkv/testlibmkv.c (revision 0) |
+++ source/libvpx/third_party/libmkv/testlibmkv.c (revision 0) |
@@ -0,0 +1,62 @@ |
+// Copyright (c) 2010 The WebM project authors. All Rights Reserved. |
+// |
+// Use of this source code is governed by a BSD-style license |
+// that can be found in the LICENSE file in the root of the source |
+// tree. An additional intellectual property rights grant can be found |
+// in the file PATENTS. All contributing project authors may |
+// be found in the AUTHORS file in the root of the source tree. |
+ |
+ |
+ |
+#include "EbmlIDs.h" |
+#include "EbmlBufferWriter.h" |
+#include "WebMElement.h" |
+ |
+#include <stdio.h> |
+int main(int argc, char *argv[]) { |
+ // init the datatype we're using for ebml output |
+ unsigned char data[8192]; |
+ EbmlGlobal ebml; |
+ ebml.buf = data; |
+ ebml.offset = 0; |
+ ebml.length = 8192; |
+ |
+ writeHeader(&ebml); |
+ { |
+ EbmlLoc startSegment; |
+ Ebml_StartSubElement(&ebml, &startSegment, Segment); // segment |
+ { |
+ // segment info |
+ EbmlLoc startInfo; |
+ Ebml_StartSubElement(&ebml, &startInfo, Info); |
+ Ebml_SerializeString(&ebml, 0x4D80, "muxingAppLibMkv"); |
+ Ebml_SerializeString(&ebml, 0x5741, "writingAppLibMkv"); |
+ Ebml_EndSubElement(&ebml, &startInfo); |
+ } |
+ |
+ { |
+ EbmlLoc trackStart; |
+ Ebml_StartSubElement(&ebml, &trackStart, Tracks); |
+ writeVideoTrack(&ebml, 1, 1, "V_MS/VFW/FOURCC", 320, 240, 29.97); |
+ // writeAudioTrack(&ebml,2,1, "A_VORBIS", 32000, 1, NULL, 0); |
+ Ebml_EndSubElement(&ebml, &trackStart); |
+ } |
+ |
+ { |
+ EbmlLoc clusterStart; |
+ Ebml_StartSubElement(&ebml, &clusterStart, Cluster); // cluster |
+ Ebml_SerializeUnsigned(&ebml, Timecode, 0); |
+ |
+ unsigned char someData[4] = {1, 2, 3, 4}; |
+ writeSimpleBlock(&ebml, 1, 0, 1, 0, 0, someData, 4); |
+ Ebml_EndSubElement(&ebml, &clusterStart); |
+ } // end cluster |
+ Ebml_EndSubElement(&ebml, &startSegment); |
+ } |
+ |
+ // dump ebml stuff to the file |
+ FILE *file_out = fopen("test.mkv", "wb"); |
+ size_t bytesWritten = fwrite(data, 1, ebml.offset, file_out); |
+ fclose(file_out); |
+ return 0; |
+} |