| 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;
|
| +}
|
|
|