Reduce overshoot in 1 pass rate control
[profile/ivi/libvpx.git] / 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 {
18     //init the datatype we're using for ebml output
19     unsigned char data[8192];
20     EbmlGlobal ebml;
21     ebml.buf = data;
22     ebml.offset = 0;
23     ebml.length = 8192;
24
25     writeHeader(&ebml);
26     {
27         EbmlLoc startSegment;
28         Ebml_StartSubElement(&ebml, &startSegment, Segment); //segment
29         {
30             //segment info
31             EbmlLoc startInfo;
32             Ebml_StartSubElement(&ebml, &startInfo, Info);
33             Ebml_SerializeString(&ebml, 0x4D80, "muxingAppLibMkv");
34             Ebml_SerializeString(&ebml, 0x5741, "writingAppLibMkv");
35             Ebml_EndSubElement(&ebml, &startInfo);
36         }
37
38         {
39             EbmlLoc trackStart;
40             Ebml_StartSubElement(&ebml, &trackStart, Tracks);
41             writeVideoTrack(&ebml, 1, 1, "V_MS/VFW/FOURCC", 320, 240, 29.97);
42             //writeAudioTrack(&ebml,2,1, "A_VORBIS", 32000, 1, NULL, 0);
43             Ebml_EndSubElement(&ebml, &trackStart);
44         }
45
46         {
47             EbmlLoc clusterStart;
48             Ebml_StartSubElement(&ebml, &clusterStart, Cluster); //cluster
49             Ebml_SerializeUnsigned(&ebml, Timecode, 0);
50
51             unsigned char someData[4] = {1, 2, 3, 4};
52             writeSimpleBlock(&ebml, 1, 0, 1, 0, 0, someData, 4);
53             Ebml_EndSubElement(&ebml, &clusterStart);
54         }    //end cluster
55         Ebml_EndSubElement(&ebml, &startSegment);
56     }
57
58     //dump ebml stuff to the file
59     FILE *file_out = fopen("test.mkv", "wb");
60     size_t bytesWritten = fwrite(data, 1, ebml.offset, file_out);
61     fclose(file_out);
62     return 0;
63 }