Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(198)

Side by Side Diff: source/libvpx/third_party/libmkv/EbmlBufferWriter.c

Issue 341293003: libvpx: Pull from upstream (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/deps/third_party/libvpx/
Patch Set: Created 6 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
OLDNEW
(Empty)
1 // #include <strmif.h>
2 #include "EbmlBufferWriter.h"
3 #include "EbmlWriter.h"
4 // #include <cassert>
5 // #include <limits>
6 // #include <malloc.h> //_alloca
7 #include <stdlib.h>
8 #include <wchar.h>
9 #include <string.h>
10
11 void Ebml_Write(EbmlGlobal *glob, const void *buffer_in, unsigned long len) {
12 unsigned char *src = glob->buf;
13 src += glob->offset;
14 memcpy(src, buffer_in, len);
15 glob->offset += len;
16 }
17
18 static void _Serialize(EbmlGlobal *glob, const unsigned char *p, const unsigned char *q) {
19 while (q != p) {
20 --q;
21 memcpy(&(glob->buf[glob->offset]), q, 1);
22 glob->offset++;
23 }
24 }
25
26 void Ebml_Serialize(EbmlGlobal *glob, const void *buffer_in, unsigned long len) {
27 // assert(buf);
28
29 const unsigned char *const p = (const unsigned char *)(buffer_in);
30 const unsigned char *const q = p + len;
31
32 _Serialize(glob, p, q);
33 }
34
35
36 void Ebml_StartSubElement(EbmlGlobal *glob, EbmlLoc *ebmlLoc, unsigned long clas s_id) {
37 Ebml_WriteID(glob, class_id);
38 ebmlLoc->offset = glob->offset;
39 // todo this is always taking 8 bytes, this may need later optimization
40 unsigned long long unknownLen = 0x01FFFFFFFFFFFFFFLLU;
41 Ebml_Serialize(glob, (void *)&unknownLen, 8); // this is a key that says lengh t unknown
42 }
43
44 void Ebml_EndSubElement(EbmlGlobal *glob, EbmlLoc *ebmlLoc) {
45 unsigned long long size = glob->offset - ebmlLoc->offset - 8;
46 unsigned long long curOffset = glob->offset;
47 glob->offset = ebmlLoc->offset;
48 size |= 0x0100000000000000LLU;
49 Ebml_Serialize(glob, &size, 8);
50 glob->offset = curOffset;
51 }
52
OLDNEW
« no previous file with comments | « source/libvpx/third_party/libmkv/EbmlBufferWriter.h ('k') | source/libvpx/third_party/libmkv/EbmlIDs.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698