EbmlWriter.h 1.83 KB
Newer Older
John Koleszar's avatar
John Koleszar committed
1
2
3
4
5
6
7
8
9
/*
 *  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.
 */
10
11
#ifndef EBMLWRITER_HPP
#define EBMLWRITER_HPP
John Koleszar's avatar
John Koleszar committed
12
13
14
#include <stddef.h>
#include "vpx/vpx_integer.h"

John Koleszar's avatar
John Koleszar committed
15
16
17
18
19
20
/* note: you must define write and serialize functions as well as your own
 * EBML_GLOBAL
 *
 * These functions MUST be implemented
 */

John Koleszar's avatar
John Koleszar committed
21
typedef struct EbmlGlobal EbmlGlobal;
22
void  Ebml_Serialize(EbmlGlobal *glob, const void *, int, unsigned long);
23
24
void  Ebml_Write(EbmlGlobal *glob, const void *, unsigned long);

John Koleszar's avatar
John Koleszar committed
25
/*****/
26

John Koleszar's avatar
John Koleszar committed
27
void Ebml_WriteLen(EbmlGlobal *glob, int64_t val);
28
29
30
void Ebml_WriteString(EbmlGlobal *glob, const char *str);
void Ebml_WriteUTF8(EbmlGlobal *glob, const wchar_t *wstr);
void Ebml_WriteID(EbmlGlobal *glob, unsigned long class_id);
John Koleszar's avatar
John Koleszar committed
31
void Ebml_SerializeUnsigned64(EbmlGlobal *glob, unsigned long class_id, uint64_t ui);
32
33
34
void Ebml_SerializeUnsigned(EbmlGlobal *glob, unsigned long class_id, unsigned long ui);
void Ebml_SerializeBinary(EbmlGlobal *glob, unsigned long class_id, unsigned long ui);
void Ebml_SerializeFloat(EbmlGlobal *glob, unsigned long class_id, double d);
John Koleszar's avatar
John Koleszar committed
35
/* TODO make this more generic to signed */
36
37
38
39
40
void Ebml_WriteSigned16(EbmlGlobal *glob, short val);
void Ebml_SerializeString(EbmlGlobal *glob, unsigned long class_id, const char *s);
void Ebml_SerializeUTF8(EbmlGlobal *glob, unsigned long class_id, wchar_t *s);
void Ebml_SerializeData(EbmlGlobal *glob, unsigned long class_id, unsigned char *data, unsigned long data_length);
void Ebml_WriteVoid(EbmlGlobal *glob, unsigned long vSize);
John Koleszar's avatar
John Koleszar committed
41
/* TODO need date function */
42
#endif