Upstream version 9.37.197.0
[platform/framework/web/crosswalk.git] / src / third_party / libvpx / source / libvpx / third_party / libmkv / testlibmkv.c
1 // Copyright (c) 2010 The WebM project authors. All Rights Reserved.
2 //
3 // Use of this source code is governed by a BSD-style license
4 // that can be found in the LICENSE file in the root of the source
5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS.  All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree.
8
9
10
11 #include "EbmlIDs.h"
12 #include "EbmlBufferWriter.h"
13 #include "WebMElement.h"
14
15 #include <stdio.h>
16 int main(int argc, char *argv[]) {
17   // init the datatype we're using for ebml output
18   unsigned char data[8192];
19   EbmlGlobal ebml;
20   ebml.buf = data;
21   ebml.offset = 0;
22   ebml.length = 8192;
23
24   writeHeader(&ebml);
25   {
26     EbmlLoc startSegment;
27     Ebml_StartSubElement(&ebml, &startSegment, Segment); // segment
28     {
29       // segment info
30       EbmlLoc startInfo;
31       Ebml_StartSubElement(&ebml, &startInfo, Info);
32       Ebml_SerializeString(&ebml, 0x4D80, "muxingAppLibMkv");
33       Ebml_SerializeString(&ebml, 0x5741, "writingAppLibMkv");
34       Ebml_EndSubElement(&ebml, &startInfo);
35     }
36
37     {
38       EbmlLoc trackStart;
39       Ebml_StartSubElement(&ebml, &trackStart, Tracks);
40       writeVideoTrack(&ebml, 1, 1, "V_MS/VFW/FOURCC", 320, 240, 29.97);
41       // writeAudioTrack(&ebml,2,1, "A_VORBIS", 32000, 1, NULL, 0);
42       Ebml_EndSubElement(&ebml, &trackStart);
43     }
44
45     {
46       EbmlLoc clusterStart;
47       Ebml_StartSubElement(&ebml, &clusterStart, Cluster); // cluster
48       Ebml_SerializeUnsigned(&ebml, Timecode, 0);
49
50       unsigned char someData[4] = {1, 2, 3, 4};
51       writeSimpleBlock(&ebml, 1, 0, 1, 0, 0, someData, 4);
52       Ebml_EndSubElement(&ebml, &clusterStart);
53     }    // end cluster
54     Ebml_EndSubElement(&ebml, &startSegment);
55   }
56
57   // dump ebml stuff to the file
58   FILE *file_out = fopen("test.mkv", "wb");
59   size_t bytesWritten = fwrite(data, 1, ebml.offset, file_out);
60   fclose(file_out);
61   return 0;
62 }