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

Side by Side Diff: source/libvpx/third_party/libwebm/mkvmuxerutil.hpp

Issue 1302353004: libvpx: Pull from upstream (Closed) Base URL: https://chromium.googlesource.com/chromium/deps/libvpx.git@master
Patch Set: Created 5 years, 3 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
OLDNEW
1 // Copyright (c) 2012 The WebM project authors. All Rights Reserved. 1 // Copyright (c) 2012 The WebM project authors. All Rights Reserved.
2 // 2 //
3 // Use of this source code is governed by a BSD-style license 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 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 5 // tree. An additional intellectual property rights grant can be found
6 // in the file PATENTS. All contributing project authors may 6 // in the file PATENTS. All contributing project authors may
7 // be found in the AUTHORS file in the root of the source tree. 7 // be found in the AUTHORS file in the root of the source tree.
8 8
9 #ifndef MKVMUXERUTIL_HPP 9 #ifndef MKVMUXERUTIL_HPP
10 #define MKVMUXERUTIL_HPP 10 #define MKVMUXERUTIL_HPP
11 11
12 #include "mkvmuxer.hpp"
12 #include "mkvmuxertypes.hpp" 13 #include "mkvmuxertypes.hpp"
13 14
14 namespace mkvmuxer { 15 namespace mkvmuxer {
15 16
16 class IMkvWriter; 17 class IMkvWriter;
17 18
18 const uint64 kEbmlUnknownValue = 0x01FFFFFFFFFFFFFFULL; 19 const uint64 kEbmlUnknownValue = 0x01FFFFFFFFFFFFFFULL;
19 const int64 kMaxBlockTimecode = 0x07FFFLL; 20 const int64 kMaxBlockTimecode = 0x07FFFLL;
20 21
21 // Writes out |value| in Big Endian order. Returns 0 on success. 22 // Writes out |value| in Big Endian order. Returns 0 on success.
22 int32 SerializeInt(IMkvWriter* writer, int64 value, int32 size); 23 int32 SerializeInt(IMkvWriter* writer, int64 value, int32 size);
23 24
24 // Returns the size in bytes of the element. 25 // Returns the size in bytes of the element.
25 int32 GetUIntSize(uint64 value); 26 int32 GetUIntSize(uint64 value);
27 int32 GetIntSize(int64 value);
26 int32 GetCodedUIntSize(uint64 value); 28 int32 GetCodedUIntSize(uint64 value);
27 uint64 EbmlMasterElementSize(uint64 type, uint64 value); 29 uint64 EbmlMasterElementSize(uint64 type, uint64 value);
28 uint64 EbmlElementSize(uint64 type, int64 value); 30 uint64 EbmlElementSize(uint64 type, int64 value);
29 uint64 EbmlElementSize(uint64 type, uint64 value); 31 uint64 EbmlElementSize(uint64 type, uint64 value);
30 uint64 EbmlElementSize(uint64 type, float value); 32 uint64 EbmlElementSize(uint64 type, float value);
31 uint64 EbmlElementSize(uint64 type, const char* value); 33 uint64 EbmlElementSize(uint64 type, const char* value);
32 uint64 EbmlElementSize(uint64 type, const uint8* value, uint64 size); 34 uint64 EbmlElementSize(uint64 type, const uint8* value, uint64 size);
33 uint64 EbmlDateElementSize(uint64 type, int64 value); 35 uint64 EbmlDateElementSize(uint64 type);
34 36
35 // Creates an EBML coded number from |value| and writes it out. The size of 37 // Creates an EBML coded number from |value| and writes it out. The size of
36 // the coded number is determined by the value of |value|. |value| must not 38 // the coded number is determined by the value of |value|. |value| must not
37 // be in a coded form. Returns 0 on success. 39 // be in a coded form. Returns 0 on success.
38 int32 WriteUInt(IMkvWriter* writer, uint64 value); 40 int32 WriteUInt(IMkvWriter* writer, uint64 value);
39 41
40 // Creates an EBML coded number from |value| and writes it out. The size of 42 // Creates an EBML coded number from |value| and writes it out. The size of
41 // the coded number is determined by the value of |size|. |value| must not 43 // the coded number is determined by the value of |size|. |value| must not
42 // be in a coded form. Returns 0 on success. 44 // be in a coded form. Returns 0 on success.
43 int32 WriteUIntSize(IMkvWriter* writer, uint64 value, int32 size); 45 int32 WriteUIntSize(IMkvWriter* writer, uint64 value, int32 size);
44 46
45 // Output an Mkv master element. Returns true if the element was written. 47 // Output an Mkv master element. Returns true if the element was written.
46 bool WriteEbmlMasterElement(IMkvWriter* writer, uint64 value, uint64 size); 48 bool WriteEbmlMasterElement(IMkvWriter* writer, uint64 value, uint64 size);
47 49
48 // Outputs an Mkv ID, calls |IMkvWriter::ElementStartNotify|, and passes the 50 // Outputs an Mkv ID, calls |IMkvWriter::ElementStartNotify|, and passes the
49 // ID to |SerializeInt|. Returns 0 on success. 51 // ID to |SerializeInt|. Returns 0 on success.
50 int32 WriteID(IMkvWriter* writer, uint64 type); 52 int32 WriteID(IMkvWriter* writer, uint64 type);
51 53
52 // Output an Mkv non-master element. Returns true if the element was written. 54 // Output an Mkv non-master element. Returns true if the element was written.
53 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, uint64 value); 55 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, uint64 value);
56 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, int64 value);
54 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, float value); 57 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, float value);
55 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, const char* value); 58 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, const char* value);
56 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, const uint8* value, 59 bool WriteEbmlElement(IMkvWriter* writer, uint64 type, const uint8* value,
57 uint64 size); 60 uint64 size);
58 bool WriteEbmlDateElement(IMkvWriter* writer, uint64 type, int64 value); 61 bool WriteEbmlDateElement(IMkvWriter* writer, uint64 type, int64 value);
59 62
60 // Output an Mkv Simple Block. 63 // Output a Mkv Frame. It decides the correct element to write (Block vs
61 // Inputs: 64 // SimpleBlock) based on the parameters of the Frame.
62 // data: Pointer to the data. 65 uint64 WriteFrame(IMkvWriter* writer, const Frame* const frame,
63 // length: Length of the data. 66 Cluster* cluster);
64 // track_number: Track to add the data to. Value returned by Add track
65 // functions. Only values in the range [1, 126] are
66 // permitted.
67 // timecode: Relative timecode of the Block. Only values in the
68 // range [0, 2^15) are permitted.
69 // is_key: Non-zero value specifies that frame is a key frame.
70 uint64 WriteSimpleBlock(IMkvWriter* writer, const uint8* data, uint64 length,
71 uint64 track_number, int64 timecode, uint64 is_key);
72
73 // Output a metadata keyframe, using a Block Group element.
74 // Inputs:
75 // data: Pointer to the (meta)data.
76 // length: Length of the (meta)data.
77 // track_number: Track to add the data to. Value returned by Add track
78 // functions. Only values in the range [1, 126] are
79 // permitted.
80 // timecode Timecode of frame, relative to cluster timecode. Only
81 // values in the range [0, 2^15) are permitted.
82 // duration_timecode Duration of frame, using timecode units.
83 uint64 WriteMetadataBlock(IMkvWriter* writer, const uint8* data, uint64 length,
84 uint64 track_number, int64 timecode,
85 uint64 duration_timecode);
86
87 // Output an Mkv Block with BlockAdditional data.
88 // Inputs:
89 // data: Pointer to the data.
90 // length: Length of the data.
91 // additional: Pointer to the additional data
92 // additional_length: Length of the additional data.
93 // add_id: Value of BlockAddID element.
94 // track_number: Track to add the data to. Value returned by Add track
95 // functions. Only values in the range [1, 126] are
96 // permitted.
97 // timecode: Relative timecode of the Block. Only values in the
98 // range [0, 2^15) are permitted.
99 // is_key: Non-zero value specifies that frame is a key frame.
100 uint64 WriteBlockWithAdditional(IMkvWriter* writer, const uint8* data,
101 uint64 length, const uint8* additional,
102 uint64 additional_length, uint64 add_id,
103 uint64 track_number, int64 timecode,
104 uint64 is_key);
105
106 // Output an Mkv Block with a DiscardPadding element.
107 // Inputs:
108 // data: Pointer to the data.
109 // length: Length of the data.
110 // discard_padding: DiscardPadding value.
111 // track_number: Track to add the data to. Value returned by Add track
112 // functions. Only values in the range [1, 126] are
113 // permitted.
114 // timecode: Relative timecode of the Block. Only values in the
115 // range [0, 2^15) are permitted.
116 // is_key: Non-zero value specifies that frame is a key frame.
117 uint64 WriteBlockWithDiscardPadding(IMkvWriter* writer, const uint8* data,
118 uint64 length, int64 discard_padding,
119 uint64 track_number, int64 timecode,
120 uint64 is_key);
121 67
122 // Output a void element. |size| must be the entire size in bytes that will be 68 // Output a void element. |size| must be the entire size in bytes that will be
123 // void. The function will calculate the size of the void header and subtract 69 // void. The function will calculate the size of the void header and subtract
124 // it from |size|. 70 // it from |size|.
125 uint64 WriteVoidElement(IMkvWriter* writer, uint64 size); 71 uint64 WriteVoidElement(IMkvWriter* writer, uint64 size);
126 72
127 // Returns the version number of the muxer in |major|, |minor|, |build|, 73 // Returns the version number of the muxer in |major|, |minor|, |build|,
128 // and |revision|. 74 // and |revision|.
129 void GetVersion(int32* major, int32* minor, int32* build, int32* revision); 75 void GetVersion(int32* major, int32* minor, int32* build, int32* revision);
130 76
131 // Returns a random number to be used for UID, using |seed| to seed 77 // Returns a random number to be used for UID, using |seed| to seed
132 // the random-number generator (see POSIX rand_r() for semantics). 78 // the random-number generator (see POSIX rand_r() for semantics).
133 uint64 MakeUID(unsigned int* seed); 79 uint64 MakeUID(unsigned int* seed);
134 80
135 } // end namespace mkvmuxer 81 } // end namespace mkvmuxer
136 82
137 #endif // MKVMUXERUTIL_HPP 83 #endif // MKVMUXERUTIL_HPP
OLDNEW
« no previous file with comments | « source/libvpx/third_party/libwebm/mkvmuxer.cpp ('k') | source/libvpx/third_party/libwebm/mkvmuxerutil.cpp » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698