diff options
Diffstat (limited to 'libvpx/third_party/libmkv/testlibmkv.c')
-rw-r--r-- | libvpx/third_party/libmkv/testlibmkv.c | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/libvpx/third_party/libmkv/testlibmkv.c b/libvpx/third_party/libmkv/testlibmkv.c new file mode 100644 index 0000000..97bcf95 --- /dev/null +++ b/libvpx/third_party/libmkv/testlibmkv.c @@ -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; +}
\ No newline at end of file |