We truncated the diff of some files because they were too big.
If you want to see the full diff for every file, click here.
Changes of Revision 35
makemkv.changes
Changed
x
1
2
-------------------------------------------------------------------
3
+Fri Oct 28 22:22:00 UTC 2016 - neutrino8@gmail.com
4
+
5
+- Update to version 1.10.2
6
+
7
+-------------------------------------------------------------------
8
Tue Sep 22 13:12:21 UTC 2015 - olaf@aepfle.de
9
10
- update to 1.9.5
11
makemkv.spec
Changed
23
1
2
3
Name: makemkv
4
Summary: DVD and BlueRay Ripping tool
5
-Version: 1.9.5
6
+Version: 1.10.2
7
Release: 0.pm.1
8
License: see eula_en_linux.txt
9
Group: Productivity/Multimedia/Video/Editors and Convertors
10
11
12
%build
13
%configure
14
-%{__make} %{?jobs:-j%{jobs}}
15
+%{__make} %{?_smp_mflags}
16
17
%install
18
-%makeinstall
19
+%make_install
20
%suse_update_desktop_file -c makemkv makemkv "makemkv" makemkv makemkv.png AudioVideo AudioVideoEditing
21
tar xaf %{SOURCE1}
22
%ifarch x86_64
23
makemkv-bin-1.9.5.tar.xz/Makefile -> makemkv-bin-1.10.2.tar.xz/Makefile
Changed
15
1
2
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/flac.mmcp.xml
3
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/wdtv.mmcp.xml
4
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/aac-stereo.mmcp.xml
5
+ install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/blues.jar
6
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_deu.mo.gz
7
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_jpn.mo.gz
8
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_spa.mo.gz
9
10
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_pol.mo.gz
11
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_dan.mo.gz
12
install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_fra.mo.gz
13
+ install -m 644 -t $(DESTDIR)$(PREFIX)/share/MakeMKV src/share/makemkv_per.mo.gz
14
15
makemkv-bin-1.9.5.tar.xz/bin/amd64/makemkvcon -> makemkv-bin-1.10.2.tar.xz/bin/amd64/makemkvcon
Changed
makemkv-bin-1.9.5.tar.xz/bin/i386/makemkvcon -> makemkv-bin-1.10.2.tar.xz/bin/i386/makemkvcon
Changed
makemkv-bin-1.9.5.tar.xz/bin/i386/mmdtsdec -> makemkv-bin-1.10.2.tar.xz/bin/i386/mmdtsdec
Changed
makemkv-bin-1.9.5.tar.xz/src/eula_en_linux.txt -> makemkv-bin-1.10.2.tar.xz/src/eula_en_linux.txt
Changed
201
1
2
-Copyright (C) 2007-2015 GuinpinSoft inc
3
+Copyright (C) 2007-2016 GuinpinSoft inc
4
5
IMPORTANT NOTE
6
7
8
Any variation to the terms of this Agreement shall only be valid if made in writing by GuinpinSoft inc.
9
10
Appendix A
11
-This installation package does not contain any Open-source Software components.
12
+List of Open-source Software components
13
+
14
+The java application in file blues.jar is licensed under GNU GPL. All other files and files without explicit license information are licensed under terms of this Agreement.
15
16
Appendix B
17
-There are no open-source licenses applicable to this package.
18
+Full text of open-source licenses:
19
+
20
+-------------------------------------------------------------------------------
21
+ GNU GENERAL PUBLIC LICENSE
22
+ Version 2, June 1991
23
+
24
+ Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
25
+ 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
26
+ Everyone is permitted to copy and distribute verbatim copies
27
+ of this license document, but changing it is not allowed.
28
+
29
+ Preamble
30
+
31
+ The licenses for most software are designed to take away your
32
+freedom to share and change it. By contrast, the GNU General Public
33
+License is intended to guarantee your freedom to share and change free
34
+software--to make sure the software is free for all its users. This
35
+General Public License applies to most of the Free Software
36
+Foundation's software and to any other program whose authors commit to
37
+using it. (Some other Free Software Foundation software is covered by
38
+the GNU Lesser General Public License instead.) You can apply it to
39
+your programs, too.
40
+
41
+ When we speak of free software, we are referring to freedom, not
42
+price. Our General Public Licenses are designed to make sure that you
43
+have the freedom to distribute copies of free software (and charge for
44
+this service if you wish), that you receive source code or can get it
45
+if you want it, that you can change the software or use pieces of it
46
+in new free programs; and that you know you can do these things.
47
+
48
+ To protect your rights, we need to make restrictions that forbid
49
+anyone to deny you these rights or to ask you to surrender the rights.
50
+These restrictions translate to certain responsibilities for you if you
51
+distribute copies of the software, or if you modify it.
52
+
53
+ For example, if you distribute copies of such a program, whether
54
+gratis or for a fee, you must give the recipients all the rights that
55
+you have. You must make sure that they, too, receive or can get the
56
+source code. And you must show them these terms so they know their
57
+rights.
58
+
59
+ We protect your rights with two steps: (1) copyright the software, and
60
+(2) offer you this license which gives you legal permission to copy,
61
+distribute and/or modify the software.
62
+
63
+ Also, for each author's protection and ours, we want to make certain
64
+that everyone understands that there is no warranty for this free
65
+software. If the software is modified by someone else and passed on, we
66
+want its recipients to know that what they have is not the original, so
67
+that any problems introduced by others will not reflect on the original
68
+authors' reputations.
69
+
70
+ Finally, any free program is threatened constantly by software
71
+patents. We wish to avoid the danger that redistributors of a free
72
+program will individually obtain patent licenses, in effect making the
73
+program proprietary. To prevent this, we have made it clear that any
74
+patent must be licensed for everyone's free use or not licensed at all.
75
+
76
+ The precise terms and conditions for copying, distribution and
77
+modification follow.
78
+
79
+ GNU GENERAL PUBLIC LICENSE
80
+ TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
81
+
82
+ 0. This License applies to any program or other work which contains
83
+a notice placed by the copyright holder saying it may be distributed
84
+under the terms of this General Public License. The "Program", below,
85
+refers to any such program or work, and a "work based on the Program"
86
+means either the Program or any derivative work under copyright law:
87
+that is to say, a work containing the Program or a portion of it,
88
+either verbatim or with modifications and/or translated into another
89
+language. (Hereinafter, translation is included without limitation in
90
+the term "modification".) Each licensee is addressed as "you".
91
+
92
+Activities other than copying, distribution and modification are not
93
+covered by this License; they are outside its scope. The act of
94
+running the Program is not restricted, and the output from the Program
95
+is covered only if its contents constitute a work based on the
96
+Program (independent of having been made by running the Program).
97
+Whether that is true depends on what the Program does.
98
+
99
+ 1. You may copy and distribute verbatim copies of the Program's
100
+source code as you receive it, in any medium, provided that you
101
+conspicuously and appropriately publish on each copy an appropriate
102
+copyright notice and disclaimer of warranty; keep intact all the
103
+notices that refer to this License and to the absence of any warranty;
104
+and give any other recipients of the Program a copy of this License
105
+along with the Program.
106
+
107
+You may charge a fee for the physical act of transferring a copy, and
108
+you may at your option offer warranty protection in exchange for a fee.
109
+
110
+ 2. You may modify your copy or copies of the Program or any portion
111
+of it, thus forming a work based on the Program, and copy and
112
+distribute such modifications or work under the terms of Section 1
113
+above, provided that you also meet all of these conditions:
114
+
115
+ a) You must cause the modified files to carry prominent notices
116
+ stating that you changed the files and the date of any change.
117
+
118
+ b) You must cause any work that you distribute or publish, that in
119
+ whole or in part contains or is derived from the Program or any
120
+ part thereof, to be licensed as a whole at no charge to all third
121
+ parties under the terms of this License.
122
+
123
+ c) If the modified program normally reads commands interactively
124
+ when run, you must cause it, when started running for such
125
+ interactive use in the most ordinary way, to print or display an
126
+ announcement including an appropriate copyright notice and a
127
+ notice that there is no warranty (or else, saying that you provide
128
+ a warranty) and that users may redistribute the program under
129
+ these conditions, and telling the user how to view a copy of this
130
+ License. (Exception: if the Program itself is interactive but
131
+ does not normally print such an announcement, your work based on
132
+ the Program is not required to print an announcement.)
133
+
134
+These requirements apply to the modified work as a whole. If
135
+identifiable sections of that work are not derived from the Program,
136
+and can be reasonably considered independent and separate works in
137
+themselves, then this License, and its terms, do not apply to those
138
+sections when you distribute them as separate works. But when you
139
+distribute the same sections as part of a whole which is a work based
140
+on the Program, the distribution of the whole must be on the terms of
141
+this License, whose permissions for other licensees extend to the
142
+entire whole, and thus to each and every part regardless of who wrote it.
143
+
144
+Thus, it is not the intent of this section to claim rights or contest
145
+your rights to work written entirely by you; rather, the intent is to
146
+exercise the right to control the distribution of derivative or
147
+collective works based on the Program.
148
+
149
+In addition, mere aggregation of another work not based on the Program
150
+with the Program (or with a work based on the Program) on a volume of
151
+a storage or distribution medium does not bring the other work under
152
+the scope of this License.
153
+
154
+ 3. You may copy and distribute the Program (or a work based on it,
155
+under Section 2) in object code or executable form under the terms of
156
+Sections 1 and 2 above provided that you also do one of the following:
157
+
158
+ a) Accompany it with the complete corresponding machine-readable
159
+ source code, which must be distributed under the terms of Sections
160
+ 1 and 2 above on a medium customarily used for software interchange; or,
161
+
162
+ b) Accompany it with a written offer, valid for at least three
163
+ years, to give any third party, for a charge no more than your
164
+ cost of physically performing source distribution, a complete
165
+ machine-readable copy of the corresponding source code, to be
166
+ distributed under the terms of Sections 1 and 2 above on a medium
167
+ customarily used for software interchange; or,
168
+
169
+ c) Accompany it with the information you received as to the offer
170
+ to distribute corresponding source code. (This alternative is
171
+ allowed only for noncommercial distribution and only if you
172
+ received the program in object code or executable form with such
173
+ an offer, in accord with Subsection b above.)
174
+
175
+The source code for a work means the preferred form of the work for
176
+making modifications to it. For an executable work, complete source
177
+code means all the source code for all modules it contains, plus any
178
+associated interface definition files, plus the scripts used to
179
+control compilation and installation of the executable. However, as a
180
+special exception, the source code distributed need not include
181
+anything that is normally distributed (in either source or binary
182
+form) with the major components (compiler, kernel, and so on) of the
183
+operating system on which the executable runs, unless that component
184
+itself accompanies the executable.
185
+
186
+If distribution of executable or object code is made by offering
187
+access to copy from a designated place, then offering equivalent
188
+access to copy the source code from the same place counts as
189
+distribution of the source code, even though third parties are not
190
+compelled to copy the source along with the object code.
191
+
192
+ 4. You may not copy, modify, sublicense, or distribute the Program
193
+except as expressly provided under this License. Any attempt
194
+otherwise to copy, modify, sublicense or distribute the Program is
195
+void, and will automatically terminate your rights under this License.
196
+However, parties who have received copies, or rights, from you under
197
+this License will not have their licenses terminated so long as such
198
+parties remain in full compliance.
199
+
200
+ 5. You are not required to accept this License, since you have not
201
makemkv-bin-1.9.5.tar.xz/src/share/aac-stereo.mmcp.xml -> makemkv-bin-1.10.2.tar.xz/src/share/aac-stereo.mmcp.xml
Changed
25
1
2
audioMix="stereo16">
3
</output>
4
</trackSettings>
5
+ <trackSettings input="EAC3-core-stereo">
6
+ <output outputSettingsName="copy"
7
+ defaultSelection="$app_DefaultSelectionString,-sel:all">
8
+ </output>
9
+ <output outputSettingsName="aac"
10
+ defaultSelection="$app_DefaultSelectionString">
11
+ </output>
12
+ </trackSettings>
13
+ <trackSettings input="EAC3-core-multi">
14
+ <output outputSettingsName="copy"
15
+ defaultSelection="$app_DefaultSelectionString,-sel:all">
16
+ </output>
17
+ <output outputSettingsName="aac"
18
+ defaultSelection="$app_DefaultSelectionString"
19
+ audioMix="stereo16">
20
+ </output>
21
+ </trackSettings>
22
<trackSettings input="EAC3-stereo">
23
<output outputSettingsName="copy"
24
defaultSelection="$app_DefaultSelectionString,-sel:all">
25
makemkv-bin-1.10.2.tar.xz/src/share/blues.jar
Added
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_chi.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_chi.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_dan.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_dan.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_deu.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_deu.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_dut.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_dut.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_fra.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_fra.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_ita.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_ita.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_jpn.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_jpn.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_nor.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_nor.mo.gz
Changed
makemkv-bin-1.10.2.tar.xz/src/share/makemkv_per.mo.gz
Added
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_pol.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_pol.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_ptb.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_ptb.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_spa.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_spa.mo.gz
Changed
makemkv-bin-1.9.5.tar.xz/src/share/makemkv_swe.mo.gz -> makemkv-bin-1.10.2.tar.xz/src/share/makemkv_swe.mo.gz
Changed
makemkv-oss-1.9.5.tar.xz/License.txt -> makemkv-oss-1.10.2.tar.xz/License.txt
Changed
7
1
2
-Copyright (C) 2007-2015 GuinpinSoft inc
3
+Copyright (C) 2007-2016 GuinpinSoft inc
4
5
IMPORTANT NOTE
6
7
makemkv-oss-1.9.5.tar.xz/libabi/inc/lgpl/expatabi.h -> makemkv-oss-1.10.2.tar.xz/libabi/inc/lgpl/expatabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/inc/lgpl/httpabi.h -> makemkv-oss-1.10.2.tar.xz/libabi/inc/lgpl/httpabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/inc/lgpl/libmabi.h -> makemkv-oss-1.10.2.tar.xz/libabi/inc/lgpl/libmabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/inc/lgpl/osslabi.h -> makemkv-oss-1.10.2.tar.xz/libabi/inc/lgpl/osslabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/inc/lgpl/sysabi.h -> makemkv-oss-1.10.2.tar.xz/libabi/inc/lgpl/sysabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/inc/lgpl/zlibabi.h -> makemkv-oss-1.10.2.tar.xz/libabi/inc/lgpl/zlibabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/httplinux.cpp -> makemkv-oss-1.10.2.tar.xz/libabi/src/httplinux.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/httpmac.cpp -> makemkv-oss-1.10.2.tar.xz/libabi/src/httpmac.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/httpwin.cpp -> makemkv-oss-1.10.2.tar.xz/libabi/src/httpwin.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/libm.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/libm.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/ossl_aes.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/ossl_aes.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/ossl_ec.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/ossl_ec.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/ossl_sha.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/ossl_sha.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/sys_linux.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/sys_linux.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/xpat.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/xpat.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libabi/src/zlib.c -> makemkv-oss-1.10.2.tar.xz/libabi/src/zlib.c
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/inc/driveio/driveio.h -> makemkv-oss-1.10.2.tar.xz/libdriveio/inc/driveio/driveio.h
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/inc/driveio/scsicmd.h -> makemkv-oss-1.10.2.tar.xz/libdriveio/inc/driveio/scsicmd.h
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/inc/lgpl/tcpip.h -> makemkv-oss-1.10.2.tar.xz/libdriveio/inc/lgpl/tcpip.h
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/drives/drive.h -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/drives/drive.h
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/drives/pioneer.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/drives/pioneer.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/drives/xboxhddvd.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/drives/xboxhddvd.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/infolist.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/infolist.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/scsihlp.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/scsihlp.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/scsihlp.h -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/scsihlp.h
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/stdquery.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/stdquery.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/tipclient.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/tipclient.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/tipcommon.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/tipcommon.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/tipcommon.h -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/tipcommon.h
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libdriveio/src/tipserver.cpp -> makemkv-oss-1.10.2.tar.xz/libdriveio/src/tipserver.cpp
Changed
10
1
2
/*
3
libDriveIo - MMC drive interrogation library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libdriveio@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libdriveio@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/Debug.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/Debug.h
Changed
184
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: Debug.h 639 2004-07-09 20:59:14Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id: Debug.h 639 2004-07-09 20:59:14Z mosu $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
#ifndef LIBEBML_DEBUG_H
37
#define LIBEBML_DEBUG_H
38
39
#if defined(LIBEBML_DEBUG_TRACE)
40
// define the working debugging class
41
42
-class EBML_DLL_API ADbg
43
+class EBML_DLL_API ADbg
44
{
45
public:
46
- ADbg(int level = 0);
47
- virtual ~ADbg();
48
+ ADbg(int level = 0);
49
+ virtual ~ADbg();
50
51
- /// \todo make an inline function to test the level first and the process
52
- int OutPut(int level, const char * format,...) const;
53
+ /// \todo make an inline function to test the level first and the process
54
+ int OutPut(int level, const char * format,...) const;
55
56
- int OutPut(const char * format,...) const;
57
+ int OutPut(const char * format,...) const;
58
59
- inline int setLevel(const int level) {
60
- return my_level = level;
61
- }
62
+ inline int setLevel(const int level) {
63
+ return my_level = level;
64
+ }
65
66
- inline bool setIncludeTime(const bool included = true) {
67
- return my_time_included = included;
68
- }
69
+ inline bool setIncludeTime(const bool included = true) {
70
+ return my_time_included = included;
71
+ }
72
73
- bool setDebugFile(const char * NewFilename);
74
- bool unsetDebugFile();
75
+ bool setDebugFile(const char * NewFilename);
76
+ bool unsetDebugFile();
77
78
- inline bool setUseFile(const bool usefile = true) {
79
- return my_use_file = usefile;
80
- }
81
+ inline bool setUseFile(const bool usefile = true) {
82
+ return my_use_file = usefile;
83
+ }
84
85
- inline const char * setPrefix(const char * string) {
86
- return strncpy(prefix, string, MAX_PREFIX_LENGTH);
87
- }
88
+ inline const char * setPrefix(const char * string) {
89
+ return strncpy(prefix, string, MAX_PREFIX_LENGTH);
90
+ }
91
92
private:
93
- int my_level;
94
- bool my_time_included;
95
- bool my_use_file;
96
- bool my_debug_output;
97
+ int my_level;
98
+ bool my_time_included;
99
+ bool my_use_file;
100
+ bool my_debug_output;
101
102
- int _OutPut(const char * format,va_list params) const;
103
+ int _OutPut(const char * format,va_list params) const;
104
105
- char prefix[MAX_PREFIX_LENGTH];
106
+ char prefix[MAX_PREFIX_LENGTH];
107
108
#ifdef WIN32
109
- HANDLE hFile;
110
+ HANDLE hFile;
111
#else
112
- FILE *hFile;
113
+ FILE *hFile;
114
#endif // WIN32
115
};
116
117
118
class EBML_DLL_API ADbg
119
{
120
public:
121
- ADbg(int /* level */ = 0){}
122
- virtual ~ADbg() {}
123
+ ADbg(int /* level */ = 0){}
124
+ virtual ~ADbg() {}
125
126
- inline int OutPut(int /* level */, const char * /* format */,...) const {
127
- return 0;
128
- }
129
+ inline int OutPut(int /* level */, const char * /* format */,...) const {
130
+ return 0;
131
+ }
132
133
- inline int OutPut(const char * /* format */,...) const {
134
- return 0;
135
- }
136
+ inline int OutPut(const char * /* format */,...) const {
137
+ return 0;
138
+ }
139
140
- inline int setLevel(const int level) {
141
- return level;
142
- }
143
+ inline int setLevel(const int level) {
144
+ return level;
145
+ }
146
147
- inline bool setIncludeTime(const bool /* included */ = true) {
148
- return true;
149
- }
150
+ inline bool setIncludeTime(const bool /* included */ = true) {
151
+ return true;
152
+ }
153
154
- inline bool setDebugFile(const char * /* NewFilename */) {
155
- return true;
156
- }
157
+ inline bool setDebugFile(const char * /* NewFilename */) {
158
+ return true;
159
+ }
160
161
- inline bool unsetDebugFile() {
162
- return true;
163
- }
164
+ inline bool unsetDebugFile() {
165
+ return true;
166
+ }
167
168
- inline bool setUseFile(const bool /* usefile */ = true) {
169
- return true;
170
- }
171
+ inline bool setUseFile(const bool /* usefile */ = true) {
172
+ return true;
173
+ }
174
175
- inline const char * setPrefix(const char * string) {
176
- return string;
177
- }
178
+ inline const char * setPrefix(const char * string) {
179
+ return string;
180
+ }
181
};
182
183
#endif // defined(LIBEBML_DEBUG_TRACE)
184
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlBinary.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlBinary.h
Changed
129
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Julien Coloos <suiryc @ users.sf.net>
31
+ \file
32
+ \version \$Id$
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Julien Coloos <suiryc @ users.sf.net>
35
*/
36
#ifndef LIBEBML_BINARY_H
37
#define LIBEBML_BINARY_H
38
39
\class EbmlBinary
40
\brief Handle all operations on an EBML element that contains "unknown" binary data
41
42
- \todo handle fix sized elements (like UID of CodecID)
43
+ \todo handle fix sized elements (like UID of CodecID)
44
*/
45
class EBML_DLL_API EbmlBinary : public EbmlElement {
46
- public:
47
- EbmlBinary();
48
- EbmlBinary(const EbmlBinary & ElementToClone);
49
- virtual ~EbmlBinary(void);
50
-
51
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() < 0x7FFFFFFF;} // we don't mind about what's inside
52
-
53
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
54
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
55
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
56
-
57
- void SetBuffer(const binary *Buffer, const uint32 BufferSize) {
58
- Data = (binary *) Buffer;
59
- SetSize_(BufferSize);
60
- SetValueIsSet();
61
- }
62
-
63
- binary *GetBuffer() const {return Data;}
64
-
65
- void CopyBuffer(const binary *Buffer, size_t BufferSize) {
66
- if (Data != NULL)
67
- free(Data);
68
- Data = (binary *)malloc(BufferSize * sizeof(binary));
69
- memcpy(Data, Buffer, BufferSize);
70
- SetSize_(BufferSize);
71
- SetValueIsSet();
72
- }
73
-
74
- operator const binary &() const;
75
-
76
- bool IsDefaultValue() const {
77
- return false;
78
- }
79
-
80
- bool operator==(const EbmlBinary & ElementToCompare) const;
81
+ public:
82
+ EbmlBinary();
83
+ EbmlBinary(const EbmlBinary & ElementToClone);
84
+ virtual ~EbmlBinary(void);
85
+
86
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() < 0x7FFFFFFF;} // we don't mind about what's inside
87
+
88
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
89
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
90
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
91
+
92
+ void SetBuffer(const binary *Buffer, const uint32 BufferSize) {
93
+ Data = (binary *) Buffer;
94
+ SetSize_(BufferSize);
95
+ SetValueIsSet();
96
+ }
97
+
98
+ binary *GetBuffer() const {return Data;}
99
+
100
+ void CopyBuffer(const binary *Buffer, const uint32 BufferSize) {
101
+ if (Data != NULL)
102
+ free(Data);
103
+ Data = (binary *)malloc(BufferSize * sizeof(binary));
104
+ memcpy(Data, Buffer, BufferSize);
105
+ SetSize_(BufferSize);
106
+ SetValueIsSet();
107
+ }
108
+
109
+ operator const binary &() const;
110
+
111
+ bool IsDefaultValue() const {
112
+ return false;
113
+ }
114
+
115
+ bool operator==(const EbmlBinary & ElementToCompare) const;
116
117
#if defined(EBML_STRICT_API)
118
- private:
119
+ private:
120
#else
121
- protected:
122
+ protected:
123
#endif
124
- binary *Data; // the binary data inside the element
125
+ binary *Data; // the binary data inside the element
126
};
127
128
END_LIBEBML_NAMESPACE
129
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlConfig.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlConfig.h
Changed
61
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlConfig.h 1241 2006-01-25 00:59:45Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id: EbmlConfig.h 1241 2006-01-25 00:59:45Z robux4 $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
37
#ifndef LIBEBML_CONFIG_H
38
#define LIBEBML_CONFIG_H
39
40
+#ifdef HAVE_CONFIG_H
41
+#include "config.h"
42
+#endif
43
+
44
#if defined(__linux__)
45
#include <endian.h>
46
#if __BYTE_ORDER == __LITTLE_ENDIAN
47
48
#define LIBEBML_DEBUG
49
#endif
50
51
+#ifdef HAVE_WINAPIFAMILY_H
52
+# include <winapifamily.h>
53
+# if !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
54
+# undef LIBEBML_DEBUG
55
+# endif
56
+#endif
57
+
58
// For compilers that don't define __TIMESTAMP__ (e.g. gcc 2.95, gcc 3.2)
59
#ifndef __TIMESTAMP__
60
#define __TIMESTAMP__ __DATE__ " " __TIME__
61
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlContexts.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlContexts.h
Changed
49
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlContexts.h 736 2004-08-28 14:05:09Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlContexts.h 736 2004-08-28 14:05:09Z robux4 $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_CONTEXTS_H
35
#define LIBEBML_CONTEXTS_H
36
37
extern const EbmlSemanticContext EBML_DLL_API EDocTypeReadVersion_Context;
38
39
#define Context_EbmlHead EbmlHead_Context
40
-
41
+
42
// global elements
43
extern const EbmlSemanticContext EBML_DLL_API & GetEbmlGlobal_Context();
44
-
45
+
46
END_LIBEBML_NAMESPACE
47
48
#endif // LIBEBML_CONTEXTS_H
49
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlCrc32.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlCrc32.h
Changed
187
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Jory Stone <jcsston @ toughguy.net>
31
+ \file
32
+ \version \$Id$
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Jory Stone <jcsston @ toughguy.net>
35
*/
36
#ifndef LIBEBML_CRC32_H
37
#define LIBEBML_CRC32_H
38
39
START_LIBEBML_NAMESPACE
40
41
DECLARE_EBML_BINARY(EbmlCrc32)
42
- public:
43
- EbmlCrc32(const EbmlCrc32 & ElementToClone);
44
- virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() == 4);}
45
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
46
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
47
-// filepos_t UpdateSize(bool bWithDefault = false);
48
-
49
- bool IsDefaultValue() const {
50
- return false;
51
- }
52
-
53
- void AddElementCRC32(EbmlElement &ElementToCRC);
54
- bool CheckElementCRC32(EbmlElement &ElementToCRC);
55
-
56
- /*!
57
- Use this to quickly check a CRC32 with some data
58
- \return True if inputCRC matches CRC32 generated from input data
59
- */
60
- static bool CheckCRC(uint32 inputCRC, const binary *input, uint32 length);
61
- /*!
62
- Calls Update() and Finalize(), use to create a CRC32 in one go
63
- */
64
- void FillCRC32(const binary *input, uint32 length);
65
- /*!
66
- Add data to the CRC table, in other words process some data bit by bit
67
- */
68
- void Update(const binary *input, uint32 length);
69
- /*!
70
- Use this with Update() to Finalize() or Complete the CRC32
71
- */
72
- void Finalize();
73
- /*!
74
- Returns a uint32 that has the value of the CRC32
75
- */
76
- uint32 GetCrc32() const {
77
- return m_crc_final;
78
- };
79
-
80
- void ForceCrc32(uint32 NewValue) { m_crc_final = NewValue; SetValueIsSet();}
81
+ public:
82
+ EbmlCrc32(const EbmlCrc32 & ElementToClone);
83
+ virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() == 4);}
84
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
85
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
86
+// filepos_t UpdateSize(bool bWithDefault = false);
87
+
88
+ bool IsDefaultValue() const {
89
+ return false;
90
+ }
91
+
92
+ void AddElementCRC32(EbmlElement &ElementToCRC);
93
+ bool CheckElementCRC32(EbmlElement &ElementToCRC);
94
+
95
+ /*!
96
+ Use this to quickly check a CRC32 with some data
97
+ \return True if inputCRC matches CRC32 generated from input data
98
+ */
99
+ static bool CheckCRC(uint32 inputCRC, const binary *input, uint32 length);
100
+ /*!
101
+ Calls Update() and Finalize(), use to create a CRC32 in one go
102
+ */
103
+ void FillCRC32(const binary *input, uint32 length);
104
+ /*!
105
+ Add data to the CRC table, in other words process some data bit by bit
106
+ */
107
+ void Update(const binary *input, uint32 length);
108
+ /*!
109
+ Use this with Update() to Finalize() or Complete the CRC32
110
+ */
111
+ void Finalize();
112
+ /*!
113
+ Returns a uint32 that has the value of the CRC32
114
+ */
115
+ uint32 GetCrc32() const {
116
+ return m_crc_final;
117
+ };
118
+
119
+ void ForceCrc32(uint32 NewValue) { m_crc_final = NewValue; SetValueIsSet();}
120
121
#if defined(EBML_STRICT_API)
122
private:
123
#else
124
protected:
125
#endif
126
- void ResetCRC();
127
- void UpdateByte(binary b);
128
+ void ResetCRC();
129
+ void UpdateByte(binary b);
130
+
131
+ static const uint32 m_tab[256];
132
+ uint32 m_crc;
133
+ uint32 m_crc_final;
134
135
- static const uint32 m_tab[256];
136
- uint32 m_crc;
137
- uint32 m_crc_final;
138
-
139
EBML_CONCRETE_CLASS(EbmlCrc32)
140
};
141
142
143
inline unsigned int GetAlignment(T * /* dummy */=NULL) // VC60 workaround
144
{
145
#if defined(_MSC_VER) && (_MSC_VER >= 1300)
146
- return __alignof(T);
147
+ return __alignof(T);
148
#elif defined(__GNUC__)
149
- return __alignof__(T);
150
+ return __alignof__(T);
151
#else
152
- return sizeof(T);
153
+ return sizeof(T);
154
#endif
155
}
156
157
template <class T>
158
inline bool IsPowerOf2(T n)
159
{
160
- return n > 0 && (n & (n-1)) == 0;
161
+ return n > 0 && (n & (n-1)) == 0;
162
}
163
164
template <class T1, class T2>
165
inline T2 ModPowerOf2(T1 a, T2 b)
166
{
167
- assert(IsPowerOf2(b));
168
- return T2(a) & (b-1);
169
+ assert(IsPowerOf2(b));
170
+ return T2(a) & (b-1);
171
}
172
173
inline bool IsAlignedOn(const void *p, unsigned int alignment)
174
{
175
- return IsPowerOf2(alignment) ? ModPowerOf2((unsigned long)(uintptr_t)p, alignment) == 0 : (unsigned long)(uintptr_t)p % alignment == 0;
176
+ return IsPowerOf2(alignment) ? ModPowerOf2((unsigned long)(uintptr_t)p, alignment) == 0 : (unsigned long)(uintptr_t)p % alignment == 0;
177
}
178
179
template <class T>
180
inline bool IsAligned(const void *p, T * /* dummy */=NULL) // VC60 workaround
181
{
182
- return IsAlignedOn(p, GetAlignment<T>());
183
+ return IsAlignedOn(p, GetAlignment<T>());
184
}
185
186
END_LIBEBML_NAMESPACE
187
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlDate.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlDate.h
Changed
115
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id$
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id$
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
#ifndef LIBEBML_DATE_H
25
#define LIBEBML_DATE_H
26
27
\brief Handle all operations related to an EBML date
28
*/
29
class EBML_DLL_API EbmlDate : public EbmlElement {
30
- public:
31
- EbmlDate() :EbmlElement(8, false), myDate(0) {}
32
- EbmlDate(const EbmlDate & ElementToClone);
33
-
34
- /*!
35
- \brief set the date with a UNIX/C/EPOCH form
36
- \param NewDate UNIX/C date in UTC (no timezone)
37
- */
38
- void SetEpochDate(int64 NewDate) {myDate = (NewDate - UnixEpochDelay) * 1000000000; SetValueIsSet();}
39
+ public:
40
+ EbmlDate() :EbmlElement(8, false), myDate(0) {}
41
+ EbmlDate(const EbmlDate & ElementToClone);
42
+
43
+ /*!
44
+ \brief set the date with a UNIX/C/EPOCH form
45
+ \param NewDate UNIX/C date in UTC (no timezone)
46
+ */
47
+ void SetEpochDate(int64 NewDate) {myDate = (NewDate - UnixEpochDelay) * 1000000000; SetValueIsSet();}
48
EbmlDate &SetValue(int64 NewValue) {SetEpochDate(NewValue); return *this;}
49
50
- /*!
51
- \brief get the date with a UNIX/C/EPOCH form
52
- \note the date is in UTC (no timezone)
53
- */
54
- int64 GetEpochDate() const {return int64(myDate/1000000000 + UnixEpochDelay);}
55
+ /*!
56
+ \brief get the date with a UNIX/C/EPOCH form
57
+ \note the date is in UTC (no timezone)
58
+ */
59
+ int64 GetEpochDate() const {return int64(myDate/1000000000 + UnixEpochDelay);}
60
int64 GetValue() const {return GetEpochDate();}
61
62
- virtual bool ValidateSize() const {return IsFiniteSize() && ((GetSize() == 8) || (GetSize() == 0));}
63
+ virtual bool ValidateSize() const {return IsFiniteSize() && ((GetSize() == 8) || (GetSize() == 0));}
64
65
- /*!
66
- \note no Default date handled
67
- */
68
- filepos_t UpdateSize(bool /* bWithDefault = false */, bool /* bForceRender = false */) {
69
- if(!ValueIsSet())
70
- SetSize_(0);
71
- else
72
- SetSize_(8);
73
- return GetSize();
74
- }
75
+ /*!
76
+ \note no Default date handled
77
+ */
78
+ filepos_t UpdateSize(bool /* bWithDefault = false */, bool /* bForceRender = false */) {
79
+ if(!ValueIsSet())
80
+ SetSize_(0);
81
+ else
82
+ SetSize_(8);
83
+ return GetSize();
84
+ }
85
86
- virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
87
+ virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
88
89
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
90
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
91
92
- bool IsDefaultValue() const {
93
- return false;
94
- }
95
+ bool IsDefaultValue() const {
96
+ return false;
97
+ }
98
99
#if defined(EBML_STRICT_API)
100
private:
101
#else
102
protected:
103
#endif
104
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
105
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
106
107
- int64 myDate; ///< internal format of the date
108
+ int64 myDate; ///< internal format of the date
109
110
- static const uint64 UnixEpochDelay;
111
+ static const uint64 UnixEpochDelay;
112
};
113
114
END_LIBEBML_NAMESPACE
115
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlDummy.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlDummy.h
Changed
67
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_DUMMY_H
35
#define LIBEBML_DUMMY_H
36
37
START_LIBEBML_NAMESPACE
38
39
class EBML_DLL_API EbmlDummy : public EbmlBinary {
40
- public:
41
- EbmlDummy() :DummyId(DummyRawId) {}
42
- EbmlDummy(const EbmlId & aId) :EbmlBinary(), DummyId(aId) {}
43
- EbmlDummy(const EbmlDummy & ElementToClone):EbmlBinary(ElementToClone), DummyId(ElementToClone.DummyId) {}
44
+ public:
45
+ EbmlDummy() :DummyId(DummyRawId) {}
46
+ EbmlDummy(const EbmlId & aId) :EbmlBinary(), DummyId(aId) {}
47
+ EbmlDummy(const EbmlDummy & ElementToClone):EbmlBinary(ElementToClone), DummyId(ElementToClone.DummyId) {}
48
49
- bool IsDummy() const {return true;}
50
- bool IsDefaultValue() const {return true;}
51
+ bool IsDummy() const {return true;}
52
+ bool IsDefaultValue() const {return true;}
53
54
virtual operator const EbmlId &() const {
55
return DummyId;
56
57
#else
58
protected:
59
#endif
60
- const EbmlId DummyId;
61
- static const EbmlId DummyRawId;
62
+ const EbmlId DummyId;
63
+ static const EbmlId DummyRawId;
64
65
EBML_CONCRETE_DUMMY_CLASS(EbmlDummy)
66
};
67
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlElement.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlElement.h
Changed
201
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id$
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id$
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
#ifndef LIBEBML_ELEMENT_H
25
#define LIBEBML_ELEMENT_H
26
27
START_LIBEBML_NAMESPACE
28
29
/*!
30
- \brief The size of the EBML-coded length
31
+ \brief The size of the EBML-coded length
32
*/
33
int EBML_DLL_API CodedSizeLength(uint64 Length, unsigned int SizeLength, bool bSizeIsFinite = true);
34
35
/*!
36
- \brief The coded value of the EBML-coded length
37
- \note The size of OutBuffer must be 8 octets at least
38
+ \brief The coded value of the EBML-coded length
39
+ \note The size of OutBuffer must be 8 octets at least
40
*/
41
int EBML_DLL_API CodedValueLength(uint64 Length, int CodedSize, binary * OutBuffer);
42
43
/*!
44
- \brief Read an EBML-coded value from a buffer
45
- \return the value read
46
+ \brief Read an EBML-coded value from a buffer
47
+ \return the value read
48
*/
49
uint64 EBML_DLL_API ReadCodedSizeValue(const binary * InBuffer, uint32 & BufferSize, uint64 & SizeUnknown);
50
51
/*!
52
- \brief The size of the EBML-coded signed length
53
+ \brief The size of the EBML-coded signed length
54
*/
55
int EBML_DLL_API CodedSizeLengthSigned(int64 Length, unsigned int SizeLength);
56
57
/*!
58
- \brief The coded value of the EBML-coded signed length
59
- \note the size of OutBuffer must be 8 octets at least
60
+ \brief The coded value of the EBML-coded signed length
61
+ \note the size of OutBuffer must be 8 octets at least
62
*/
63
int EBML_DLL_API CodedValueLengthSigned(int64 Length, int CodedSize, binary * OutBuffer);
64
65
/*!
66
- \brief Read a signed EBML-coded value from a buffer
67
- \return the value read
68
+ \brief Read a signed EBML-coded value from a buffer
69
+ \return the value read
70
*/
71
int64 EBML_DLL_API ReadCodedSizeSignedValue(const binary * InBuffer, uint32 & BufferSize, uint64 & SizeUnknown);
72
73
74
public: \
75
virtual const EbmlSemanticContext &Context() const {return ClassInfos.GetContext();} \
76
virtual const char *DebugName() const {return ClassInfos.GetName();} \
77
- virtual operator const EbmlId &() const {return ClassInfos.ClassId();} \
78
+ virtual operator const EbmlId &() const {return ClassInfos.ClassId();} \
79
virtual EbmlElement & CreateElement() const {return Create();} \
80
virtual EbmlElement * Clone() const { return new Type(*this); } \
81
- static EbmlElement & Create() {return *(new Type);} \
82
+ static EbmlElement & Create() {return *(new Type);} \
83
static const EbmlCallbacks & ClassInfo() {return ClassInfos;} \
84
static const EbmlId & ClassId() {return ClassInfos.ClassId();} \
85
private: \
86
- static const EbmlCallbacks ClassInfos; \
87
+ static const EbmlCallbacks ClassInfos; \
88
89
#define EBML_CONCRETE_DUMMY_CLASS(Type) \
90
public: \
91
virtual const EbmlSemanticContext &Context() const {return *static_cast<EbmlSemanticContext*>(NULL);} \
92
virtual const char *DebugName() const {return "DummyElement";} \
93
- virtual operator const EbmlId &(); \
94
+ virtual operator const EbmlId &(); \
95
virtual EbmlElement & CreateElement() const {return Create();} \
96
virtual EbmlElement * Clone() const { return new Type(*this); } \
97
- static EbmlElement & Create() {return *(new Type);} \
98
+ static EbmlElement & Create() {return *(new Type);} \
99
static const EbmlId & ClassId(); \
100
- static const EbmlCallbacks ClassInfos; \
101
+ static const EbmlCallbacks ClassInfos; \
102
103
104
#define EBML_INFO(ref) ref::ClassInfo()
105
106
#else
107
#define EBML_CONCRETE_CLASS(Type) \
108
public: \
109
- virtual const EbmlCallbacks & Generic() const {return ClassInfos;} \
110
- virtual operator const EbmlId &() const {return ClassInfos.GlobalId;} \
111
+ virtual const EbmlCallbacks & Generic() const {return ClassInfos;} \
112
+ virtual operator const EbmlId &() const {return ClassInfos.GlobalId;} \
113
virtual EbmlElement & CreateElement() const {return Create();} \
114
virtual EbmlElement * Clone() const { return new Type(*this); } \
115
- static EbmlElement & Create() {return *(new Type);} \
116
- static const EbmlCallbacks ClassInfos; \
117
+ static EbmlElement & Create() {return *(new Type);} \
118
+ static const EbmlCallbacks ClassInfos; \
119
120
#define EBML_CONCRETE_DUMMY_CLASS(Type) \
121
public: \
122
- virtual const EbmlCallbacks & Generic() const {return ClassInfos;} \
123
- virtual operator const EbmlId &(); \
124
+ virtual const EbmlCallbacks & Generic() const {return ClassInfos;} \
125
+ virtual operator const EbmlId &(); \
126
virtual EbmlElement & CreateElement() const {return Create();} \
127
virtual EbmlElement * Clone() const { return new Type(*this); } \
128
- static EbmlElement & Create() {return *(new Type);} \
129
- static const EbmlCallbacks ClassInfos; \
130
+ static EbmlElement & Create() {return *(new Type);} \
131
+ static const EbmlCallbacks ClassInfos; \
132
133
134
#define EBML_INFO(ref) ref::ClassInfos
135
136
137
// functions for generic handling of data (should be static to all classes)
138
/*!
139
- \todo Handle default value
140
+ \todo Handle default value
141
*/
142
class EBML_DLL_API EbmlCallbacks {
143
- public:
144
- EbmlCallbacks(EbmlElement & (*Creator)(), const EbmlId & aGlobalId, const char * aDebugName, const EbmlSemanticContext & aContext);
145
+ public:
146
+ EbmlCallbacks(EbmlElement & (*Creator)(), const EbmlId & aGlobalId, const char * aDebugName, const EbmlSemanticContext & aContext);
147
148
inline const EbmlId & ClassId() const { return GlobalId; }
149
inline const EbmlSemanticContext & GetContext() const { return Context; }
150
151
#if defined(EBML_STRICT_API)
152
private:
153
#endif
154
- EbmlElement & (*Create)();
155
- const EbmlId & GlobalId;
156
- const char * DebugName;
157
- const EbmlSemanticContext & Context;
158
+ EbmlElement & (*Create)();
159
+ const EbmlId & GlobalId;
160
+ const char * DebugName;
161
+ const EbmlSemanticContext & Context;
162
};
163
164
/*!
165
- \brief contains the semantic informations for a given level and all sublevels
166
- \todo move the ID in the element class
167
+ \brief contains the semantic informations for a given level and all sublevels
168
+ \todo move the ID in the element class
169
*/
170
class EBML_DLL_API EbmlSemantic {
171
- public:
172
- EbmlSemantic(bool aMandatory, bool aUnique, const EbmlCallbacks & aGetCallbacks)
173
- :Mandatory(aMandatory), Unique(aUnique), GetCallbacks(aGetCallbacks) {}
174
+ public:
175
+ EbmlSemantic(bool aMandatory, bool aUnique, const EbmlCallbacks & aGetCallbacks)
176
+ :Mandatory(aMandatory), Unique(aUnique), GetCallbacks(aGetCallbacks) {}
177
178
inline bool IsMandatory() const { return Mandatory; }
179
inline bool IsUnique() const { return Unique; }
180
181
#if defined(EBML_STRICT_API)
182
private:
183
#endif
184
- bool Mandatory; ///< wether the element is mandatory in the context or not
185
- bool Unique;
186
- const EbmlCallbacks & GetCallbacks;
187
+ bool Mandatory; ///< wether the element is mandatory in the context or not
188
+ bool Unique;
189
+ const EbmlCallbacks & GetCallbacks;
190
};
191
192
typedef const class EbmlSemanticContext & (*_GetSemanticContext)();
193
194
/*!
195
- Context of the element
196
- \todo allow more than one parent ?
197
+ Context of the element
198
+ \todo allow more than one parent ?
199
*/
200
class EBML_DLL_API EbmlSemanticContext {
201
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlEndian.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlEndian.h
Changed
126
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
template<class TYPE, endianess ENDIAN> class Endian
25
{
26
public:
27
- Endian() {}
28
+ Endian() {}
29
30
- Endian(const TYPE value)
31
- {
32
- memcpy(&platform_value, &value, sizeof(TYPE));
33
- process_endian();
34
- }
35
+ Endian(const TYPE value)
36
+ {
37
+ memcpy(&platform_value, &value, sizeof(TYPE));
38
+ process_endian();
39
+ }
40
41
- inline Endian & Eval(const binary *endian_buffer)
42
- {
43
- //endian_value = *(TYPE *)(endian_buffer);
44
- memcpy(&endian_value, endian_buffer, sizeof(TYPE)); // Some (all?) RISC processors do not allow reading objects bigger than 1 byte from non-aligned addresses, and endian_buffer may point to a non-aligned address.
45
- process_platform();
46
- return *this;
47
- }
48
+ inline Endian & Eval(const binary *endian_buffer)
49
+ {
50
+ //endian_value = *(TYPE *)(endian_buffer);
51
+ memcpy(&endian_value, endian_buffer, sizeof(TYPE)); // Some (all?) RISC processors do not allow reading objects bigger than 1 byte from non-aligned addresses, and endian_buffer may point to a non-aligned address.
52
+ process_platform();
53
+ return *this;
54
+ }
55
56
- inline void Fill(binary *endian_buffer) const
57
- {
58
- //*(TYPE*)endian_buffer = endian_value;
59
- memcpy(endian_buffer, &endian_value, sizeof(TYPE)); // See above.
60
- }
61
+ inline void Fill(binary *endian_buffer) const
62
+ {
63
+ //*(TYPE*)endian_buffer = endian_value;
64
+ memcpy(endian_buffer, &endian_value, sizeof(TYPE)); // See above.
65
+ }
66
67
- inline operator const TYPE&() const { return platform_value; }
68
- // inline TYPE endian() const { return endian_value; }
69
- inline const TYPE &endian() const { return endian_value; }
70
- inline size_t size() const { return sizeof(TYPE); }
71
- inline bool operator!=(const binary *buffer) const {return *((TYPE*)buffer) == platform_value;}
72
+ inline operator const TYPE&() const { return platform_value; }
73
+ // inline TYPE endian() const { return endian_value; }
74
+ inline const TYPE &endian() const { return endian_value; }
75
+ inline size_t size() const { return sizeof(TYPE); }
76
+ inline bool operator!=(const binary *buffer) const {return *((TYPE*)buffer) == platform_value;}
77
78
#if defined(EBML_STRICT_API)
79
private:
80
#else
81
protected:
82
#endif
83
- TYPE platform_value;
84
- TYPE endian_value;
85
+ TYPE platform_value;
86
+ TYPE endian_value;
87
88
- inline void process_endian()
89
- {
90
- endian_value = platform_value;
91
+ inline void process_endian()
92
+ {
93
+ endian_value = platform_value;
94
#ifdef WORDS_BIGENDIAN
95
- if (ENDIAN == little_endian)
96
+ if (ENDIAN == little_endian)
97
#else // _ENDIANESS_
98
- if (ENDIAN == big_endian)
99
+ if (ENDIAN == big_endian)
100
#endif // _ENDIANESS_
101
- std::reverse(reinterpret_cast<uint8*>(&endian_value),reinterpret_cast<uint8*>(&endian_value+1));
102
- }
103
+ std::reverse(reinterpret_cast<uint8*>(&endian_value),reinterpret_cast<uint8*>(&endian_value+1));
104
+ }
105
106
- inline void process_platform()
107
- {
108
- platform_value = endian_value;
109
+ inline void process_platform()
110
+ {
111
+ platform_value = endian_value;
112
#ifdef WORDS_BIGENDIAN
113
- if (ENDIAN == little_endian)
114
+ if (ENDIAN == little_endian)
115
#else // _ENDIANESS_
116
- if (ENDIAN == big_endian)
117
+ if (ENDIAN == big_endian)
118
#endif // _ENDIANESS_
119
- std::reverse(reinterpret_cast<uint8*>(&platform_value),reinterpret_cast<uint8*>(&platform_value+1));
120
- }
121
+ std::reverse(reinterpret_cast<uint8*>(&platform_value),reinterpret_cast<uint8*>(&platform_value+1));
122
+ }
123
};
124
125
END_LIBEBML_NAMESPACE
126
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlFloat.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlFloat.h
Changed
146
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_FLOAT_H
35
#define LIBEBML_FLOAT_H
36
37
\brief Handle all operations on a float EBML element
38
*/
39
class EBML_DLL_API EbmlFloat : public EbmlElement {
40
- public:
41
- enum Precision {
42
- FLOAT_32
43
- ,FLOAT_64
44
- };
45
-
46
- EbmlFloat(const Precision prec = FLOAT_32);
47
- EbmlFloat(const double DefaultValue, const Precision prec = FLOAT_32);
48
- EbmlFloat(const EbmlFloat & ElementToClone);
49
-
50
- virtual bool ValidateSize() const
51
- {
52
- return (GetSize() == 4 || GetSize() == 8);
53
- }
54
-
55
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
56
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
57
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
58
-
59
- void SetPrecision(const EbmlFloat::Precision prec = FLOAT_32)
60
- {
61
- if (prec == FLOAT_64)
62
- SetSize_(8);
63
- else
64
- SetSize_(4); // default size
65
- }
66
-
67
-
68
-// EbmlFloat & operator=(const float NewValue) { Value = NewValue; return *this;}
69
- EbmlFloat & operator=(const double NewValue) { Value = NewValue; SetValueIsSet(); return *this;}
70
-
71
- virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
72
-
73
- operator float() const;
74
- operator double() const;
75
-
76
- EbmlFloat &SetValue(double NewValue);
77
- double GetValue() const;
78
-
79
- void SetDefaultValue(double);
80
-
81
- double DefaultVal() const;
82
-
83
- bool IsDefaultValue() const {
84
- return (DefaultISset() && Value == DefaultValue);
85
- }
86
-
87
+ public:
88
+ enum Precision {
89
+ FLOAT_32
90
+ ,FLOAT_64
91
+ };
92
+
93
+ EbmlFloat(const Precision prec = FLOAT_32);
94
+ EbmlFloat(const double DefaultValue, const Precision prec = FLOAT_32);
95
+ EbmlFloat(const EbmlFloat & ElementToClone);
96
+
97
+ virtual bool ValidateSize() const
98
+ {
99
+ return (GetSize() == 4 || GetSize() == 8);
100
+ }
101
+
102
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
103
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
104
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
105
+
106
+ void SetPrecision(const EbmlFloat::Precision prec = FLOAT_32)
107
+ {
108
+ if (prec == FLOAT_64)
109
+ SetSize_(8);
110
+ else
111
+ SetSize_(4); // default size
112
+ }
113
+
114
+
115
+// EbmlFloat & operator=(const float NewValue) { Value = NewValue; return *this;}
116
+ EbmlFloat & operator=(const double NewValue) { Value = NewValue; SetValueIsSet(); return *this;}
117
+
118
+ virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
119
+
120
+ operator float() const;
121
+ operator double() const;
122
+
123
+ EbmlFloat &SetValue(double NewValue);
124
+ double GetValue() const;
125
+
126
+ void SetDefaultValue(double);
127
+
128
+ double DefaultVal() const;
129
+
130
+ bool IsDefaultValue() const {
131
+ return (DefaultISset() && Value == DefaultValue);
132
+ }
133
+
134
#if defined(EBML_STRICT_API)
135
private:
136
#else
137
protected:
138
#endif
139
- double Value; /// The actual value of the element
140
- double DefaultValue;
141
+ double Value; /// The actual value of the element
142
+ double DefaultValue;
143
};
144
145
END_LIBEBML_NAMESPACE
146
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlHead.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlHead.h
Changed
47
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlHead.h 639 2004-07-09 20:59:14Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlHead.h 639 2004-07-09 20:59:14Z mosu $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_HEAD_H
35
#define LIBEBML_HEAD_H
36
37
START_LIBEBML_NAMESPACE
38
39
DECLARE_EBML_MASTER(EbmlHead)
40
- public:
41
- EbmlHead(const EbmlHead & ElementToClone) : EbmlMaster(ElementToClone) {}
42
+ public:
43
+ EbmlHead(const EbmlHead & ElementToClone) : EbmlMaster(ElementToClone) {}
44
45
EBML_CONCRETE_CLASS(EbmlHead)
46
};
47
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlId.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlId.h
Changed
117
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlId.h 936 2004-11-10 20:46:28Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlId.h 936 2004-11-10 20:46:28Z mosu $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_ID_H
35
#define LIBEBML_ID_H
36
37
#endif
38
39
/*!
40
- \class EbmlId
41
+ \class EbmlId
42
*/
43
class EBML_DLL_API EbmlId {
44
- public:
45
- EbmlId(const binary aValue[4], const unsigned int aLength)
46
- :Length(aLength)
47
- {
48
- Value = 0;
49
- unsigned int i;
50
- for (i=0; i<aLength; i++) {
51
- Value <<= 8;
52
- Value += aValue[i];
53
- }
54
- }
55
+ public:
56
+ EbmlId(const binary aValue[4], const unsigned int aLength)
57
+ :Length(aLength)
58
+ {
59
+ Value = 0;
60
+ unsigned int i;
61
+ for (i=0; i<aLength; i++) {
62
+ Value <<= 8;
63
+ Value += aValue[i];
64
+ }
65
+ }
66
67
- EbmlId(const uint32 aValue, const unsigned int aLength)
68
- :Value(aValue), Length(aLength) {}
69
+ EbmlId(const uint32 aValue, const unsigned int aLength)
70
+ :Value(aValue), Length(aLength) {}
71
72
- inline bool operator==(const EbmlId & TestId) const
73
- {
74
- return ((TestId.Length == Length) && (TestId.Value == Value));
75
- }
76
- inline bool operator!=(const EbmlId & TestId) const
77
- {
78
- return !(*this == TestId);
79
- }
80
+ inline bool operator==(const EbmlId & TestId) const
81
+ {
82
+ return ((TestId.Length == Length) && (TestId.Value == Value));
83
+ }
84
+ inline bool operator!=(const EbmlId & TestId) const
85
+ {
86
+ return !(*this == TestId);
87
+ }
88
89
- inline void Fill(binary * Buffer) const {
90
- unsigned int i;
91
- for (i = 0; i<Length; i++) {
92
- Buffer[i] = (Value >> (8*(Length-i-1))) & 0xFF;
93
- }
94
- }
95
+ inline void Fill(binary * Buffer) const {
96
+ unsigned int i;
97
+ for (i = 0; i<Length; i++) {
98
+ Buffer[i] = (Value >> (8*(Length-i-1))) & 0xFF;
99
+ }
100
+ }
101
102
- inline size_t GetLength() const { return Length; }
103
- inline uint32 GetValue() const { return Value; }
104
+ inline unsigned int GetLength() const { return (unsigned int)Length; }
105
+ inline uint32 GetValue() const { return Value; }
106
107
#if defined(EBML_STRICT_API)
108
private:
109
#endif
110
- uint32 Value;
111
- size_t Length;
112
+ uint32 Value;
113
+ size_t Length;
114
};
115
116
END_LIBEBML_NAMESPACE
117
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlMaster.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlMaster.h
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlMaster.h 1232 2005-10-15 15:56:52Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlMaster.h 1232 2005-10-15 15:56:52Z robux4 $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_MASTER_H
35
#define LIBEBML_MASTER_H
36
37
\brief Handle all operations on an EBML element that contains other EBML elements
38
*/
39
class EBML_DLL_API EbmlMaster : public EbmlElement {
40
- public:
41
- EbmlMaster(const EbmlSemanticContext & aContext, bool bSizeIsKnown = true);
42
- EbmlMaster(const EbmlMaster & ElementToClone);
43
- virtual bool ValidateSize() const {return true;}
44
- /*!
45
- \warning be carefull to clear the memory allocated in the ElementList elsewhere
46
- */
47
- virtual ~EbmlMaster();
48
-
49
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
50
+ public:
51
+ EbmlMaster(const EbmlSemanticContext & aContext, bool bSizeIsKnown = true);
52
+ EbmlMaster(const EbmlMaster & ElementToClone);
53
+ virtual bool ValidateSize() const {return true;}
54
+ /*!
55
+ \warning be carefull to clear the memory allocated in the ElementList elsewhere
56
+ */
57
+ virtual ~EbmlMaster();
58
+
59
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
60
#ifndef EBML_NO_READ
61
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully);
62
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully);
63
#endif
64
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
65
-
66
- /*!
67
- \brief Set wether the size is finite (size is known in advance when writing, or infinite size is not known on writing)
68
- */
69
- bool SetSizeInfinite(bool aIsInfinite = true) {SetSizeIsFinite(!aIsInfinite); return true;}
70
-
71
- bool PushElement(EbmlElement & element);
72
- uint64 GetSize() const {
73
- if (IsFiniteSize())
74
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
75
+
76
+ /*!
77
+ \brief Set wether the size is finite (size is known in advance when writing, or infinite size is not known on writing)
78
+ */
79
+ bool SetSizeInfinite(bool aIsInfinite = true) {SetSizeIsFinite(!aIsInfinite); return true;}
80
+
81
+ bool PushElement(EbmlElement & element);
82
+ uint64 GetSize() const {
83
+ if (IsFiniteSize())
84
return EbmlElement::GetSize();
85
- else
86
- return (0-1);
87
- }
88
-
89
- uint64 GetDataStart() const {
90
- return GetElementPosition() + EBML_ID_LENGTH((const EbmlId&)*this) + CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize());
91
- }
92
-
93
- /*!
94
- \brief find the element corresponding to the ID of the element, NULL if not found
95
- */
96
- EbmlElement *FindElt(const EbmlCallbacks & Callbacks) const;
97
- /*!
98
- \brief find the first element corresponding to the ID of the element
99
- */
100
- EbmlElement *FindFirstElt(const EbmlCallbacks & Callbacks, bool bCreateIfNull);
101
- EbmlElement *FindFirstElt(const EbmlCallbacks & Callbacks) const;
102
-
103
- /*!
104
- \brief find the element of the same type of PasElt following in the list of elements
105
- */
106
- EbmlElement *FindNextElt(const EbmlElement & PastElt, bool bCreateIfNull);
107
- EbmlElement *FindNextElt(const EbmlElement & PastElt) const;
108
- EbmlElement *AddNewElt(const EbmlCallbacks & Callbacks);
109
-
110
- /*!
111
- \brief add an element at a specified location
112
- */
113
- bool InsertElement(EbmlElement & element, size_t position = 0);
114
- bool InsertElement(EbmlElement & element, const EbmlElement & before);
115
-
116
- /*!
117
- \brief Read the data and keep the known children
118
- */
119
+ else
120
+ return (0-1);
121
+ }
122
+
123
+ uint64 GetDataStart() const {
124
+ return GetElementPosition() + EBML_ID_LENGTH((const EbmlId&)*this) + CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize());
125
+ }
126
+
127
+ /*!
128
+ \brief find the element corresponding to the ID of the element, NULL if not found
129
+ */
130
+ EbmlElement *FindElt(const EbmlCallbacks & Callbacks) const;
131
+ /*!
132
+ \brief find the first element corresponding to the ID of the element
133
+ */
134
+ EbmlElement *FindFirstElt(const EbmlCallbacks & Callbacks, bool bCreateIfNull);
135
+ EbmlElement *FindFirstElt(const EbmlCallbacks & Callbacks) const;
136
+
137
+ /*!
138
+ \brief find the element of the same type of PasElt following in the list of elements
139
+ */
140
+ EbmlElement *FindNextElt(const EbmlElement & PastElt, bool bCreateIfNull);
141
+ EbmlElement *FindNextElt(const EbmlElement & PastElt) const;
142
+ EbmlElement *AddNewElt(const EbmlCallbacks & Callbacks);
143
+
144
+ /*!
145
+ \brief add an element at a specified location
146
+ */
147
+ bool InsertElement(EbmlElement & element, size_t position = 0);
148
+ bool InsertElement(EbmlElement & element, const EbmlElement & before);
149
+
150
+ /*!
151
+ \brief Read the data and keep the known children
152
+ */
153
#ifndef EBML_NO_READ
154
- void Read(EbmlStream & inDataStream, const EbmlSemanticContext & Context, int & UpperEltFound, EbmlElement * & FoundElt, bool AllowDummyElt, ScopeMode ReadFully = SCOPE_ALL_DATA);
155
+ void Read(EbmlStream & inDataStream, const EbmlSemanticContext & Context, int & UpperEltFound, EbmlElement * & FoundElt, bool AllowDummyElt, ScopeMode ReadFully = SCOPE_ALL_DATA);
156
#endif
157
- /*!
158
- \brief sort Data when they can
159
- */
160
- void Sort();
161
162
- size_t ListSize() const {return ElementList.size();}
163
+ /*!
164
+ \brief sort Data when they can
165
+ */
166
+ void Sort();
167
+
168
+ size_t ListSize() const {return ElementList.size();}
169
std::vector<EbmlElement *> const &GetElementList() const {return ElementList;}
170
std::vector<EbmlElement *> &GetElementList() {return ElementList;}
171
172
173
inline EBML_MASTER_CONST_RITERATOR rbegin() const {return ElementList.rbegin();}
174
inline EBML_MASTER_CONST_RITERATOR rend() const {return ElementList.rend();}
175
176
- EbmlElement * operator[](unsigned int position) {return ElementList[position];}
177
- const EbmlElement * operator[](unsigned int position) const {return ElementList[position];}
178
-
179
- bool IsDefaultValue() const {
180
- return (ElementList.size() == 0);
181
- }
182
- virtual bool IsMaster() const {return true;}
183
-
184
- /*!
185
- \brief verify that all mandatory elements are present
186
- \note usefull after reading or before writing
187
- */
188
- bool CheckMandatory() const;
189
-
190
- /*!
191
- \brief Remove an element from the list of the master
192
- */
193
- void Remove(size_t Index);
194
- void Remove(EBML_MASTER_ITERATOR & Itr);
195
- void Remove(EBML_MASTER_RITERATOR & Itr);
196
-
197
- /*!
198
- \brief remove all elements, even the mandatory ones
199
- */
200
- void RemoveAll() {ElementList.clear();}
201
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlSInteger.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlSInteger.h
Changed
105
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id$
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
- \author Julien Coloos <suiryc @ users.sf.net>
21
- \author Moritz Bunkus <moritz @ bunkus.org>
22
+ \file
23
+ \version \$Id$
24
+ \author Steve Lhomme <robux4 @ users.sf.net>
25
+ \author Julien Coloos <suiryc @ users.sf.net>
26
+ \author Moritz Bunkus <moritz @ bunkus.org>
27
*/
28
#ifndef LIBEBML_SINTEGER_H
29
#define LIBEBML_SINTEGER_H
30
31
\brief Handle all operations on a signed integer EBML element
32
*/
33
class EBML_DLL_API EbmlSInteger : public EbmlElement {
34
- public:
35
- EbmlSInteger();
36
- EbmlSInteger(int64 DefaultValue);
37
- EbmlSInteger(const EbmlSInteger & ElementToClone);
38
+ public:
39
+ EbmlSInteger();
40
+ EbmlSInteger(int64 DefaultValue);
41
+ EbmlSInteger(const EbmlSInteger & ElementToClone);
42
43
- EbmlSInteger & operator = (int64 NewValue) {Value = NewValue; SetValueIsSet(); return *this;}
44
+ EbmlSInteger & operator = (int64 NewValue) {Value = NewValue; SetValueIsSet(); return *this;}
45
46
- /*!
47
- Set the default size of the integer (usually 1,2,4 or 8)
48
- */
49
+ /*!
50
+ Set the default size of the integer (usually 1,2,4 or 8)
51
+ */
52
virtual void SetDefaultSize(uint64 nDefaultSize = DEFAULT_INT_SIZE) {EbmlElement::SetDefaultSize(nDefaultSize); SetSize_(nDefaultSize);}
53
54
- virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() <= 8);}
55
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
56
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
57
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
58
+ virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() <= 8);}
59
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
60
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
61
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
62
63
- virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
64
+ virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
65
66
- operator int8() const;
67
- operator int16() const;
68
- operator int32() const;
69
- operator int64() const;
70
+ operator int8() const;
71
+ operator int16() const;
72
+ operator int32() const;
73
+ operator int64() const;
74
75
- EbmlSInteger &SetValue(int64 NewValue);
76
- int64 GetValue() const;
77
+ EbmlSInteger &SetValue(int64 NewValue);
78
+ int64 GetValue() const;
79
80
- void SetDefaultValue(int64 aValue) {assert(!DefaultISset()); DefaultValue = aValue; SetDefaultIsSet();}
81
+ void SetDefaultValue(int64 aValue) {assert(!DefaultISset()); DefaultValue = aValue; SetDefaultIsSet();}
82
83
- int64 DefaultVal() const {assert(DefaultISset()); return DefaultValue;}
84
+ int64 DefaultVal() const {assert(DefaultISset()); return DefaultValue;}
85
86
- bool IsDefaultValue() const {
87
- return (DefaultISset() && Value == DefaultValue);
88
- }
89
+ bool IsDefaultValue() const {
90
+ return (DefaultISset() && Value == DefaultValue);
91
+ }
92
93
#if defined(EBML_STRICT_API)
94
private:
95
#else
96
protected:
97
#endif
98
- int64 Value; /// The actual value of the element
99
- int64 DefaultValue;
100
+ int64 Value; /// The actual value of the element
101
+ int64 DefaultValue;
102
};
103
104
END_LIBEBML_NAMESPACE
105
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlStream.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlStream.h
Changed
78
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_STREAM_H
35
#define LIBEBML_STREAM_H
36
37
\brief Handle an input/output stream of EBML elements
38
*/
39
class EBML_DLL_API EbmlStream {
40
- public:
41
- EbmlStream(IOCallback & output);
42
- ~EbmlStream();
43
-
44
- /*!
45
- \brief Find a possible next ID in the data stream
46
- \param MaxDataSize The maximum possible of the data in the element (for sanity checks)
47
- \note the user will have to delete that element later
48
- */
49
- EbmlElement * FindNextID(const EbmlCallbacks & ClassInfos, uint64 MaxDataSize);
50
+ public:
51
+ EbmlStream(IOCallback & output);
52
+ ~EbmlStream();
53
+
54
+ /*!
55
+ \brief Find a possible next ID in the data stream
56
+ \param MaxDataSize The maximum possible of the data in the element (for sanity checks)
57
+ \note the user will have to delete that element later
58
+ */
59
+ EbmlElement * FindNextID(const EbmlCallbacks & ClassInfos, uint64 MaxDataSize);
60
61
- EbmlElement * FindNextElement(const EbmlSemanticContext & Context, int & UpperLevel, uint64 MaxDataSize, bool AllowDummyElt, unsigned int MaxLowerLevel = 1);
62
+ EbmlElement * FindNextElement(const EbmlSemanticContext & Context, int & UpperLevel, uint64 MaxDataSize, bool AllowDummyElt, unsigned int MaxLowerLevel = 1);
63
64
- inline IOCallback & I_O() {return Stream;}
65
+ inline IOCallback & I_O() {return Stream;}
66
operator IOCallback &() {return Stream;}
67
68
#if defined(EBML_STRICT_API)
69
70
#else
71
protected:
72
#endif
73
- IOCallback & Stream;
74
+ IOCallback & Stream;
75
};
76
77
END_LIBEBML_NAMESPACE
78
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlString.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlString.h
Changed
99
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_STRING_H
35
#define LIBEBML_STRING_H
36
37
\brief Handle all operations on a printable string EBML element
38
*/
39
class EBML_DLL_API EbmlString : public EbmlElement {
40
- public:
41
- EbmlString();
42
- EbmlString(const ccc::string & aDefaultValue);
43
- EbmlString(const EbmlString & ElementToClone);
44
-
45
- virtual ~EbmlString() {}
46
-
47
- virtual bool ValidateSize() const {return IsFiniteSize();} // any size is possible
48
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
49
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
50
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
51
-
52
- EbmlString & operator=(const ccc::string &);
53
- operator const ref::string &() const;
54
-
55
+ public:
56
+ EbmlString();
57
+ EbmlString(const ccc::string & aDefaultValue);
58
+ EbmlString(const EbmlString & ElementToClone);
59
+
60
+ virtual ~EbmlString() {}
61
+
62
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() < 0x7FFFFFFF;} // any size is possible
63
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
64
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
65
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
66
+
67
+ EbmlString & operator=(const ccc::string &);
68
+ operator const ref::string &() const;
69
+
70
EbmlString &SetValue(ccc::string const &NewValue);
71
ref::string GetValue() const;
72
73
- void SetDefaultValue(ccc::string &);
74
-
75
- const ref::string & DefaultVal() const;
76
+ void SetDefaultValue(ccc::string &);
77
+
78
+ const ref::string & DefaultVal() const;
79
80
- bool IsDefaultValue() const {
81
- return (DefaultISset() && Value == DefaultValue);
82
- }
83
+ bool IsDefaultValue() const {
84
+ return (DefaultISset() && Value == DefaultValue);
85
+ }
86
87
#if defined(EBML_STRICT_API)
88
private:
89
#else
90
protected:
91
#endif
92
- buf::string Value; /// The actual value of the element
93
- buf::string DefaultValue;
94
+ buf::string Value; /// The actual value of the element
95
+ buf::string DefaultValue;
96
};
97
98
END_LIBEBML_NAMESPACE
99
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlSubHead.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlSubHead.h
Changed
101
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlSubHead.h 639 2004-07-09 20:59:14Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlSubHead.h 639 2004-07-09 20:59:14Z mosu $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_SUBHEAD_H
35
#define LIBEBML_SUBHEAD_H
36
37
START_LIBEBML_NAMESPACE
38
39
DECLARE_EBML_UINTEGER(EVersion)
40
- public:
41
- EVersion(const EVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
42
+ public:
43
+ EVersion(const EVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
44
45
EBML_CONCRETE_CLASS(EVersion)
46
};
47
48
DECLARE_EBML_UINTEGER(EReadVersion)
49
- public:
50
- EReadVersion(const EReadVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
51
+ public:
52
+ EReadVersion(const EReadVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
53
54
EBML_CONCRETE_CLASS(EReadVersion)
55
};
56
57
DECLARE_EBML_UINTEGER(EMaxIdLength)
58
- public:
59
- EMaxIdLength(const EMaxIdLength & ElementToClone) : EbmlUInteger(ElementToClone) {}
60
+ public:
61
+ EMaxIdLength(const EMaxIdLength & ElementToClone) : EbmlUInteger(ElementToClone) {}
62
63
EBML_CONCRETE_CLASS(EMaxIdLength)
64
};
65
66
DECLARE_EBML_UINTEGER(EMaxSizeLength)
67
- public:
68
- EMaxSizeLength(const EMaxSizeLength & ElementToClone) : EbmlUInteger(ElementToClone) {}
69
+ public:
70
+ EMaxSizeLength(const EMaxSizeLength & ElementToClone) : EbmlUInteger(ElementToClone) {}
71
72
EBML_CONCRETE_CLASS(EMaxSizeLength)
73
};
74
75
DECLARE_EBML_STRING(EDocType)
76
- public:
77
- EDocType(const EDocType & ElementToClone) : EbmlString(ElementToClone) {}
78
+ public:
79
+ EDocType(const EDocType & ElementToClone) : EbmlString(ElementToClone) {}
80
81
EBML_CONCRETE_CLASS(EDocType)
82
};
83
84
DECLARE_EBML_UINTEGER(EDocTypeVersion)
85
- public:
86
- EDocTypeVersion(const EDocTypeVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
87
+ public:
88
+ EDocTypeVersion(const EDocTypeVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
89
90
EBML_CONCRETE_CLASS(EDocTypeVersion)
91
};
92
93
DECLARE_EBML_UINTEGER(EDocTypeReadVersion)
94
- public:
95
- EDocTypeReadVersion(const EDocTypeReadVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
96
+ public:
97
+ EDocTypeReadVersion(const EDocTypeReadVersion & ElementToClone) : EbmlUInteger(ElementToClone) {}
98
99
EBML_CONCRETE_CLASS(EDocTypeReadVersion)
100
};
101
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlTypes.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlTypes.h
Changed
47
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlTypes.h 639 2004-07-09 20:59:14Z mosu $
29
+ \file
30
+ \version \$Id: EbmlTypes.h 639 2004-07-09 20:59:14Z mosu $
31
*/
32
#ifndef LIBEBML_TYPES_H
33
#define LIBEBML_TYPES_H
34
35
36
37
enum ScopeMode {
38
- SCOPE_PARTIAL_DATA = 0,
39
- SCOPE_ALL_DATA,
40
- SCOPE_NO_DATA
41
+ SCOPE_PARTIAL_DATA = 0,
42
+ SCOPE_ALL_DATA,
43
+ SCOPE_NO_DATA
44
};
45
46
END_LIBEBML_NAMESPACE
47
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlUInteger.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlUInteger.h
Changed
125
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Julien Coloos <suiryc @ users.sf.net>
31
- \author Moritz Bunkus <moritz @ bunkus.org>
32
+ \file
33
+ \version \$Id$
34
+ \author Steve Lhomme <robux4 @ users.sf.net>
35
+ \author Julien Coloos <suiryc @ users.sf.net>
36
+ \author Moritz Bunkus <moritz @ bunkus.org>
37
*/
38
#ifndef LIBEBML_UINTEGER_H
39
#define LIBEBML_UINTEGER_H
40
41
\brief Handle all operations on an unsigned integer EBML element
42
*/
43
class EBML_DLL_API EbmlUInteger : public EbmlElement {
44
- public:
45
- EbmlUInteger();
46
- EbmlUInteger(uint64 DefaultValue);
47
- EbmlUInteger(const EbmlUInteger & ElementToClone);
48
-
49
- EbmlUInteger & operator=(uint64 NewValue) {Value = NewValue; SetValueIsSet(); return *this;}
50
-
51
- /*!
52
- Set the default size of the integer (usually 1,2,4 or 8)
53
- */
54
- virtual void SetDefaultSize(uint64 nDefaultSize = DEFAULT_UINT_SIZE) {EbmlElement::SetDefaultSize(nDefaultSize); SetSize_(nDefaultSize);}
55
-
56
- virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() <= 8);}
57
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
58
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
59
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
60
-
61
- virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
62
-
63
- operator uint8() const;
64
- operator uint16() const;
65
- operator uint32() const;
66
- operator uint64() const;
67
-
68
- EbmlUInteger &SetValue(uint64 NewValue);
69
- uint64 GetValue() const;
70
-
71
- void SetDefaultValue(uint64);
72
-
73
- uint64 DefaultVal() const;
74
-
75
- bool IsDefaultValue() const {
76
- return (DefaultISset() && Value == DefaultValue);
77
- }
78
+ public:
79
+ EbmlUInteger();
80
+ EbmlUInteger(uint64 DefaultValue);
81
+ EbmlUInteger(const EbmlUInteger & ElementToClone);
82
+
83
+ EbmlUInteger & operator=(uint64 NewValue) {Value = NewValue; SetValueIsSet(); return *this;}
84
+
85
+ /*!
86
+ Set the default size of the integer (usually 1,2,4 or 8)
87
+ */
88
+ virtual void SetDefaultSize(uint64 nDefaultSize = DEFAULT_UINT_SIZE) {EbmlElement::SetDefaultSize(nDefaultSize); SetSize_(nDefaultSize);}
89
+
90
+ virtual bool ValidateSize() const {return IsFiniteSize() && (GetSize() <= 8);}
91
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
92
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
93
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
94
+
95
+ virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
96
+
97
+ operator uint8() const;
98
+ operator uint16() const;
99
+ operator uint32() const;
100
+ operator uint64() const;
101
+
102
+ EbmlUInteger &SetValue(uint64 NewValue);
103
+ uint64 GetValue() const;
104
+
105
+ void SetDefaultValue(uint64);
106
+
107
+ uint64 DefaultVal() const;
108
+
109
+ bool IsDefaultValue() const {
110
+ return (DefaultISset() && Value == DefaultValue);
111
+ }
112
113
#if defined(EBML_STRICT_API)
114
private:
115
#else
116
protected:
117
#endif
118
- uint64 Value; /// The actual value of the element
119
- uint64 DefaultValue;
120
+ uint64 Value; /// The actual value of the element
121
+ uint64 DefaultValue;
122
};
123
124
END_LIBEBML_NAMESPACE
125
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlUnicodeString.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlUnicodeString.h
Changed
183
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
- \author Jory Stone <jcsston @ toughguy.net>
32
+ \file
33
+ \version \$Id$
34
+ \author Steve Lhomme <robux4 @ users.sf.net>
35
+ \author Moritz Bunkus <moritz @ bunkus.org>
36
+ \author Jory Stone <jcsston @ toughguy.net>
37
*/
38
#ifndef LIBEBML_UNICODE_STRING_H
39
#define LIBEBML_UNICODE_STRING_H
40
41
*/
42
class EBML_DLL_API UTFstring {
43
public:
44
- typedef wchar_t value_type;
45
-
46
- UTFstring();
47
- UTFstring(const wchar_t *); // should be NULL terminated
48
- UTFstring(const UTFstring &);
49
- //UTFstring(std::wstring const &);
50
-
51
- virtual ~UTFstring();
52
- bool operator==(const UTFstring&) const;
53
- inline bool operator!=(const UTFstring &cmp) const
54
- {
55
- return !(*this == cmp);
56
- }
57
- UTFstring & operator=(const UTFstring &);
58
- UTFstring & operator=(const wchar_t *);
59
- UTFstring & operator=(wchar_t);
60
-
61
- /// Return length of string
62
- size_t length() const {return _Length;}
63
-
64
- operator const wchar_t*() const;
65
- const wchar_t* c_str() const {return _Data;}
66
-
67
- const ref::string & GetUTF8() const {return UTF8string;}
68
- void SetUTF8(const ccc::string &);
69
+ typedef wchar_t value_type;
70
+
71
+ UTFstring();
72
+ UTFstring(const wchar_t *); // should be NULL terminated
73
+ UTFstring(const UTFstring &);
74
+ //UTFstring(std::wstring const &);
75
+
76
+ virtual ~UTFstring();
77
+ bool operator==(const UTFstring&) const;
78
+ inline bool operator!=(const UTFstring &cmp) const
79
+ {
80
+ return !(*this == cmp);
81
+ }
82
+ UTFstring & operator=(const UTFstring &);
83
+ UTFstring & operator=(const wchar_t *);
84
+ UTFstring & operator=(wchar_t);
85
+
86
+ /// Return length of string
87
+ size_t length() const {return _Length;}
88
+
89
+ operator const wchar_t*() const;
90
+ const wchar_t* c_str() const {return _Data;}
91
+
92
+ const ref::string & GetUTF8() const {return UTF8string;}
93
+ void SetUTF8(const ccc::string &);
94
95
#if defined(EBML_STRICT_API)
96
private:
97
#else
98
protected:
99
#endif
100
- size_t _Length; ///< length of the UCS string excluding the \0
101
- wchar_t* _Data; ///< internal UCS representation
102
- buf::string UTF8string;
103
- static bool wcscmp_internal(const wchar_t *str1, const wchar_t *str2);
104
- void UpdateFromUTF8();
105
- void UpdateFromUCS2();
106
+ size_t _Length; ///< length of the UCS string excluding the \0
107
+ wchar_t* _Data; ///< internal UCS representation
108
+ buf::string UTF8string;
109
+ static bool wcscmp_internal(const wchar_t *str1, const wchar_t *str2);
110
+ void UpdateFromUTF8();
111
+ void UpdateFromUCS2();
112
};
113
114
115
/*!
116
\class EbmlUnicodeString
117
\brief Handle all operations on a Unicode string EBML element
118
- \note internally treated as a string made of wide characters (ie UCS-2 or UCS-4 depending on the machine)
119
+ \note internally treated as a string made of wide characters (ie UCS-2 or UCS-4 depending on the machine)
120
*/
121
class EBML_DLL_API EbmlUnicodeString : public EbmlElement {
122
- public:
123
- EbmlUnicodeString();
124
- EbmlUnicodeString(const UTFstring & DefaultValue);
125
- EbmlUnicodeString(const EbmlUnicodeString & ElementToClone);
126
-
127
- virtual ~EbmlUnicodeString() {}
128
-
129
- virtual bool ValidateSize() const {return IsFiniteSize();} // any size is possible
130
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
131
- filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
132
- filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
133
-
134
- EbmlUnicodeString & operator=(const UTFstring &); ///< platform dependant code
135
- operator const UTFstring &() const;
136
-
137
+ public:
138
+ EbmlUnicodeString();
139
+ EbmlUnicodeString(const UTFstring & DefaultValue);
140
+ EbmlUnicodeString(const EbmlUnicodeString & ElementToClone);
141
+
142
+ virtual ~EbmlUnicodeString() {}
143
+
144
+ virtual bool ValidateSize() const {return IsFiniteSize();} // any size is possible
145
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
146
+ filepos_t ReadData(IOCallback & input, ScopeMode ReadFully = SCOPE_ALL_DATA);
147
+ filepos_t UpdateSize(bool bWithDefault = false, bool bForceRender = false);
148
+
149
+ EbmlUnicodeString & operator=(const UTFstring &); ///< platform dependant code
150
+ operator const UTFstring &() const;
151
+
152
EbmlUnicodeString &SetValue(UTFstring const &NewValue);
153
EbmlUnicodeString &SetValueUTF8(ccc::string const &NewValue);
154
UTFstring GetValue() const;
155
ref::string GetValueUTF8() const;
156
157
- void SetDefaultValue(UTFstring &);
158
-
159
- const UTFstring & DefaultVal() const;
160
+ void SetDefaultValue(UTFstring &);
161
+
162
+ const UTFstring & DefaultVal() const;
163
164
- bool IsDefaultValue() const {
165
- return (DefaultISset() && Value == DefaultValue);
166
- }
167
+ bool IsDefaultValue() const {
168
+ return (DefaultISset() && Value == DefaultValue);
169
+ }
170
171
#if defined(EBML_STRICT_API)
172
private:
173
#else
174
protected:
175
#endif
176
- UTFstring Value; /// The actual value of the element
177
- UTFstring DefaultValue;
178
+ UTFstring Value; /// The actual value of the element
179
+ UTFstring DefaultValue;
180
};
181
182
END_LIBEBML_NAMESPACE
183
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlVersion.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlVersion.h
Changed
42
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id$
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id$
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
#ifndef LIBEBML_VERSION_H
25
#define LIBEBML_VERSION_H
26
27
28
START_LIBEBML_NAMESPACE
29
30
-#define LIBEBML_VERSION 0x010300
31
+#define LIBEBML_VERSION 0x010303
32
33
extern const ccc::string EbmlCodeVersion;
34
extern const ccc::string EbmlCodeDate;
35
36
/*!
37
- \todo Closer relation between an element and the context it comes from (context is an element attribute ?)
38
+ \todo Closer relation between an element and the context it comes from (context is an element attribute ?)
39
*/
40
41
END_LIBEBML_NAMESPACE
42
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/EbmlVoid.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/EbmlVoid.h
Changed
83
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlVoid.h 1079 2005-03-03 13:18:14Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlVoid.h 1079 2005-03-03 13:18:14Z robux4 $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#ifndef LIBEBML_VOID_H
35
#define LIBEBML_VOID_H
36
37
START_LIBEBML_NAMESPACE
38
39
DECLARE_EBML_BINARY(EbmlVoid)
40
- public:
41
- EbmlVoid(const EbmlVoid & ElementToClone) :EbmlBinary(ElementToClone){}
42
+ public:
43
+ EbmlVoid(const EbmlVoid & ElementToClone) :EbmlBinary(ElementToClone){}
44
45
- /*!
46
- \brief Set the size of the data (not the complete size of the element)
47
- */
48
- void SetSize(uint64 aSize) {SetSize_(aSize);}
49
+ /*!
50
+ \brief Set the size of the data (not the complete size of the element)
51
+ */
52
+ void SetSize(uint64 aSize) {SetSize_(aSize);}
53
54
- /*!
55
- \note overwrite to write fake data
56
- */
57
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
58
+ /*!
59
+ \note overwrite to write fake data
60
+ */
61
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bWithDefault = false);
62
63
- /*!
64
- \brief Replace the void element content (written) with this one
65
- */
66
- uint64 ReplaceWith(EbmlElement & EltToReplaceWith, IOCallback & output, bool ComeBackAfterward = true, bool bWithDefault = false);
67
+ /*!
68
+ \brief Replace the void element content (written) with this one
69
+ */
70
+ uint64 ReplaceWith(EbmlElement & EltToReplaceWith, IOCallback & output, bool ComeBackAfterward = true, bool bWithDefault = false);
71
72
- /*!
73
- \brief Void the content of an element
74
- */
75
- uint64 Overwrite(const EbmlElement & EltToVoid, IOCallback & output, bool ComeBackAfterward = true, bool bWithDefault = false);
76
+ /*!
77
+ \brief Void the content of an element
78
+ */
79
+ uint64 Overwrite(const EbmlElement & EltToVoid, IOCallback & output, bool ComeBackAfterward = true, bool bWithDefault = false);
80
81
EBML_CONCRETE_CLASS(EbmlVoid)
82
};
83
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/IOCallback.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/IOCallback.h
Changed
140
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id: IOCallback.h 639 2004-07-09 20:59:14Z mosu $
19
+ \file
20
+ \version \$Id: IOCallback.h 639 2004-07-09 20:59:14Z mosu $
21
*/
22
#ifndef MATROSKA_IOCALLBACK_H
23
#define MATROSKA_IOCALLBACK_H
24
25
26
enum seek_mode
27
{
28
- seek_beginning=SEEK_SET
29
- ,seek_end=SEEK_END
30
- ,seek_current=SEEK_CUR
31
+ seek_beginning=SEEK_SET
32
+ ,seek_end=SEEK_END
33
+ ,seek_current=SEEK_CUR
34
};
35
36
class EBML_DLL_API IOCallback
37
{
38
public:
39
- virtual ~IOCallback(){}
40
+ virtual ~IOCallback(){}
41
42
- // The read callback works like most other read functions. You specify the
43
- // file, the buffer and the size and the function returns the bytes read.
44
- // If an error occurs or the file pointer points to the end of the file 0 is returned.
45
- // Users are encouraged to throw a descriptive exception, when an error occurs.
46
+ // The read callback works like most other read functions. You specify the
47
+ // file, the buffer and the size and the function returns the bytes read.
48
+ // If an error occurs or the file pointer points to the end of the file 0 is returned.
49
+ // Users are encouraged to throw a descriptive exception, when an error occurs.
50
#ifndef EBML_NO_READ
51
- virtual uint32 read(void*Buffer,size_t Size)=0;
52
+ virtual uint32 read(void*Buffer,size_t Size)=0;
53
#endif
54
55
- // Seek to the specified position. The mode can have either SEEK_SET, SEEK_CUR
56
- // or SEEK_END. The callback should return true(1) if the seek operation succeeded
57
- // or false (0), when the seek fails.
58
- virtual void setFilePointer(int64 Offset,seek_mode Mode=seek_beginning)=0;
59
+ // Seek to the specified position. The mode can have either SEEK_SET, SEEK_CUR
60
+ // or SEEK_END. The callback should return true(1) if the seek operation succeeded
61
+ // or false (0), when the seek fails.
62
+ virtual void setFilePointer(int64 Offset,seek_mode Mode=seek_beginning)=0;
63
64
- // This callback just works like its read pendant. It returns the number of bytes written.
65
- virtual size_t write(const void*Buffer,size_t Size)=0;
66
+ // This callback just works like its read pendant. It returns the number of bytes written.
67
+ virtual size_t write(const void*Buffer,size_t Size)=0;
68
69
- // Although the position is always positive, the return value of this callback is signed to
70
- // easily allow negative values for returning errors. When an error occurs, the implementor
71
- // should return -1 and the file pointer otherwise.
72
- //
73
- // If an error occurs, an exception should be thrown.
74
- virtual uint64 getFilePointer()=0;
75
+ // Although the position is always positive, the return value of this callback is signed to
76
+ // easily allow negative values for returning errors. When an error occurs, the implementor
77
+ // should return -1 and the file pointer otherwise.
78
+ //
79
+ // If an error occurs, an exception should be thrown.
80
+ virtual uint64 getFilePointer()=0;
81
82
- // The close callback flushes the file buffers to disk and closes the file. When using the stdio
83
- // library, this is equivalent to calling fclose. When the close is not successful, an exception
84
- // should be thrown.
85
- virtual void close()=0;
86
+ // The close callback flushes the file buffers to disk and closes the file. When using the stdio
87
+ // library, this is equivalent to calling fclose. When the close is not successful, an exception
88
+ // should be thrown.
89
+ virtual void close()=0;
90
91
92
- // The readFully is made virtual to allow derived classes to use another
93
- // implementation for this method, which e.g. does not read any data
94
- // unlike this does
95
+ // The readFully is made virtual to allow derived classes to use another
96
+ // implementation for this method, which e.g. does not read any data
97
+ // unlike this does
98
#ifndef EBML_NO_READ
99
- void readFully(void*Buffer,size_t Size);
100
+ void readFully(void*Buffer,size_t Size);
101
102
- template<class STRUCT> void readStruct(STRUCT&Struct){readFully(&Struct,sizeof(Struct));}
103
+ template<class STRUCT> void readStruct(STRUCT&Struct){readFully(&Struct,sizeof(Struct));}
104
#endif
105
106
- void writeFully(const void*Buffer,size_t Size);
107
+ void writeFully(const void*Buffer,size_t Size);
108
109
- template<class STRUCT> void writeStruct(const STRUCT&Struct){writeFully(&Struct,sizeof(Struct));}
110
+ template<class STRUCT> void writeStruct(const STRUCT&Struct){writeFully(&Struct,sizeof(Struct));}
111
};
112
113
/* cygwin incompatible
114
template<class TRAITS> std::basic_ostream<char,TRAITS>&operator<<(std::basic_ostream<char,TRAITS>&Stream,seek_mode Mode)
115
{
116
- switch(Mode)
117
- {
118
+ switch(Mode)
119
+ {
120
#define x(y) case seek_##y: Stream<<"seek_" #y; break
121
- x(beginning);
122
- x(current);
123
- x(end);
124
+ x(beginning);
125
+ x(current);
126
+ x(end);
127
#undef x
128
- default:
129
- assert(false);
130
- }
131
+ default:
132
+ assert(false);
133
+ }
134
135
- return Stream;
136
+ return Stream;
137
}
138
*/
139
140
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/MemIOCallback.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/MemIOCallback.h
Changed
161
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: MemIOCallback.h 1298 2008-02-21 22:14:18Z mosu $
29
- \author Jory Stone <jcsston @ toughguy.net>
30
+ \file
31
+ \version \$Id: MemIOCallback.h 1298 2008-02-21 22:14:18Z mosu $
32
+ \author Jory Stone <jcsston @ toughguy.net>
33
*/
34
#ifndef LIBEBML_MEMIOCALLBACK_H
35
#define LIBEBML_MEMIOCALLBACK_H
36
37
class EBML_DLL_API MemIOCallback : public IOCallback
38
{
39
public:
40
- MemIOCallback(uint64 DefaultSize = 128);
41
- ~MemIOCallback();
42
+ MemIOCallback(uint64 DefaultSize = 128);
43
+ ~MemIOCallback();
44
45
- /*!
46
- Use this to copy some data to the Buffer from this classes data
47
- */
48
- uint32 read(void *Buffer, size_t Size);
49
+ /*!
50
+ Use this to copy some data to the Buffer from this classes data
51
+ */
52
+ uint32 read(void *Buffer, size_t Size);
53
54
- /*!
55
- Seek to the specified position. The mode can have either SEEK_SET, SEEK_CUR
56
- or SEEK_END. The callback should return true(1) if the seek operation succeeded
57
- or false (0), when the seek fails.
58
- */
59
- void setFilePointer(int64 Offset, seek_mode Mode=seek_beginning);
60
+ /*!
61
+ Seek to the specified position. The mode can have either SEEK_SET, SEEK_CUR
62
+ or SEEK_END. The callback should return true(1) if the seek operation succeeded
63
+ or false (0), when the seek fails.
64
+ */
65
+ void setFilePointer(int64 Offset, seek_mode Mode=seek_beginning);
66
67
- /*!
68
- This callback just works like its read pendant. It returns the number of bytes written.
69
- */
70
- size_t write(const void *Buffer, size_t Size);
71
+ /*!
72
+ This callback just works like its read pendant. It returns the number of bytes written.
73
+ */
74
+ size_t write(const void *Buffer, size_t Size);
75
76
- /*!
77
- Although the position is always positive, the return value of this callback is signed to
78
- easily allow negative values for returning errors. When an error occurs, the implementor
79
- should return -1 and the file pointer otherwise.
80
+ /*!
81
+ Although the position is always positive, the return value of this callback is signed to
82
+ easily allow negative values for returning errors. When an error occurs, the implementor
83
+ should return -1 and the file pointer otherwise.
84
85
- If an error occurs, an exception should be thrown.
86
- */
87
- virtual uint64 getFilePointer() {return dataBufferPos;};
88
+ If an error occurs, an exception should be thrown.
89
+ */
90
+ virtual uint64 getFilePointer() {return dataBufferPos;};
91
92
- /*!
93
- The close callback flushes the file buffers to disk and closes the file. When using the stdio
94
- library, this is equivalent to calling fclose. When the close is not successful, an exception
95
- should be thrown.
96
- */
97
- void close() {};
98
+ /*!
99
+ The close callback flushes the file buffers to disk and closes the file. When using the stdio
100
+ library, this is equivalent to calling fclose. When the close is not successful, an exception
101
+ should be thrown.
102
+ */
103
+ void close() {};
104
105
- binary *GetDataBuffer() const {return dataBuffer;};
106
- uint64 GetDataBufferSize() {return dataBufferTotalSize;};
107
- void SetDataBufferSize(uint64 newDataBufferSize) {dataBufferTotalSize = newDataBufferSize;};
108
- /*!
109
- Use this to write some data from another IOCallback
110
- */
111
+ binary *GetDataBuffer() const {return dataBuffer;};
112
+ uint64 GetDataBufferSize() {return dataBufferTotalSize;};
113
+ void SetDataBufferSize(uint64 newDataBufferSize) {dataBufferTotalSize = newDataBufferSize;};
114
+ /*!
115
+ Use this to write some data from another IOCallback
116
+ */
117
#ifndef EBML_NO_READ
118
- uint32 write(IOCallback & IOToRead, size_t Size);
119
+ uint32 write(IOCallback & IOToRead, size_t Size);
120
#endif
121
122
- bool IsOk() { return mOk; };
123
- const ref::string &GetLastErrorStr() { return mLastErrorStr; };
124
+ bool IsOk() { return mOk; };
125
+ const ref::string &GetLastErrorStr() { return mLastErrorStr; };
126
protected:
127
- bool mOk;
128
- buf::string mLastErrorStr;
129
+ bool mOk;
130
+ buf::string mLastErrorStr;
131
132
- binary *dataBuffer;
133
- /*!
134
- Postion where we start 'writing' to the dataBuffer
135
- */
136
- uint64 dataBufferPos;
137
- /*!
138
- Size of the data in the dataBuffer
139
- */
140
- uint64 dataBufferTotalSize;
141
- /*!
142
- Size of the memory malloc()/realloc()
143
- */
144
- uint64 dataBufferMemorySize;
145
+ binary *dataBuffer;
146
+ /*!
147
+ Postion where we start 'writing' to the dataBuffer
148
+ */
149
+ uint64 dataBufferPos;
150
+ /*!
151
+ Size of the data in the dataBuffer
152
+ */
153
+ uint64 dataBufferTotalSize;
154
+ /*!
155
+ Size of the memory malloc()/realloc()
156
+ */
157
+ uint64 dataBufferMemorySize;
158
};
159
160
END_LIBEBML_NAMESPACE
161
makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/MemReadIOCallback.h
Added
68
1
2
+/****************************************************************************
3
+** libebml : parse EBML files, see http://embl.sourceforge.net/
4
+**
5
+** <file/class description>
6
+**
7
+** Copyright (C) 2014 Moritz Bunkus. All rights reserved.
8
+**
9
+** This library is free software; you can redistribute it and/or
10
+** modify it under the terms of the GNU Lesser General Public
11
+** License as published by the Free Software Foundation; either
12
+** version 2.1 of the License, or (at your option) any later version.
13
+**
14
+** This library is distributed in the hope that it will be useful,
15
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
17
+** Lesser General Public License for more details.
18
+**
19
+** You should have received a copy of the GNU Lesser General Public
20
+** License along with this library; if not, write to the Free Software
21
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
22
+**
23
+** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
24
+**
25
+** Contact license@matroska.org if any conditions of this licensing are
26
+** not clear to you.
27
+**
28
+**********************************************************************/
29
+
30
+/*!
31
+ \file
32
+ \author Moritz Bunkus <moritz@bunkus.org>
33
+*/
34
+#ifndef LIBEBML_MEMREADIOCALLBACK_H
35
+#define LIBEBML_MEMREADIOCALLBACK_H
36
+
37
+#include "IOCallback.h"
38
+
39
+START_LIBEBML_NAMESPACE
40
+
41
+class EBML_DLL_API EbmlBinary;
42
+
43
+class EBML_DLL_API MemReadIOCallback : public IOCallback {
44
+protected:
45
+ uint8 const *mStart, *mEnd, *mPtr;
46
+
47
+public:
48
+ MemReadIOCallback(void const *Ptr, size_t Size);
49
+ MemReadIOCallback(EbmlBinary const &Binary);
50
+ MemReadIOCallback(MemReadIOCallback const &Mem);
51
+ virtual ~MemReadIOCallback();
52
+
53
+ uint32 read(void *Buffer, size_t Size);
54
+ void setFilePointer(int64 Offset, seek_mode Mode = seek_beginning);
55
+ size_t write(void const *, size_t) { return 0; }
56
+ virtual uint64 getFilePointer() { return mPtr - mStart; }
57
+ void close() {}
58
+ binary const *GetDataBuffer() const { return mPtr; }
59
+ uint64 GetDataBufferSize() const { return mEnd - mStart; }
60
+
61
+protected:
62
+ void Init(void const *Ptr, size_t Size);
63
+};
64
+
65
+END_LIBEBML_NAMESPACE
66
+
67
+#endif // LIBEBML_MEMREADIOCALLBACK_H
68
makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/SafeReadIOCallback.h
Added
93
1
2
+/****************************************************************************
3
+** libebml : parse EBML files, see http://embl.sourceforge.net/
4
+**
5
+** <file/class description>
6
+**
7
+** Copyright (C) 2002-2014 Moritz Bunkus. All rights reserved.
8
+**
9
+** This file is part of libebml.
10
+**
11
+** This library is free software; you can redistribute it and/or
12
+** modify it under the terms of the GNU Lesser General Public
13
+** License as published by the Free Software Foundation; either
14
+** version 2.1 of the License, or (at your option) any later version.
15
+**
16
+** This library is distributed in the hope that it will be useful,
17
+** but WITHOUT ANY WARRANTY; without even the implied warranty of
18
+** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
19
+** Lesser General Public License for more details.
20
+**
21
+** You should have received a copy of the GNU Lesser General Public
22
+** License along with this library; if not, write to the Free Software
23
+** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24
+**
25
+** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
26
+**
27
+** Contact license@matroska.org if any conditions of this licensing are
28
+** not clear to you.
29
+**
30
+**********************************************************************/
31
+
32
+/*!
33
+ \file
34
+ \version \$Id$
35
+ \author Moritz Bunkus <moritz@bunkus.org>
36
+*/
37
+#ifndef LIBEBML_SAFEREADIOCALLBACK_H
38
+#define LIBEBML_SAFEREADIOCALLBACK_H
39
+
40
+#include "EbmlTypes.h"
41
+
42
+START_LIBEBML_NAMESPACE
43
+
44
+class EBML_DLL_API IOCallback;
45
+class EBML_DLL_API EbmlBinary;
46
+
47
+class EBML_DLL_API SafeReadIOCallback {
48
+public:
49
+ class EndOfStreamX {
50
+ public:
51
+ size_t mMissingBytes;
52
+ EndOfStreamX(std::size_t MissingBytes);
53
+ };
54
+
55
+private:
56
+ IOCallback *mIO;
57
+ bool mDeleteIO;
58
+ size_t mSize;
59
+
60
+public:
61
+ SafeReadIOCallback(IOCallback *IO, bool DeleteIO);
62
+ SafeReadIOCallback(void const *Mem, size_t Size);
63
+ SafeReadIOCallback(EbmlBinary const &Binary);
64
+ ~SafeReadIOCallback();
65
+
66
+ size_t GetPosition() const;
67
+ size_t GetSize() const;
68
+ size_t GetRemainingBytes() const;
69
+ bool IsEmpty() const;
70
+
71
+ uint8 GetUInt8();
72
+ uint64 GetUIntBE(size_t NumBytes);
73
+ uint16 GetUInt16BE();
74
+ uint32 GetUInt24BE();
75
+ uint32 GetUInt32BE();
76
+ uint64 GetUInt64BE();
77
+
78
+ void Read(void *Dst, size_t Count);
79
+
80
+ void Skip(size_t Count);
81
+ void Seek(size_t Position);
82
+
83
+private:
84
+ SafeReadIOCallback(SafeReadIOCallback const &) { }
85
+
86
+protected:
87
+ void Init(IOCallback *IO, bool DeleteIO);
88
+};
89
+
90
+END_LIBEBML_NAMESPACE
91
+
92
+#endif // LIBEBML_SAFEREADIOCALLBACK_H
93
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/StdIOCallback.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/StdIOCallback.h
Changed
115
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: StdIOCallback.h 1090 2005-03-16 12:47:59Z robux4 $
29
+ \file
30
+ \version \$Id: StdIOCallback.h 1090 2005-03-16 12:47:59Z robux4 $
31
*/
32
#ifndef LIBEBML_STDIOCALLBACK_H
33
#define LIBEBML_STDIOCALLBACK_H
34
35
{
36
// Variablen...
37
private:
38
- int Error;
39
+ int Error;
40
41
// Methoden...
42
public:
43
- CRTError(int Error,const std::string&Description);
44
- CRTError(const std::string&Description,int Error=errno);
45
+ CRTError(int Error,const std::string&Description);
46
+ CRTError(const std::string&Description,int Error=errno);
47
48
- int getError()const throw(){return Error;}
49
+ int getError()const throw(){return Error;}
50
};
51
52
// This class is currently private to the library, so there's no MATROSKA_EXPORT.
53
class EBML_DLL_API StdIOCallback:public IOCallback
54
{
55
private:
56
- FILE*File;
57
- uint64 mCurrentPosition;
58
+ FILE*File;
59
+ uint64 mCurrentPosition;
60
61
public:
62
-// StdIOCallback(const char*Path,const char*Mode);
63
- StdIOCallback(const char*Path, const open_mode Mode);
64
- virtual ~StdIOCallback()throw();
65
-
66
- virtual uint32 read(void*Buffer,size_t Size);
67
-
68
- // Seek to the specified position. The mode can have either SEEK_SET, SEEK_CUR
69
- // or SEEK_END. The callback should return true(1) if the seek operation succeeded
70
- // or false (0), when the seek fails.
71
- virtual void setFilePointer(int64 Offset,seek_mode Mode=seek_beginning);
72
-
73
- // This callback just works like its read pendant. It returns the number of bytes written.
74
- virtual size_t write(const void*Buffer,size_t Size);
75
-
76
- // Although the position is always positive, the return value of this callback is signed to
77
- // easily allow negative values for returning errors. When an error occurs, the implementor
78
- // should return -1 and the file pointer otherwise.
79
- //
80
- // If an error occurs, an exception should be thrown.
81
- virtual uint64 getFilePointer();
82
-
83
- // The close callback flushes the file buffers to disk and closes the file. When using the stdio
84
- // library, this is equivalent to calling fclose. When the close is not successful, an exception
85
- // should be thrown.
86
- virtual void close();
87
+// StdIOCallback(const char*Path,const char*Mode);
88
+ StdIOCallback(const char*Path, const open_mode Mode);
89
+ virtual ~StdIOCallback()throw();
90
+
91
+ virtual uint32 read(void*Buffer,size_t Size);
92
+
93
+ // Seek to the specified position. The mode can have either SEEK_SET, SEEK_CUR
94
+ // or SEEK_END. The callback should return true(1) if the seek operation succeeded
95
+ // or false (0), when the seek fails.
96
+ virtual void setFilePointer(int64 Offset,seek_mode Mode=seek_beginning);
97
+
98
+ // This callback just works like its read pendant. It returns the number of bytes written.
99
+ virtual size_t write(const void*Buffer,size_t Size);
100
+
101
+ // Although the position is always positive, the return value of this callback is signed to
102
+ // easily allow negative values for returning errors. When an error occurs, the implementor
103
+ // should return -1 and the file pointer otherwise.
104
+ //
105
+ // If an error occurs, an exception should be thrown.
106
+ virtual uint64 getFilePointer();
107
+
108
+ // The close callback flushes the file buffers to disk and closes the file. When using the stdio
109
+ // library, this is equivalent to calling fclose. When the close is not successful, an exception
110
+ // should be thrown.
111
+ virtual void close();
112
};
113
114
END_LIBEBML_NAMESPACE
115
makemkv-oss-1.9.5.tar.xz/libebml/inc/ebml/c/libebml_t.h -> makemkv-oss-1.10.2.tar.xz/libebml/inc/ebml/c/libebml_t.h
Changed
31
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
15
// Changed char is unsigned now (signedness was causing trouble in endil)
16
#if defined(_WIN32)
17
-# if !defined(__GNUC__) // Microsoft Visual C++
18
+# if !defined(__GNUC__) // Microsoft Visual C++
19
typedef signed __int64 int64;
20
typedef signed __int32 int32;
21
typedef signed __int16 int16;
22
23
# endif // __GNUC__
24
#elif defined(__BEOS__)
25
#include <SupportDefs.h>
26
-#elif defined(DJGPP) /* SL : DJGPP doesn't support POSIX types ???? */
27
+#elif defined(DJGPP) /* SL : DJGPP doesn't support POSIX types ???? */
28
typedef signed long long int64;
29
typedef signed long int32;
30
typedef signed short int16;
31
makemkv-oss-1.9.5.tar.xz/libebml/src/Debug.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/Debug.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: Debug.cpp 1268 2007-01-19 10:15:08Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id: Debug.cpp 1268 2007-01-19 10:15:08Z robux4 $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
#include <stdio.h>
37
38
39
//////////////////////////////////////////////////////////////////////
40
41
ADbg::ADbg(int level)
42
-:my_level(level)
43
-,my_time_included(false)
44
-,my_use_file(false)
45
-,my_debug_output(true)
46
-,hFile(NULL)
47
+ :my_level(level)
48
+ ,my_time_included(false)
49
+ ,my_use_file(false)
50
+ ,my_debug_output(true)
51
+ ,hFile(NULL)
52
{
53
- prefix[0] = '\0';
54
- OutPut(-1,"ADbg Creation at debug level = %d (0x%08X)",my_level,this);
55
+ prefix[0] = '\0';
56
+ OutPut(-1,"ADbg Creation at debug level = %d (0x%08X)",my_level,this);
57
}
58
59
ADbg::~ADbg()
60
{
61
- unsetDebugFile();
62
- OutPut(-1,"ADbg Deletion (0x%08X)",this);
63
+ unsetDebugFile();
64
+ OutPut(-1,"ADbg Deletion (0x%08X)",this);
65
}
66
67
inline int ADbg::_OutPut(const char * format,va_list params) const
68
{
69
- int result;
70
+ int result;
71
72
- char tst[1000];
73
- char myformat[256];
74
+ char tst[1000];
75
+ char myformat[256];
76
77
#ifdef WIN32
78
- if (my_time_included) {
79
- SYSTEMTIME time;
80
- GetSystemTime(&time);
81
- if (prefix[0] == '\0')
82
- wsprintfA(myformat,"%04d/%02d/%02d %02d:%02d:%02d.%03d UTC : %s\r\n",
83
- time.wYear,
84
- time.wMonth,
85
- time.wDay,
86
- time.wHour,
87
- time.wMinute,
88
- time.wSecond,
89
- time.wMilliseconds,
90
- format);
91
- else
92
- wsprintfA(myformat,"%04d/%02d/%02d %02d:%02d:%02d.%03d UTC : %s - %s\r\n",
93
- time.wYear,
94
- time.wMonth,
95
- time.wDay,
96
- time.wHour,
97
- time.wMinute,
98
- time.wSecond,
99
- time.wMilliseconds,
100
- prefix,
101
- format);
102
- } else {
103
- if (prefix[0] == '\0')
104
- wsprintfA( myformat, "%s\r\n", format);
105
- else
106
- wsprintfA( myformat, "%s - %s\r\n", prefix, format);
107
- }
108
- result = vsprintf(tst,myformat,params);
109
-
110
- if (my_debug_output)
111
- OutputDebugStringA(tst);
112
-
113
- if (my_use_file && (hFile != NULL)) {
114
- SetFilePointer( hFile, 0, 0, FILE_END );
115
- DWORD written;
116
- WriteFile( hFile, tst, lstrlenA(tst), &written, NULL );
117
- }
118
+ if (my_time_included) {
119
+ SYSTEMTIME time;
120
+ GetSystemTime(&time);
121
+ if (prefix[0] == '\0')
122
+ wsprintfA(myformat,"%04d/%02d/%02d %02d:%02d:%02d.%03d UTC : %s\r\n",
123
+ time.wYear,
124
+ time.wMonth,
125
+ time.wDay,
126
+ time.wHour,
127
+ time.wMinute,
128
+ time.wSecond,
129
+ time.wMilliseconds,
130
+ format);
131
+ else
132
+ wsprintfA(myformat,"%04d/%02d/%02d %02d:%02d:%02d.%03d UTC : %s - %s\r\n",
133
+ time.wYear,
134
+ time.wMonth,
135
+ time.wDay,
136
+ time.wHour,
137
+ time.wMinute,
138
+ time.wSecond,
139
+ time.wMilliseconds,
140
+ prefix,
141
+ format);
142
+ } else {
143
+ if (prefix[0] == '\0')
144
+ wsprintfA( myformat, "%s\r\n", format);
145
+ else
146
+ wsprintfA( myformat, "%s - %s\r\n", prefix, format);
147
+ }
148
+ result = vsprintf(tst,myformat,params);
149
+
150
+ if (my_debug_output)
151
+ OutputDebugStringA(tst);
152
+
153
+ if (my_use_file && (hFile != NULL)) {
154
+ SetFilePointer( hFile, 0, 0, FILE_END );
155
+ DWORD written;
156
+ WriteFile( hFile, tst, lstrlenA(tst), &written, NULL );
157
+ }
158
#else
159
- if (my_time_included) {
160
- time_t nowSecs;
161
- struct tm *now;
162
- struct timeval tv;
163
-
164
- nowSecs = time(NULL);
165
- gettimeofday(&tv, NULL);
166
- now = gmtime(&nowSecs);
167
- if (prefix[0] == '\0')
168
- sprintf(myformat,"%04d/%02d/%02d %02d:%02d:%02ld.%03ld UTC : %s\r\n",
169
- now->tm_year, now->tm_mon, now->tm_mday,
170
- now->tm_hour, now->tm_min, tv.tv_sec,
171
- (long)tv.tv_usec / 1000, format);
172
- else
173
- sprintf(myformat,"%04d/%02d/%02d %02d:%02d:%02ld.%03ld UTC : %s - %s\r\n",
174
- now->tm_year, now->tm_mon, now->tm_mday,
175
- now->tm_hour, now->tm_min, tv.tv_sec,
176
- (long)tv.tv_usec / 1000, prefix, format);
177
-
178
- } else {
179
- if (prefix[0] == '\0')
180
- sprintf( myformat, "%s\r\n", format);
181
- else
182
- sprintf( myformat, "%s - %s\r\n", prefix, format);
183
- }
184
-
185
- result = vsprintf(tst,myformat,params);
186
-
187
- if (my_debug_output)
188
- fputs(tst, stderr);
189
-
190
- if (my_use_file && (hFile != NULL))
191
- fputs(tst, hFile);
192
+ if (my_time_included) {
193
+ time_t nowSecs;
194
+ struct tm *now;
195
+ struct timeval tv;
196
+
197
+ nowSecs = time(NULL);
198
+ gettimeofday(&tv, NULL);
199
+ now = gmtime(&nowSecs);
200
+ if (prefix[0] == '\0')
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlBinary.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlBinary.cpp
Changed
136
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Julien Coloos <suiryc @ users.sf.net>
31
+ \file
32
+ \version \$Id$
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Julien Coloos <suiryc @ users.sf.net>
35
*/
36
#include <lgpl/stdstring.h>
37
#include <lgpl/cassert>
38
39
START_LIBEBML_NAMESPACE
40
41
EbmlBinary::EbmlBinary()
42
- :EbmlElement(0, false), Data(NULL)
43
+ :EbmlElement(0, false), Data(NULL)
44
{}
45
46
EbmlBinary::EbmlBinary(const EbmlBinary & ElementToClone)
47
- :EbmlElement(ElementToClone)
48
+ :EbmlElement(ElementToClone)
49
{
50
- if (ElementToClone.Data == NULL)
51
- Data = NULL;
52
- else {
53
- Data = (binary *)malloc(GetSize() * sizeof(binary));
54
- assert(Data != NULL);
55
- memcpy(Data, ElementToClone.Data, GetSize());
56
- }
57
+ if (ElementToClone.Data == NULL)
58
+ Data = NULL;
59
+ else {
60
+ Data = (binary *)malloc(GetSize() * sizeof(binary));
61
+ assert(Data != NULL);
62
+ memcpy(Data, ElementToClone.Data, GetSize());
63
+ }
64
}
65
66
EbmlBinary::~EbmlBinary(void) {
67
- if(Data)
68
- free(Data);
69
+ if(Data)
70
+ free(Data);
71
}
72
73
EbmlBinary::operator const binary &() const {return *Data;}
74
75
76
filepos_t EbmlBinary::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
77
{
78
- output.writeFully(Data,GetSize());
79
+ output.writeFully(Data,GetSize());
80
81
- return GetSize();
82
+ return GetSize();
83
}
84
-
85
+
86
/*!
87
- \note no Default binary value handled
88
+ \note no Default binary value handled
89
*/
90
uint64 EbmlBinary::UpdateSize(bool /* bWithDefault */, bool /* bForceRender */)
91
{
92
- return GetSize();
93
+ return GetSize();
94
}
95
96
#ifndef EBML_NO_READ
97
filepos_t EbmlBinary::ReadData(IOCallback & input, ScopeMode ReadFully)
98
{
99
- if (Data != NULL)
100
- free(Data);
101
-
102
- if (ReadFully == SCOPE_NO_DATA || !GetSize())
103
- {
104
- Data = NULL;
105
- return GetSize();
106
- }
107
-
108
- Data = (binary *)malloc(GetSize());
109
- if (Data == NULL)
110
- throw CRTError(std::string("Error allocating data"));
111
- SetValueIsSet();
112
- return input.read(Data, GetSize());
113
+ if (Data != NULL)
114
+ free(Data);
115
+
116
+ if (ReadFully == SCOPE_NO_DATA || !GetSize()) {
117
+ Data = NULL;
118
+ return GetSize();
119
+ }
120
+
121
+ Data = (binary *)malloc(GetSize());
122
+ if (Data == NULL)
123
+ throw CRTError(std::string("Error allocating data"));
124
+ SetValueIsSet();
125
+ return input.read(Data, GetSize());
126
}
127
#endif
128
129
bool EbmlBinary::operator==(const EbmlBinary & ElementToCompare) const
130
{
131
- return ((GetSize() == ElementToCompare.GetSize()) && !memcmp(Data, ElementToCompare.Data, GetSize()));
132
+ return ((GetSize() == ElementToCompare.GetSize()) && !memcmp(Data, ElementToCompare.Data, GetSize()));
133
}
134
135
END_LIBEBML_NAMESPACE
136
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlContexts.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlContexts.cpp
Changed
56
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlContexts.cpp 639 2004-07-09 20:59:14Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlContexts.cpp 639 2004-07-09 20:59:14Z mosu $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include "ebml/EbmlContexts.h"
35
#include "ebml/EbmlCrc32.h"
36
37
38
static const EbmlSemantic EbmlGlobal_ContextList[2] =
39
{
40
- EbmlSemantic(false, false, EBML_INFO(EbmlCrc32)), ///< EbmlCrc32
41
- EbmlSemantic(false, false, EBML_INFO(EbmlVoid)), ///< EbmlVoid
42
+ EbmlSemantic(false, false, EBML_INFO(EbmlCrc32)), ///< EbmlCrc32
43
+ EbmlSemantic(false, false, EBML_INFO(EbmlVoid)), ///< EbmlVoid
44
};
45
46
const EbmlSemanticContext Context_EbmlGlobal = EbmlSemanticContext(0, NULL, NULL, *GetEbmlGlobal_Context, NULL);
47
48
49
const EbmlSemanticContext & GetEbmlGlobal_Context()
50
{
51
- return EbmlGlobal_Context;
52
+ return EbmlGlobal_Context;
53
}
54
55
END_LIBEBML_NAMESPACE
56
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlCrc32.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlCrc32.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlCrc32.cpp 1155 2005-05-06 11:43:38Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Jory Stone <jcsston @ toughguy.net>
31
+ \file
32
+ \version \$Id: EbmlCrc32.cpp 1155 2005-05-06 11:43:38Z robux4 $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Jory Stone <jcsston @ toughguy.net>
35
*/
36
#include "ebml/EbmlCrc32.h"
37
#include "ebml/EbmlContexts.h"
38
39
40
const uint32 EbmlCrc32::m_tab[] = {
41
#ifdef WORDS_BIGENDIAN
42
- 0x00000000L, 0x96300777L, 0x2c610eeeL, 0xba510999L, 0x19c46d07L,
43
- 0x8ff46a70L, 0x35a563e9L, 0xa395649eL, 0x3288db0eL, 0xa4b8dc79L,
44
- 0x1ee9d5e0L, 0x88d9d297L, 0x2b4cb609L, 0xbd7cb17eL, 0x072db8e7L,
45
- 0x911dbf90L, 0x6410b71dL, 0xf220b06aL, 0x4871b9f3L, 0xde41be84L,
46
- 0x7dd4da1aL, 0xebe4dd6dL, 0x51b5d4f4L, 0xc785d383L, 0x56986c13L,
47
- 0xc0a86b64L, 0x7af962fdL, 0xecc9658aL, 0x4f5c0114L, 0xd96c0663L,
48
- 0x633d0ffaL, 0xf50d088dL, 0xc8206e3bL, 0x5e10694cL, 0xe44160d5L,
49
- 0x727167a2L, 0xd1e4033cL, 0x47d4044bL, 0xfd850dd2L, 0x6bb50aa5L,
50
- 0xfaa8b535L, 0x6c98b242L, 0xd6c9bbdbL, 0x40f9bcacL, 0xe36cd832L,
51
- 0x755cdf45L, 0xcf0dd6dcL, 0x593dd1abL, 0xac30d926L, 0x3a00de51L,
52
- 0x8051d7c8L, 0x1661d0bfL, 0xb5f4b421L, 0x23c4b356L, 0x9995bacfL,
53
- 0x0fa5bdb8L, 0x9eb80228L, 0x0888055fL, 0xb2d90cc6L, 0x24e90bb1L,
54
- 0x877c6f2fL, 0x114c6858L, 0xab1d61c1L, 0x3d2d66b6L, 0x9041dc76L,
55
- 0x0671db01L, 0xbc20d298L, 0x2a10d5efL, 0x8985b171L, 0x1fb5b606L,
56
- 0xa5e4bf9fL, 0x33d4b8e8L, 0xa2c90778L, 0x34f9000fL, 0x8ea80996L,
57
- 0x18980ee1L, 0xbb0d6a7fL, 0x2d3d6d08L, 0x976c6491L, 0x015c63e6L,
58
- 0xf4516b6bL, 0x62616c1cL, 0xd8306585L, 0x4e0062f2L, 0xed95066cL,
59
- 0x7ba5011bL, 0xc1f40882L, 0x57c40ff5L, 0xc6d9b065L, 0x50e9b712L,
60
- 0xeab8be8bL, 0x7c88b9fcL, 0xdf1ddd62L, 0x492dda15L, 0xf37cd38cL,
61
- 0x654cd4fbL, 0x5861b24dL, 0xce51b53aL, 0x7400bca3L, 0xe230bbd4L,
62
- 0x41a5df4aL, 0xd795d83dL, 0x6dc4d1a4L, 0xfbf4d6d3L, 0x6ae96943L,
63
- 0xfcd96e34L, 0x468867adL, 0xd0b860daL, 0x732d0444L, 0xe51d0333L,
64
- 0x5f4c0aaaL, 0xc97c0dddL, 0x3c710550L, 0xaa410227L, 0x10100bbeL,
65
- 0x86200cc9L, 0x25b56857L, 0xb3856f20L, 0x09d466b9L, 0x9fe461ceL,
66
- 0x0ef9de5eL, 0x98c9d929L, 0x2298d0b0L, 0xb4a8d7c7L, 0x173db359L,
67
- 0x810db42eL, 0x3b5cbdb7L, 0xad6cbac0L, 0x2083b8edL, 0xb6b3bf9aL,
68
- 0x0ce2b603L, 0x9ad2b174L, 0x3947d5eaL, 0xaf77d29dL, 0x1526db04L,
69
- 0x8316dc73L, 0x120b63e3L, 0x843b6494L, 0x3e6a6d0dL, 0xa85a6a7aL,
70
- 0x0bcf0ee4L, 0x9dff0993L, 0x27ae000aL, 0xb19e077dL, 0x44930ff0L,
71
- 0xd2a30887L, 0x68f2011eL, 0xfec20669L, 0x5d5762f7L, 0xcb676580L,
72
- 0x71366c19L, 0xe7066b6eL, 0x761bd4feL, 0xe02bd389L, 0x5a7ada10L,
73
- 0xcc4add67L, 0x6fdfb9f9L, 0xf9efbe8eL, 0x43beb717L, 0xd58eb060L,
74
- 0xe8a3d6d6L, 0x7e93d1a1L, 0xc4c2d838L, 0x52f2df4fL, 0xf167bbd1L,
75
- 0x6757bca6L, 0xdd06b53fL, 0x4b36b248L, 0xda2b0dd8L, 0x4c1b0aafL,
76
- 0xf64a0336L, 0x607a0441L, 0xc3ef60dfL, 0x55df67a8L, 0xef8e6e31L,
77
- 0x79be6946L, 0x8cb361cbL, 0x1a8366bcL, 0xa0d26f25L, 0x36e26852L,
78
- 0x95770cccL, 0x03470bbbL, 0xb9160222L, 0x2f260555L, 0xbe3bbac5L,
79
- 0x280bbdb2L, 0x925ab42bL, 0x046ab35cL, 0xa7ffd7c2L, 0x31cfd0b5L,
80
- 0x8b9ed92cL, 0x1daede5bL, 0xb0c2649bL, 0x26f263ecL, 0x9ca36a75L,
81
- 0x0a936d02L, 0xa906099cL, 0x3f360eebL, 0x85670772L, 0x13570005L,
82
- 0x824abf95L, 0x147ab8e2L, 0xae2bb17bL, 0x381bb60cL, 0x9b8ed292L,
83
- 0x0dbed5e5L, 0xb7efdc7cL, 0x21dfdb0bL, 0xd4d2d386L, 0x42e2d4f1L,
84
- 0xf8b3dd68L, 0x6e83da1fL, 0xcd16be81L, 0x5b26b9f6L, 0xe177b06fL,
85
- 0x7747b718L, 0xe65a0888L, 0x706a0fffL, 0xca3b0666L, 0x5c0b0111L,
86
- 0xff9e658fL, 0x69ae62f8L, 0xd3ff6b61L, 0x45cf6c16L, 0x78e20aa0L,
87
- 0xeed20dd7L, 0x5483044eL, 0xc2b30339L, 0x612667a7L, 0xf71660d0L,
88
- 0x4d476949L, 0xdb776e3eL, 0x4a6ad1aeL, 0xdc5ad6d9L, 0x660bdf40L,
89
- 0xf03bd837L, 0x53aebca9L, 0xc59ebbdeL, 0x7fcfb247L, 0xe9ffb530L,
90
- 0x1cf2bdbdL, 0x8ac2bacaL, 0x3093b353L, 0xa6a3b424L, 0x0536d0baL,
91
- 0x9306d7cdL, 0x2957de54L, 0xbf67d923L, 0x2e7a66b3L, 0xb84a61c4L,
92
- 0x021b685dL, 0x942b6f2aL, 0x37be0bb4L, 0xa18e0cc3L, 0x1bdf055aL,
93
- 0x8def022dL
94
+ 0x00000000L, 0x96300777L, 0x2c610eeeL, 0xba510999L, 0x19c46d07L,
95
+ 0x8ff46a70L, 0x35a563e9L, 0xa395649eL, 0x3288db0eL, 0xa4b8dc79L,
96
+ 0x1ee9d5e0L, 0x88d9d297L, 0x2b4cb609L, 0xbd7cb17eL, 0x072db8e7L,
97
+ 0x911dbf90L, 0x6410b71dL, 0xf220b06aL, 0x4871b9f3L, 0xde41be84L,
98
+ 0x7dd4da1aL, 0xebe4dd6dL, 0x51b5d4f4L, 0xc785d383L, 0x56986c13L,
99
+ 0xc0a86b64L, 0x7af962fdL, 0xecc9658aL, 0x4f5c0114L, 0xd96c0663L,
100
+ 0x633d0ffaL, 0xf50d088dL, 0xc8206e3bL, 0x5e10694cL, 0xe44160d5L,
101
+ 0x727167a2L, 0xd1e4033cL, 0x47d4044bL, 0xfd850dd2L, 0x6bb50aa5L,
102
+ 0xfaa8b535L, 0x6c98b242L, 0xd6c9bbdbL, 0x40f9bcacL, 0xe36cd832L,
103
+ 0x755cdf45L, 0xcf0dd6dcL, 0x593dd1abL, 0xac30d926L, 0x3a00de51L,
104
+ 0x8051d7c8L, 0x1661d0bfL, 0xb5f4b421L, 0x23c4b356L, 0x9995bacfL,
105
+ 0x0fa5bdb8L, 0x9eb80228L, 0x0888055fL, 0xb2d90cc6L, 0x24e90bb1L,
106
+ 0x877c6f2fL, 0x114c6858L, 0xab1d61c1L, 0x3d2d66b6L, 0x9041dc76L,
107
+ 0x0671db01L, 0xbc20d298L, 0x2a10d5efL, 0x8985b171L, 0x1fb5b606L,
108
+ 0xa5e4bf9fL, 0x33d4b8e8L, 0xa2c90778L, 0x34f9000fL, 0x8ea80996L,
109
+ 0x18980ee1L, 0xbb0d6a7fL, 0x2d3d6d08L, 0x976c6491L, 0x015c63e6L,
110
+ 0xf4516b6bL, 0x62616c1cL, 0xd8306585L, 0x4e0062f2L, 0xed95066cL,
111
+ 0x7ba5011bL, 0xc1f40882L, 0x57c40ff5L, 0xc6d9b065L, 0x50e9b712L,
112
+ 0xeab8be8bL, 0x7c88b9fcL, 0xdf1ddd62L, 0x492dda15L, 0xf37cd38cL,
113
+ 0x654cd4fbL, 0x5861b24dL, 0xce51b53aL, 0x7400bca3L, 0xe230bbd4L,
114
+ 0x41a5df4aL, 0xd795d83dL, 0x6dc4d1a4L, 0xfbf4d6d3L, 0x6ae96943L,
115
+ 0xfcd96e34L, 0x468867adL, 0xd0b860daL, 0x732d0444L, 0xe51d0333L,
116
+ 0x5f4c0aaaL, 0xc97c0dddL, 0x3c710550L, 0xaa410227L, 0x10100bbeL,
117
+ 0x86200cc9L, 0x25b56857L, 0xb3856f20L, 0x09d466b9L, 0x9fe461ceL,
118
+ 0x0ef9de5eL, 0x98c9d929L, 0x2298d0b0L, 0xb4a8d7c7L, 0x173db359L,
119
+ 0x810db42eL, 0x3b5cbdb7L, 0xad6cbac0L, 0x2083b8edL, 0xb6b3bf9aL,
120
+ 0x0ce2b603L, 0x9ad2b174L, 0x3947d5eaL, 0xaf77d29dL, 0x1526db04L,
121
+ 0x8316dc73L, 0x120b63e3L, 0x843b6494L, 0x3e6a6d0dL, 0xa85a6a7aL,
122
+ 0x0bcf0ee4L, 0x9dff0993L, 0x27ae000aL, 0xb19e077dL, 0x44930ff0L,
123
+ 0xd2a30887L, 0x68f2011eL, 0xfec20669L, 0x5d5762f7L, 0xcb676580L,
124
+ 0x71366c19L, 0xe7066b6eL, 0x761bd4feL, 0xe02bd389L, 0x5a7ada10L,
125
+ 0xcc4add67L, 0x6fdfb9f9L, 0xf9efbe8eL, 0x43beb717L, 0xd58eb060L,
126
+ 0xe8a3d6d6L, 0x7e93d1a1L, 0xc4c2d838L, 0x52f2df4fL, 0xf167bbd1L,
127
+ 0x6757bca6L, 0xdd06b53fL, 0x4b36b248L, 0xda2b0dd8L, 0x4c1b0aafL,
128
+ 0xf64a0336L, 0x607a0441L, 0xc3ef60dfL, 0x55df67a8L, 0xef8e6e31L,
129
+ 0x79be6946L, 0x8cb361cbL, 0x1a8366bcL, 0xa0d26f25L, 0x36e26852L,
130
+ 0x95770cccL, 0x03470bbbL, 0xb9160222L, 0x2f260555L, 0xbe3bbac5L,
131
+ 0x280bbdb2L, 0x925ab42bL, 0x046ab35cL, 0xa7ffd7c2L, 0x31cfd0b5L,
132
+ 0x8b9ed92cL, 0x1daede5bL, 0xb0c2649bL, 0x26f263ecL, 0x9ca36a75L,
133
+ 0x0a936d02L, 0xa906099cL, 0x3f360eebL, 0x85670772L, 0x13570005L,
134
+ 0x824abf95L, 0x147ab8e2L, 0xae2bb17bL, 0x381bb60cL, 0x9b8ed292L,
135
+ 0x0dbed5e5L, 0xb7efdc7cL, 0x21dfdb0bL, 0xd4d2d386L, 0x42e2d4f1L,
136
+ 0xf8b3dd68L, 0x6e83da1fL, 0xcd16be81L, 0x5b26b9f6L, 0xe177b06fL,
137
+ 0x7747b718L, 0xe65a0888L, 0x706a0fffL, 0xca3b0666L, 0x5c0b0111L,
138
+ 0xff9e658fL, 0x69ae62f8L, 0xd3ff6b61L, 0x45cf6c16L, 0x78e20aa0L,
139
+ 0xeed20dd7L, 0x5483044eL, 0xc2b30339L, 0x612667a7L, 0xf71660d0L,
140
+ 0x4d476949L, 0xdb776e3eL, 0x4a6ad1aeL, 0xdc5ad6d9L, 0x660bdf40L,
141
+ 0xf03bd837L, 0x53aebca9L, 0xc59ebbdeL, 0x7fcfb247L, 0xe9ffb530L,
142
+ 0x1cf2bdbdL, 0x8ac2bacaL, 0x3093b353L, 0xa6a3b424L, 0x0536d0baL,
143
+ 0x9306d7cdL, 0x2957de54L, 0xbf67d923L, 0x2e7a66b3L, 0xb84a61c4L,
144
+ 0x021b685dL, 0x942b6f2aL, 0x37be0bb4L, 0xa18e0cc3L, 0x1bdf055aL,
145
+ 0x8def022dL
146
#else
147
- 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
148
- 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
149
- 0xe0d5e91eL, 0x97d2d988L, 0x09b64c2bL, 0x7eb17cbdL, 0xe7b82d07L,
150
- 0x90bf1d91L, 0x1db71064L, 0x6ab020f2L, 0xf3b97148L, 0x84be41deL,
151
- 0x1adad47dL, 0x6ddde4ebL, 0xf4d4b551L, 0x83d385c7L, 0x136c9856L,
152
- 0x646ba8c0L, 0xfd62f97aL, 0x8a65c9ecL, 0x14015c4fL, 0x63066cd9L,
153
- 0xfa0f3d63L, 0x8d080df5L, 0x3b6e20c8L, 0x4c69105eL, 0xd56041e4L,
154
- 0xa2677172L, 0x3c03e4d1L, 0x4b04d447L, 0xd20d85fdL, 0xa50ab56bL,
155
- 0x35b5a8faL, 0x42b2986cL, 0xdbbbc9d6L, 0xacbcf940L, 0x32d86ce3L,
156
- 0x45df5c75L, 0xdcd60dcfL, 0xabd13d59L, 0x26d930acL, 0x51de003aL,
157
- 0xc8d75180L, 0xbfd06116L, 0x21b4f4b5L, 0x56b3c423L, 0xcfba9599L,
158
- 0xb8bda50fL, 0x2802b89eL, 0x5f058808L, 0xc60cd9b2L, 0xb10be924L,
159
- 0x2f6f7c87L, 0x58684c11L, 0xc1611dabL, 0xb6662d3dL, 0x76dc4190L,
160
- 0x01db7106L, 0x98d220bcL, 0xefd5102aL, 0x71b18589L, 0x06b6b51fL,
161
- 0x9fbfe4a5L, 0xe8b8d433L, 0x7807c9a2L, 0x0f00f934L, 0x9609a88eL,
162
- 0xe10e9818L, 0x7f6a0dbbL, 0x086d3d2dL, 0x91646c97L, 0xe6635c01L,
163
- 0x6b6b51f4L, 0x1c6c6162L, 0x856530d8L, 0xf262004eL, 0x6c0695edL,
164
- 0x1b01a57bL, 0x8208f4c1L, 0xf50fc457L, 0x65b0d9c6L, 0x12b7e950L,
165
- 0x8bbeb8eaL, 0xfcb9887cL, 0x62dd1ddfL, 0x15da2d49L, 0x8cd37cf3L,
166
- 0xfbd44c65L, 0x4db26158L, 0x3ab551ceL, 0xa3bc0074L, 0xd4bb30e2L,
167
- 0x4adfa541L, 0x3dd895d7L, 0xa4d1c46dL, 0xd3d6f4fbL, 0x4369e96aL,
168
- 0x346ed9fcL, 0xad678846L, 0xda60b8d0L, 0x44042d73L, 0x33031de5L,
169
- 0xaa0a4c5fL, 0xdd0d7cc9L, 0x5005713cL, 0x270241aaL, 0xbe0b1010L,
170
- 0xc90c2086L, 0x5768b525L, 0x206f85b3L, 0xb966d409L, 0xce61e49fL,
171
- 0x5edef90eL, 0x29d9c998L, 0xb0d09822L, 0xc7d7a8b4L, 0x59b33d17L,
172
- 0x2eb40d81L, 0xb7bd5c3bL, 0xc0ba6cadL, 0xedb88320L, 0x9abfb3b6L,
173
- 0x03b6e20cL, 0x74b1d29aL, 0xead54739L, 0x9dd277afL, 0x04db2615L,
174
- 0x73dc1683L, 0xe3630b12L, 0x94643b84L, 0x0d6d6a3eL, 0x7a6a5aa8L,
175
- 0xe40ecf0bL, 0x9309ff9dL, 0x0a00ae27L, 0x7d079eb1L, 0xf00f9344L,
176
- 0x8708a3d2L, 0x1e01f268L, 0x6906c2feL, 0xf762575dL, 0x806567cbL,
177
- 0x196c3671L, 0x6e6b06e7L, 0xfed41b76L, 0x89d32be0L, 0x10da7a5aL,
178
- 0x67dd4accL, 0xf9b9df6fL, 0x8ebeeff9L, 0x17b7be43L, 0x60b08ed5L,
179
- 0xd6d6a3e8L, 0xa1d1937eL, 0x38d8c2c4L, 0x4fdff252L, 0xd1bb67f1L,
180
- 0xa6bc5767L, 0x3fb506ddL, 0x48b2364bL, 0xd80d2bdaL, 0xaf0a1b4cL,
181
- 0x36034af6L, 0x41047a60L, 0xdf60efc3L, 0xa867df55L, 0x316e8eefL,
182
- 0x4669be79L, 0xcb61b38cL, 0xbc66831aL, 0x256fd2a0L, 0x5268e236L,
183
- 0xcc0c7795L, 0xbb0b4703L, 0x220216b9L, 0x5505262fL, 0xc5ba3bbeL,
184
- 0xb2bd0b28L, 0x2bb45a92L, 0x5cb36a04L, 0xc2d7ffa7L, 0xb5d0cf31L,
185
- 0x2cd99e8bL, 0x5bdeae1dL, 0x9b64c2b0L, 0xec63f226L, 0x756aa39cL,
186
- 0x026d930aL, 0x9c0906a9L, 0xeb0e363fL, 0x72076785L, 0x05005713L,
187
- 0x95bf4a82L, 0xe2b87a14L, 0x7bb12baeL, 0x0cb61b38L, 0x92d28e9bL,
188
- 0xe5d5be0dL, 0x7cdcefb7L, 0x0bdbdf21L, 0x86d3d2d4L, 0xf1d4e242L,
189
- 0x68ddb3f8L, 0x1fda836eL, 0x81be16cdL, 0xf6b9265bL, 0x6fb077e1L,
190
- 0x18b74777L, 0x88085ae6L, 0xff0f6a70L, 0x66063bcaL, 0x11010b5cL,
191
- 0x8f659effL, 0xf862ae69L, 0x616bffd3L, 0x166ccf45L, 0xa00ae278L,
192
- 0xd70dd2eeL, 0x4e048354L, 0x3903b3c2L, 0xa7672661L, 0xd06016f7L,
193
- 0x4969474dL, 0x3e6e77dbL, 0xaed16a4aL, 0xd9d65adcL, 0x40df0b66L,
194
- 0x37d83bf0L, 0xa9bcae53L, 0xdebb9ec5L, 0x47b2cf7fL, 0x30b5ffe9L,
195
- 0xbdbdf21cL, 0xcabac28aL, 0x53b39330L, 0x24b4a3a6L, 0xbad03605L,
196
- 0xcdd70693L, 0x54de5729L, 0x23d967bfL, 0xb3667a2eL, 0xc4614ab8L,
197
- 0x5d681b02L, 0x2a6f2b94L, 0xb40bbe37L, 0xc30c8ea1L, 0x5a05df1bL,
198
- 0x2d02ef8dL
199
+ 0x00000000L, 0x77073096L, 0xee0e612cL, 0x990951baL, 0x076dc419L,
200
+ 0x706af48fL, 0xe963a535L, 0x9e6495a3L, 0x0edb8832L, 0x79dcb8a4L,
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlDate.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlDate.cpp
Changed
98
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id: EbmlDate.cpp 1079 2005-03-03 13:18:14Z robux4 $
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id: EbmlDate.cpp 1079 2005-03-03 13:18:14Z robux4 $
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
#include <lgpl/cassert>
25
26
27
EbmlDate::EbmlDate(const EbmlDate & ElementToClone)
28
:EbmlElement(ElementToClone)
29
{
30
- myDate = ElementToClone.myDate;
31
+ myDate = ElementToClone.myDate;
32
}
33
34
#ifndef EBML_NO_READ
35
filepos_t EbmlDate::ReadData(IOCallback & input, ScopeMode ReadFully)
36
{
37
- if (ReadFully != SCOPE_NO_DATA)
38
- {
39
- if (GetSize() != 0) {
40
- assert(GetSize() == 8);
41
- binary Buffer[8];
42
- input.readFully(Buffer, GetSize());
43
+ if ((ReadFully == SCOPE_NO_DATA) || (GetSize() == 0))
44
+ return GetSize();
45
46
- big_int64 b64;
47
- b64.Eval(Buffer);
48
+ assert(GetSize() == 8);
49
+ binary Buffer[8];
50
+ input.readFully(Buffer, GetSize());
51
52
- myDate = b64;
53
- SetValueIsSet();
54
- }
55
- }
56
+ big_int64 b64;
57
+ b64.Eval(Buffer);
58
59
- return GetSize();
60
+ myDate = b64;
61
+ SetValueIsSet();
62
+
63
+ return GetSize();
64
}
65
#endif
66
67
filepos_t EbmlDate::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
68
{
69
- if (GetSize() != 0) {
70
- assert(GetSize() == 8);
71
- big_int64 b64(myDate);
72
+ if (GetSize() != 0) {
73
+ assert(GetSize() == 8);
74
+ big_int64 b64(myDate);
75
76
- output.writeFully(&b64.endian(),GetSize());
77
- }
78
+ output.writeFully(&b64.endian(),GetSize());
79
+ }
80
81
- return GetSize();
82
+ return GetSize();
83
}
84
85
bool EbmlDate::IsSmallerThan(const EbmlElement *Cmp) const
86
{
87
- if (EbmlId(*this) == EbmlId(*Cmp))
88
- return this->myDate < static_cast<const EbmlDate *>(Cmp)->myDate;
89
- else
90
- return false;
91
+ if (EbmlId(*this) == EbmlId(*Cmp))
92
+ return this->myDate < static_cast<const EbmlDate *>(Cmp)->myDate;
93
+ else
94
+ return false;
95
}
96
97
END_LIBEBML_NAMESPACE
98
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlDummy.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlDummy.cpp
Changed
45
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include "ebml/EbmlDummy.h"
35
#include "ebml/EbmlContexts.h"
36
37
38
EbmlDummy::operator const EbmlId &()
39
{
40
- return DummyId;
41
+ return DummyId;
42
}
43
44
END_LIBEBML_NAMESPACE
45
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlElement.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlElement.cpp
Changed
201
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id$
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id$
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
25
#include <cstring>
26
27
START_LIBEBML_NAMESPACE
28
29
/*!
30
- \todo handle more than CodedSize of 5
31
+ \todo handle more than CodedSize of 5
32
*/
33
int CodedSizeLength(uint64 Length, unsigned int SizeLength, bool bSizeFinite)
34
{
35
- unsigned int CodedSize;
36
- if (bSizeFinite) {
37
- // prepare the head of the size (000...01xxxxxx)
38
- // optimal size
39
- if (Length < 127) // 2^7 - 1
40
- CodedSize = 1;
41
- else if (Length < 16383) // 2^14 - 1
42
- CodedSize = 2;
43
- else if (Length < 2097151L) // 2^21 - 1
44
- CodedSize = 3;
45
- else if (Length < 268435455L) // 2^28 - 1
46
- CodedSize = 4;
47
- else CodedSize = 5;
48
- } else {
49
- if (Length <= 127) // 2^7 - 1
50
- CodedSize = 1;
51
- else if (Length <= 16383) // 2^14 - 1
52
- CodedSize = 2;
53
- else if (Length <= 2097151L) // 2^21 - 1
54
- CodedSize = 3;
55
- else if (Length <= 268435455L) // 2^28 - 1
56
- CodedSize = 4;
57
- else CodedSize = 5;
58
- }
59
-
60
- if ((SizeLength > 0) && (CodedSize < SizeLength)) {
61
- // defined size
62
- CodedSize = SizeLength;
63
- }
64
-
65
- return CodedSize;
66
+ unsigned int CodedSize;
67
+ if (bSizeFinite) {
68
+ // prepare the head of the size (000...01xxxxxx)
69
+ // optimal size
70
+ if (Length < 127) // 2^7 - 1
71
+ CodedSize = 1;
72
+ else if (Length < 16383) // 2^14 - 1
73
+ CodedSize = 2;
74
+ else if (Length < 2097151L) // 2^21 - 1
75
+ CodedSize = 3;
76
+ else if (Length < 268435455L) // 2^28 - 1
77
+ CodedSize = 4;
78
+ else CodedSize = 5;
79
+ } else {
80
+ if (Length <= 127) // 2^7 - 1
81
+ CodedSize = 1;
82
+ else if (Length <= 16383) // 2^14 - 1
83
+ CodedSize = 2;
84
+ else if (Length <= 2097151L) // 2^21 - 1
85
+ CodedSize = 3;
86
+ else if (Length <= 268435455L) // 2^28 - 1
87
+ CodedSize = 4;
88
+ else CodedSize = 5;
89
+ }
90
+
91
+ if ((SizeLength > 0) && (CodedSize < SizeLength)) {
92
+ // defined size
93
+ CodedSize = SizeLength;
94
+ }
95
+
96
+ return CodedSize;
97
}
98
99
/*!
100
- \todo handle more than CodedSize of 5
101
+ \todo handle more than CodedSize of 5
102
*/
103
int CodedSizeLengthSigned(int64 Length, unsigned int SizeLength)
104
{
105
- unsigned int CodedSize;
106
- // prepare the head of the size (000...01xxxxxx)
107
- // optimal size
108
- if (Length > -64 && Length < 64) // 2^6
109
- CodedSize = 1;
110
- else if (Length > -8192 && Length < 8192) // 2^13
111
- CodedSize = 2;
112
- else if (Length > -1048576L && Length < 1048576L) // 2^20
113
- CodedSize = 3;
114
- else if (Length > -134217728L && Length < 134217728L) // 2^27
115
- CodedSize = 4;
116
- else CodedSize = 5;
117
-
118
- if (SizeLength > 0 && CodedSize < SizeLength) {
119
- // defined size
120
- CodedSize = SizeLength;
121
- }
122
-
123
- return CodedSize;
124
+ unsigned int CodedSize;
125
+ // prepare the head of the size (000...01xxxxxx)
126
+ // optimal size
127
+ if (Length > -64 && Length < 64) // 2^6
128
+ CodedSize = 1;
129
+ else if (Length > -8192 && Length < 8192) // 2^13
130
+ CodedSize = 2;
131
+ else if (Length > -1048576L && Length < 1048576L) // 2^20
132
+ CodedSize = 3;
133
+ else if (Length > -134217728L && Length < 134217728L) // 2^27
134
+ CodedSize = 4;
135
+ else CodedSize = 5;
136
+
137
+ if (SizeLength > 0 && CodedSize < SizeLength) {
138
+ // defined size
139
+ CodedSize = SizeLength;
140
+ }
141
+
142
+ return CodedSize;
143
}
144
145
int CodedValueLength(uint64 Length, int CodedSize, binary * OutBuffer)
146
{
147
- int _SizeMask = 0xFF;
148
- OutBuffer[0] = 1 << (8 - CodedSize);
149
- for (int i=1; i<CodedSize; i++) {
150
- OutBuffer[CodedSize-i] = Length & 0xFF;
151
- Length >>= 8;
152
- _SizeMask >>= 1;
153
- }
154
- // first one use a OR with the "EBML size head"
155
- OutBuffer[0] |= Length & 0xFF & _SizeMask;
156
- return CodedSize;
157
+ int _SizeMask = 0xFF;
158
+ OutBuffer[0] = 1 << (8 - CodedSize);
159
+ for (int i=1; i<CodedSize; i++) {
160
+ OutBuffer[CodedSize-i] = Length & 0xFF;
161
+ Length >>= 8;
162
+ _SizeMask >>= 1;
163
+ }
164
+ // first one use a OR with the "EBML size head"
165
+ OutBuffer[0] |= Length & 0xFF & _SizeMask;
166
+ return CodedSize;
167
}
168
169
int CodedValueLengthSigned(int64 Length, int CodedSize, binary * OutBuffer)
170
{
171
- if (Length > -64 && Length < 64) // 2^6
172
- Length += 63;
173
- else if (Length > -8192 && Length < 8192) // 2^13
174
- Length += 8191;
175
- else if (Length > -1048576L && Length < 1048576L) // 2^20
176
- Length += 1048575L;
177
- else if (Length > -134217728L && Length < 134217728L) // 2^27
178
- Length += 134217727L;
179
-
180
- return CodedValueLength(Length, CodedSize, OutBuffer);
181
+ if (Length > -64 && Length < 64) // 2^6
182
+ Length += 63;
183
+ else if (Length > -8192 && Length < 8192) // 2^13
184
+ Length += 8191;
185
+ else if (Length > -1048576L && Length < 1048576L) // 2^20
186
+ Length += 1048575L;
187
+ else if (Length > -134217728L && Length < 134217728L) // 2^27
188
+ Length += 134217727L;
189
+
190
+ return CodedValueLength(Length, CodedSize, OutBuffer);
191
}
192
193
uint64 ReadCodedSizeValue(const binary * InBuffer, uint32 & BufferSize, uint64 & SizeUnknown)
194
{
195
- binary SizeBitMask = 1 << 7;
196
- uint64 Result = 0x7F;
197
- unsigned int SizeIdx, PossibleSizeLength = 0;
198
- binary PossibleSize[8];
199
-
200
- SizeUnknown = 0x7F; // the last bit is discarded when computing the size
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlFloat.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlFloat.cpp
Changed
201
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id$
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id$
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
25
#include <lgpl/cassert>
26
27
START_LIBEBML_NAMESPACE
28
29
EbmlFloat::EbmlFloat(const EbmlFloat::Precision prec)
30
- :EbmlElement(0, false)
31
+ :EbmlElement(0, false)
32
{
33
- SetPrecision(prec);
34
+ SetPrecision(prec);
35
}
36
37
EbmlFloat::EbmlFloat(const double aDefaultValue, const EbmlFloat::Precision prec)
38
- :EbmlElement(0, true), Value(aDefaultValue), DefaultValue(aDefaultValue)
39
+ :EbmlElement(0, true), Value(aDefaultValue), DefaultValue(aDefaultValue)
40
{
41
- SetDefaultIsSet();
42
- SetPrecision(prec);
43
+ SetDefaultIsSet();
44
+ SetPrecision(prec);
45
}
46
47
EbmlFloat::EbmlFloat(const EbmlFloat & ElementToClone)
48
- :EbmlElement(ElementToClone)
49
- ,Value(ElementToClone.Value)
50
- ,DefaultValue(ElementToClone.DefaultValue)
51
+ :EbmlElement(ElementToClone)
52
+ ,Value(ElementToClone.Value)
53
+ ,DefaultValue(ElementToClone.DefaultValue)
54
{
55
}
56
57
void EbmlFloat::SetDefaultValue(double aValue)
58
{
59
- assert(!DefaultISset());
60
- DefaultValue = aValue;
61
- SetDefaultIsSet();
62
+ assert(!DefaultISset());
63
+ DefaultValue = aValue;
64
+ SetDefaultIsSet();
65
}
66
67
double EbmlFloat::DefaultVal() const
68
{
69
- assert(DefaultISset());
70
- return DefaultValue;
71
+ assert(DefaultISset());
72
+ return DefaultValue;
73
}
74
75
EbmlFloat::operator float() const {return float(Value);}
76
77
}
78
79
/*!
80
- \todo handle exception on errors
81
- \todo handle 10 bits precision
82
+ \todo handle exception on errors
83
+ \todo handle 10 bits precision
84
*/
85
filepos_t EbmlFloat::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
86
{
87
- assert(GetSize() == 4 || GetSize() == 8);
88
-
89
- if (GetSize() == 4) {
90
- float val = Value;
91
- int Tmp;
92
- memcpy(&Tmp, &val, 4);
93
- big_int32 TmpToWrite(Tmp);
94
- output.writeFully(&TmpToWrite.endian(), GetSize());
95
- } else if (GetSize() == 8) {
96
- double val = Value;
97
- int64 Tmp;
98
- memcpy(&Tmp, &val, 8);
99
- big_int64 TmpToWrite(Tmp);
100
- output.writeFully(&TmpToWrite.endian(), GetSize());
101
- }
102
-
103
- return GetSize();
104
+ assert(GetSize() == 4 || GetSize() == 8);
105
+
106
+ if (GetSize() == 4) {
107
+ float val = Value;
108
+ int Tmp;
109
+ memcpy(&Tmp, &val, 4);
110
+ big_int32 TmpToWrite(Tmp);
111
+ output.writeFully(&TmpToWrite.endian(), GetSize());
112
+ } else if (GetSize() == 8) {
113
+ double val = Value;
114
+ int64 Tmp;
115
+ memcpy(&Tmp, &val, 8);
116
+ big_int64 TmpToWrite(Tmp);
117
+ output.writeFully(&TmpToWrite.endian(), GetSize());
118
+ }
119
+
120
+ return GetSize();
121
}
122
123
uint64 EbmlFloat::UpdateSize(bool bWithDefault, bool /* bForceRender */)
124
{
125
- if (!bWithDefault && IsDefaultValue())
126
- return 0;
127
- return GetSize();
128
+ if (!bWithDefault && IsDefaultValue())
129
+ return 0;
130
+ return GetSize();
131
}
132
133
/*!
134
- \todo remove the hack for possible endianess pb (test on little & big endian)
135
+ \todo remove the hack for possible endianess pb (test on little & big endian)
136
*/
137
#ifndef EBML_NO_READ
138
filepos_t EbmlFloat::ReadData(IOCallback & input, ScopeMode ReadFully)
139
{
140
- if (ReadFully != SCOPE_NO_DATA)
141
- {
142
- binary Buffer[20];
143
- assert(GetSize() <= 20);
144
- input.readFully(Buffer, GetSize());
145
-
146
- if (GetSize() == 4) {
147
- big_int32 TmpRead;
148
- TmpRead.Eval(Buffer);
149
- int32 tmpp = int32(TmpRead);
150
- float val;
151
- memcpy(&val, &tmpp, 4);
152
- Value = val;
153
- SetValueIsSet();
154
- } else if (GetSize() == 8) {
155
- big_int64 TmpRead;
156
- TmpRead.Eval(Buffer);
157
- int64 tmpp = int64(TmpRead);
158
- double val;
159
- memcpy(&val, &tmpp, 8);
160
- Value = val;
161
- SetValueIsSet();
162
- }
163
- }
164
-
165
- return GetSize();
166
+ if (ReadFully != SCOPE_NO_DATA) {
167
+ binary Buffer[20];
168
+ assert(GetSize() <= 20);
169
+ input.readFully(Buffer, GetSize());
170
+
171
+ if (GetSize() == 4) {
172
+ big_int32 TmpRead;
173
+ TmpRead.Eval(Buffer);
174
+ int32 tmpp = int32(TmpRead);
175
+ float val;
176
+ memcpy(&val, &tmpp, 4);
177
+ Value = val;
178
+ SetValueIsSet();
179
+ } else if (GetSize() == 8) {
180
+ big_int64 TmpRead;
181
+ TmpRead.Eval(Buffer);
182
+ int64 tmpp = int64(TmpRead);
183
+ double val;
184
+ memcpy(&val, &tmpp, 8);
185
+ Value = val;
186
+ SetValueIsSet();
187
+ }
188
+ }
189
+
190
+ return GetSize();
191
}
192
#endif
193
194
bool EbmlFloat::IsSmallerThan(const EbmlElement *Cmp) const
195
{
196
- if (EbmlId(*this) == EbmlId(*Cmp))
197
- return this->Value < static_cast<const EbmlFloat *>(Cmp)->Value;
198
- else
199
- return false;
200
+ if (EbmlId(*this) == EbmlId(*Cmp))
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlHead.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlHead.cpp
Changed
45
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlHead.cpp 1096 2005-03-17 09:14:52Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlHead.cpp 1096 2005-03-17 09:14:52Z robux4 $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include "ebml/EbmlHead.h"
35
#include "ebml/EbmlSubHead.h"
36
37
DEFINE_EBML_MASTER_ORPHAN(EbmlHead, 0x1A45DFA3, 4, "EBMLHead\0ratamapaga");
38
39
EbmlHead::EbmlHead()
40
- :EbmlMaster(EbmlHead_Context)
41
+ :EbmlMaster(EbmlHead_Context)
42
{}
43
44
END_LIBEBML_NAMESPACE
45
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlMaster.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlMaster.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
35
#include <lgpl/cassert>
36
37
EbmlMaster::EbmlMaster(const EbmlSemanticContext & aContext, bool bSizeIsknown)
38
:EbmlElement(0), Context(aContext), bChecksumUsed(bChecksumUsedByDefault)
39
{
40
- SetSizeIsFinite(bSizeIsknown);
41
- SetValueIsSet();
42
- ProcessMandatory();
43
+ SetSizeIsFinite(bSizeIsknown);
44
+ SetValueIsSet();
45
+ ProcessMandatory();
46
}
47
48
EbmlMaster::EbmlMaster(const EbmlMaster & ElementToClone)
49
50
,bChecksumUsed(ElementToClone.bChecksumUsed)
51
,Checksum(ElementToClone.Checksum)
52
{
53
- // add a clone of the list
54
- std::vector<EbmlElement *>::const_iterator Itr = ElementToClone.ElementList.begin();
55
- std::vector<EbmlElement *>::iterator myItr = ElementList.begin();
56
- while (Itr != ElementToClone.ElementList.end())
57
- {
58
- *myItr = (*Itr)->Clone();
59
- Itr++; myItr++;
60
- }
61
+ // add a clone of the list
62
+ std::vector<EbmlElement *>::const_iterator Itr = ElementToClone.ElementList.begin();
63
+ std::vector<EbmlElement *>::iterator myItr = ElementList.begin();
64
+ while (Itr != ElementToClone.ElementList.end())
65
+ {
66
+ *myItr = (*Itr)->Clone();
67
+ ++Itr; ++myItr;
68
+ }
69
70
}
71
72
EbmlMaster::~EbmlMaster()
73
{
74
- assert(!IsLocked()); // you're trying to delete a locked element !!!
75
-
76
- size_t Index;
77
-
78
- for (Index = 0; Index < ElementList.size(); Index++) {
79
- if (!(*ElementList[Index]).IsLocked()) {
80
- delete ElementList[Index];
81
- }
82
- }
83
+ assert(!IsLocked()); // you're trying to delete a locked element !!!
84
+
85
+ size_t Index;
86
+
87
+ for (Index = 0; Index < ElementList.size(); Index++) {
88
+ if (!(*ElementList[Index]).IsLocked()) {
89
+ delete ElementList[Index];
90
+ }
91
+ }
92
}
93
94
/*!
95
- \todo handle exception on errors
96
- \todo write all the Mandatory elements in the Context, otherwise assert
97
+ \todo handle exception on errors
98
+ \todo write all the Mandatory elements in the Context, otherwise assert
99
*/
100
filepos_t EbmlMaster::RenderData(IOCallback & output, bool bForceRender, bool bWithDefault)
101
{
102
- filepos_t Result = 0;
103
- size_t Index;
104
-
105
- if (!bForceRender) {
106
- assert(CheckMandatory());
107
- }
108
-
109
- if (!bChecksumUsed) { // old school
110
- for (Index = 0; Index < ElementList.size(); Index++) {
111
- if (!bWithDefault && (ElementList[Index])->IsDefaultValue())
112
- continue;
113
- Result += (ElementList[Index])->Render(output, bWithDefault, false ,bForceRender);
114
- }
115
- } else { // new school
116
- MemIOCallback TmpBuf(GetSize() - 6);
117
- for (Index = 0; Index < ElementList.size(); Index++) {
118
- if (!bWithDefault && (ElementList[Index])->IsDefaultValue())
119
- continue;
120
- (ElementList[Index])->Render(TmpBuf, bWithDefault, false ,bForceRender);
121
- }
122
- Checksum.FillCRC32(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
123
- Result += Checksum.Render(output, true, false ,bForceRender);
124
- output.writeFully(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
125
- Result += TmpBuf.GetDataBufferSize();
126
- }
127
-
128
- return Result;
129
+ filepos_t Result = 0;
130
+ size_t Index;
131
+
132
+ if (!bForceRender) {
133
+ assert(CheckMandatory());
134
+ }
135
+
136
+ if (!bChecksumUsed) { // old school
137
+ for (Index = 0; Index < ElementList.size(); Index++) {
138
+ if (!bWithDefault && (ElementList[Index])->IsDefaultValue())
139
+ continue;
140
+ Result += (ElementList[Index])->Render(output, bWithDefault, false ,bForceRender);
141
+ }
142
+ } else { // new school
143
+ MemIOCallback TmpBuf(GetSize() - 6);
144
+ for (Index = 0; Index < ElementList.size(); Index++) {
145
+ if (!bWithDefault && (ElementList[Index])->IsDefaultValue())
146
+ continue;
147
+ (ElementList[Index])->Render(TmpBuf, bWithDefault, false ,bForceRender);
148
+ }
149
+ Checksum.FillCRC32(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
150
+ Result += Checksum.Render(output, true, false ,bForceRender);
151
+ output.writeFully(TmpBuf.GetDataBuffer(), TmpBuf.GetDataBufferSize());
152
+ Result += TmpBuf.GetDataBufferSize();
153
+ }
154
+
155
+ return Result;
156
}
157
158
/*!
159
- \todo We might be able to forbid elements that don't exist in the context
160
+ \todo We might be able to forbid elements that don't exist in the context
161
*/
162
bool EbmlMaster::PushElement(EbmlElement & element)
163
{
164
- ElementList.push_back(&element);
165
- return true;
166
+ ElementList.push_back(&element);
167
+ return true;
168
}
169
170
uint64 EbmlMaster::UpdateSize(bool bWithDefault, bool bForceRender)
171
{
172
- SetSize_(0);
173
+ SetSize_(0);
174
175
- if (!IsFiniteSize())
176
- return (0-1);
177
+ if (!IsFiniteSize())
178
+ return (0-1);
179
180
- if (!bForceRender) {
181
- assert(CheckMandatory());
182
+ if (!bForceRender) {
183
+ assert(CheckMandatory());
184
}
185
-
186
- size_t Index;
187
-
188
- for (Index = 0; Index < ElementList.size(); Index++) {
189
- if (!bWithDefault && (ElementList[Index])->IsDefaultValue())
190
- continue;
191
- (ElementList[Index])->UpdateSize(bWithDefault, bForceRender);
192
- uint64 SizeToAdd = (ElementList[Index])->ElementSize(bWithDefault);
193
+
194
+ size_t Index;
195
+
196
+ for (Index = 0; Index < ElementList.size(); Index++) {
197
+ if (!bWithDefault && (ElementList[Index])->IsDefaultValue())
198
+ continue;
199
+ (ElementList[Index])->UpdateSize(bWithDefault, bForceRender);
200
+ uint64 SizeToAdd = (ElementList[Index])->ElementSize(bWithDefault);
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlSInteger.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlSInteger.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id$
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
#include <lgpl/cassert>
37
38
39
START_LIBEBML_NAMESPACE
40
41
EbmlSInteger::EbmlSInteger()
42
- :EbmlElement(DEFAULT_INT_SIZE, false)
43
+ :EbmlElement(DEFAULT_INT_SIZE, false)
44
{}
45
46
EbmlSInteger::EbmlSInteger(int64 aDefaultValue)
47
- :EbmlElement(DEFAULT_INT_SIZE, true), Value(aDefaultValue)
48
+ :EbmlElement(DEFAULT_INT_SIZE, true), Value(aDefaultValue)
49
{
50
- SetDefaultIsSet();
51
+ SetDefaultIsSet();
52
}
53
54
EbmlSInteger::EbmlSInteger(const EbmlSInteger & ElementToClone)
55
- :EbmlElement(ElementToClone)
56
- ,Value(ElementToClone.Value)
57
- ,DefaultValue(ElementToClone.DefaultValue)
58
+ :EbmlElement(ElementToClone)
59
+ ,Value(ElementToClone.Value)
60
+ ,DefaultValue(ElementToClone.DefaultValue)
61
{
62
}
63
64
65
}
66
67
/*!
68
- \todo handle exception on errors
69
+ \todo handle exception on errors
70
*/
71
filepos_t EbmlSInteger::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
72
{
73
- binary FinalData[8]; // we don't handle more than 64 bits integers
74
- unsigned int i;
75
-
76
- if (GetSizeLength() > 8)
77
- return 0; // integer bigger coded on more than 64 bits are not supported
78
-
79
- int64 TempValue = Value;
80
- for (i=0; i<GetSize();i++) {
81
- FinalData[GetSize()-i-1] = binary(TempValue & 0xFF);
82
- TempValue >>= 8;
83
- }
84
-
85
- output.writeFully(FinalData,GetSize());
86
-
87
- return GetSize();
88
+ binary FinalData[8]; // we don't handle more than 64 bits integers
89
+ unsigned int i;
90
+
91
+ if (GetSizeLength() > 8)
92
+ return 0; // integer bigger coded on more than 64 bits are not supported
93
+
94
+ int64 TempValue = Value;
95
+ for (i=0; i<GetSize();i++) {
96
+ FinalData[GetSize()-i-1] = binary(TempValue & 0xFF);
97
+ TempValue >>= 8;
98
+ }
99
+
100
+ output.writeFully(FinalData,GetSize());
101
+
102
+ return GetSize();
103
}
104
105
uint64 EbmlSInteger::UpdateSize(bool bWithDefault, bool /* bForceRender */)
106
{
107
- if (!bWithDefault && IsDefaultValue())
108
- return 0;
109
-
110
- if (Value <= 0x7F && Value >= (-0x80)) {
111
- SetSize_(1);
112
- } else if (Value <= 0x7FFF && Value >= (-0x8000)) {
113
- SetSize_(2);
114
- } else if (Value <= 0x7FFFFF && Value >= (-0x800000)) {
115
- SetSize_(3);
116
- } else if (Value <= 0x7FFFFFFF && Value >= (-0x80000000)) {
117
- SetSize_(4);
118
- } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFF) &&
119
- Value >= EBML_PRETTYLONGINT(-0x8000000000)) {
120
- SetSize_(5);
121
- } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFFFF) &&
122
- Value >= EBML_PRETTYLONGINT(-0x800000000000)) {
123
- SetSize_(6);
124
- } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFFFFFF) &&
125
- Value >= EBML_PRETTYLONGINT(-0x80000000000000)) {
126
- SetSize_(7);
127
- } else {
128
- SetSize_(8);
129
- }
130
-
131
- if (GetDefaultSize() > GetSize()) {
132
- SetSize_(GetDefaultSize());
133
- }
134
-
135
- return GetSize();
136
+ if (!bWithDefault && IsDefaultValue())
137
+ return 0;
138
+
139
+ if (Value <= 0x7F && Value >= (-0x80)) {
140
+ SetSize_(1);
141
+ } else if (Value <= 0x7FFF && Value >= (-0x8000)) {
142
+ SetSize_(2);
143
+ } else if (Value <= 0x7FFFFF && Value >= (-0x800000)) {
144
+ SetSize_(3);
145
+ } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFF) && Value >= (EBML_PRETTYLONGINT(-0x80000000))) {
146
+ SetSize_(4);
147
+ } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFF) &&
148
+ Value >= EBML_PRETTYLONGINT(-0x8000000000)) {
149
+ SetSize_(5);
150
+ } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFFFF) &&
151
+ Value >= EBML_PRETTYLONGINT(-0x800000000000)) {
152
+ SetSize_(6);
153
+ } else if (Value <= EBML_PRETTYLONGINT(0x7FFFFFFFFFFFFF) &&
154
+ Value >= EBML_PRETTYLONGINT(-0x80000000000000)) {
155
+ SetSize_(7);
156
+ } else {
157
+ SetSize_(8);
158
+ }
159
+
160
+ if (GetDefaultSize() > GetSize()) {
161
+ SetSize_(GetDefaultSize());
162
+ }
163
+
164
+ return GetSize();
165
}
166
167
#ifndef EBML_NO_READ
168
filepos_t EbmlSInteger::ReadData(IOCallback & input, ScopeMode ReadFully)
169
{
170
- if (ReadFully != SCOPE_NO_DATA)
171
- {
172
- binary Buffer[8];
173
- input.readFully(Buffer, GetSize());
174
-
175
- if (Buffer[0] & 0x80)
176
- Value = -1; // this is a negative value
177
- else
178
- Value = 0; // this is a positive value
179
-
180
- for (unsigned int i=0; i<GetSize(); i++)
181
- {
182
- Value <<= 8;
183
- Value |= Buffer[i];
184
- }
185
- SetValueIsSet();
186
- }
187
-
188
- return GetSize();
189
+ if (ReadFully != SCOPE_NO_DATA) {
190
+ binary Buffer[8];
191
+ input.readFully(Buffer, GetSize());
192
+
193
+ if (Buffer[0] & 0x80)
194
+ Value = -1; // this is a negative value
195
+ else
196
+ Value = 0; // this is a positive value
197
+
198
+ for (unsigned int i=0; i<GetSize(); i++) {
199
+ Value <<= 8;
200
+ Value |= Buffer[i];
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlStream.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlStream.cpp
Changed
59
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include "ebml/EbmlStream.h"
35
36
START_LIBEBML_NAMESPACE
37
38
EbmlStream::EbmlStream(IOCallback & DataStream)
39
- :Stream(DataStream)
40
+ :Stream(DataStream)
41
{}
42
43
EbmlStream::~EbmlStream()
44
45
46
EbmlElement * EbmlStream::FindNextID(const EbmlCallbacks & ClassInfos, uint64 MaxDataSize)
47
{
48
- return EbmlElement::FindNextID(Stream, ClassInfos, MaxDataSize);
49
+ return EbmlElement::FindNextID(Stream, ClassInfos, MaxDataSize);
50
}
51
52
EbmlElement * EbmlStream::FindNextElement(const EbmlSemanticContext & Context, int & UpperLevel, uint64 MaxDataSize, bool AllowDummyElt, unsigned int MaxLowerLevel)
53
{
54
- return EbmlElement::FindNextElement(Stream, Context, UpperLevel, MaxDataSize, AllowDummyElt, MaxLowerLevel);
55
+ return EbmlElement::FindNextElement(Stream, Context, UpperLevel, MaxDataSize, AllowDummyElt, MaxLowerLevel);
56
}
57
58
END_LIBEBML_NAMESPACE
59
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlString.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlString.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id$
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include <lgpl/cassert>
35
36
37
START_LIBEBML_NAMESPACE
38
39
EbmlString::EbmlString()
40
- :EbmlElement(0, false)
41
+ :EbmlElement(0, false)
42
{
43
- SetDefaultSize(0);
44
-/* done automatically
45
- SetSize_(Value.length());
46
- if (GetDefaultSize() > GetSize())
47
- SetSize_(GetDefaultSize());*/
48
+ SetDefaultSize(0);
49
+/* done automatically
50
+ SetSize_(Value.length());
51
+ if (GetDefaultSize() > GetSize())
52
+ SetSize_(GetDefaultSize());*/
53
}
54
55
EbmlString::EbmlString(const ccc::string & aDefaultValue)
56
- :EbmlElement(0, true), Value(aDefaultValue), DefaultValue(aDefaultValue)
57
+ :EbmlElement(0, true), Value(aDefaultValue), DefaultValue(aDefaultValue)
58
{
59
- SetDefaultSize(0);
60
- SetDefaultIsSet();
61
-/* done automatically
62
- SetSize_(Value.length());
63
- if (GetDefaultSize() > GetSize())
64
- SetSize_(GetDefaultSize());*/
65
+ SetDefaultSize(0);
66
+ SetDefaultIsSet();
67
+/* done automatically
68
+ SetSize_(Value.length());
69
+ if (GetDefaultSize() > GetSize())
70
+ SetSize_(GetDefaultSize());*/
71
}
72
73
/*!
74
- \todo Cloning should be on the same exact type !
75
+ \todo Cloning should be on the same exact type !
76
*/
77
EbmlString::EbmlString(const EbmlString & ElementToClone)
78
- :EbmlElement(ElementToClone)
79
- ,Value(ElementToClone.Value)
80
- ,DefaultValue(ElementToClone.DefaultValue)
81
+ :EbmlElement(ElementToClone)
82
+ ,Value(ElementToClone.Value)
83
+ ,DefaultValue(ElementToClone.DefaultValue)
84
{
85
}
86
87
void EbmlString::SetDefaultValue(ccc::string & aValue)
88
{
89
- assert(!DefaultISset());
90
- DefaultValue = aValue;
91
- SetDefaultIsSet();
92
+ assert(!DefaultISset());
93
+ DefaultValue = aValue;
94
+ SetDefaultIsSet();
95
}
96
97
const ref::string & EbmlString::DefaultVal() const
98
{
99
- assert(DefaultISset());
100
- return DefaultValue;
101
+ assert(DefaultISset());
102
+ return DefaultValue;
103
}
104
105
106
/*!
107
- \todo handle exception on errors
108
+ \todo handle exception on errors
109
*/
110
filepos_t EbmlString::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
111
{
112
- filepos_t Result;
113
- output.writeFully(Value.c_str(), Value.length());
114
- Result = Value.length();
115
-
116
- if (Result < GetDefaultSize()) {
117
- // pad the rest with 0
118
- binary *Pad = new binary[GetDefaultSize() - Result];
119
- if (Pad == NULL)
120
- {
121
- return Result;
122
- }
123
- memset(Pad, 0x00, GetDefaultSize() - Result);
124
- output.writeFully(Pad, GetDefaultSize() - Result);
125
- Result = GetDefaultSize();
126
- delete [] Pad;
127
- }
128
-
129
- return Result;
130
+ filepos_t Result;
131
+ output.writeFully(Value.c_str(), Value.length());
132
+ Result = Value.length();
133
+
134
+ if (Result < GetDefaultSize()) {
135
+ // pad the rest with 0
136
+ binary *Pad = new (std::nothrow) binary[GetDefaultSize() - Result];
137
+ if (Pad == NULL) {
138
+ return Result;
139
+ }
140
+ memset(Pad, 0x00, GetDefaultSize() - Result);
141
+ output.writeFully(Pad, GetDefaultSize() - Result);
142
+ Result = GetDefaultSize();
143
+ delete [] Pad;
144
+ }
145
+
146
+ return Result;
147
}
148
149
EbmlString::operator const ref::string &() const {return Value;}
150
151
EbmlString & EbmlString::operator=(const ccc::string & NewString)
152
{
153
- Value = NewString;
154
- SetValueIsSet();
155
-/* done automatically
156
- SetSize_(Value.length());
157
- if (GetDefaultSize() > GetSize())
158
- SetSize_(GetDefaultSize());*/
159
- return *this;
160
+ Value = NewString;
161
+ SetValueIsSet();
162
+/* done automatically
163
+ SetSize_(Value.length());
164
+ if (GetDefaultSize() > GetSize())
165
+ SetSize_(GetDefaultSize());*/
166
+ return *this;
167
}
168
169
EbmlString &EbmlString::SetValue(ccc::string const &NewValue) {
170
171
172
uint64 EbmlString::UpdateSize(bool bWithDefault, bool /* bForceRender */)
173
{
174
- if (!bWithDefault && IsDefaultValue())
175
- return 0;
176
-
177
- if (Value.length() < GetDefaultSize()) {
178
- SetSize_(GetDefaultSize());
179
- } else {
180
- SetSize_(Value.length());
181
- }
182
- return GetSize();
183
+ if (!bWithDefault && IsDefaultValue())
184
+ return 0;
185
+
186
+ if (Value.length() < GetDefaultSize()) {
187
+ SetSize_(GetDefaultSize());
188
+ } else {
189
+ SetSize_(Value.length());
190
+ }
191
+ return GetSize();
192
}
193
194
#ifndef EBML_NO_READ
195
filepos_t EbmlString::ReadData(IOCallback & input, ScopeMode ReadFully)
196
{
197
- if (ReadFully != SCOPE_NO_DATA)
198
- {
199
- if (GetSize() == 0) {
200
- Value = "";
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlSubHead.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlSubHead.cpp
Changed
36
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlSubHead.cpp 639 2004-07-09 20:59:14Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlSubHead.cpp 639 2004-07-09 20:59:14Z mosu $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include "ebml/EbmlSubHead.h"
35
#include "ebml/EbmlContexts.h"
36
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlUInteger.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlUInteger.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id$
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
#include <lgpl/cassert>
37
38
39
START_LIBEBML_NAMESPACE
40
41
EbmlUInteger::EbmlUInteger()
42
- :EbmlElement(DEFAULT_UINT_SIZE, false)
43
+ :EbmlElement(DEFAULT_UINT_SIZE, false)
44
{}
45
46
EbmlUInteger::EbmlUInteger(uint64 aDefaultValue)
47
- :EbmlElement(DEFAULT_UINT_SIZE, true), Value(aDefaultValue), DefaultValue(aDefaultValue)
48
+ :EbmlElement(DEFAULT_UINT_SIZE, true), Value(aDefaultValue), DefaultValue(aDefaultValue)
49
{
50
- SetDefaultIsSet();
51
+ SetDefaultIsSet();
52
}
53
54
EbmlUInteger::EbmlUInteger(const EbmlUInteger & ElementToClone)
55
- :EbmlElement(ElementToClone)
56
- ,Value(ElementToClone.Value)
57
- ,DefaultValue(ElementToClone.DefaultValue)
58
+ :EbmlElement(ElementToClone)
59
+ ,Value(ElementToClone.Value)
60
+ ,DefaultValue(ElementToClone.DefaultValue)
61
{
62
}
63
64
void EbmlUInteger::SetDefaultValue(uint64 aValue)
65
{
66
- assert(!DefaultISset());
67
- DefaultValue = aValue;
68
- SetDefaultIsSet();
69
+ assert(!DefaultISset());
70
+ DefaultValue = aValue;
71
+ SetDefaultIsSet();
72
}
73
74
uint64 EbmlUInteger::DefaultVal() const
75
{
76
- assert(DefaultISset());
77
- return DefaultValue;
78
+ assert(DefaultISset());
79
+ return DefaultValue;
80
}
81
82
EbmlUInteger::operator uint8() const {return uint8(Value); }
83
84
}
85
86
/*!
87
- \todo handle exception on errors
88
+ \todo handle exception on errors
89
*/
90
filepos_t EbmlUInteger::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
91
{
92
- binary FinalData[8]; // we don't handle more than 64 bits integers
93
-
94
- if (GetSizeLength() > 8)
95
- return 0; // integer bigger coded on more than 64 bits are not supported
96
-
97
- uint64 TempValue = Value;
98
- for (unsigned int i=0; i<GetSize();i++) {
99
- FinalData[GetSize()-i-1] = TempValue & 0xFF;
100
- TempValue >>= 8;
101
- }
102
-
103
- output.writeFully(FinalData,GetSize());
104
-
105
- return GetSize();
106
+ binary FinalData[8]; // we don't handle more than 64 bits integers
107
+
108
+ if (GetSizeLength() > 8)
109
+ return 0; // integer bigger coded on more than 64 bits are not supported
110
+
111
+ uint64 TempValue = Value;
112
+ for (unsigned int i=0; i<GetSize();i++) {
113
+ FinalData[GetSize()-i-1] = TempValue & 0xFF;
114
+ TempValue >>= 8;
115
+ }
116
+
117
+ output.writeFully(FinalData,GetSize());
118
+
119
+ return GetSize();
120
}
121
122
uint64 EbmlUInteger::UpdateSize(bool bWithDefault, bool /* bForceRender */)
123
{
124
- if (!bWithDefault && IsDefaultValue())
125
- return 0;
126
-
127
- if (Value <= 0xFF) {
128
- SetSize_(1);
129
- } else if (Value <= 0xFFFF) {
130
- SetSize_(2);
131
- } else if (Value <= 0xFFFFFF) {
132
- SetSize_(3);
133
- } else if (Value <= 0xFFFFFFFF) {
134
- SetSize_(4);
135
- } else if (Value <= EBML_PRETTYLONGINT(0xFFFFFFFFFF)) {
136
- SetSize_(5);
137
- } else if (Value <= EBML_PRETTYLONGINT(0xFFFFFFFFFFFF)) {
138
- SetSize_(6);
139
- } else if (Value <= EBML_PRETTYLONGINT(0xFFFFFFFFFFFFFF)) {
140
- SetSize_(7);
141
- } else {
142
- SetSize_(8);
143
- }
144
-
145
- if (GetDefaultSize() > GetSize()) {
146
- SetSize_(GetDefaultSize());
147
- }
148
-
149
- return GetSize();
150
+ if (!bWithDefault && IsDefaultValue())
151
+ return 0;
152
+
153
+ if (Value <= 0xFF) {
154
+ SetSize_(1);
155
+ } else if (Value <= 0xFFFF) {
156
+ SetSize_(2);
157
+ } else if (Value <= 0xFFFFFF) {
158
+ SetSize_(3);
159
+ } else if (Value <= 0xFFFFFFFF) {
160
+ SetSize_(4);
161
+ } else if (Value <= EBML_PRETTYLONGINT(0xFFFFFFFFFF)) {
162
+ SetSize_(5);
163
+ } else if (Value <= EBML_PRETTYLONGINT(0xFFFFFFFFFFFF)) {
164
+ SetSize_(6);
165
+ } else if (Value <= EBML_PRETTYLONGINT(0xFFFFFFFFFFFFFF)) {
166
+ SetSize_(7);
167
+ } else {
168
+ SetSize_(8);
169
+ }
170
+
171
+ if (GetDefaultSize() > GetSize()) {
172
+ SetSize_(GetDefaultSize());
173
+ }
174
+
175
+ return GetSize();
176
}
177
178
#ifndef EBML_NO_READ
179
filepos_t EbmlUInteger::ReadData(IOCallback & input, ScopeMode ReadFully)
180
{
181
- if (ReadFully != SCOPE_NO_DATA)
182
- {
183
- binary Buffer[8];
184
- input.readFully(Buffer, GetSize());
185
- Value = 0;
186
-
187
- for (unsigned int i=0; i<GetSize(); i++)
188
- {
189
- Value <<= 8;
190
- Value |= Buffer[i];
191
- }
192
- SetValueIsSet();
193
- }
194
-
195
- return GetSize();
196
+ if (ReadFully != SCOPE_NO_DATA) {
197
+ binary Buffer[8];
198
+ input.readFully(Buffer, GetSize());
199
+ Value = 0;
200
+
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlUnicodeString.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlUnicodeString.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id$
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Jory Stone <jcsston @ toughguy.net>
31
+ \file
32
+ \version \$Id$
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Jory Stone <jcsston @ toughguy.net>
35
*/
36
37
#include <lgpl/cassert>
38
39
40
// ===================== UTFstring class ===================
41
42
+static unsigned int UTFCharLength(uint8 lead)
43
+{
44
+ if (lead < 0x80)
45
+ return 1;
46
+ else if ((lead >> 5) == 0x6)
47
+ return 2;
48
+ else if ((lead >> 4) == 0xe)
49
+ return 3;
50
+ else if ((lead >> 3) == 0x1e)
51
+ return 4;
52
+ else
53
+ // Invalid size?
54
+ return 0;
55
+}
56
+
57
UTFstring::UTFstring()
58
- :_Length(0)
59
- ,_Data(NULL)
60
+ :_Length(0)
61
+ ,_Data(NULL)
62
{}
63
64
UTFstring::UTFstring(const wchar_t * _aBuf)
65
- :_Length(0)
66
- ,_Data(NULL)
67
+ :_Length(0)
68
+ ,_Data(NULL)
69
{
70
- *this = _aBuf;
71
+ *this = _aBuf;
72
}
73
74
#if 0
75
UTFstring::UTFstring(std::wstring const &_aBuf)
76
- :_Length(0)
77
- ,_Data(NULL)
78
+ :_Length(0)
79
+ ,_Data(NULL)
80
{
81
- *this = _aBuf.c_str();
82
+ *this = _aBuf.c_str();
83
}
84
#endif
85
86
UTFstring::~UTFstring()
87
{
88
- delete [] _Data;
89
+ delete [] _Data;
90
}
91
92
UTFstring::UTFstring(const UTFstring & _aBuf)
93
- :_Length(0)
94
- ,_Data(NULL)
95
+ :_Length(0)
96
+ ,_Data(NULL)
97
{
98
- *this = _aBuf.c_str();
99
+ *this = _aBuf.c_str();
100
}
101
102
UTFstring & UTFstring::operator=(const UTFstring & _aBuf)
103
{
104
- *this = _aBuf.c_str();
105
- return *this;
106
+ *this = _aBuf.c_str();
107
+ return *this;
108
}
109
110
UTFstring::operator const wchar_t*() const {return _Data;}
111
112
113
UTFstring & UTFstring::operator=(const wchar_t * _aBuf)
114
{
115
- delete [] _Data;
116
- if (_aBuf == NULL) {
117
- _Data = new wchar_t[1];
118
- _Data[0] = 0;
119
- UpdateFromUCS2();
120
- return *this;
121
- }
122
-
123
- size_t aLen;
124
- for (aLen=0; _aBuf[aLen] != 0; aLen++);
125
- _Length = aLen;
126
- _Data = new wchar_t[_Length+1];
127
- for (aLen=0; _aBuf[aLen] != 0; aLen++) {
128
- _Data[aLen] = _aBuf[aLen];
129
- }
130
- _Data[aLen] = 0;
131
- UpdateFromUCS2();
132
- return *this;
133
+ delete [] _Data;
134
+ if (_aBuf == NULL) {
135
+ _Data = new wchar_t[1];
136
+ _Data[0] = 0;
137
+ UpdateFromUCS2();
138
+ return *this;
139
+ }
140
+
141
+ size_t aLen;
142
+ for (aLen=0; _aBuf[aLen] != 0; aLen++);
143
+ _Length = aLen;
144
+ _Data = new wchar_t[_Length+1];
145
+ for (aLen=0; _aBuf[aLen] != 0; aLen++) {
146
+ _Data[aLen] = _aBuf[aLen];
147
+ }
148
+ _Data[aLen] = 0;
149
+ UpdateFromUCS2();
150
+ return *this;
151
}
152
153
UTFstring & UTFstring::operator=(wchar_t _aChar)
154
{
155
- delete [] _Data;
156
- _Data = new wchar_t[2];
157
- _Length = 1;
158
- _Data[0] = _aChar;
159
- _Data[1] = 0;
160
- UpdateFromUCS2();
161
- return *this;
162
+ delete [] _Data;
163
+ _Data = new wchar_t[2];
164
+ _Length = 1;
165
+ _Data[0] = _aChar;
166
+ _Data[1] = 0;
167
+ UpdateFromUCS2();
168
+ return *this;
169
}
170
171
bool UTFstring::operator==(const UTFstring& _aStr) const
172
{
173
- if ((_Data == NULL) && (_aStr._Data == NULL))
174
- return true;
175
- if ((_Data == NULL) || (_aStr._Data == NULL))
176
- return false;
177
- return wcscmp_internal(_Data, _aStr._Data);
178
+ if ((_Data == NULL) && (_aStr._Data == NULL))
179
+ return true;
180
+ if ((_Data == NULL) || (_aStr._Data == NULL))
181
+ return false;
182
+ return wcscmp_internal(_Data, _aStr._Data);
183
}
184
185
void UTFstring::SetUTF8(const ccc::string & _aStr)
186
{
187
- UTF8string = _aStr;
188
- UpdateFromUTF8();
189
+ UTF8string = _aStr;
190
+ UpdateFromUTF8();
191
}
192
193
/*!
194
- \see RFC 2279
195
+ \see RFC 2279
196
*/
197
void UTFstring::UpdateFromUTF8()
198
{
199
- delete [] _Data;
200
- // find the size of the final UCS-2 string
201
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlVersion.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlVersion.cpp
Changed
33
1
2
**
3
** You should have received a copy of the GNU Lesser General Public
4
** License along with this library; if not, write to the Free Software
5
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
6
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
7
**
8
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
9
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
10
**
11
** Contact license@matroska.org if any conditions of this licensing are
12
** not clear to you.
13
14
**********************************************************************/
15
16
/*!
17
- \file
18
- \version \$Id: EbmlVersion.cpp 639 2004-07-09 20:59:14Z mosu $
19
- \author Steve Lhomme <robux4 @ users.sf.net>
20
+ \file
21
+ \version \$Id: EbmlVersion.cpp 639 2004-07-09 20:59:14Z mosu $
22
+ \author Steve Lhomme <robux4 @ users.sf.net>
23
*/
24
25
#include "ebml/EbmlVersion.h"
26
27
START_LIBEBML_NAMESPACE
28
29
-const ccc::string EbmlCodeVersion = "1.3.0";
30
+const ccc::string EbmlCodeVersion = "1.3.3";
31
32
END_LIBEBML_NAMESPACE
33
makemkv-oss-1.9.5.tar.xz/libebml/src/EbmlVoid.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/EbmlVoid.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: EbmlVoid.cpp 1232 2005-10-15 15:56:52Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
+ \file
31
+ \version \$Id: EbmlVoid.cpp 1232 2005-10-15 15:56:52Z robux4 $
32
+ \author Steve Lhomme <robux4 @ users.sf.net>
33
*/
34
#include "ebml/EbmlVoid.h"
35
#include "ebml/EbmlContexts.h"
36
37
38
EbmlVoid::EbmlVoid()
39
{
40
- SetValueIsSet();
41
+ SetValueIsSet();
42
}
43
44
filepos_t EbmlVoid::RenderData(IOCallback & output, bool /* bForceRender */, bool /* bWithDefault */)
45
{
46
- // write dummy data by 4KB chunks
47
- static binary DummyBuf[4*1024];
48
-
49
- uint64 SizeToWrite = GetSize();
50
- while (SizeToWrite > 4*1024)
51
- {
52
- output.writeFully(DummyBuf, 4*1024);
53
- SizeToWrite -= 4*1024;
54
- }
55
- output.writeFully(DummyBuf, SizeToWrite);
56
- return GetSize();
57
+ // write dummy data by 4KB chunks
58
+ static binary DummyBuf[4*1024];
59
+
60
+ uint64 SizeToWrite = GetSize();
61
+ while (SizeToWrite > 4*1024) {
62
+ output.writeFully(DummyBuf, 4*1024);
63
+ SizeToWrite -= 4*1024;
64
+ }
65
+ output.writeFully(DummyBuf, SizeToWrite);
66
+ return GetSize();
67
}
68
69
uint64 EbmlVoid::ReplaceWith(EbmlElement & EltToReplaceWith, IOCallback & output, bool ComeBackAfterward, bool bWithDefault)
70
{
71
- EltToReplaceWith.UpdateSize(bWithDefault);
72
- if (HeadSize() + GetSize() < EltToReplaceWith.GetSize() + EltToReplaceWith.HeadSize()) {
73
- // the element can't be written here !
74
- return INVALID_FILEPOS_T;
75
- }
76
- if (HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() == 1) {
77
- // there is not enough space to put a filling element
78
- return INVALID_FILEPOS_T;
79
- }
80
-
81
- uint64 CurrentPosition = output.getFilePointer();
82
-
83
- output.setFilePointer(GetElementPosition());
84
- EltToReplaceWith.Render(output, bWithDefault);
85
-
86
- if (HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() > 1) {
87
- // fill the rest with another void element
88
- EbmlVoid aTmp;
89
- aTmp.SetSize_(HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() - 1); // 1 is the length of the Void ID
90
- int HeadBefore = aTmp.HeadSize();
91
- aTmp.SetSize_(aTmp.GetSize() - CodedSizeLength(aTmp.GetSize(), aTmp.GetSizeLength(), aTmp.IsFiniteSize()));
92
- int HeadAfter = aTmp.HeadSize();
93
- if (HeadBefore != HeadAfter) {
94
- aTmp.SetSizeLength(CodedSizeLength(aTmp.GetSize(), aTmp.GetSizeLength(), aTmp.IsFiniteSize()) - (HeadAfter - HeadBefore));
95
- }
96
- aTmp.RenderHead(output, false, bWithDefault); // the rest of the data is not rewritten
97
- }
98
-
99
- if (ComeBackAfterward) {
100
- output.setFilePointer(CurrentPosition);
101
- }
102
-
103
- return GetSize() + HeadSize();
104
+ EltToReplaceWith.UpdateSize(bWithDefault);
105
+ if (HeadSize() + GetSize() < EltToReplaceWith.GetSize() + EltToReplaceWith.HeadSize()) {
106
+ // the element can't be written here !
107
+ return INVALID_FILEPOS_T;
108
+ }
109
+ if (HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() == 1) {
110
+ // there is not enough space to put a filling element
111
+ return INVALID_FILEPOS_T;
112
+ }
113
+
114
+ uint64 CurrentPosition = output.getFilePointer();
115
+
116
+ output.setFilePointer(GetElementPosition());
117
+ EltToReplaceWith.Render(output, bWithDefault);
118
+
119
+ if (HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() > 1) {
120
+ // fill the rest with another void element
121
+ EbmlVoid aTmp;
122
+ aTmp.SetSize_(HeadSize() + GetSize() - EltToReplaceWith.GetSize() - EltToReplaceWith.HeadSize() - 1); // 1 is the length of the Void ID
123
+ int HeadBefore = aTmp.HeadSize();
124
+ aTmp.SetSize_(aTmp.GetSize() - CodedSizeLength(aTmp.GetSize(), aTmp.GetSizeLength(), aTmp.IsFiniteSize()));
125
+ int HeadAfter = aTmp.HeadSize();
126
+ if (HeadBefore != HeadAfter) {
127
+ aTmp.SetSizeLength(CodedSizeLength(aTmp.GetSize(), aTmp.GetSizeLength(), aTmp.IsFiniteSize()) - (HeadAfter - HeadBefore));
128
+ }
129
+ aTmp.RenderHead(output, false, bWithDefault); // the rest of the data is not rewritten
130
+ }
131
+
132
+ if (ComeBackAfterward) {
133
+ output.setFilePointer(CurrentPosition);
134
+ }
135
+
136
+ return GetSize() + HeadSize();
137
}
138
139
uint64 EbmlVoid::Overwrite(const EbmlElement & EltToVoid, IOCallback & output, bool ComeBackAfterward, bool bWithDefault)
140
{
141
-// EltToVoid.UpdateSize(bWithDefault);
142
- if (EltToVoid.GetElementPosition() == 0) {
143
- // this element has never been written
144
- return 0;
145
- }
146
- if (EltToVoid.GetSize() + EltToVoid.HeadSize() <2) {
147
- // the element can't be written here !
148
- return 0;
149
- }
150
-
151
- uint64 CurrentPosition = output.getFilePointer();
152
-
153
- output.setFilePointer(EltToVoid.GetElementPosition());
154
-
155
- // compute the size of the voided data based on the original one
156
- SetSize(EltToVoid.GetSize() + EltToVoid.HeadSize() - 1); // 1 for the ID
157
- SetSize(GetSize() - CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize()));
158
- // make sure we handle even the strange cases
159
- //uint32 A1 = GetSize() + HeadSize();
160
- //uint32 A2 = EltToVoid.GetSize() + EltToVoid.HeadSize();
161
- if (GetSize() + HeadSize() != EltToVoid.GetSize() + EltToVoid.HeadSize()) {
162
- SetSize(GetSize()-1);
163
- SetSizeLength(CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize()) + 1);
164
- }
165
-
166
- if (GetSize() != 0) {
167
- RenderHead(output, false, bWithDefault); // the rest of the data is not rewritten
168
- }
169
-
170
- if (ComeBackAfterward) {
171
- output.setFilePointer(CurrentPosition);
172
- }
173
-
174
- return EltToVoid.GetSize() + EltToVoid.HeadSize();
175
+ // EltToVoid.UpdateSize(bWithDefault);
176
+ if (EltToVoid.GetElementPosition() == 0) {
177
+ // this element has never been written
178
+ return 0;
179
+ }
180
+ if (EltToVoid.GetSize() + EltToVoid.HeadSize() <2) {
181
+ // the element can't be written here !
182
+ return 0;
183
+ }
184
+
185
+ uint64 CurrentPosition = output.getFilePointer();
186
+
187
+ output.setFilePointer(EltToVoid.GetElementPosition());
188
+
189
+ // compute the size of the voided data based on the original one
190
+ SetSize(EltToVoid.GetSize() + EltToVoid.HeadSize() - 1); // 1 for the ID
191
+ SetSize(GetSize() - CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize()));
192
+ // make sure we handle even the strange cases
193
+ //uint32 A1 = GetSize() + HeadSize();
194
+ //uint32 A2 = EltToVoid.GetSize() + EltToVoid.HeadSize();
195
+ if (GetSize() + HeadSize() != EltToVoid.GetSize() + EltToVoid.HeadSize()) {
196
+ SetSize(GetSize()-1);
197
+ SetSizeLength(CodedSizeLength(GetSize(), GetSizeLength(), IsFiniteSize()) + 1);
198
+ }
199
+
200
+ if (GetSize() != 0) {
201
makemkv-oss-1.9.5.tar.xz/libebml/src/IOCallback.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/IOCallback.cpp
Changed
93
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: IOCallback.cpp 639 2004-07-09 20:59:14Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id: IOCallback.cpp 639 2004-07-09 20:59:14Z mosu $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
37
#if !defined(__GNUC__) || (__GNUC__ > 2)
38
39
40
void IOCallback::writeFully(const void*Buffer,size_t Size)
41
{
42
- if (Size == 0)
43
- return;
44
+ if (Size == 0)
45
+ return;
46
47
- if (Buffer == NULL)
48
- throw;
49
+ if (Buffer == NULL)
50
+ throw;
51
52
- if(write(Buffer,Size) != Size)
53
- {
54
-#if 1 //!defined(__GNUC__) || (__GNUC__ > 2)
55
- //stringstream Msg;
56
- //Msg<<"EOF in writeFully("<<Buffer<<","<<Size<<")";
57
- throw mkv_error_exception("$EOF in writeFully");
58
+ if(write(Buffer,Size) != Size) {
59
+#if !defined(__GNUC__) || (__GNUC__ > 2)
60
+ //stringstream Msg;
61
+ //Msg<<"EOF in writeFully("<<Buffer<<","<<Size<<")";
62
+ throw mkv_error_exception("$EOF in writeFully");
63
#endif // GCC2
64
- }
65
+ }
66
}
67
68
69
#ifndef EBML_NO_READ
70
void IOCallback::readFully(void*Buffer,size_t Size)
71
{
72
- if(Buffer == NULL)
73
- throw;
74
+ if(Buffer == NULL)
75
+ throw;
76
77
- if(read(Buffer,Size) != Size)
78
- {
79
+ if(read(Buffer,Size) != Size) {
80
#if !defined(__GNUC__) || (__GNUC__ > 2)
81
- //stringstream Msg;
82
- //Msg<<"EOF in readFully("<<Buffer<<","<<Size<<")";
83
- throw runtime_error("EOF in readFully");
84
+ //stringstream Msg;
85
+ //Msg<<"EOF in readFully("<<Buffer<<","<<Size<<")";
86
+ throw runtime_error("EOF in readFully");
87
#endif // GCC2
88
- }
89
+ }
90
}
91
#endif
92
93
makemkv-oss-1.9.5.tar.xz/libebml/src/MemIOCallback.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/MemIOCallback.cpp
Changed
177
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: MemIOCallback.cpp 693 2004-07-31 08:56:28Z robux4 $
29
- \author Jory Stone <jcsston @ toughguy.net>
30
+ \file
31
+ \version \$Id: MemIOCallback.cpp 693 2004-07-31 08:56:28Z robux4 $
32
+ \author Jory Stone <jcsston @ toughguy.net>
33
*/
34
35
#include "ebml/MemIOCallback.h"
36
37
38
MemIOCallback::MemIOCallback(uint64 DefaultSize)
39
{
40
- //The default size of the buffer is 128 bytes
41
- dataBuffer = (binary *)malloc(DefaultSize);
42
- if (dataBuffer == NULL) {
43
- mOk = false;
44
- //std::stringstream Msg;
45
- //Msg << "Failed to alloc memory block of size ";
46
-// not working with VC6 Msg << DefaultSize;
47
- mLastErrorStr = "Failed to alloc memory block";
48
- return;
49
- }
50
-
51
- dataBufferMemorySize = DefaultSize;
52
- dataBufferPos = 0;
53
- dataBufferTotalSize = 0;
54
- mOk = true;
55
+ //The default size of the buffer is 128 bytes
56
+ dataBuffer = (binary *)malloc(DefaultSize);
57
+ if (dataBuffer == NULL) {
58
+ mOk = false;
59
+ //std::stringstream Msg;
60
+ //Msg << "Failed to alloc memory block of size ";
61
+ // not working with VC6 Msg << DefaultSize;
62
+ mLastErrorStr = "Failed to alloc memory block";
63
+ return;
64
+ }
65
+
66
+ dataBufferMemorySize = DefaultSize;
67
+ dataBufferPos = 0;
68
+ dataBufferTotalSize = 0;
69
+ mOk = true;
70
}
71
72
MemIOCallback::~MemIOCallback()
73
{
74
- if (dataBuffer != NULL)
75
- free(dataBuffer);
76
+ if (dataBuffer != NULL)
77
+ free(dataBuffer);
78
}
79
80
uint32 MemIOCallback::read(void *Buffer, size_t Size)
81
{
82
- if (Buffer == NULL || Size < 1)
83
- return 0;
84
- //If the size is larger than than the amount left in the buffer
85
- if (Size + dataBufferPos > dataBufferTotalSize)
86
- {
87
- //We will only return the remaining data
88
- memcpy(Buffer, dataBuffer + dataBufferPos, dataBufferTotalSize - dataBufferPos);
89
- uint64 oldDataPos = dataBufferPos;
90
- dataBufferPos = dataBufferTotalSize;
91
- return dataBufferTotalSize - oldDataPos;
92
- }
93
-
94
- //Well... We made it here, so do a quick and simple copy
95
- memcpy(Buffer, dataBuffer+dataBufferPos, Size);
96
- dataBufferPos += Size;
97
+ if (Buffer == NULL || Size < 1)
98
+ return 0;
99
+ //If the size is larger than than the amount left in the buffer
100
+ if (Size + dataBufferPos > dataBufferTotalSize) {
101
+ //We will only return the remaining data
102
+ memcpy(Buffer, dataBuffer + dataBufferPos, dataBufferTotalSize - dataBufferPos);
103
+ uint64 oldDataPos = dataBufferPos;
104
+ dataBufferPos = dataBufferTotalSize;
105
+ return dataBufferTotalSize - oldDataPos;
106
+ }
107
+
108
+ //Well... We made it here, so do a quick and simple copy
109
+ memcpy(Buffer, dataBuffer+dataBufferPos, Size);
110
+ dataBufferPos += Size;
111
112
- return Size;
113
+ return Size;
114
}
115
116
void MemIOCallback::setFilePointer(int64 Offset, seek_mode Mode)
117
{
118
- if (Mode == seek_beginning)
119
- dataBufferPos = Offset;
120
- else if (Mode == seek_current)
121
- dataBufferPos = dataBufferPos + Offset;
122
- else if (Mode == seek_end)
123
- dataBufferPos = dataBufferTotalSize + Offset;
124
+ if (Mode == seek_beginning)
125
+ dataBufferPos = Offset;
126
+ else if (Mode == seek_current)
127
+ dataBufferPos = dataBufferPos + Offset;
128
+ else if (Mode == seek_end)
129
+ dataBufferPos = dataBufferTotalSize + Offset;
130
}
131
132
size_t MemIOCallback::write(const void *Buffer, size_t Size)
133
{
134
- if (dataBufferMemorySize < dataBufferPos + Size)
135
- {
136
- //We need more memory!
137
- dataBuffer = (binary *)realloc((void *)dataBuffer, dataBufferPos + Size);
138
- }
139
- memcpy(dataBuffer+dataBufferPos, Buffer, Size);
140
- dataBufferPos += Size;
141
- if (dataBufferPos > dataBufferTotalSize)
142
- dataBufferTotalSize = dataBufferPos;
143
+ if (dataBufferMemorySize < dataBufferPos + Size) {
144
+ //We need more memory!
145
+ dataBuffer = (binary *)realloc((void *)dataBuffer, dataBufferPos + Size);
146
+ }
147
+ memcpy(dataBuffer+dataBufferPos, Buffer, Size);
148
+ dataBufferPos += Size;
149
+ if (dataBufferPos > dataBufferTotalSize)
150
+ dataBufferTotalSize = dataBufferPos;
151
152
- return Size;
153
+ return Size;
154
}
155
156
#ifndef EBML_NO_READ
157
uint32 MemIOCallback::write(IOCallback & IOToRead, size_t Size)
158
{
159
- if (dataBufferMemorySize < dataBufferPos + Size)
160
- {
161
- //We need more memory!
162
- dataBuffer = (binary *)realloc((void *)dataBuffer, dataBufferPos + Size);
163
- }
164
- IOToRead.readFully(&dataBuffer[dataBufferPos], Size);
165
- dataBufferTotalSize = Size;
166
- return Size;
167
+ if (dataBufferMemorySize < dataBufferPos + Size) {
168
+ //We need more memory!
169
+ dataBuffer = (binary *)realloc((void *)dataBuffer, dataBufferPos + Size);
170
+ }
171
+ IOToRead.readFully(&dataBuffer[dataBufferPos], Size);
172
+ dataBufferTotalSize = Size;
173
+ return Size;
174
}
175
#endif
176
177
makemkv-oss-1.9.5.tar.xz/libebml/src/StdIOCallback.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/StdIOCallback.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: StdIOCallback.cpp 1298 2008-02-21 22:14:18Z mosu $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Moritz Bunkus <moritz @ bunkus.org>
31
+ \file
32
+ \version \$Id: StdIOCallback.cpp 1298 2008-02-21 22:14:18Z mosu $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Moritz Bunkus <moritz @ bunkus.org>
35
*/
36
37
#include <lgpl/cassert>
38
39
START_LIBEBML_NAMESPACE
40
41
CRTError::CRTError(int nError, const std::string & Description)
42
- :std::runtime_error(Description+": "+strerror(nError))
43
- ,Error(nError)
44
+ :std::runtime_error(Description+": "+strerror(nError))
45
+ ,Error(nError)
46
{
47
}
48
49
CRTError::CRTError(const std::string & Description,int nError)
50
- :std::runtime_error(Description+": "+strerror(nError))
51
- ,Error(nError)
52
+ :std::runtime_error(Description+": "+strerror(nError))
53
+ ,Error(nError)
54
{
55
}
56
57
58
StdIOCallback::StdIOCallback(const char*Path, const open_mode aMode)
59
{
60
- assert(Path!=0);
61
-
62
- const char *Mode;
63
- switch (aMode)
64
- {
65
- case MODE_READ:
66
- Mode = "rb";
67
- break;
68
- case MODE_SAFE:
69
- Mode = "rb+";
70
- break;
71
- case MODE_WRITE:
72
- Mode = "wb";
73
- break;
74
- case MODE_CREATE:
75
- Mode = "wb+";
76
- break;
77
- default:
78
- throw 0;
79
- }
80
-
81
- File=fopen(Path,Mode);
82
- if(File==0)
83
- {
84
+ assert(Path!=0);
85
+
86
+ const char *Mode;
87
+ switch (aMode) {
88
+ case MODE_READ:
89
+ Mode = "rb";
90
+ break;
91
+ case MODE_SAFE:
92
+ Mode = "rb+";
93
+ break;
94
+ case MODE_WRITE:
95
+ Mode = "wb";
96
+ break;
97
+ case MODE_CREATE:
98
+ Mode = "wb+";
99
+ break;
100
+ default:
101
+ throw 0;
102
+ }
103
+
104
+ File=fopen(Path,Mode);
105
+ if(File==0) {
106
#if !defined(__GNUC__) || (__GNUC__ > 2)
107
- stringstream Msg;
108
- Msg<<"Can't open stdio file \""<<Path<<"\" in mode \""<<Mode<<"\"";
109
- throw CRTError(Msg.str());
110
+ stringstream Msg;
111
+ Msg<<"Can't open stdio file \""<<Path<<"\" in mode \""<<Mode<<"\"";
112
+ throw CRTError(Msg.str());
113
#endif // GCC2
114
- }
115
- mCurrentPosition = 0;
116
+ }
117
+ mCurrentPosition = 0;
118
}
119
120
121
StdIOCallback::~StdIOCallback()throw()
122
{
123
- close();
124
+ close();
125
}
126
127
128
129
uint32 StdIOCallback::read(void*Buffer,size_t Size)
130
{
131
- assert(File!=0);
132
-
133
- size_t result = fread(Buffer, 1, Size, File);
134
- mCurrentPosition += result;
135
- return result;
136
+ assert(File!=0);
137
+
138
+ size_t result = fread(Buffer, 1, Size, File);
139
+ mCurrentPosition += result;
140
+ return result;
141
}
142
143
void StdIOCallback::setFilePointer(int64 Offset,seek_mode Mode)
144
{
145
- assert(File!=0);
146
+ assert(File!=0);
147
148
- // There is a numeric cast in the boost library, which would be quite nice for this checking
149
-/*
150
- SL : replaced because unknown class in cygwin
151
- assert(Offset <= numeric_limits<long>::max());
152
- assert(Offset >= numeric_limits<long>::min());
153
-*/
154
+ // There is a numeric cast in the boost library, which would be quite nice for this checking
155
+ /*
156
+ SL : replaced because unknown class in cygwin
157
+ assert(Offset <= numeric_limits<long>::max());
158
+ assert(Offset >= numeric_limits<long>::min());
159
+ */
160
161
- assert(Offset <= LONG_MAX);
162
- assert(Offset >= LONG_MIN);
163
+ assert(Offset <= LONG_MAX);
164
+ assert(Offset >= LONG_MIN);
165
166
- assert(Mode==SEEK_CUR||Mode==SEEK_END||Mode==SEEK_SET);
167
+ assert(Mode==SEEK_CUR||Mode==SEEK_END||Mode==SEEK_SET);
168
169
- if(fseek(File,Offset,Mode)!=0)
170
- {
171
+ if(fseek(File,Offset,Mode)!=0) {
172
#if !defined(__GNUC__) || (__GNUC__ > 2)
173
- ostringstream Msg;
174
- Msg<<"Failed to seek file "<<File<<" to offset "<<(unsigned long)Offset<<" in mode "<<Mode;
175
- throw CRTError(Msg.str());
176
+ ostringstream Msg;
177
+ Msg<<"Failed to seek file "<<File<<" to offset "<<(unsigned long)Offset<<" in mode "<<Mode;
178
+ throw CRTError(Msg.str());
179
#endif // GCC2
180
- mCurrentPosition = ftell(File);
181
- }
182
- else
183
- {
184
- switch ( Mode )
185
- {
186
- case SEEK_CUR:
187
- mCurrentPosition += Offset;
188
- break;
189
- case SEEK_END:
190
- mCurrentPosition = ftell(File);
191
- break;
192
- case SEEK_SET:
193
- mCurrentPosition = Offset;
194
- break;
195
- }
196
- }
197
+ mCurrentPosition = ftell(File);
198
+ } else {
199
+ switch ( Mode ) {
200
+ case SEEK_CUR:
201
makemkv-oss-1.9.5.tar.xz/libebml/src/platform/win32/WinIOCallback.cpp -> makemkv-oss-1.10.2.tar.xz/libebml/src/platform/win32/WinIOCallback.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
24
**********************************************************************/
25
26
/*!
27
- \file
28
- \version \$Id: WinIOCallback.cpp 1092 2005-03-16 13:01:15Z robux4 $
29
- \author Steve Lhomme <robux4 @ users.sf.net>
30
- \author Jory Stone <jcsston @ toughguy.net>
31
- \author Cyrius <suiryc @ users.sf.net>
32
+ \file
33
+ \version \$Id: WinIOCallback.cpp 1092 2005-03-16 13:01:15Z robux4 $
34
+ \author Steve Lhomme <robux4 @ users.sf.net>
35
+ \author Jory Stone <jcsston @ toughguy.net>
36
+ \author Cyrius <suiryc @ users.sf.net>
37
*/
38
39
#include <lgpl/cassert>
40
41
START_LIBEBML_NAMESPACE
42
43
WinIOCallback::WinIOCallback(const char* Path, const open_mode aMode, DWORD dwFlags)
44
- :mFile(NULL), mOk(false)
45
+ :mFile(NULL), mOk(false)
46
{
47
- mOk = open(Path, aMode, dwFlags);
48
+ mOk = open(Path, aMode, dwFlags);
49
}
50
51
WinIOCallback::WinIOCallback(const wchar_t* Path, const open_mode aMode, DWORD dwFlags)
52
- :mFile(NULL), mOk(false)
53
+ :mFile(NULL), mOk(false)
54
{
55
- mOk = open(Path, aMode, dwFlags);
56
+ mOk = open(Path, aMode, dwFlags);
57
}
58
59
WinIOCallback::~WinIOCallback()
60
{
61
- close();
62
+ close();
63
}
64
65
-bool WinIOCallback::open(const char* Path, const open_mode aMode, DWORD dwFlags)
66
+bool WinIOCallback::open(const char* Path, const open_mode aMode, DWORD dwFlags)
67
{
68
- assert(Path!=0);
69
+ assert(Path!=0);
70
71
- DWORD AccessMode, ShareMode, Disposition;
72
+ DWORD AccessMode, ShareMode, Disposition;
73
74
- switch (aMode)
75
- {
76
- case MODE_READ:
77
- AccessMode = GENERIC_READ;
78
- ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
79
- Disposition = OPEN_EXISTING;
80
- break;
81
- case MODE_WRITE:
82
- AccessMode = GENERIC_WRITE;
83
- ShareMode = 0;
84
- Disposition = OPEN_ALWAYS;
85
- break;
86
- case MODE_SAFE:
87
- AccessMode = GENERIC_WRITE|GENERIC_READ;
88
- ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
89
- Disposition = OPEN_ALWAYS;
90
- break;
91
- case MODE_CREATE:
92
- AccessMode = GENERIC_WRITE;
93
- ShareMode = 0;
94
- Disposition = CREATE_ALWAYS;
95
- break;
96
- default:
97
- assert(false);
98
- }
99
+ switch (aMode) {
100
+ case MODE_READ:
101
+ AccessMode = GENERIC_READ;
102
+ ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
103
+ Disposition = OPEN_EXISTING;
104
+ break;
105
+ case MODE_WRITE:
106
+ AccessMode = GENERIC_WRITE;
107
+ ShareMode = 0;
108
+ Disposition = OPEN_ALWAYS;
109
+ break;
110
+ case MODE_SAFE:
111
+ AccessMode = GENERIC_WRITE|GENERIC_READ;
112
+ ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
113
+ Disposition = OPEN_ALWAYS;
114
+ break;
115
+ case MODE_CREATE:
116
+ AccessMode = GENERIC_WRITE;
117
+ ShareMode = 0;
118
+ Disposition = CREATE_ALWAYS;
119
+ break;
120
+ default:
121
+ assert(false);
122
+ }
123
124
- mFile = CreateFileA(Path, AccessMode, ShareMode, NULL, Disposition, dwFlags, NULL);
125
- if ((mFile == INVALID_HANDLE_VALUE) || ((long)mFile == 0xffffffff))
126
- {
127
- //File was not opened
128
- char err_msg[256];
129
- DWORD error_code = GetLastError();
130
- // An error message about the file already existing is not really an error message :P
131
- if (error_code != ERROR_ALREADY_EXISTS) {
132
- FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, error_code, 0, err_msg, 255, NULL);
133
- EBML_TRACE("Failed to open file \"%hs\" in mode %d.", Path, aMode);
134
+ mFile = CreateFileA(Path, AccessMode, ShareMode, NULL, Disposition, dwFlags, NULL);
135
+ if ((mFile == INVALID_HANDLE_VALUE) || ((long)mFile == 0xffffffff)) {
136
+ //File was not opened
137
+ char err_msg[256];
138
+ DWORD error_code = GetLastError();
139
+ // An error message about the file already existing is not really an error message :P
140
+ if (error_code != ERROR_ALREADY_EXISTS) {
141
+ FormatMessageA(FORMAT_MESSAGE_FROM_SYSTEM, 0, error_code, 0, err_msg, 255, NULL);
142
+ EBML_TRACE("Failed to open file \"%hs\" in mode %d.", Path, aMode);
143
144
- mLastErrorStr = err_msg;
145
- return mOk = false;
146
- }
147
- }
148
- mCurrentPosition = 0;
149
+ mLastErrorStr = err_msg;
150
+ return mOk = false;
151
+ }
152
+ }
153
+ mCurrentPosition = 0;
154
155
- EBML_TRACE("Successfully opened file \"%hs\" in mode %d. The handle is %p\n", Path, aMode, mFile);
156
+ EBML_TRACE("Successfully opened file \"%hs\" in mode %d. The handle is %p\n", Path, aMode, mFile);
157
158
- return mOk = true;
159
+ return mOk = true;
160
};
161
162
-bool WinIOCallback::open(const wchar_t* Path, const open_mode aMode, DWORD dwFlags)
163
+bool WinIOCallback::open(const wchar_t* Path, const open_mode aMode, DWORD dwFlags)
164
{
165
- assert(Path!=0);
166
+ assert(Path!=0);
167
168
- DWORD AccessMode, ShareMode, Disposition;
169
+ DWORD AccessMode, ShareMode, Disposition;
170
171
- switch (aMode)
172
- {
173
- case MODE_READ:
174
- AccessMode = GENERIC_READ;
175
- ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
176
- Disposition = OPEN_EXISTING;
177
- break;
178
- case MODE_WRITE:
179
- AccessMode = GENERIC_WRITE;
180
- ShareMode = 0;
181
- Disposition = OPEN_ALWAYS;
182
- break;
183
- case MODE_SAFE:
184
- AccessMode = GENERIC_WRITE|GENERIC_READ;
185
- ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
186
- Disposition = OPEN_ALWAYS;
187
- break;
188
- case MODE_CREATE:
189
- AccessMode = GENERIC_WRITE;
190
- ShareMode = 0;
191
- Disposition = CREATE_ALWAYS;
192
- break;
193
- default:
194
- assert(false);
195
- }
196
+ switch (aMode) {
197
+ case MODE_READ:
198
+ AccessMode = GENERIC_READ;
199
+ ShareMode = FILE_SHARE_READ|FILE_SHARE_WRITE;
200
+ Disposition = OPEN_EXISTING;
201
makemkv-oss-1.9.5.tar.xz/libebml/src/platform/win32/WinIOCallback.h -> makemkv-oss-1.10.2.tar.xz/libebml/src/platform/win32/WinIOCallback.h
Changed
89
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
-** Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
16
+** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
17
**
18
-** See http://www.matroska.org/license/lgpl/ for LGPL licensing information.
19
+** See http://www.gnu.org/licenses/lgpl-2.1.html for LGPL licensing information.
20
**
21
** Contact license@matroska.org if any conditions of this licensing are
22
** not clear to you.
23
**
24
**********************************************************************/
25
/*!
26
- \file
27
- \version \$Id: WinIOCallback.h 1090 2005-03-16 12:47:59Z robux4 $
28
- \author Steve Lhomme <robux4 @ users.sf.net>
29
- \author Jory Stone <jcsston @ toughguy.net>
30
- \author Cyrius <suiryc @ users.sf.net>
31
+ \file
32
+ \version \$Id: WinIOCallback.h 1090 2005-03-16 12:47:59Z robux4 $
33
+ \author Steve Lhomme <robux4 @ users.sf.net>
34
+ \author Jory Stone <jcsston @ toughguy.net>
35
+ \author Cyrius <suiryc @ users.sf.net>
36
*/
37
38
#ifndef LIBEBML_WINIOCALLBACK_H
39
40
START_LIBEBML_NAMESPACE
41
42
class WinIOCallback: public IOCallback
43
-{
44
+{
45
public:
46
- WinIOCallback(const wchar_t* Path, const open_mode aMode, DWORD dwFlags=0);
47
- WinIOCallback(const char* Path, const open_mode aMode, DWORD dwFlags=0);
48
- virtual ~WinIOCallback();
49
+ WinIOCallback(const wchar_t* Path, const open_mode aMode, DWORD dwFlags=0);
50
+ WinIOCallback(const char* Path, const open_mode aMode, DWORD dwFlags=0);
51
+ virtual ~WinIOCallback();
52
+
53
+ bool open(const wchar_t* Path, const open_mode Mode, DWORD dwFlags=0);
54
+ bool open(const char* Path, const open_mode Mode, DWORD dwFlags=0);
55
56
- bool open(const wchar_t* Path, const open_mode Mode, DWORD dwFlags=0);
57
- bool open(const char* Path, const open_mode Mode, DWORD dwFlags=0);
58
+ virtual uint32 read(void*Buffer,size_t Size);
59
+ virtual size_t write(const void*Buffer,size_t Size);
60
+ virtual void setFilePointer(int64 Offset,seek_mode Mode=seek_beginning);
61
+ virtual uint64 getFilePointer();
62
+ virtual void close();
63
64
- virtual uint32 read(void*Buffer,size_t Size);
65
- virtual size_t write(const void*Buffer,size_t Size);
66
- virtual void setFilePointer(int64 Offset,seek_mode Mode=seek_beginning);
67
- virtual uint64 getFilePointer();
68
- virtual void close();
69
-
70
- bool IsOk() { return mOk; };
71
- const std::string &GetLastErrorStr() { return mLastErrorStr; };
72
- bool SetEOF();
73
+ bool IsOk() { return mOk; };
74
+ const std::string &GetLastErrorStr() { return mLastErrorStr; };
75
+ bool SetEOF();
76
protected:
77
- bool mOk;
78
- std::string mLastErrorStr;
79
- uint64 mCurrentPosition;
80
+ bool mOk;
81
+ std::string mLastErrorStr;
82
+ uint64 mCurrentPosition;
83
84
- HANDLE mFile;
85
+ HANDLE mFile;
86
};
87
88
END_LIBEBML_NAMESPACE
89
makemkv-oss-1.9.5.tar.xz/libffabi/inc/lgpl/ffabi.h -> makemkv-oss-1.10.2.tar.xz/libffabi/inc/lgpl/ffabi.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/bitstream.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/bitstream.cpp
Changed
62
1
2
return 0;
3
}
4
5
-void bits_align1(struct bitstream *bits)
6
+size_t bits_align1(struct bitstream *bits)
7
{
8
- bits->index = (bits->index + 7) & ~7;
9
+ bits->index = DCA_ALIGN(bits->index, 8);
10
+ return bits->index;
11
}
12
13
-void bits_align4(struct bitstream *bits)
14
+size_t bits_align4(struct bitstream *bits)
15
{
16
- bits->index = (bits->index + 31) & ~31;
17
+ bits->index = DCA_ALIGN(bits->index, 32);
18
+ return bits->index;
19
}
20
21
static uint16_t crc16(const uint8_t *data, size_t size)
22
23
return -DCADEC_EBADCRC;
24
return 0;
25
}
26
+
27
+void bits_get_array(struct bitstream *bits, int *array, int size, int n)
28
+{
29
+ for (int i = 0; i < size; i++)
30
+ array[i] = bits_get(bits, n);
31
+}
32
+
33
+void bits_get_signed_array(struct bitstream *bits, int *array, int size, int n)
34
+{
35
+ for (int i = 0; i < size; i++)
36
+ array[i] = bits_get_signed(bits, n);
37
+}
38
+
39
+void bits_get_signed_linear_array(struct bitstream *bits, int *array, int size, int n)
40
+{
41
+ if (n == 0) {
42
+ memset(array, 0, sizeof(*array) * size);
43
+ } else for (int i = 0; i < size; i++) {
44
+ int v = bits_get(bits, n);
45
+ array[i] = (v >> 1) ^ -(v & 1);
46
+ }
47
+}
48
+
49
+void bits_get_signed_rice_array(struct bitstream *bits, int *array, int size, int k)
50
+{
51
+ for (int i = 0; i < size; i++)
52
+ array[i] = bits_get_signed_rice(bits, k);
53
+}
54
+
55
+int bits_get_signed_vlc_array(struct bitstream *bits, int *array, int size, const struct huffman *h)
56
+{
57
+ for (int i = 0; i < size; i++)
58
+ if ((array[i] = bits_get_signed_vlc(bits, h)) == BITS_INVALID_VLC_SI)
59
+ return -DCADEC_EBADDATA;
60
+ return 0;
61
+}
62
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/bitstream.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/bitstream.h
Changed
60
1
2
void bits_skip1(struct bitstream *bits);
3
int bits_seek(struct bitstream *bits, size_t n);
4
void bits_seek1(struct bitstream *bits);
5
-void bits_align1(struct bitstream *bits);
6
-void bits_align4(struct bitstream *bits);
7
+size_t bits_align1(struct bitstream *bits);
8
+size_t bits_align4(struct bitstream *bits);
9
int bits_check_crc(struct bitstream *bits, size_t p1, size_t p2);
10
-
11
-static inline void bits_get_array(struct bitstream *bits,
12
- int *array, int size, int n)
13
-{
14
- for (int i = 0; i < size; i++)
15
- array[i] = bits_get(bits, n);
16
-}
17
-
18
-static inline void bits_get_signed_array(struct bitstream *bits,
19
- int *array, int size, int n)
20
-{
21
- for (int i = 0; i < size; i++)
22
- array[i] = bits_get_signed(bits, n);
23
-}
24
-
25
-static inline void bits_get_signed_linear_array(struct bitstream *bits,
26
- int *array, int size, int n)
27
-{
28
- if (n == 0) {
29
- memset(array, 0, sizeof(*array) * size);
30
- } else for (int i = 0; i < size; i++) {
31
- int v = bits_get(bits, n);
32
- array[i] = (v >> 1) ^ -(v & 1);
33
- }
34
-}
35
-
36
-static inline void bits_get_signed_rice_array(struct bitstream *bits,
37
- int *array, int size, int k)
38
-{
39
- for (int i = 0; i < size; i++)
40
- array[i] = bits_get_signed_rice(bits, k);
41
-}
42
-
43
-static inline int bits_get_signed_vlc_array(struct bitstream *bits,
44
- int *array, int size,
45
- const struct huffman *h)
46
-{
47
- for (int i = 0; i < size; i++) {
48
- if ((array[i] = bits_get_signed_vlc(bits, h)) == BITS_INVALID_VLC_SI)
49
- return -DCADEC_EBADDATA;
50
- }
51
- return 0;
52
-}
53
+void bits_get_array(struct bitstream *bits, int *array, int size, int n);
54
+void bits_get_signed_array(struct bitstream *bits, int *array, int size, int n);
55
+void bits_get_signed_linear_array(struct bitstream *bits, int *array, int size, int n);
56
+void bits_get_signed_rice_array(struct bitstream *bits, int *array, int size, int k);
57
+int bits_get_signed_vlc_array(struct bitstream *bits, int *array, int size, const struct huffman *h);
58
59
#endif
60
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/common.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/common.h
Changed
201
1
2
#include <math.h>
3
#include <errno.h>
4
5
+#include "compiler.h"
6
#include "dca_context.h"
7
#include "ta.h"
8
-#include "compiler.h"
9
10
-struct dcadec_log_context;
11
-void dca_log(struct dcadec_log_context *context,const char* msg,unsigned int line);
12
+#if AT_LEAST_GCC(3, 4)
13
+#define dca_clz32(x) __builtin_clz(x)
14
+#define dca_clz64(x) __builtin_clzll(x)
15
+#elif COMPILER_MSVC
16
+#define dca_clz32(x) (31-msvc_bsr32((x)))
17
+#define dca_clz64(x) (63-msvc_bsr64((x)))
18
+#else
19
+static inline int dca_clz32(uint32_t x)
20
+{
21
+ int r = 0;
22
23
-#ifdef NDEBUG
24
+ assert(x);
25
+ if (x & 0xffff0000) { x >>= 16; r |= 16; }
26
+ if (x & 0x0000ff00) { x >>= 8; r |= 8; }
27
+ if (x & 0x000000f0) { x >>= 4; r |= 4; }
28
+ if (x & 0x0000000c) { x >>= 2; r |= 2; }
29
+ if (x & 0x00000002) { x >>= 1; r |= 1; }
30
31
-#define DCA_DEBUG(m)
32
+ return 31 - r;
33
+}
34
35
-#elif defined(DCA_LOG)
36
+static inline int dca_clz64(uint64_t x)
37
+{
38
+ int r = 0;
39
40
-#define DCA_DEBUG(m) \
41
- dca_log(DCA_LOGCTX,m,__LINE__)
42
+ assert(x);
43
+ if (x & 0xffffffff00000000) { x >>= 32; r |= 32; }
44
+ if (x & 0x00000000ffff0000) { x >>= 16; r |= 16; }
45
+ if (x & 0x000000000000ff00) { x >>= 8; r |= 8; }
46
+ if (x & 0x00000000000000f0) { x >>= 4; r |= 4; }
47
+ if (x & 0x000000000000000c) { x >>= 2; r |= 2; }
48
+ if (x & 0x0000000000000002) { x >>= 1; r |= 1; }
49
50
+ return 63 - r;
51
+}
52
+#endif
53
+
54
+#if (defined __GNUC__) && (defined __POPCNT__)
55
+#define dca_popcount(x) __builtin_popcount(x)
56
#else
57
+static inline int dca_popcount(uint32_t x)
58
+{
59
+ x -= (x >> 1) & 0x55555555;
60
+ x = (x & 0x33333333) + ((x >> 2) & 0x33333333);
61
+ x = (x + (x >> 4)) & 0x0f0f0f0f;
62
+ x += x >> 8;
63
+ return (x + (x >> 16)) & 0x3f;
64
+}
65
+#endif
66
67
-#define DCA_DEBUG(m) \
68
- fprintf(stderr, "%s+%d: %s\n", __FILE__, __LINE__, m)
69
+#define dca_countof(x) (sizeof(x) / sizeof((x)[0]))
70
71
+#if AT_LEAST_GCC(4, 8)
72
+#define dca_bswap16(x) __builtin_bswap16(x)
73
+#elif COMPILER_MSVC
74
+#define dca_bswap16(x) _byteswap_ushort((x))
75
+#else
76
+static inline uint16_t dca_bswap16(uint16_t x)
77
+{
78
+ return (x << 8) | (x >> 8);
79
+}
80
#endif
81
82
-#define enforce(x, m) \
83
- do { \
84
- if (!(x)) { \
85
- DCA_DEBUG(m); \
86
- return -DCADEC_EBADDATA; \
87
- } \
88
- } while (false)
89
+#if AT_LEAST_GCC(4, 3)
90
+#define dca_bswap32(x) __builtin_bswap32(x)
91
+#define dca_bswap64(x) __builtin_bswap64(x)
92
+#elif COMPILER_MSVC
93
+#define dca_bswap32(x) _byteswap_ulong((x))
94
+#define dca_bswap64(x) _byteswap_uint64((x))
95
+#else
96
+static inline uint32_t dca_bswap32(uint32_t x)
97
+{
98
+ x = ((x & 0x00ff00ff) << 8) | ((x & 0xff00ff00) >> 8);
99
+ return (x << 16) | (x >> 16);
100
+}
101
102
-#define require(x, m) \
103
- do { \
104
- if (!(x)) { \
105
- DCA_DEBUG(m); \
106
- return -DCADEC_ENOSUP; \
107
- } \
108
- } while (false)
109
+static inline uint64_t dca_bswap64(uint64_t x)
110
+{
111
+ x = ((x & 0x00ff00ff00ff00ff) << 8) | ((x & 0xff00ff00ff00ff00) >> 8);
112
+ x = ((x & 0x0000ffff0000ffff) << 16) | ((x & 0xffff0000ffff0000) >> 16);
113
+ return (x << 32) | (x >> 32);
114
+}
115
+#endif
116
117
-#define dca_assert(x) \
118
- do { \
119
- if (!(x)) { \
120
- DCA_DEBUG("dca_assert: " #x); \
121
- return -DCADEC_EINVAL; \
122
- } \
123
+#define DCA_BSWAP16_C(x) ((((x) & 0x00ff) << 8) | (((x) & 0xff00) >> 8))
124
+#define DCA_BSWAP32_C(x) ((DCA_BSWAP16_C(x) << 16) | (DCA_BSWAP16_C(x >> 16)))
125
+#define DCA_BSWAP64_C(x) ((DCA_BSWAP32_C(x) << 32) | (DCA_BSWAP32_C(x >> 32)))
126
+
127
+#if HAVE_BIGENDIAN
128
+#define DCA_16LE(x) dca_bswap16(x)
129
+#define DCA_32LE(x) dca_bswap32(x)
130
+#define DCA_64LE(x) dca_bswap64(x)
131
+#define DCA_16BE(x) ((uint16_t)(x))
132
+#define DCA_32BE(x) ((uint32_t)(x))
133
+#define DCA_64BE(x) ((uint64_t)(x))
134
+#define DCA_16LE_C(x) DCA_BSWAP16_C(x)
135
+#define DCA_32LE_C(x) DCA_BSWAP32_C(x)
136
+#define DCA_64LE_C(x) DCA_BSWAP64_C(x)
137
+#define DCA_16BE_C(x) (x)
138
+#define DCA_32BE_C(x) (x)
139
+#define DCA_64BE_C(x) (x)
140
+#else
141
+#define DCA_16LE(x) ((uint16_t)(x))
142
+#define DCA_32LE(x) ((uint32_t)(x))
143
+#define DCA_64LE(x) ((uint64_t)(x))
144
+#define DCA_16BE(x) dca_bswap16(x)
145
+#define DCA_32BE(x) dca_bswap32(x)
146
+#define DCA_64BE(x) dca_bswap64(x)
147
+#define DCA_16LE_C(x) (x)
148
+#define DCA_32LE_C(x) (x)
149
+#define DCA_64LE_C(x) (x)
150
+#define DCA_16BE_C(x) DCA_BSWAP16_C(x)
151
+#define DCA_32BE_C(x) DCA_BSWAP32_C(x)
152
+#define DCA_64BE_C(x) DCA_BSWAP64_C(x)
153
+#endif
154
+
155
+#define DCA_MIN(a, b) ((a) < (b) ? (a) : (b))
156
+#define DCA_MAX(a, b) ((a) > (b) ? (a) : (b))
157
+
158
+#define DCA_ALIGN(value, align) \
159
+ (((value) + (align) - 1) & ~((align) - 1))
160
+
161
+#define DCA_MEM16BE(data) \
162
+ (((uint32_t)(data)[0] << 8) | (data)[1])
163
+
164
+#define DCA_MEM24BE(data) \
165
+ (((uint32_t)(data)[0] << 16) | DCA_MEM16BE(&(data)[1]))
166
+
167
+#define DCA_MEM32BE(data) \
168
+ (((uint32_t)(data)[0] << 24) | DCA_MEM24BE(&(data)[1]))
169
+
170
+#define DCA_MEM40BE(data) \
171
+ (((uint64_t)(data)[0] << 32) | DCA_MEM32BE(&(data)[1]))
172
+
173
+static inline uint32_t DCA_MEM32NE(const void *data)
174
+{
175
+ uint32_t res;
176
+ memcpy(&res, data, sizeof(res));
177
+ return res;
178
+}
179
+
180
+struct dcadec_log_context;
181
+void dca_log(struct dcadec_log_context *context,const char* msg,unsigned int line);
182
+
183
+#ifdef _DEBUG
184
+#define DCA_DEBUG(m) \
185
+ fprintf(stderr, "%s+%d: %s\n", __FILE__, __LINE__, m)
186
+#elif defined(DCA_LOG)
187
+#define DCA_DEBUG(m) \
188
+ dca_log(DCA_LOGCTX,m,__LINE__)
189
+#else
190
+#define DCA_DEBUG(m)
191
+#endif
192
+
193
+#define enforce3(x, m, e) \
194
+ do { \
195
+ if (!(x)) { \
196
+ DCA_DEBUG(m); \
197
+ return -(e); \
198
+ } \
199
} while (false)
200
201
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/compiler.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/compiler.h
Changed
145
1
2
#ifndef COMPILER_H
3
#define COMPILER_H
4
5
-#ifdef __GNUC__
6
+#if defined(_MSC_VER) && defined(WIN32)
7
+#define inline __inline
8
+#define restrict __restrict
9
10
-#define dca_bswap16(x) __builtin_bswap16(x)
11
-#define dca_bswap32(x) __builtin_bswap32(x)
12
-#define dca_bswap64(x) __builtin_bswap64(x)
13
-#define dca_clz32(x) __builtin_clz(x)
14
-#define dca_clz64(x) __builtin_clzll(x)
15
-#define dca_popcount(x) __builtin_popcount(x)
16
+#define fseeko _fseeki64
17
+#define ftello _ftelli64
18
+#define STDIN_FILENO 0
19
+#define STDOUT_FILENO 1
20
21
-#elif (defined(_MSC_VER) && defined(WIN32))
22
-
23
-#define __ORDER_LITTLE_ENDIAN__ 0x1234
24
-#define __ORDER_BIG_ENDIAN__ 0x4321
25
-#define __BYTE_ORDER__ __ORDER_LITTLE_ENDIAN__
26
+typedef __int64 off_t;
27
28
#include <stdint.h>
29
#include <stdlib.h>
30
#pragma intrinsic(_byteswap_ulong, _byteswap_uint64, _byteswap_ushort)
31
32
extern "C" unsigned char _BitScanReverse (unsigned int *Index,unsigned int Mask);
33
-extern "C" unsigned int __popcnt(unsigned int value);
34
-#pragma intrinsic(_BitScanReverse,__popcnt)
35
-
36
-#define dca_bswap16(x) _byteswap_ushort((x))
37
-#define dca_bswap32(x) _byteswap_ulong((x))
38
-#define dca_bswap64(x) _byteswap_uint64((x))
39
-#define dca_clz32(x) (31-msvc_bsr32((x)))
40
-#define dca_clz64(x) (63-msvc_bsr64((x)))
41
-#define dca_popcount(x) __popcnt((x))
42
+#pragma intrinsic(_BitScanReverse)
43
44
static unsigned int inline __forceinline msvc_bsr32(uint32_t value)
45
{
46
47
}
48
49
#ifdef _WIN64
50
+
51
+typedef struct __declspec(intrin_type) __declspec(align(16)) __m128d {
52
+ double m128d_f64[2];
53
+} __m128d;
54
+
55
extern "C" unsigned char _BitScanReverse64 (unsigned int *Index,uint64_t Mask);
56
-#pragma intrinsic(_BitScanReverse64)
57
+extern "C" __int64 _mm_cvtsd_si64x(__m128d a);
58
+extern "C" __m128d _mm_loadu_pd(double const*);
59
+#pragma intrinsic(_BitScanReverse64,_mm_cvtsd_si64x,_mm_loadu_pd)
60
+
61
static unsigned int inline __forceinline msvc_bsr64(uint64_t value)
62
{
63
unsigned int r;
64
_BitScanReverse64(&r,value);
65
return r;
66
}
67
+
68
+static long int inline __forceinline msvc_lrint(double x)
69
+{
70
+ return (long int)_mm_cvtsd_si64x(_mm_loadu_pd(&x));
71
+}
72
+
73
#else
74
+
75
static uint32_t inline __forceinline msvc_bsr64(uint64_t value)
76
{
77
uint32_t top = (uint32_t)(value>>32);
78
79
return 32+msvc_bsr32(top);
80
}
81
}
82
-#endif
83
84
-#else
85
-#error Unsupported compiler
86
+static long int __declspec(noinline) msvc_lrint(double x)
87
+{
88
+ long int ival;
89
+
90
+ __asm { fld x };
91
+ __asm { fistp ival };
92
+
93
+ return ival;
94
+}
95
+
96
+#endif // _WIN64
97
+
98
+#define lrint(x) msvc_lrint(x)
99
+
100
#endif
101
102
-#if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
103
-#define DCA_16LE(x) ((uint16_t)(x))
104
-#define DCA_32LE(x) ((uint32_t)(x))
105
-#define DCA_64LE(x) ((uint64_t)(x))
106
-#define DCA_16BE(x) dca_bswap16(x)
107
-#define DCA_32BE(x) dca_bswap32(x)
108
-#define DCA_64BE(x) dca_bswap64(x)
109
-#elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
110
-#define DCA_16LE(x) dca_bswap16(x)
111
-#define DCA_32LE(x) dca_bswap32(x)
112
-#define DCA_64LE(x) dca_bswap64(x)
113
-#define DCA_16BE(x) ((uint16_t)(x))
114
-#define DCA_32BE(x) ((uint32_t)(x))
115
-#define DCA_64BE(x) ((uint64_t)(x))
116
-#else
117
-#error Unsupported byte order
118
+#define COMPILER_MSVC \
119
+ (defined _MSC_VER) && (defined WIN32)
120
+
121
+#define AT_LEAST_GCC(major, minor) \
122
+ (defined __GNUC__) && ((__GNUC__ > (major)) || (__GNUC__ == (major) && __GNUC_MINOR__ >= (minor)))
123
+
124
+#ifndef HAVE_BIGENDIAN
125
+# if (defined __GNUC__)
126
+# if __BYTE_ORDER__ == __ORDER_LITTLE_ENDIAN__
127
+# define HAVE_BIGENDIAN 0
128
+# elif __BYTE_ORDER__ == __ORDER_BIG_ENDIAN__
129
+# define HAVE_BIGENDIAN 1
130
+# else
131
+# error Unsupported byte order
132
+# endif
133
+# elif (defined _MSC_VER)
134
+# define HAVE_BIGENDIAN 0
135
+# else
136
+# error Unsupported compiler. Define HAVE_BIGENDIAN macro to specify endianness.
137
+# endif
138
#endif
139
140
+#if !defined(restrict) && defined(__cplusplus)
141
+#define restrict __restrict
142
+#endif
143
144
#endif
145
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/core_decoder.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/core_decoder.cpp
Changed
201
1
2
#include "common.h"
3
#include "bitstream.h"
4
#include "interpolator.h"
5
+#include "idct.h"
6
#include "fixed_math.h"
7
#include "core_decoder.h"
8
#include "exss_parser.h"
9
10
#include "core_huffman.h"
11
#include "core_vectors.h"
12
13
-enum sample_type {
14
+enum SampleType {
15
NO_BITS_ALLOCATED,
16
HUFFMAN_CODE,
17
BLOCK_CODE,
18
NO_FURTHER_ENCODING
19
};
20
21
-enum header_type {
22
+enum HeaderType {
23
HEADER_CORE,
24
HEADER_XCH,
25
HEADER_XXCH
26
};
27
28
-// Mode 0: A (mono)
29
-// Mode 1: A + B (dual mono)
30
-// Mode 2: L + R (stereo)
31
-// Mode 3: (L+R) + (L-R) (sum-diff)
32
-// Mode 4: LT + RT (left and right total)
33
-// Mode 5: C + L + R
34
-// Mode 6: L + R + S
35
-// Mode 7: C + L + R + S
36
-// Mode 8: L + R + SL + SR
37
-// Mode 9: C + L + R + SL + SR
38
-
39
-static const int8_t prm_ch_to_spkr_map[10][5] = {
40
+enum AudioMode {
41
+ AMODE_MONO, // Mode 0: A (mono)
42
+ AMODE_MONO_DUAL, // Mode 1: A + B (dual mono)
43
+ AMODE_STEREO, // Mode 2: L + R (stereo)
44
+ AMODE_STEREO_SUMDIFF, // Mode 3: (L+R) + (L-R) (sum-diff)
45
+ AMODE_STEREO_TOTAL, // Mode 4: LT + RT (left and right total)
46
+ AMODE_3F, // Mode 5: C + L + R
47
+ AMODE_2F1R, // Mode 6: L + R + S
48
+ AMODE_3F1R, // Mode 7: C + L + R + S
49
+ AMODE_2F2R, // Mode 8: L + R + SL + SR
50
+ AMODE_3F2R, // Mode 9: C + L + R + SL + SR
51
+
52
+ AMODE_COUNT
53
+};
54
+
55
+enum ExtAudioType {
56
+ EXT_AUDIO_XCH = 0,
57
+ EXT_AUDIO_X96 = 2,
58
+ EXT_AUDIO_XXCH = 6
59
+};
60
+
61
+static const int8_t prm_ch_to_spkr_map[AMODE_COUNT][5] = {
62
{ SPEAKER_C, -1, -1, -1, -1 },
63
{ SPEAKER_L, SPEAKER_R, -1, -1, -1 },
64
{ SPEAKER_L, SPEAKER_R, -1, -1, -1 },
65
66
{ SPEAKER_C, SPEAKER_L, SPEAKER_R, SPEAKER_Ls, SPEAKER_Rs }
67
};
68
69
-static const uint8_t audio_mode_ch_mask[10] = {
70
+static const uint8_t audio_mode_ch_mask[AMODE_COUNT] = {
71
SPEAKER_MASK_C,
72
SPEAKER_MASK_L | SPEAKER_MASK_R,
73
SPEAKER_MASK_L | SPEAKER_MASK_R,
74
75
76
// Audio channel arrangement
77
core->audio_mode = bits_get(&core->bits, 6);
78
- require(core->audio_mode < 10, "Unsupported audio channel arrangement");
79
+ require(core->audio_mode < AMODE_COUNT, "Unsupported audio channel arrangement");
80
81
// Core audio sampling frequency
82
core->sample_rate = sample_rates[bits_get(&core->bits, 4)];
83
84
bits_skip1(&core->bits);
85
86
// Extension audio descriptor flag
87
- // 0 - Channel extension (XCH)
88
- // 2 - Frequency extension (X96)
89
- // 6 - Channel extension (XXCH)
90
core->ext_audio_type = bits_get(&core->bits, 3);
91
92
// Extended coding flag
93
94
core->es_format = !!(pcmr_index & 1);
95
96
// Front sum/difference flag
97
- require(bits_get1(&core->bits) == false, "Front sum/difference not supported");
98
+ core->sumdiff_front = bits_get1(&core->bits);
99
100
// Surround sum/difference flag
101
- require(bits_get1(&core->bits) == false, "Surround sum/difference not supported");
102
+ core->sumdiff_surround = bits_get1(&core->bits);
103
104
// Dialog normalization / unspecified
105
bits_skip(&core->bits, 4);
106
107
}
108
109
// 5.3.2 - Primary audio coding header
110
-static int parse_coding_header(struct core_decoder *core, enum header_type header, int xch_base)
111
+static int parse_coding_header(struct core_decoder *core, enum HeaderType header, int xch_base)
112
{
113
int ch, n, ret;
114
115
116
117
core->ch_mask = audio_mode_ch_mask[core->audio_mode];
118
119
+ // Add LFE channel if present
120
+ if (core->lfe_present)
121
+ core->ch_mask |= SPEAKER_MASK_LFE1;
122
+
123
core->dmix_coeffs_present = core->dmix_embedded = false;
124
break;
125
126
127
core->nchannels = audio_mode_nch[core->audio_mode] + n;
128
dca_assert(core->nchannels <= MAX_CHANNELS);
129
130
- // Loudspeaker activity mask
131
- core->ch_mask |= bits_get(&core->bits, core->xxch_mask_nbits - 6) << 6;
132
+ // Loudspeaker layout mask
133
+ unsigned int mask = bits_get(&core->bits, core->xxch_mask_nbits - SPEAKER_Cs);
134
+ core->xxch_spkr_mask = mask << SPEAKER_Cs;
135
+
136
+ enforce(dca_popcount(core->xxch_spkr_mask) == n,
137
+ "Invalid XXCH speaker layout mask");
138
+
139
+ enforce(!(core->xxch_core_mask & core->xxch_spkr_mask),
140
+ "XXCH speaker layout mask overlaps with core");
141
+
142
+ // Combine core and XXCH masks together
143
+ core->ch_mask = core->xxch_core_mask | core->xxch_spkr_mask;
144
145
// Downmix coefficients present in stream
146
core->dmix_coeffs_present = bits_get1(&core->bits);
147
148
core->dmix_embedded = bits_get1(&core->bits);
149
150
// Downmix scale factor
151
- core->dmix_scale = bits_get(&core->bits, 6);
152
+ int code = bits_get(&core->bits, 6);
153
+ if (code) {
154
+ unsigned int index = code * 4 - 44;
155
+ enforce(index < dca_countof(dmix_table_inv),
156
+ "Invalid downmix scale index");
157
+ core->dmix_scale_inv = dmix_table_inv[index];
158
+ } else {
159
+ core->dmix_scale_inv = 0;
160
+ }
161
162
// Downmix channel mapping mask
163
for (ch = xch_base; ch < core->nchannels; ch++)
164
165
166
// Downmix coefficients
167
int *coeff_ptr = core->dmix_coeff;
168
- for (ch = xch_base; ch < core->nchannels; ch++)
169
- for (n = 0; n < core->xxch_mask_nbits; n++)
170
- if (core->dmix_mask[ch] & (1 << n))
171
- *coeff_ptr++ = bits_get(&core->bits, 7);
172
+ for (ch = xch_base; ch < core->nchannels; ch++) {
173
+ for (n = 0; n < core->xxch_mask_nbits; n++) {
174
+ if (core->dmix_mask[ch] & (1U << n)) {
175
+ int code = bits_get(&core->bits, 7);
176
+ int sign = (code >> 6) - 1; code &= 63;
177
+ if (code) {
178
+ unsigned int index = code * 4 - 4;
179
+ enforce(index < dca_countof(dmix_table),
180
+ "Invalid downmix coefficient index");
181
+ *coeff_ptr++ = (dmix_table[index] ^ sign) - sign;
182
+ } else {
183
+ *coeff_ptr++ = 0;
184
+ }
185
+ }
186
+ }
187
+ }
188
} else {
189
core->dmix_embedded = false;
190
}
191
192
- /*
193
- printf("nchannels %d\n", core->nchannels);
194
- printf("ch_mask %#x\n", core->ch_mask);
195
- printf("dmix_coeffs_present %d\n", core->dmix_coeffs_present);
196
- if (core->dmix_coeffs_present) {
197
- printf("dmix_embedded %d\n", core->dmix_embedded);
198
- printf("dmix_scale %d\n", core->dmix_scale);
199
- for (ch = xch_base; ch < core->nchannels; ch++)
200
- printf("dmix_mask[%d] %#x\n", ch, core->dmix_mask[ch]);
201
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/core_decoder.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/core_decoder.h
Changed
76
1
2
int deficit_samples;
3
bool crc_present;
4
int npcmblocks;
5
- int frame_size;
6
+ size_t frame_size;
7
int audio_mode;
8
int sample_rate;
9
int bit_rate;
10
11
bool filter_perfect;
12
int source_pcm_res;
13
bool es_format;
14
+ bool sumdiff_front;
15
+ bool sumdiff_surround;
16
17
int nsubframes;
18
int nsubsubframes[MAX_SUBFRAMES];
19
20
21
bool dmix_coeffs_present;
22
bool dmix_embedded;
23
- int dmix_scale;
24
+ int dmix_scale_inv;
25
int dmix_mask[MAX_CHANNELS];
26
int dmix_coeff[64];
27
28
29
int *subband_buffer;
30
int *subband_samples[MAX_CHANNELS][MAX_SUBBANDS];
31
struct interpolator *subband_dsp[MAX_CHANNELS];
32
- struct interpolator_data *subband_dsp_data;
33
+ struct idct_context *subband_dsp_idct;
34
35
int *lfe_samples;
36
37
- bool xch_present;
38
+ bool prim_dmix_embedded;
39
+ int prim_dmix_type;
40
+ int prim_dmix_coeff[4 * 6];
41
+
42
+ int ext_audio_mask;
43
+
44
+ size_t xch_pos;
45
46
- bool xxch_present;
47
bool xxch_crc_present;
48
int xxch_mask_nbits;
49
int xxch_core_mask;
50
+ int xxch_spkr_mask;
51
+ size_t xxch_pos;
52
53
- bool xbr_present;
54
-
55
- bool x96_present;
56
struct x96_decoder *x96_decoder;
57
+ size_t x96_pos;
58
59
int *output_buffer;
60
int *output_samples[SPEAKER_COUNT];
61
62
63
int npcmsamples;
64
int output_rate;
65
- int bits_per_sample;
66
67
int filter_flags;
68
};
69
70
int core_filter(struct core_decoder *core, int flags);
71
void core_clear(struct core_decoder *core);
72
struct dcadec_core_info *core_get_info(struct core_decoder *core);
73
+struct dcadec_exss_info *core_get_info_exss(struct core_decoder *core);
74
75
#endif
76
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/dca_context.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/dca_context.cpp
Changed
201
1
2
#include "exss_parser.h"
3
#include "xll_decoder.h"
4
#include "fixed_math.h"
5
-#include "dmix_tables.h"
6
7
#define DCADEC_PACKET_CORE 0x01
8
#define DCADEC_PACKET_EXSS 0x02
9
#define DCADEC_PACKET_XLL 0x04
10
11
+#define DCADEC_PACKET_FILTERED 0x100
12
+#define DCADEC_PACKET_RECOVERY 0x200
13
+
14
#define DCA_LOGCTX (&dca->logctx)
15
16
struct dcadec_log_context {
17
18
struct dcadec_context {
19
int flags;
20
int packet;
21
+ int status;
22
23
struct core_decoder *core;
24
struct exss_parser *exss;
25
26
27
struct dcadec_log_context logctx;
28
29
- unsigned int ncoreframes;
30
+ bool has_residual_encoded;
31
+ bool core_residual_valid;
32
+
33
+ int *dmix_sample_buffer;
34
35
int nframesamples;
36
int sample_rate;
37
38
39
if (dca->flags & DCADEC_FLAG_NATIVE_LAYOUT) {
40
for (int dca_ch = 0; dca_ch < SPEAKER_COUNT; dca_ch++) {
41
- if (dca_mask & (1 << dca_ch)) {
42
+ if (dca_mask & (1U << dca_ch)) {
43
if (!dca_samples[dca_ch])
44
return -DCADEC_EINVAL;
45
dca->samples[nchannels++] = dca_samples[dca_ch];
46
47
return nchannels;
48
}
49
50
+static int clip_vector(int *samples, int nsamples, int bits_per_sample)
51
+{
52
+ int limit = 1 << (bits_per_sample - 1);
53
+ int mask = ~((1 << bits_per_sample) - 1);
54
+ int nclipped = 0;
55
+
56
+ while (nsamples-- > 0) {
57
+ if ((*samples + limit) & mask) {
58
+ *samples = (*samples >> 31) ^ (limit - 1);
59
+ nclipped++;
60
+ }
61
+ samples++;
62
+ }
63
+
64
+ return nclipped;
65
+}
66
+
67
+static int clip_samples(struct dcadec_context *dca, int nchannels)
68
+{
69
+ int nsamples = dca->nframesamples;
70
+ int nclipped = 0;
71
+
72
+ if (dca->flags & DCADEC_FLAG_DONT_CLIP)
73
+ return 0;
74
+
75
+ switch (dca->bits_per_sample) {
76
+ case 24:
77
+ for (int ch = 0; ch < nchannels; ch++)
78
+ nclipped += clip_vector(dca->samples[ch], nsamples, 24);
79
+ break;
80
+ case 16:
81
+ for (int ch = 0; ch < nchannels; ch++)
82
+ nclipped += clip_vector(dca->samples[ch], nsamples, 16);
83
+ break;
84
+ default:
85
+ dbg_assert(0);
86
+ break;
87
+ }
88
+
89
+ return nclipped;
90
+}
91
+
92
+static int down_mix_prim_chset(struct dcadec_context *dca, int **samples,
93
+ int nsamples, int *ch_mask, int *dmix_coeff)
94
+{
95
+ // No action if already 2.0. Remove LFE channel if 2.1.
96
+ if ((*ch_mask & ~SPEAKER_MASK_LFE1) == (SPEAKER_MASK_L | SPEAKER_MASK_R)) {
97
+ *ch_mask = SPEAKER_MASK_L | SPEAKER_MASK_R;
98
+ return 0;
99
+ }
100
+
101
+ // Unless both KEEP_DMIX flags are set, perform 2.0 downmix only when
102
+ // custom matrix is present
103
+ if (!dmix_coeff && !(dca->flags & DCADEC_FLAG_KEEP_DMIX_6CH))
104
+ return 0;
105
+
106
+ // Reallocate downmix sample buffer
107
+ if (ta_alloc_fast(dca, &dca->dmix_sample_buffer, 2 * nsamples, sizeof(int)) < 0)
108
+ return -DCADEC_ENOMEM;
109
+
110
+ memset(dca->dmix_sample_buffer, 0, 2 * nsamples * sizeof(int));
111
+
112
+ int nchannels = dca_popcount(*ch_mask);
113
+
114
+ // Perform downmix
115
+ for (int spkr = 0, pos = 0; spkr < SPEAKER_COUNT; spkr++) {
116
+ if (!(*ch_mask & (1U << spkr)))
117
+ continue;
118
+
119
+ for (int ch = 0; ch < 2; ch++) {
120
+ int coeff;
121
+
122
+ // Use custom matrix if present. Otherwise use default matrix that
123
+ // covers all supported core audio channel arrangements.
124
+ if (dmix_coeff) {
125
+ coeff = dmix_coeff[ch * nchannels + pos];
126
+ } else {
127
+ switch (spkr) {
128
+ case SPEAKER_C:
129
+ case SPEAKER_Cs:
130
+ coeff = (nchannels == 1) ? 23170 : 16423;
131
+ break;
132
+ case SPEAKER_L:
133
+ coeff = (ch == 0) ? 23170 : 0;
134
+ break;
135
+ case SPEAKER_R:
136
+ coeff = (ch == 1) ? 23170 : 0;
137
+ break;
138
+ case SPEAKER_Ls:
139
+ coeff = (ch == 0) ? 16423 : 0;
140
+ break;
141
+ case SPEAKER_Rs:
142
+ coeff = (ch == 1) ? 16423 : 0;
143
+ break;
144
+ default:
145
+ coeff = 0;
146
+ break;
147
+ }
148
+ }
149
+
150
+ if (coeff) {
151
+ int *src = samples[spkr];
152
+ int *dst = dca->dmix_sample_buffer + ch * nsamples;
153
+ for (int n = 0; n < nsamples; n++)
154
+ dst[n] += mul15(src[n], coeff);
155
+ }
156
+ }
157
+
158
+ pos++;
159
+ }
160
+
161
+ samples[SPEAKER_L] = dca->dmix_sample_buffer;
162
+ samples[SPEAKER_R] = dca->dmix_sample_buffer + nsamples;
163
+ *ch_mask = SPEAKER_MASK_L | SPEAKER_MASK_R;
164
+ return 0;
165
+}
166
+
167
static int filter_core_frame(struct dcadec_context *dca)
168
{
169
struct core_decoder *core = dca->core;
170
171
- dca->ncoreframes = 0;
172
+ dca->core_residual_valid = false;
173
174
// Filter core frame
175
int ret;
176
if ((ret = core_filter(core, dca->flags)) < 0)
177
return ret;
178
179
+ // Downmix core channels to Lo/Ro
180
+ if (dca->flags & DCADEC_FLAG_KEEP_DMIX_2CH) {
181
+ int *coeff = NULL;
182
+ if (core->prim_dmix_embedded && core->prim_dmix_type == DMIX_TYPE_LoRo)
183
+ coeff = core->prim_dmix_coeff;
184
+ if ((ret = down_mix_prim_chset(dca, core->output_samples, core->npcmsamples,
185
+ &core->ch_mask, coeff)) < 0)
186
+ return ret;
187
+ }
188
+
189
// Reorder sample buffer pointers
190
- if (reorder_samples(dca, core->output_samples, core->ch_mask) <= 0)
191
+ if ((ret = reorder_samples(dca, core->output_samples, core->ch_mask)) <= 0)
192
return -DCADEC_EINVAL;
193
194
dca->nframesamples = core->npcmsamples;
195
dca->sample_rate = core->output_rate;
196
- dca->bits_per_sample = core->bits_per_sample;
197
- if (core->xbr_present || core->xxch_present)
198
+ dca->bits_per_sample = 24;
199
+
200
+ // Set profile
201
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/dca_context.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/dca_context.h
Changed
194
1
2
#endif
3
4
/**@{*/
5
-#ifdef _WIN32
6
+/** Make compact version code that can be compared easily */
7
+#define DCADEC_VERSION_CODE(major, minor, patch) \
8
+ (((major) << 24) | ((minor) << 12) | (patch) | 0U)
9
+
10
+/**
11
+ * Version of libdcadec. Major number gets bumped at each API change that
12
+ * breaks backward compatibility. Minor number gets bumped at each API change
13
+ * that remains compatible. Patch is reserved for non-API related changes.
14
+ *
15
+ * THE LIBRARY IS NOT YET RELEASED, DON'T CHECK THESE NUMBERS YET.
16
+ */
17
+#define DCADEC_VERSION_MAJOR 0
18
+#define DCADEC_VERSION_MINOR 0
19
+#define DCADEC_VERSION_PATCH 0
20
+
21
+#define DCADEC_VERSION \
22
+ DCADEC_VERSION_CODE(DCADEC_VERSION_MAJOR, \
23
+ DCADEC_VERSION_MINOR, \
24
+ DCADEC_VERSION_PATCH)
25
+/**@}*/
26
+
27
+/**@{*/
28
+#if (defined _WIN32)
29
#define DCADEC_SHARED_EXPORT __declspec(dllexport)
30
#define DCADEC_SHARED_IMPORT __declspec(dllimport)
31
-#else
32
+#elif (__GNUC__ >= 4)
33
#define DCADEC_SHARED_EXPORT __attribute__((visibility("default")))
34
#define DCADEC_SHARED_IMPORT __attribute__((visibility("default")))
35
+#else
36
+#define DCADEC_SHARED_EXPORT
37
+#define DCADEC_SHARED_IMPORT
38
#endif
39
40
#ifdef DCADEC_SHARED
41
42
*/
43
#define DCADEC_FLAG_CORE_SYNTH_X96 0x04
44
45
-/** Force DTS core bit width reducion to source PCM resolution */
46
-#define DCADEC_FLAG_CORE_SOURCE_PCM_RES 0x08
47
+/** Reserved flag, don't use */
48
+#define DCADEC_FLAG_CORE_RESERVED 0x08
49
50
/* Use FIR filter for floating point DTS core LFE channel interpolation */
51
#define DCADEC_FLAG_CORE_LFE_FIR 0x10
52
53
-/** Extract embedded 2.0 downmix (NOT YET IMPLEMENTED) */
54
+/** Extract embedded 2.0 downmix if present, otherwise extract 5.1 downmix */
55
#define DCADEC_FLAG_KEEP_DMIX_2CH 0x20
56
57
-/** Extract embedded 5.1 downmix (NOT YET IMPLEMENTED) */
58
+/** Extract embedded 5.1 downmix */
59
#define DCADEC_FLAG_KEEP_DMIX_6CH 0x40
60
61
-/** Output native DTS channel layout, not WAVEFORMATEX layout */
62
+/** Output native DTS channel layout, not WAVEFORMATEXTENSIBLE layout */
63
#define DCADEC_FLAG_NATIVE_LAYOUT 0x80
64
65
/** Don't conceal errors */
66
#define DCADEC_FLAG_STRICT 0x100
67
+
68
+/** Don't clip returned PCM samples to output bit depth */
69
+#define DCADEC_FLAG_DONT_CLIP 0x200
70
/**@}*/
71
72
/**@{*/
73
74
#define DCADEC_PROFILE_DS 0x01 /**< Digital Surround */
75
#define DCADEC_PROFILE_DS_96_24 0x02 /**< Digital Surround 96/24 */
76
#define DCADEC_PROFILE_DS_ES 0x04 /**< Digital Surround ES */
77
-#define DCADEC_PROFILE_HD_HRA 0x08 /**< High-Resolution Audio */
78
+#define DCADEC_PROFILE_HD_HRA 0x08 /**< High Resolution Audio */
79
#define DCADEC_PROFILE_HD_MA 0x10 /**< Master Audio */
80
#define DCADEC_PROFILE_EXPRESS 0x20 /**< Express */
81
/**@}*/
82
83
+/**@{*/
84
+/** Not matrix encoded */
85
+#define DCADEC_MATRIX_ENCODING_NONE 0
86
+
87
+/**< Encoded for matrix surround decoding */
88
+#define DCADEC_MATRIX_ENCODING_SURROUND 1
89
+
90
+/**< Audio processed for headphone playback */
91
+#define DCADEC_MATRIX_ENCODING_HEADPHONE 2
92
+/**@}*/
93
+
94
/**
95
* Size in bytes of empty padding that must be present after the end of input
96
* buffer. libdcadec may overread the input buffer up to this number of bytes.
97
98
int bit_rate; /**< Core stream bit rate in bytes per second,
99
zero or negative if unavailable */
100
int npcmblocks; /**< Number of audio sample blocks in a frame */
101
- bool xch_present; /**< XCH extension data present and valid */
102
- bool xxch_present; /**< XXCH extension data present and valid */
103
- bool xbr_present; /**< XBR extension data present and valid */
104
- bool x96_present; /**< X96 extension data present and valid */
105
+ bool ext_audio_present; /**< Extended audio present */
106
+ int ext_audio_type; /**< Extended audio type (only meaningful
107
+ when ext_audio_present is true) */
108
};
109
110
struct dcadec_exss_info {
111
112
int profile; /**< Type of DTS profile encoded */
113
bool embedded_stereo; /**< 2.0 downmix has been embedded into the stream */
114
bool embedded_6ch; /**< 5.1 downmix has been embedded into the stream */
115
+ int spkr_mask; /**< Speaker activity mask, zero if unavailable */
116
+ int matrix_encoding; /**< Matrix encoding type */
117
};
118
119
typedef void (*dcadec_log_fn)(void* log_context,const char* message,unsigned int lineno);
120
121
122
/**
123
* Get information about extension sub-stream (EXSS) payload of the parsed
124
- * packet. When no EXSS is present but backward compatible DTS core sub-stream
125
- * contains extended audio, then information about extended audio in core
126
+ * packet. When no EXSS is present information about extended audio in core
127
* sub-stream is returned.
128
*
129
* @param dca Pointer to decoder context.
130
131
132
/**
133
* Filter the parsed packet and return per-channel PCM data. All parameters
134
- * except decoder context are optional and can be NULL. This function should
135
- * be called exactly once after successfull call to dcadec_context_parse().
136
+ * except decoder context are optional and can be NULL. This function should be
137
+ * called at least once after each successfull call to dcadec_context_parse().
138
+ * Multiple calls per packet are allowed and return the same data.
139
*
140
* @param dca Pointer to decoder context.
141
*
142
143
* Returned array is tightly packed, there are no gaps for
144
* missing channels. Use channel_mask to determine total number
145
* of channels and size of returned array. By default channels
146
- * are ordered according to WAVEFORMATEX specification, but if
147
- * DCADEC_FLAG_NATIVE_LAYOUT flag was set when creating decoder
148
- * context, returned channels are in native DTS order.
149
+ * are ordered according to WAVEFORMATEXTENSIBLE specification,
150
+ * but if DCADEC_FLAG_NATIVE_LAYOUT flag was set when creating
151
+ * decoder context, returned channels are in native DTS order.
152
*
153
* @param nsamples Filled with number of PCM samples in each returned plane.
154
*
155
156
* This can be different from encoded profile since
157
* certain extensions may be not decoded.
158
*
159
- * @return 0 on success, negative error code on failure.
160
+ * @return 0 or positive value on success, negative error code
161
+ * on failure. Return value of 0 indicates that no
162
+ * errors affecting audio integrity were detected.
163
+ * When profile indicates Master Audio, positive return
164
+ * value indicates that audio has not been losslessly
165
+ * reconstructed for at least some part of this frame.
166
*/
167
DCADEC_API int dcadec_context_filter(struct dcadec_context *dca, int ***samples,
168
int *nsamples, int *channel_mask,
169
170
int *profile);
171
172
/**
173
- * Clear all inter-frame history of the decoder.
174
+ * Clear all inter-frame history of the decoder. Call this before parsing
175
+ * packets out of sequence, e.g. after seeking to the arbitrary position within
176
+ * the DTS stream.
177
*
178
* @param dca Pointer to decoder context.
179
*/
180
181
DCADEC_API const char *dcadec_strerror(int errnum);
182
183
/**
184
+ * Get libdcadec version.
185
+ *
186
+ * @return Version code of the currently running libdcadec.
187
+ */
188
+DCADEC_API unsigned int dcadec_version(void);
189
+
190
+/**
191
* Set logging function for debug messages.
192
*
193
* @param dca Pointer to decoder context.
194
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/dca_stream.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/dca_stream.h
Changed
81
1
2
3
struct dcadec_stream;
4
5
-DCADEC_API struct dcadec_stream *dcadec_stream_open(const char *name);
6
+struct dcadec_stream_info {
7
+ uint64_t stream_size; /**< Size of encoded DTS stream data, in bytes */
8
+ uint32_t sample_rate; /**< Audio sample rate in Hz */
9
+ uint32_t nframes; /**< Total number of encoded frames */
10
+ uint32_t nframesamples; /**< Number of PCM samples in each encoded frame */
11
+ uint64_t npcmsamples; /**< Total number of PCM samples in original audio */
12
+ uint32_t ch_mask; /**< Channel mask in EXSS format */
13
+ uint32_t ndelaysamples; /**< Codec delay in PCM samples */
14
+};
15
+
16
+/**
17
+ * Open DTS stream from file or standard input.
18
+ *
19
+ * @param name Name of the file to be opened. Pass NULL to open standard input.
20
+ *
21
+ * @param flags Currently unused, should be 0.
22
+ *
23
+ * @return Stream handle on success, NULL on failure.
24
+ */
25
+DCADEC_API struct dcadec_stream *dcadec_stream_open(const char *name, int flags);
26
+
27
+/**
28
+ * Close DTS stream.
29
+ *
30
+ * @param stream Stream handle.
31
+ */
32
DCADEC_API void dcadec_stream_close(struct dcadec_stream *stream);
33
+
34
+/**
35
+ * Establish synchronization and read the next packet from DTS stream.
36
+ *
37
+ * @param stream Stream handle.
38
+ *
39
+ * @param data Filled with pointer to packet data. This data is only
40
+ * valid until the next call to dcadec_stream_read() or
41
+ * dcadec_stream_close() functions. Packet data is padded
42
+ * with DCADEC_BUFFER_PADDING bytes at the end and can be
43
+ * directly passed to dcadec_context_parse() function.
44
+ *
45
+ * @param size Filled with size of packet data, in bytes.
46
+ *
47
+ * @return Positive value on success, 0 on EOF, negative error code on
48
+ * failure.
49
+ */
50
DCADEC_API int dcadec_stream_read(struct dcadec_stream *stream, uint8_t **data, size_t *size);
51
+
52
+/**
53
+ * Return DTS stream progress percentage based on current file position.
54
+ *
55
+ * @param stream Stream handle.
56
+ *
57
+ * @return Progress value in range 0-100 on success, -1 on failure.
58
+ */
59
DCADEC_API int dcadec_stream_progress(struct dcadec_stream *stream);
60
61
+/**
62
+ * Get audio properties information from DTS-HD container. For raw DTS streams
63
+ * this function always fails.
64
+ *
65
+ * @param stream Stream handle.
66
+ *
67
+ * @return Pointer to information structure on success,
68
+ * NULL on failure. Returned data should be freed with
69
+ * dcadec_stream_free_info() function.
70
+ */
71
+DCADEC_API struct dcadec_stream_info *dcadec_stream_get_info(struct dcadec_stream *stream);
72
+
73
+/**
74
+ * Free audio properties information structure.
75
+ *
76
+ * @param info Pointer to information structure.
77
+ */
78
+DCADEC_API void dcadec_stream_free_info(struct dcadec_stream_info *info);
79
+
80
#endif
81
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/dmix_tables.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/dmix_tables.cpp
Changed
9
1
2
73533, 72482, 71446, 70425, 69419, 68427, 67450, 66486,
3
65536
4
};
5
+
6
+extern const uint8_t dmix_primary_nch[7] = {
7
+ 1, 2, 2, 3, 3, 4, 4
8
+};
9
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/dmix_tables.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/dmix_tables.h
Changed
8
1
2
3
extern const uint16_t dmix_table[241];
4
extern const uint32_t dmix_table_inv[201];
5
+extern const uint8_t dmix_primary_nch[7];
6
7
#endif
8
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/exss_parser.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/exss_parser.cpp
Changed
201
1
2
return dca_popcount(mask) + dca_popcount(mask & SPEAKER_PAIR_ALL_2);
3
}
4
5
+#define DCA_LOGCTX (asset->parser->bits.logctx)
6
+
7
static void parse_xll_parameters(struct exss_asset *asset)
8
{
9
struct exss_parser *exss = asset->parser;
10
11
bits_skip(&exss->bits, 2);
12
}
13
14
-static int set_extension_offsets(struct exss_asset *asset)
15
-{
16
- size_t offs = asset->asset_offset;
17
- size_t size = asset->asset_size;
18
-
19
- if (asset->extension_mask & EXSS_CORE) {
20
- asset->core_offset = offs;
21
- if (offs & 3)
22
- return -DCADEC_EBADREAD;
23
- if (asset->core_size > size)
24
- return -DCADEC_EBADREAD;
25
- offs += asset->core_size;
26
- size -= asset->core_size;
27
- }
28
-
29
- if (asset->extension_mask & EXSS_XBR) {
30
- asset->xbr_offset = offs;
31
- if (offs & 3)
32
- return -DCADEC_EBADREAD;
33
- if (asset->xbr_size > size)
34
- return -DCADEC_EBADREAD;
35
- offs += asset->xbr_size;
36
- size -= asset->xbr_size;
37
- }
38
-
39
- if (asset->extension_mask & EXSS_XXCH) {
40
- asset->xxch_offset = offs;
41
- if (offs & 3)
42
- return -DCADEC_EBADREAD;
43
- if (asset->xxch_size > size)
44
- return -DCADEC_EBADREAD;
45
- offs += asset->xxch_size;
46
- size -= asset->xxch_size;
47
- }
48
-
49
- if (asset->extension_mask & EXSS_X96) {
50
- asset->x96_offset = offs;
51
- if (offs & 3)
52
- return -DCADEC_EBADREAD;
53
- if (asset->x96_size > size)
54
- return -DCADEC_EBADREAD;
55
- offs += asset->x96_size;
56
- size -= asset->x96_size;
57
- }
58
-
59
- if (asset->extension_mask & EXSS_LBR) {
60
- asset->lbr_offset = offs;
61
- if (offs & 3)
62
- return -DCADEC_EBADREAD;
63
- if (asset->lbr_size > size)
64
- return -DCADEC_EBADREAD;
65
- offs += asset->lbr_size;
66
- size -= asset->lbr_size;
67
- }
68
-
69
- if (asset->extension_mask & EXSS_XLL) {
70
- asset->xll_offset = offs;
71
- if (offs & 3)
72
- return -DCADEC_EBADREAD;
73
- if (asset->xll_size > size)
74
- return -DCADEC_EBADREAD;
75
- offs += asset->xll_size;
76
- size -= asset->xll_size;
77
- }
78
-
79
- return 0;
80
-}
81
-
82
static int parse_descriptor(struct exss_asset *asset)
83
{
84
struct exss_parser *exss = asset->parser;
85
86
if (asset->nchannels_total > 6)
87
asset->embedded_6ch = bits_get1(&exss->bits);
88
89
- int spkr_mask_nbits = 16; // ???
90
-
91
// Speaker mask enabled flag
92
- if (bits_get1(&exss->bits)) {
93
+ asset->spkr_mask_enabled = bits_get1(&exss->bits);
94
+
95
+ int spkr_mask_nbits = 0;
96
+ if (asset->spkr_mask_enabled) {
97
// Number of bits for speaker activity mask
98
spkr_mask_nbits = (bits_get(&exss->bits, 2) + 1) << 2;
99
// Loudspeaker activity mask
100
- bits_skip(&exss->bits, spkr_mask_nbits);
101
+ asset->spkr_mask = bits_get(&exss->bits, spkr_mask_nbits);
102
}
103
104
// Number of speaker remapping sets
105
int spkr_remap_nsets = bits_get(&exss->bits, 3);
106
+ enforce(!spkr_remap_nsets || spkr_mask_nbits,
107
+ "Speaker mask disabled yet there are remapping sets");
108
109
// Standard loudspeaker layout mask
110
int nspeakers[8];
111
112
} else {
113
asset->embedded_stereo = false;
114
asset->embedded_6ch = false;
115
+ asset->spkr_mask_enabled = false;
116
+ asset->spkr_mask = 0;
117
+
118
// Representation type
119
asset->representation_type = bits_get(&exss->bits, 3);
120
}
121
122
// DTS-HD stream ID
123
asset->hd_stream_id = bits_get(&exss->bits, 3);
124
125
- int ret;
126
- if ((ret = set_extension_offsets(asset)) < 0)
127
- return ret;
128
-
129
+ // One to one mixing flag
130
+ // Per channel main audio scaling flag
131
+ // Main audio scaling codes
132
+ // Decode asset in secondary decoder flag
133
+ // Revision 2 DRC metadata
134
// Reserved
135
// Zero pad
136
return bits_seek(&exss->bits, descr_pos + descr_size * 8);
137
}
138
139
+static int set_exss_offsets(struct exss_asset *asset)
140
+{
141
+ size_t offs = asset->asset_offset;
142
+ size_t size = asset->asset_size;
143
+
144
+ if (asset->extension_mask & EXSS_CORE) {
145
+ asset->core_offset = offs;
146
+ if (offs & 3 || asset->core_size > size)
147
+ return -DCADEC_EBADREAD;
148
+ offs += asset->core_size;
149
+ size -= asset->core_size;
150
+ }
151
+
152
+ if (asset->extension_mask & EXSS_XBR) {
153
+ asset->xbr_offset = offs;
154
+ if (offs & 3 || asset->xbr_size > size)
155
+ return -DCADEC_EBADREAD;
156
+ offs += asset->xbr_size;
157
+ size -= asset->xbr_size;
158
+ }
159
+
160
+ if (asset->extension_mask & EXSS_XXCH) {
161
+ asset->xxch_offset = offs;
162
+ if (offs & 3 || asset->xxch_size > size)
163
+ return -DCADEC_EBADREAD;
164
+ offs += asset->xxch_size;
165
+ size -= asset->xxch_size;
166
+ }
167
+
168
+ if (asset->extension_mask & EXSS_X96) {
169
+ asset->x96_offset = offs;
170
+ if (offs & 3 || asset->x96_size > size)
171
+ return -DCADEC_EBADREAD;
172
+ offs += asset->x96_size;
173
+ size -= asset->x96_size;
174
+ }
175
+
176
+ if (asset->extension_mask & EXSS_LBR) {
177
+ asset->lbr_offset = offs;
178
+ if (offs & 3 || asset->lbr_size > size)
179
+ return -DCADEC_EBADREAD;
180
+ offs += asset->lbr_size;
181
+ size -= asset->lbr_size;
182
+ }
183
+
184
+ if (asset->extension_mask & EXSS_XLL) {
185
+ asset->xll_offset = offs;
186
+ if (offs & 3 || asset->xll_size > size)
187
+ return -DCADEC_EBADREAD;
188
+ offs += asset->xll_size;
189
+ size -= asset->xll_size;
190
+ }
191
+
192
+ return 0;
193
+}
194
+
195
+#undef DCA_LOGCTX
196
#define DCA_LOGCTX (exss->bits.logctx)
197
198
-int exss_parse(struct exss_parser *exss, uint8_t *data, size_t size,struct dcadec_log_context *logctx)
199
+int exss_parse(struct exss_parser *exss, uint8_t *data, size_t size, struct dcadec_log_context *logctx)
200
{
201
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/exss_parser.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/exss_parser.h
Changed
19
1
2
bool one_to_one_map_ch_to_spkr;
3
bool embedded_stereo;
4
bool embedded_6ch;
5
+ bool spkr_mask_enabled;
6
+ int spkr_mask;
7
int representation_type;
8
9
int coding_mode;
10
11
12
extern const uint32_t exss_sample_rates[16];
13
14
-int exss_parse(struct exss_parser *exss, uint8_t *data, size_t size,struct dcadec_log_context *logctx);
15
+int exss_parse(struct exss_parser *exss, uint8_t *data, size_t size, struct dcadec_log_context *logctx);
16
+struct dcadec_exss_info *exss_get_info(struct exss_parser *exss);
17
18
#endif
19
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/fir_float.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/fir_float.h
Changed
10
1
2
2.164336300E-04, 1.887860900E-04, 1.635869100E-04, 5.316857100E-04
3
};
4
5
-#define SCALE(x) ((x) * M_SQRT2 * 512)
6
+#define SCALE(x) ((x) * M_SQRT2 * 256)
7
8
// Annex D.9 - 1024 tap FIR for X96 synthesis QMF
9
static const double band_fir_x96[1024] = {
10
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/fixed_math.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/fixed_math.h
Changed
14
1
2
static inline int32_t mul15(int32_t a, int32_t b) { return mul__(a, b, 15); }
3
static inline int32_t mul16(int32_t a, int32_t b) { return mul__(a, b, 16); }
4
static inline int32_t mul17(int32_t a, int32_t b) { return mul__(a, b, 17); }
5
+static inline int32_t mul22(int32_t a, int32_t b) { return mul__(a, b, 22); }
6
static inline int32_t mul23(int32_t a, int32_t b) { return mul__(a, b, 23); }
7
static inline int32_t mul31(int32_t a, int32_t b) { return mul__(a, b, 31); }
8
9
+static inline int32_t clip15(int32_t a) { return clip__(a, 15); }
10
+static inline int32_t clip19(int32_t a) { return clip__(a, 19); }
11
static inline int32_t clip23(int32_t a) { return clip__(a, 23); }
12
13
#endif
14
makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/idct.h
Added
49
1
2
+/*
3
+ * This file is part of libdcadec.
4
+ *
5
+ * This library is free software; you can redistribute it and/or modify it
6
+ * under the terms of the GNU Lesser General Public License as published by the
7
+ * Free Software Foundation; either version 2.1 of the License, or (at your
8
+ * option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful, but WITHOUT
11
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13
+ * for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public License
16
+ * along with this library; if not, write to the Free Software Foundation,
17
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+ */
19
+
20
+#ifndef IDCT_H
21
+#define IDCT_H
22
+
23
+struct core_decoder;
24
+
25
+struct idct_context {
26
+ double dct_a[8][8];
27
+ double dct_b[8][7];
28
+
29
+ double mod_a[16];
30
+ double mod_b[ 8];
31
+ double mod_c[32];
32
+
33
+ double mod64_a[32];
34
+ double mod64_b[16];
35
+ double mod64_c[64];
36
+};
37
+
38
+struct idct_context *idct_init(struct core_decoder *parent);
39
+
40
+void idct_perform32_float(const struct idct_context * restrict idct,
41
+ double * restrict input, double * restrict output);
42
+void idct_perform64_float(const struct idct_context * restrict idct,
43
+ double * restrict input, double * restrict output);
44
+
45
+void idct_perform32_fixed(int * restrict input, int * restrict output);
46
+void idct_perform64_fixed(int * restrict input, int * restrict output);
47
+
48
+#endif
49
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/idct_fixed.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/idct_fixed.cpp
Changed
166
1
2
3
#include "common.h"
4
#include "fixed_math.h"
5
-#include "idct_fixed.h"
6
+#include "idct.h"
7
8
-static inline void sum_a(const int *input, int *output, int len)
9
+static void sum_a(const int * restrict input, int * restrict output, int len)
10
{
11
for (int i = 0; i < len; i++)
12
output[i] = input[2 * i] + input[2 * i + 1];
13
}
14
15
-static inline void sum_b(const int *input, int *output, int len)
16
+static void sum_b(const int * restrict input, int * restrict output, int len)
17
{
18
- for (int i = 0; i < len; i++) {
19
- if (i > 0)
20
- output[i] = input[2 * i] + input[2 * i - 1];
21
- else
22
- output[i] = input[2 * i];
23
- }
24
+ output[0] = input[0];
25
+ for (int i = 1; i < len; i++)
26
+ output[i] = input[2 * i] + input[2 * i - 1];
27
}
28
29
-static inline void sum_c(const int *input, int *output, int len)
30
+static void sum_c(const int * restrict input, int * restrict output, int len)
31
{
32
for (int i = 0; i < len; i++)
33
output[i] = input[2 * i];
34
}
35
36
-static inline void sum_d(const int *input, int *output, int len)
37
+static void sum_d(const int * restrict input, int * restrict output, int len)
38
{
39
- for (int i = 0; i < len; i++) {
40
- if (i > 0)
41
- output[i] = input[2 * i - 1] + input[2 * i + 1];
42
- else
43
- output[i] = input[2 * i + 1];
44
- }
45
+ output[0] = input[1];
46
+ for (int i = 1; i < len; i++)
47
+ output[i] = input[2 * i - 1] + input[2 * i + 1];
48
}
49
50
-static inline void dct_a(const int *input, int *output)
51
+static void dct_a(const int * restrict input, int * restrict output)
52
{
53
// floor(sin((2 * i + 1) * (2 * (7 - j) + 1) * PI / 32) * (1 << 23) + 0.5), i = 2 * k
54
// -floor(sin((2 * i + 1) * (2 * (7 - j) + 1) * PI / 32) * (1 << 23) + 0.5), i = 2 * k + 1
55
56
}
57
}
58
59
-static inline void dct_b(const int *input, int *output)
60
+static void dct_b(const int * restrict input, int * restrict output)
61
{
62
// floor(cos((2 * i + 1) * (j + 1) * PI / 16) * (1 << 23) + 0.5)
63
static const int cos_mod[8][7] = {
64
65
};
66
67
for (int i = 0; i < 8; i++) {
68
- int64_t res = (int64_t)input[0] << 23;
69
+ int64_t res = (int64_t)input[0] * (1 << 23);
70
for (int j = 0; j < 7; j++)
71
res += (int64_t)cos_mod[i][j] * input[1 + j];
72
output[i] = norm23(res);
73
}
74
}
75
76
-static inline void mod_a(const int *input, int *output)
77
+static void mod_a(const int * restrict input, int * restrict output)
78
{
79
// floor(0.5 / cos((2 * ( i) + 1) * PI / 64) * (1 << 23) + 0.5), i = 0 .. 8
80
// -floor(0.5 / sin((2 * (15 - i) + 1) * PI / 64) * (1 << 23) + 0.5), i = 8 .. 16
81
82
output[i] = mul23(cos_mod[i], input[k] - input[8 + k]);
83
}
84
85
-static inline void mod_b(int *input, int *output)
86
+static void mod_b(int * restrict input, int * restrict output)
87
{
88
// floor(0.5 / cos((2 * ( i) + 1) * PI / 32) * (1 << 23) + 0.5), i = 0 .. 4
89
// floor(0.5 / sin((2 * (7 - i) + 1) * PI / 32) * (1 << 23) + 0.5), i = 4 .. 8
90
91
output[i] = input[k] - input[8 + k];
92
}
93
94
-static inline void mod_c(const int *input, int *output)
95
+static void mod_c(const int * restrict input, int * restrict output)
96
{
97
// floor(0.125 / cos((2 * ( i) + 1) * PI / 128) * (1 << 23) + 0.5), i = 0 .. 16
98
// -floor(0.125 / sin((2 * (31 - i) + 1) * PI / 128) * (1 << 23) + 0.5), i = 16 .. 32
99
100
output[i] = mul23(cos_mod[i], input[k] - input[16 + k]);
101
}
102
103
-static inline void clp_v(int *input, int len)
104
+static void clp_v(int *input, int len)
105
{
106
for (int i = 0; i < len; i++)
107
input[i] = clip23(input[i]);
108
}
109
110
-void inverse_dct32_fixed(int *input, int *output)
111
+void idct_perform32_fixed(int * restrict input, int * restrict output)
112
{
113
int mag = 0;
114
for (int i = 0; i < 32; i++)
115
116
mod_c(input, output);
117
118
for (int i = 0; i < 32; i++)
119
- output[i] = clip23(output[i] << shift);
120
+ output[i] = clip23(output[i] * (1 << shift));
121
}
122
123
-static inline void mod64_a(const int *input, int *output)
124
+static void mod64_a(const int * restrict input, int * restrict output)
125
{
126
// floor(0.5 / cos((2 * ( i) + 1) * PI / 128) * (1 << 23) + 0.5), i = 0 .. 16
127
// -floor(0.5 / sin((2 * (31 - i) + 1) * PI / 128) * (1 << 23) + 0.5), i = 16 .. 32
128
129
output[i] = mul23(cos_mod[i], input[k] - input[16 + k]);
130
}
131
132
-static inline void mod64_b(int *input, int *output)
133
+static void mod64_b(int * restrict input, int * restrict output)
134
{
135
// floor(0.5 / cos((2 * ( i) + 1) * PI / 64) * (1 << 23) + 0.5), i = 0 .. 8
136
// floor(0.5 / sin((2 * (15 - i) + 1) * PI / 64) * (1 << 23) + 0.5), i = 8 .. 16
137
138
output[i] = input[k] - input[16 + k];
139
}
140
141
-static inline void mod64_c(const int *input, int *output)
142
+static void mod64_c(const int * restrict input, int * restrict output)
143
{
144
// floor(0.125 / SQRT2 / cos((2 * ( i) + 1) * PI / 256) * (1 << 23) + 0.5), i = 0 .. 32
145
// -floor(0.125 / SQRT2 / sin((2 * (63 - i) + 1) * PI / 256) * (1 << 23) + 0.5), i = 32 .. 64
146
147
output[i] = mul23(cos_mod[i], input[k] - input[32 + k]);
148
}
149
150
-void inverse_dct64_fixed(int *input, int *output)
151
+void idct_perform64_fixed(int * restrict input, int * restrict output)
152
{
153
int mag = 0;
154
- for (int i = 0; i < 32; i++)
155
+ for (int i = 0; i < 64; i++)
156
mag += abs(input[i]);
157
158
int shift = mag > 0x400000 ? 2 : 0;
159
160
mod64_c(input, output);
161
162
for (int i = 0; i < 64; i++)
163
- output[i] = clip23(output[i] << shift);
164
+ output[i] = clip23(output[i] * (1 << shift));
165
}
166
makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/idct_float.cpp
Added
201
1
2
+/*
3
+ * This file is part of libdcadec.
4
+ *
5
+ * This library is free software; you can redistribute it and/or modify it
6
+ * under the terms of the GNU Lesser General Public License as published by the
7
+ * Free Software Foundation; either version 2.1 of the License, or (at your
8
+ * option) any later version.
9
+ *
10
+ * This library is distributed in the hope that it will be useful, but WITHOUT
11
+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13
+ * for more details.
14
+ *
15
+ * You should have received a copy of the GNU Lesser General Public License
16
+ * along with this library; if not, write to the Free Software Foundation,
17
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
+ */
19
+
20
+#include "common.h"
21
+#include "idct.h"
22
+
23
+struct idct_context *idct_init(struct core_decoder *parent)
24
+{
25
+ int i, j, k;
26
+
27
+ struct idct_context *idct = ta_new(parent, struct idct_context);
28
+ if (!idct)
29
+ return NULL;
30
+
31
+ for (i = 0; i < 8; i++) {
32
+ for (j = 0, k = 7; j < 8; j++, k--) {
33
+ if (i & 1)
34
+ idct->dct_a[i][j] = -sin((2 * i + 1) * (2 * k + 1) * M_PI / 32);
35
+ else
36
+ idct->dct_a[i][j] = sin((2 * i + 1) * (2 * k + 1) * M_PI / 32);
37
+ }
38
+ }
39
+
40
+ for (i = 0; i < 8; i++)
41
+ for (j = 0; j < 7; j++)
42
+ idct->dct_b[i][j] = cos((2 * i + 1) * (1 + j) * M_PI / 16);
43
+
44
+ for (i = 0; i < 8; i++)
45
+ idct->mod_a[i] = 0.5 / cos((2 * i + 1) * M_PI / 64);
46
+
47
+ for (i = 8, k = 7; i < 16; i++, k--)
48
+ idct->mod_a[i] = -0.5 / sin((2 * k + 1) * M_PI / 64);
49
+
50
+ for (i = 0; i < 4; i++)
51
+ idct->mod_b[i] = 0.5 / cos((2 * i + 1) * M_PI / 32);
52
+
53
+ for (i = 4, k = 3; i < 8; i++, k--)
54
+ idct->mod_b[i] = 0.5 / sin((2 * k + 1) * M_PI / 32);
55
+
56
+ for (i = 0; i < 16; i++)
57
+ idct->mod_c[i] = 0.125 / cos((2 * i + 1) * M_PI / 128);
58
+
59
+ for (i = 16, k = 15; i < 32; i++, k--)
60
+ idct->mod_c[i] = -0.125 / sin((2 * k + 1) * M_PI / 128);
61
+
62
+ for (i = 0; i < 16; i++)
63
+ idct->mod64_a[i] = 0.5 / cos((2 * i + 1) * M_PI / 128);
64
+
65
+ for (i = 16, k = 15; i < 32; i++, k--)
66
+ idct->mod64_a[i] = -0.5 / sin((2 * k + 1) * M_PI / 128);
67
+
68
+ for (i = 0; i < 8; i++)
69
+ idct->mod64_b[i] = 0.5 / cos((2 * i + 1) * M_PI / 64);
70
+
71
+ for (i = 8, k = 7; i < 16; i++, k--)
72
+ idct->mod64_b[i] = 0.5 / sin((2 * k + 1) * M_PI / 64);
73
+
74
+ for (i = 0; i < 32; i++)
75
+ idct->mod64_c[i] = 0.125 / cos((2 * i + 1) * M_PI / 256);
76
+
77
+ for (i = 32, k = 31; i < 64; i++, k--)
78
+ idct->mod64_c[i] = -0.125 / sin((2 * k + 1) * M_PI / 256);
79
+
80
+ return idct;
81
+}
82
+
83
+static void sum_a(const double * restrict input, double * restrict output, int len)
84
+{
85
+ for (int i = 0; i < len; i++)
86
+ output[i] = input[2 * i] + input[2 * i + 1];
87
+}
88
+
89
+static void sum_b(const double * restrict input, double * restrict output, int len)
90
+{
91
+ output[0] = input[0];
92
+ for (int i = 1; i < len; i++)
93
+ output[i] = input[2 * i] + input[2 * i - 1];
94
+}
95
+
96
+static void sum_c(const double * restrict input, double * restrict output, int len)
97
+{
98
+ for (int i = 0; i < len; i++)
99
+ output[i] = input[2 * i];
100
+}
101
+
102
+static void sum_d(const double * restrict input, double * restrict output, int len)
103
+{
104
+ output[0] = input[1];
105
+ for (int i = 1; i < len; i++)
106
+ output[i] = input[2 * i - 1] + input[2 * i + 1];
107
+}
108
+
109
+static void dct_a(const struct idct_context * restrict idct,
110
+ const double * restrict input, double * restrict output)
111
+{
112
+ for (int i = 0; i < 8; i++) {
113
+ double res = 0.0;
114
+ for (int j = 0; j < 8; j++)
115
+ res += idct->dct_a[i][j] * input[j];
116
+ output[i] = res;
117
+ }
118
+}
119
+
120
+static void dct_b(const struct idct_context * restrict idct,
121
+ const double * restrict input, double * restrict output)
122
+{
123
+ for (int i = 0; i < 8; i++) {
124
+ double res = input[0];
125
+ for (int j = 0; j < 7; j++)
126
+ res += idct->dct_b[i][j] * input[1 + j];
127
+ output[i] = res;
128
+ }
129
+}
130
+
131
+static void mod_a(const struct idct_context * restrict idct,
132
+ const double * restrict input, double * restrict output)
133
+{
134
+ for (int i = 0; i < 8; i++)
135
+ output[i] = idct->mod_a[i] * (input[i] + input[8 + i]);
136
+
137
+ for (int i = 8, k = 7; i < 16; i++, k--)
138
+ output[i] = idct->mod_a[i] * (input[k] - input[8 + k]);
139
+}
140
+
141
+static void mod_b(const struct idct_context * restrict idct,
142
+ double * restrict input, double * restrict output)
143
+{
144
+ for (int i = 0; i < 8; i++)
145
+ input[8 + i] = idct->mod_b[i] * input[8 + i];
146
+
147
+ for (int i = 0; i < 8; i++)
148
+ output[i] = input[i] + input[8 + i];
149
+
150
+ for (int i = 8, k = 7; i < 16; i++, k--)
151
+ output[i] = input[k] - input[8 + k];
152
+}
153
+
154
+static void mod_c(const struct idct_context * restrict idct,
155
+ const double * restrict input, double * restrict output)
156
+{
157
+ for (int i = 0; i < 16; i++)
158
+ output[i] = idct->mod_c[i] * (input[i] + input[16 + i]);
159
+
160
+ for (int i = 16, k = 15; i < 32; i++, k--)
161
+ output[i] = idct->mod_c[i] * (input[k] - input[16 + k]);
162
+}
163
+
164
+void idct_perform32_float(const struct idct_context * restrict idct,
165
+ double * restrict input, double * restrict output)
166
+{
167
+ sum_a(input, output + 0, 16);
168
+ sum_b(input, output + 16, 16);
169
+
170
+ sum_a(output + 0, input + 0, 8);
171
+ sum_b(output + 0, input + 8, 8);
172
+ sum_c(output + 16, input + 16, 8);
173
+ sum_d(output + 16, input + 24, 8);
174
+
175
+ dct_a(idct, input + 0, output + 0);
176
+ dct_b(idct, input + 8, output + 8);
177
+ dct_b(idct, input + 16, output + 16);
178
+ dct_b(idct, input + 24, output + 24);
179
+
180
+ mod_a(idct, output + 0, input + 0);
181
+ mod_b(idct, output + 16, input + 16);
182
+
183
+ mod_c(idct, input, output);
184
+}
185
+
186
+static void mod64_a(const struct idct_context * restrict idct,
187
+ const double * restrict input, double * restrict output)
188
+{
189
+ for (int i = 0; i < 16; i++)
190
+ output[i] = idct->mod64_a[i] * (input[i] + input[16 + i]);
191
+
192
+ for (int i = 16, k = 15; i < 32; i++, k--)
193
+ output[i] = idct->mod64_a[i] * (input[k] - input[16 + k]);
194
+}
195
+
196
+static void mod64_b(const struct idct_context * restrict idct,
197
+ double * restrict input, double * restrict output)
198
+{
199
+ for (int i = 0; i < 16; i++)
200
+ input[16 + i] = idct->mod64_b[i] * input[16 + i];
201
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/interpolator.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/interpolator.cpp
Changed
34
1
2
#include "common.h"
3
#include "interpolator.h"
4
5
-struct interpolator_data *interpolator_init(struct core_decoder *parent)
6
-{
7
- struct interpolator_data *data = ta_new(parent, struct interpolator_data);
8
- if (!data)
9
- return NULL;
10
-
11
- for (int i = 0, k = 0; i < 32; i++)
12
- for (int j = 0; j < 32; j++)
13
- data->cos_mod_32[k++] = 0.250 * cos((2 * i + 1) * (2 * j + 1) * M_PI / 128);
14
-
15
- for (int i = 0, k = 0; i < 64; i++)
16
- for (int j = 0; j < 64; j++)
17
- data->cos_mod_64[k++] = 0.125 * cos((2 * i + 1) * (2 * j + 1) * M_PI / 256);
18
-
19
- return data;
20
-}
21
-
22
-struct interpolator *interpolator_create(struct interpolator_data *parent, int flags)
23
+struct interpolator *interpolator_create(struct idct_context *parent, int flags)
24
{
25
struct interpolator *dsp = ta_new(parent, struct interpolator);
26
if (!dsp)
27
return NULL;
28
29
- dsp->data = parent;
30
+ dsp->idct = parent;
31
dsp->history = ta_znew_array_size(dsp,
32
(flags & DCADEC_FLAG_CORE_BIT_EXACT) ? sizeof(int) : sizeof(double),
33
(flags & DCADEC_FLAG_CORE_SYNTH_X96) ? 1024 : 512);
34
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/interpolator.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/interpolator.h
Changed
32
1
2
#define MAX_LFE_HISTORY 12
3
4
struct interpolator;
5
-struct core_decoder;
6
+struct idct_context;
7
8
typedef void (*interpolate_lfe_t)(int *pcm_samples, int *lfe_samples,
9
int nsamples, bool dec_select,
10
11
int **subband_samples_hi,
12
int nsamples, bool perfect);
13
14
-struct interpolator_data {
15
- double cos_mod_32[32 * 32];
16
- double cos_mod_64[64 * 64];
17
-};
18
-
19
struct interpolator {
20
- struct interpolator_data *data;
21
+ struct idct_context *idct;
22
void *history;
23
interpolate_sub_t interpolate;
24
};
25
26
-struct interpolator_data *interpolator_init(struct core_decoder *parent);
27
-struct interpolator *interpolator_create(struct interpolator_data *parent, int flags);
28
+struct interpolator *interpolator_create(struct idct_context *parent, int flags);
29
void interpolator_clear(struct interpolator *dsp);
30
31
#define INTERPOLATE_LFE(x) \
32
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/interpolator_fixed.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/interpolator_fixed.cpp
Changed
29
1
2
3
#include "common.h"
4
#include "interpolator.h"
5
+#include "idct.h"
6
#include "fixed_math.h"
7
-#include "idct_fixed.h"
8
#include "fir_fixed.h"
9
10
#define DCA_LOGCTX (0)
11
12
13
// Inverse DCT
14
int output[32];
15
- inverse_dct32_fixed(input, output);
16
+ idct_perform32_fixed(input, output);
17
18
// Store history
19
for (i = 0, k = 31; i < 16; i++, k--) {
20
21
22
// Inverse DCT
23
int output[64];
24
- inverse_dct64_fixed(input, output);
25
+ idct_perform64_fixed(input, output);
26
27
// Store history
28
for (i = 0, k = 63; i < 32; i++, k--) {
29
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/interpolator_float.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/interpolator_float.cpp
Changed
71
1
2
3
#include "common.h"
4
#include "interpolator.h"
5
+#include "idct.h"
6
+#include "fixed_math.h"
7
#include "fir_float.h"
8
9
#define DCA_LOGCTX (0)
10
11
12
static inline int convert(double a)
13
{
14
- if (a > 0x7fffff)
15
- return 0x7fffff;
16
- if (a < -0x800000)
17
- return -0x800000;
18
- return (int)floor(a + 0.5);
19
+ return clip23(lrint(a));
20
}
21
22
INTERPOLATE_LFE(lfe_float_fir)
23
24
// Get history pointer
25
double *history = (double*)dsp->history;
26
27
- // Get IDCT coefficients
28
- const double *cos_mod = dsp->data->cos_mod_32;
29
-
30
// Select filter
31
const double *filter_coeff = perfect ? band_fir_perfect : band_fir_nonperfect;
32
33
34
35
// Inverse DCT
36
double output[32];
37
- for (i = 0, k = 0; i < 32; i++) {
38
- double res = 0.0;
39
- for (j = 0; j < 32; j++)
40
- res += input[j] * cos_mod[k++];
41
- output[i] = res;
42
- }
43
+ idct_perform32_float(dsp->idct, input, output);
44
45
// Store history
46
for (i = 0, k = 31; i < 16; i++, k--) {
47
48
// Get history pointer
49
double *history = (double*)dsp->history;
50
51
- // Get IDCT coefficients
52
- const double *cos_mod = dsp->data->cos_mod_64;
53
-
54
// Interpolation begins
55
for (int sample = 0; sample < nsamples; sample++) {
56
int i, j, k;
57
58
59
// Inverse DCT
60
double output[64];
61
- for (i = 0, k = 0; i < 64; i++) {
62
- double res = 0.0;
63
- for (j = 0; j < 64; j++)
64
- res += input[j] * cos_mod[k++];
65
- output[i] = res;
66
- }
67
+ idct_perform64_float(dsp->idct, input, output);
68
69
// Store history
70
for (i = 0, k = 63; i < 32; i++, k--) {
71
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/ta.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/ta.cpp
Changed
28
1
2
#include <string.h>
3
#include <stdio.h>
4
5
+#include "compiler.h"
6
#include "ta.h"
7
8
9
10
}
11
return NULL;
12
}
13
+
14
+/* Return a copy of str.
15
+ * Returns NULL on OOM.
16
+ */
17
+char *ta_strdup(void *ta_parent, const char *str)
18
+{
19
+ if (str) {
20
+ size_t len = strlen(str) + 1;
21
+ char *dup = (char*)ta_alloc_size(ta_parent, len);
22
+ if (dup)
23
+ memcpy(dup, str, len);
24
+ return dup;
25
+ }
26
+ return NULL;
27
+}
28
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/ta.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/ta.h
Changed
67
1
2
bool ta_set_destructor(void *ptr, void (*destructor)(void *));
3
bool ta_set_parent(void *ptr, void *ta_parent);
4
void *ta_find_parent(void *ptr);
5
+char *ta_strdup(void *ta_parent, const char *str);
6
7
static inline size_t ta_calc_array_size(size_t element_size, size_t count)
8
{
9
10
return element_size * count;
11
}
12
13
+static inline int ta_zalloc_fast(void *ta_parent, void *ptr,
14
+ size_t count, size_t element_size)
15
+{
16
+ void **_ptr = (void **)ptr;
17
+ size_t old_size = ta_get_size(*_ptr);
18
+ size_t new_size = ta_calc_array_size(element_size, count);
19
+
20
+ if (old_size < new_size) {
21
+ ta_free(*_ptr);
22
+ if (!(*_ptr = ta_zalloc_size(ta_parent, new_size)))
23
+ return -1;
24
+ return 1;
25
+ }
26
+
27
+ return 0;
28
+}
29
+
30
+static inline int ta_alloc_fast(void *ta_parent, void *ptr,
31
+ size_t count, size_t element_size)
32
+{
33
+ void **_ptr = (void **)ptr;
34
+ size_t old_size = ta_get_size(*_ptr);
35
+ size_t new_size = ta_calc_array_size(element_size, count);
36
+
37
+ if (old_size < new_size) {
38
+ ta_free(*_ptr);
39
+ if (!(*_ptr = ta_alloc_size(ta_parent, new_size)))
40
+ return -1;
41
+ return 1;
42
+ }
43
+
44
+ return 0;
45
+}
46
+
47
#define ta_new(ta_parent, type) (type *)ta_alloc_size(ta_parent, sizeof(type))
48
#define ta_znew(ta_parent, type) (type *)ta_zalloc_size(ta_parent, sizeof(type))
49
50
51
#define ta_realloc(ta_parent, ptr, type, count) \
52
(type *)ta_realloc_size(ta_parent, ptr, ta_calc_array_size(sizeof(type), count))
53
54
-#define ta_new_ptrtype(ta_parent, ptr) \
55
- (__typeof__(ptr))ta_alloc_size(ta_parent, sizeof(*ptr))
56
-
57
-#define ta_znew_ptrtype(ta_parent, ptr) \
58
- (__typeof__(ptr))ta_zalloc_size(ta_parent, sizeof(*ptr))
59
-
60
-#define ta_new_array_ptrtype(ta_parent, ptr, count) \
61
- (__typeof__(ptr))ta_new_array_size(ta_parent, sizeof(*(ptr)), count)
62
-
63
-#define ta_znew_array_ptrtype(ta_parent, ptr, count) \
64
- (__typeof__(ptr))ta_znew_array_size(ta_parent, sizeof(*(ptr)), count)
65
-
66
#endif
67
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/xll_decoder.cpp -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/xll_decoder.cpp
Changed
201
1
2
#include "fixed_math.h"
3
#include "xll_decoder.h"
4
#include "exss_parser.h"
5
+#include "dmix_tables.h"
6
7
#include "xll_tables.h"
8
9
10
int m, n;
11
12
if (chs->primary_chset) {
13
- m = prim_dmix_nch[chs->dmix_type];
14
+ m = dmix_primary_nch[chs->dmix_type];
15
n = chs->nchannels;
16
} else {
17
- m = xll->nchannels;
18
- n = chs->nchannels + 1;
19
+ m = chs->dmix_m;
20
+ n = chs->nchannels + 2; // Two extra columns for scales
21
}
22
23
// Reallocate downmix coefficients matrix
24
- int ret;
25
- if ((ret = dca_realloc(xll->chset, &chs->dmix_coeff, m * n, sizeof(int))) < 0)
26
- return ret;
27
+ if (ta_zalloc_fast(xll->chset, &chs->dmix_coeff, m * n, sizeof(int)) < 0)
28
+ return -DCADEC_ENOMEM;
29
+
30
+ if (chs->primary_chset) {
31
+ chs->dmix_scale = NULL;
32
+ chs->dmix_scale_inv = NULL;
33
+ } else {
34
+ chs->dmix_scale = chs->dmix_coeff + m * chs->nchannels;
35
+ chs->dmix_scale_inv = chs->dmix_coeff + m * (chs->nchannels + 1);
36
+ }
37
38
- // Parse downmix coefficients
39
int *coeff_ptr = chs->dmix_coeff;
40
- for (int i = 0; i < m; i++)
41
- for (int j = 0; j < n; j++)
42
- *coeff_ptr++ = bits_get(&xll->bits, 9);
43
+ for (int i = 0; i < m; i++) {
44
+ int scale_inv = 0;
45
+
46
+ // Downmix scale
47
+ // Only for non-primary channel sets
48
+ if (!chs->primary_chset) {
49
+ int code = bits_get(&xll->bits, 9);
50
+ int sign = (code >> 8) - 1; code &= 0xff;
51
+ if (code > 0) {
52
+ unsigned int index = code - 1;
53
+ enforce(index >= 40 && index < dca_countof(dmix_table), "Invalid downmix scale index");
54
+ int scale = dmix_table[index];
55
+ scale_inv = dmix_table_inv[index - 40];
56
+ chs->dmix_scale[i] = (scale ^ sign) - sign;
57
+ chs->dmix_scale_inv[i] = (scale_inv ^ sign) - sign;
58
+ } else {
59
+ chs->dmix_scale[i] = 0;
60
+ chs->dmix_scale_inv[i] = 0;
61
+ }
62
+ }
63
+
64
+ // Downmix coefficients
65
+ for (int j = 0; j < chs->nchannels; j++) {
66
+ int code = bits_get(&xll->bits, 9);
67
+ int sign = (code >> 8) - 1; code &= 0xff;
68
+ if (code > 0) {
69
+ unsigned int index = code - 1;
70
+ enforce(index < dca_countof(dmix_table), "Invalid downmix coefficient index");
71
+ int coeff = dmix_table[index];
72
+ if (!chs->primary_chset)
73
+ // Multiply by |InvDmixScale| to get |UndoDmixScale|
74
+ coeff = mul16(scale_inv, coeff);
75
+ // Convert sign
76
+ *coeff_ptr++ = (coeff ^ sign) - sign;
77
+ } else {
78
+ *coeff_ptr++ = 0;
79
+ }
80
+ }
81
+ }
82
83
return 0;
84
}
85
86
87
// Number of channels in the channel set
88
chs->nchannels = bits_get(&xll->bits, 4) + 1;
89
+ require(chs->nchannels <= XLL_MAX_CHANNELS, "Too many channels");
90
91
// Residual type
92
chs->residual_encode = bits_get(&xll->bits, chs->nchannels);
93
94
95
// Original sampling frequency
96
chs->freq = exss_sample_rates[bits_get(&xll->bits, 4)];
97
+ require(chs->freq <= 192000, "Too high sampling frequency");
98
99
// Sampling frequency modifier
100
- bits_skip(&xll->bits, 2);
101
+ chs->interpolate = bits_get(&xll->bits, 2);
102
103
// Which replacement set this channel set is member of
104
chs->replace_set_index = bits_get(&xll->bits, 2);
105
+ require(chs->replace_set_index == 0, "Replacement sets are not supported");
106
107
// Default replacement set flag
108
if (chs->replace_set_index)
109
110
chs->dmix_embedded = chs->dmix_coeffs_present && bits_get1(&xll->bits);
111
112
// Downmix type
113
- // 0 - 1/0, 1 - Lo/Ro, 2 - Lt/Rt, 3 - 3/0,
114
- // 4 - 2/1, 5 - 2/2, 6 - 3/1
115
if (chs->dmix_coeffs_present && chs->primary_chset) {
116
chs->dmix_type = bits_get(&xll->bits, 3);
117
- enforce(chs->dmix_type < 7, "Invalid primary channel set downmix type");
118
+ enforce(chs->dmix_type < DMIX_TYPE_COUNT,
119
+ "Invalid primary channel set downmix type");
120
}
121
122
// Whether the channel set is part of a hierarchy
123
124
if (chs->ch_mask_enabled) {
125
// Channel mask for set
126
chs->ch_mask = bits_get(&xll->bits, xll->ch_mask_nbits);
127
+ enforce(dca_popcount(chs->ch_mask) == chs->nchannels, "Invalid channel mask");
128
} else {
129
chs->ch_mask = 0;
130
// Angular speaker position table
131
132
chs->primary_chset = true;
133
chs->dmix_coeffs_present = false;
134
chs->dmix_embedded = false;
135
- chs->hier_chset = false;
136
+ chs->hier_chset = true;
137
chs->ch_mask_enabled = false;
138
chs->ch_mask = 0;
139
140
141
else
142
chs->nfreqbands = 1;
143
144
+ // Extra frequency bands are not supported
145
+ require(chs->nfreqbands <= XLL_MAX_BANDS, "Too many frequency bands");
146
+
147
+ // Clamp the sampling frequency to 96 kHz. The rest of the code will use
148
+ // the number of bands to determine maximum frequency.
149
+ if (chs->freq > 96000)
150
+ chs->freq = 96000;
151
+
152
if (chs->storage_bit_res > 16)
153
chs->nabits = 5;
154
else if (chs->storage_bit_res > 8)
155
chs->nabits = 4;
156
else
157
chs->nabits = 3;
158
- if (xll->nchsets > 1 && chs->nabits < 5)
159
+ if ((xll->nchsets > 1 || chs->nfreqbands > 1) && chs->nabits < 5)
160
chs->nabits++;
161
162
- // Pairwise channel decorrelation for frequency band 0
163
- chs->decor_enabled = bits_get1(&xll->bits);
164
- if (chs->decor_enabled && chs->nchannels > 1) {
165
- // Original channel order
166
- for (i = 0; i < chs->nchannels; i++)
167
- chs->orig_order[i] = bits_get(&xll->bits, ch_nbits[chs->nchannels - 1]);
168
- // Pairwise channel coefficients
169
- for (i = 0; i < chs->nchannels / 2; i++) {
170
- if (bits_get1(&xll->bits))
171
- chs->decor_coef[i] = bits_get_signed_linear(&xll->bits, 7);
172
- else
173
- chs->decor_coef[i] = 0;
174
+ for (int band = 0; band < chs->nfreqbands; band++) {
175
+ // Pairwise channel decorrelation
176
+ chs->decor_enabled[band] = bits_get1(&xll->bits);
177
+ if (chs->decor_enabled[band] && chs->nchannels > 1) {
178
+ // Original channel order
179
+ for (i = 0; i < chs->nchannels; i++) {
180
+ chs->orig_order[band][i] = bits_get(&xll->bits, ch_nbits[chs->nchannels - 1]);
181
+ enforce(chs->orig_order[band][i] < chs->nchannels, "Invalid original channel order");
182
+ }
183
+ // Pairwise channel coefficients
184
+ for (i = 0; i < chs->nchannels / 2; i++) {
185
+ if (bits_get1(&xll->bits))
186
+ chs->decor_coeff[band][i] = bits_get_signed_linear(&xll->bits, 7);
187
+ else
188
+ chs->decor_coeff[band][i] = 0;
189
+ }
190
+ } else {
191
+ for (i = 0; i < chs->nchannels; i++)
192
+ chs->orig_order[band][i] = i;
193
+ for (i = 0; i < chs->nchannels / 2; i++)
194
+ chs->decor_coeff[band][i] = 0;
195
}
196
- } else {
197
- for (i = 0; i < chs->nchannels; i++)
198
- chs->orig_order[i] = i;
199
- for (i = 0; i < chs->nchannels / 2; i++)
200
- chs->decor_coef[i] = 0;
201
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/xll_decoder.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/xll_decoder.h
Changed
130
1
2
3
#include "bitstream.h"
4
5
-#define XLL_MAX_CHANNELS 16
6
+#define XLL_MAX_CHSETS 16
7
+#define XLL_MAX_CHANNELS 8
8
+#define XLL_MAX_BANDS 2
9
+
10
+#define XLL_DECI_HISTORY 8
11
+
12
+#define XLL_BAND_0 0
13
+#define XLL_BAND_1 1
14
15
#define for_each_chset(xll, chs) \
16
for (struct xll_chset *(chs) = (xll)->chset; \
17
(chs) != &(xll)->chset[(xll)->nchsets]; (chs)++)
18
19
+#define for_each_active_chset(xll, chs) \
20
+ for (struct xll_chset *(chs) = (xll)->chset; \
21
+ (chs) != &(xll)->chset[(xll)->nactivechsets]; (chs)++)
22
+
23
struct xll_decoder;
24
struct exss_asset;
25
26
27
int pcm_bit_res;
28
int storage_bit_res;
29
int freq;
30
+ int interpolate;
31
int replace_set_index;
32
33
bool primary_chset;
34
35
bool dmix_embedded;
36
int dmix_type;
37
bool hier_chset;
38
+ int dmix_m;
39
int *dmix_coeff;
40
+ int *dmix_scale;
41
+ int *dmix_scale_inv;
42
bool ch_mask_enabled;
43
int ch_mask;
44
45
int nfreqbands;
46
int nabits;
47
48
- bool decor_enabled;
49
- int orig_order[XLL_MAX_CHANNELS];
50
- int decor_coef[XLL_MAX_CHANNELS / 2];
51
+ bool decor_enabled[XLL_MAX_BANDS];
52
+ int orig_order[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
53
+ int decor_coeff[XLL_MAX_BANDS][XLL_MAX_CHANNELS / 2];
54
+
55
+ int adapt_pred_order[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
56
+ int highest_pred_order[XLL_MAX_BANDS];
57
+ int fixed_pred_order[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
58
+ int adapt_refl_coeff[XLL_MAX_BANDS][XLL_MAX_CHANNELS][16];
59
60
- int adapt_pred_order[XLL_MAX_CHANNELS];
61
- int highest_pred_order;
62
- int fixed_pred_order[XLL_MAX_CHANNELS];
63
- int adapt_refl_coef[XLL_MAX_CHANNELS][16];
64
+ bool band_dmix_embedded[XLL_MAX_BANDS];
65
66
- size_t lsb_section_size;
67
- int nscalablelsbs[XLL_MAX_CHANNELS];
68
- int bit_width_adjust[XLL_MAX_CHANNELS];
69
+ size_t lsb_section_size[XLL_MAX_BANDS];
70
+ int nscalablelsbs[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
71
+ int bit_width_adjust[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
72
73
bool seg_type;
74
bool rice_code_flag[XLL_MAX_CHANNELS];
75
76
int bitalloc_part_a[XLL_MAX_CHANNELS];
77
int bitalloc_part_b[XLL_MAX_CHANNELS];
78
int nsamples_part_a[XLL_MAX_CHANNELS];
79
- int *msb_sample_buffer[XLL_MAX_CHANNELS];
80
- int *lsb_sample_buffer[XLL_MAX_CHANNELS];
81
- int *sample_buffer;
82
+
83
+ int deci_history[XLL_MAX_CHANNELS][XLL_DECI_HISTORY];
84
+
85
+ int *msb_sample_buffer[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
86
+ int *lsb_sample_buffer[XLL_MAX_BANDS][XLL_MAX_CHANNELS];
87
+ int *out_sample_buffer[XLL_MAX_CHANNELS];
88
+
89
+ int *sample_buffer1;
90
+ int *sample_buffer2;
91
+ int *sample_buffer3;
92
};
93
94
struct xll_decoder {
95
96
97
struct dcadec_log_context *logctx;
98
99
+ int flags;
100
+
101
size_t frame_size;
102
int nchsets;
103
int nframesegs;
104
105
106
int nfreqbands;
107
int nchannels;
108
+ int nactivechsets;
109
+
110
+ int nfailedsegs;
111
112
int hd_stream_id;
113
114
115
int pbr_delay;
116
};
117
118
-void xll_clear_band_data(struct xll_chset *chs);
119
-void xll_filter_band_data(struct xll_chset *chs);
120
-int xll_get_lsb_width(struct xll_chset *chs, int ch);
121
-void xll_assemble_msbs_lsbs(struct xll_chset *chs);
122
+void xll_clear_band_data(struct xll_chset *chs, int band);
123
+void xll_filter_band_data(struct xll_chset *chs, int band);
124
+int xll_get_lsb_width(struct xll_chset *chs, int band, int ch);
125
+void xll_assemble_msbs_lsbs(struct xll_chset *chs, int band);
126
+int xll_assemble_freq_bands(struct xll_chset *chs);
127
int xll_map_ch_to_spkr(struct xll_chset *chs, int ch);
128
int xll_parse(struct xll_decoder *xll, uint8_t *data, size_t size, struct exss_asset *asset, struct dcadec_log_context *logctx);
129
void xll_clear(struct xll_decoder *xll);
130
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/xll_tables.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/dcadec/xll_tables.h
Changed
29
1
2
*/
3
4
// Section 8.4.3: Look-up table of quantized reflection coefficients
5
-static const uint16_t refl_coef_table[128] = {
6
+static const uint16_t refl_coeff_table[128] = {
7
0, 3070, 5110, 7140, 9156, 11154, 13132, 15085,
8
17010, 18904, 20764, 22588, 24373, 26117, 27818, 29474,
9
31085, 32648, 34164, 35631, 37049, 38418, 39738, 41008,
10
11
0, 1, 2, 2, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4
12
};
13
14
-static const uint8_t prim_dmix_nch[7] = {
15
- 1, 2, 2, 3, 3, 4, 4
16
+static const int32_t band_coeff_table0[] = {
17
+ 868669, -5931642, -1228483
18
+};
19
+
20
+static const int32_t band_coeff_table1[] = {
21
+ -20577, 122631, -393647, 904476,
22
+ -1696305, 2825313, -4430736, 6791313
23
+};
24
+
25
+static const int32_t band_coeff_table2[] = {
26
+ 41153, -245210, 785564, -1788164,
27
+ 3259333, -5074941, 6928550, -8204883
28
};
29
makemkv-oss-1.9.5.tar.xz/libffabi/src/ffabi.c -> makemkv-oss-1.10.2.tar.xz/libffabi/src/ffabi.c
Changed
19
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
11
&bits_per_sample,
12
&profile);
13
14
- if (info && !err)
15
+ if (info && (err>=0))
16
{
17
info->frame_size = nsamples;
18
info->channel_layout = channel_mask;
19
makemkv-oss-1.9.5.tar.xz/libffabi/src/ffabicfg.h.in -> makemkv-oss-1.10.2.tar.xz/libffabi/src/ffabicfg.h.in
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libffabi/src/internal.h -> makemkv-oss-1.10.2.tar.xz/libffabi/src/internal.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/lgpl/cassert -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/lgpl/cassert
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/lgpl/smem.h -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/lgpl/smem.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/lgpl/stdstring.h -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/lgpl/stdstring.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/lgpl/world.h -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/lgpl/world.h
Changed
19
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
11
virtual void __cdecl iso6392T(char* lang)=0;
12
};
13
14
-#define WORLD_VER 21 // increment on changes
15
+#define WORLD_VER 23 // increment on changes
16
#define WORLD_NAME ( (WORLD_VER<<8) | sizeof(IWorld) | 1 )
17
18
#ifdef LGPL_WORLD_LOCAL
19
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/libmkv/ebmlwrite.h -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/libmkv/ebmlwrite.h
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/libmkv/internal.h -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/libmkv/internal.h
Changed
54
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
11
#include "matroska/KaxAttachments.h"
12
#include "matroska/KaxAttached.h"
13
14
+#include <time.h>
15
+
16
using namespace LIBEBML_NAMESPACE;
17
using namespace LIBMATROSKA_NAMESPACE;
18
19
UTFstring GetLibraryVersionString();
20
21
+#ifdef _MSC_VER
22
+
23
+static inline uint64_t libmkv_time()
24
+{
25
+ return _time64(NULL);
26
+};
27
+
28
+static inline struct tm *libmkv_gmtime_r(uint64_t atime, struct tm *result)
29
+{
30
+ __time64_t t = atime;
31
+ struct tm *p = _gmtime64(&t);
32
+ if (!p) return NULL;
33
+ memcpy(result,p,sizeof(struct tm));
34
+ return result;
35
+}
36
+
37
+#else
38
+
39
+static inline uint64_t libmkv_time()
40
+{
41
+ return time(NULL);
42
+};
43
+
44
+static inline struct tm *libmkv_gmtime_r(uint64_t atime, struct tm *result)
45
+{
46
+ time_t t = atime;
47
+ return gmtime_r(&t,result);
48
+}
49
+
50
+#endif
51
+
52
#endif // LIBMKV_INTERNAL_H_INCLUDED
53
54
makemkv-oss-1.9.5.tar.xz/libmakemkv/inc/libmkv/libmkv.h -> makemkv-oss-1.10.2.tar.xz/libmakemkv/inc/libmkv/libmkv.h
Changed
40
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
11
virtual void* get_ref()=0;
12
virtual bool compress_start(unsigned int compressionType,unsigned int compressionLevel)=0;
13
virtual bool compress_wait()=0;
14
+ virtual unsigned int compress_srcsize()=0;
15
public:
16
int64_t timecode;
17
int64_t duration;
18
19
int fps_d;
20
21
uint64_t priv[2];
22
+
23
+ uint8_t stereo_mode;
24
} video;
25
26
struct _audio
27
28
29
struct _subtitles
30
{
31
+ uint8_t offset_sequence_id_ref;
32
} subtitles;
33
} u;
34
35
+ uint8_t source_id[8];
36
+
37
} MkvTrackInfo;
38
39
class IMkvFrameSource
40
makemkv-oss-1.9.5.tar.xz/libmakemkv/src/ebmlwrite.cpp -> makemkv-oss-1.10.2.tar.xz/libmakemkv/src/ebmlwrite.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/src/libmkv.cpp -> makemkv-oss-1.10.2.tar.xz/libmakemkv/src/libmkv.cpp
Changed
201
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
11
#include <libmkv/ebmlwrite.h>
12
#include <lgpl/cassert>
13
#include <exception>
14
-#include <list>
15
#include <lgpl/sstring.h>
16
-#include <time.h>
17
#include <lgpl/world.h>
18
+#include <vector>
19
+#include <lgpl/apdefs.h>
20
+
21
+#ifndef __STDC_FORMAT_MACROS
22
+#define __STDC_FORMAT_MACROS 1
23
+#endif
24
+#include <inttypes.h>
25
26
#define TIMECODE_SCALE 1000000
27
#define MAX_TIMECODE_SIZE_BYTES 6
28
29
uint64_t duration_time;
30
uint64_t refs[2];
31
unsigned int duration_size;
32
- unsigned int frame_count;
33
unsigned int compression_type;
34
unsigned int compression_level;
35
EbmlBinary* codec_private;
36
+ uint64_t stat_frames;
37
+ uint64_t stat_bytes;
38
+ uint64_t stat_bytes_out;
39
+ int64_t stat_time_start;
40
+ int64_t stat_time_end;
41
+public:
42
+ void UpdateStat(IMkvChunk* frame)
43
+ {
44
+ int64_t time_end = frame->timecode + frame->duration;
45
+ if (stat_frames)
46
+ {
47
+ if (frame->timecode<stat_time_start) {
48
+ stat_time_start = frame->timecode;
49
+ }
50
+ if (time_end>stat_time_end) {
51
+ stat_time_end = time_end;
52
+ }
53
+ } else {
54
+ stat_time_start = frame->timecode;
55
+ stat_time_end = time_end;
56
+ }
57
+ stat_frames++;
58
+ CNZ(frame->compress_wait());
59
+ stat_bytes += frame->compress_srcsize();
60
+ stat_bytes_out += frame->get_size();
61
+ }
62
+ void RenderStat(KaxTags &tags,unsigned int trackUID,uint64_t mtime,const char* WritingApp)
63
+ {
64
+ KaxTag &tag = AddNewChild<KaxTag>(tags);
65
+ KaxTagTargets &targets = GetChild<KaxTagTargets>(tag);
66
+ GetChild<EbmlUInteger,KaxTagTrackUID>(targets) = trackUID;
67
+ GetChild<EbmlUInteger,KaxTagTargetTypeValue>(targets) = 50;
68
+ GetChild<EbmlString,KaxTagTargetType>(targets) = "MOVIE";
69
+
70
+ static const char* names[6]={
71
+ "BPS","DURATION","NUMBER_OF_FRAMES",
72
+ "NUMBER_OF_BYTES","NUMBER_OF_BYTES_UNCOMPRESSED","SOURCE_ID"};
73
+
74
+ char buffer[256];
75
+ uint64_t values[4];
76
+ uint8_t have = 0;
77
+
78
+ values[1] = TimecodeFromClock(stat_time_end-stat_time_start);
79
+ values[0] = (values[1]!=0)?(stat_bytes*8000/(values[1]/1000000)):0;
80
+ values[2] = stat_frames;
81
+ values[3] = stat_bytes_out;
82
+
83
+ for (unsigned int i=0;i<4;i++)
84
+ {
85
+ if (i==1)
86
+ {
87
+ unsigned int dec,sec,min,hr;
88
+ uint64_t t = values[1];
89
+ dec = (unsigned int)(t % 1000000000); t /= 1000000000;
90
+ sec = (unsigned int)(t % 60); t /= 60;
91
+ min = (unsigned int)(t % 60); t /= 60;
92
+ hr = (unsigned int) t;
93
+ sprintf_s(buffer,sizeof(buffer),"%02u:%02u:%02u.%09u",hr,min,sec,dec);
94
+ } else {
95
+ sprintf_s(buffer,sizeof(buffer),"%" PRIu64,values[i]);
96
+ }
97
+ AddSimple(tag,names[i],buffer);
98
+ }
99
+
100
+ if (stat_bytes_out!=stat_bytes)
101
+ {
102
+ have |= 1;
103
+ sprintf_s(buffer,sizeof(buffer),"%" PRIu64,stat_bytes);
104
+ AddSimple(tag,names[4],buffer);
105
+ }
106
+
107
+ if (info.source_id[0]!=0)
108
+ {
109
+ have |= 2;
110
+ for (unsigned int i=0;i<info.source_id[0];i++)
111
+ {
112
+ sprintf(buffer+i*2,"%02X",info.source_id[i+1]);
113
+ }
114
+ AddSimple(tag,names[5],buffer);
115
+ }
116
+
117
+ AddSimple(tag,"_STATISTICS_WRITING_APP",WritingApp);
118
+
119
+ struct tm t;
120
+ libmkv_gmtime_r(mtime,&t);
121
+ sprintf_s(buffer,sizeof(buffer),"%04u-%02u-%02u %02u:%02u:%02u",
122
+ t.tm_year+1900,t.tm_mon+1,t.tm_mday,
123
+ t.tm_hour,t.tm_min,t.tm_sec);
124
+ AddSimple(tag,"_STATISTICS_WRITING_DATE_UTC",buffer);
125
+
126
+ sprintf_s(buffer,sizeof(buffer),"%s %s %s %s",
127
+ names[0],names[1],names[2],names[3]);
128
+ for (unsigned int i=0;i<2;i++)
129
+ {
130
+ if ((have&(1<<i))!=0)
131
+ {
132
+ strcat(buffer," ");
133
+ strcat(buffer,names[i+4]);
134
+ }
135
+ }
136
+ AddSimple(tag,"_STATISTICS_TAGS",buffer);
137
+
138
+ if ((info.stream_flags&AP_AVStreamFlag_OffsetSequenceIdPresent)!=0)
139
+ {
140
+ sprintf_s(buffer,sizeof(buffer),"%u",(unsigned int)info.u.subtitles.offset_sequence_id_ref);
141
+ AddSimple(tag,"3d-plane",buffer);
142
+ }
143
+ }
144
+ static void AddSimple(KaxTag &tag,const char* Name,const char* Value)
145
+ {
146
+ KaxTagSimple& simple = AddNewChild<KaxTagSimple>(tag);
147
+ GetChild<EbmlUnicodeString,KaxTagName>(simple) = UTF8string(Name);
148
+ GetChild<EbmlString,KaxTagLangue>(simple) = "eng";
149
+ GetChild<EbmlUInteger,KaxTagDefault>(simple) = 1;
150
+ GetChild<EbmlUnicodeString,KaxTagString>(simple) = UTF8string(Value);
151
+ }
152
};
153
154
class MyDataBuffer : public DataBuffer
155
156
KaxSeek* seek_cues = AddSeekEntry<KaxCues>(MetaSeek);
157
KaxSeek* seek_chap = AddSeekEntry<KaxChapters>(MetaSeek);
158
KaxSeek* seek_att = AddSeekEntry<KaxAttachments>(MetaSeek);
159
+ KaxSeek* seek_tags = AddSeekEntry<KaxTags>(MetaSeek);
160
161
CNZ(MetaSeek.Render(File));
162
163
164
{
165
SegmentUid[i] = lgpl_get_random_byte();
166
}
167
- GetChild<EbmlDate,KaxDateUTC>(MyInfos).SetEpochDate((uint32_t)time(NULL));
168
+ uint64_t mtime = libmkv_time();
169
+ GetChild<EbmlDate,KaxDateUTC>(MyInfos).SetEpochDate(mtime);
170
GetChild<EbmlBinary,KaxSegmentUID>(MyInfos).CopyBuffer(SegmentUid, 16);
171
172
RenderVoid(File,FormatInfo->debug.evoid[0]);
173
174
KaxTrackEntry *cur_track;
175
176
ti = & track_info[i].info;
177
- track_info[i].frame_count = 0;
178
track_info[i].duration_pos=0;
179
track_info[i].refs[0]=BAD_TIMECODE;
180
track_info[i].refs[1]=BAD_TIMECODE;
181
+ track_info[i].stat_frames=0;
182
+ track_info[i].stat_bytes=0;
183
+ track_info[i].stat_bytes_out=0;
184
185
memset(ti,0,sizeof(*ti));
186
if (false==Input->MkvGetStream(i)->UpdateTrackInfo(ti))
187
188
189
GetChild<EbmlUInteger,KaxVideoDisplayUnit>(vid_track) = 0;
190
191
+ if (ti->u.video.stereo_mode!=0)
192
+ {
193
+ GetChild<EbmlUInteger,KaxVideoStereoMode>(vid_track) = ti->u.video.stereo_mode;
194
+ }
195
196
if (ti->u.video.fps_n!=0)
197
{
198
199
200
DataBuffer* mkv_buffer = GetDataBuffer(frame,&track_info[stream_id]);
201
makemkv-oss-1.9.5.tar.xz/libmakemkv/src/stdstring.cpp -> makemkv-oss-1.10.2.tar.xz/libmakemkv/src/stdstring.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/src/version.cpp -> makemkv-oss-1.10.2.tar.xz/libmakemkv/src/version.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmakemkv/src/world.cpp -> makemkv-oss-1.10.2.tar.xz/libmakemkv/src/world.cpp
Changed
10
1
2
/*
3
libMakeMKV - MKV multiplexer library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmkv@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmkv@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/FileKax.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/FileKax.h
Changed
193
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: FileKax.h,v 1.5 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: FileKax.h,v 1.5 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_FILE_H
28
#define LIBMATROSKA_FILE_H
29
30
*/
31
class MATROSKA_DLL_API FileMatroska {
32
public:
33
- FileMatroska(IOCallback & output);
34
- ~FileMatroska();
35
+ FileMatroska(IOCallback & output);
36
+ ~FileMatroska();
37
#ifdef OLD
38
- filepos_t RenderHead(const std::string & aEncoderApp);
39
- uint32 ReadHead();
40
- uint32 ReadTracks();
41
- uint32 ReadCodec();
42
- void Close(const uint32 aTimeLength);
43
-
44
- inline void type_SetInfo(const std::string & aStr) {myMainHeader.type_SetInfo(aStr);}
45
- inline void type_SetAds(const std::string & aStr) {myMainHeader.type_SetAds(aStr);}
46
- inline void type_SetSize(const std::string & aStr) {myMainHeader.type_SetSize(aStr);}
47
- inline void type_SetSize(uint64 aSize) {myMainHeader.type_SetSize(aSize);}
48
-
49
- inline uint8 GetTrackNumber() const { return myTracks.size(); }
50
-
51
- void track_SetName(Track * aTrack, const std::string & aName);
52
- void track_SetLaced(Track * aTrack, bool bLaced = true);
53
-
54
- Track * CreateTrack(const track_type aType);
55
- inline Track * GetTrack(const uint8 aTrackNb) const
56
- {
57
- if (aTrackNb > myTracks.size())
58
- return NULL;
59
- else
60
- return myTracks[aTrackNb-1];
61
- }
62
-
63
- void Track_GetInfo(const Track * aTrack, TrackInfo & aTrackInfo) const;
64
-
65
- void Track_SetInfo_Audio(Track * aTrack, const TrackInfoAudio & aTrackInfo);
66
- void Track_GetInfo_Audio(const Track * aTrack, TrackInfoAudio & aTrackInfo) const;
67
-
68
- void Track_SetInfo_Video(Track * aTrack, const TrackInfoVideo & aTrackInfo);
69
- void Track_GetInfo_Video(const Track * aTrack, TrackInfoVideo & aTrackInfo) const;
70
-
71
- void SelectReadingTrack(Track * aTrack, bool select = true);
72
-
73
- /*!
74
- \return wether the frame has been added or not
75
- */
76
- bool AddFrame(Track * aTrack, const uint32 aTimecode, const binary *aFrame, const uint32 aFrameSize,
77
- bool aKeyFrame = true, bool aBFrame = false);
78
-
79
- /*!
80
- \return wether the frame has been read or not
81
- */
82
- bool ReadFrame(Track * & aTrack, uint32 & aTimecode, const binary * & aFrame, uint32 & aFrameSize,
83
- bool & aKeyFrame, bool & aBFrame);
84
-
85
- /*
86
- Render the pending cluster to file
87
- */
88
- void Flush();
89
-
90
- void SetMaxClusterSize(const uint32 value);
91
- void SetMinClusterSize(const uint32 value) {myMinClusterSize = value;}
92
+ filepos_t RenderHead(const std::string & aEncoderApp);
93
+ uint32 ReadHead();
94
+ uint32 ReadTracks();
95
+ uint32 ReadCodec();
96
+ void Close(const uint32 aTimeLength);
97
+
98
+ inline void type_SetInfo(const std::string & aStr) {myMainHeader.type_SetInfo(aStr);}
99
+ inline void type_SetAds(const std::string & aStr) {myMainHeader.type_SetAds(aStr);}
100
+ inline void type_SetSize(const std::string & aStr) {myMainHeader.type_SetSize(aStr);}
101
+ inline void type_SetSize(uint64 aSize) {myMainHeader.type_SetSize(aSize);}
102
+
103
+ inline uint8 GetTrackNumber() const { return myTracks.size(); }
104
+
105
+ void track_SetName(Track * aTrack, const std::string & aName);
106
+ void track_SetLaced(Track * aTrack, bool bLaced = true);
107
+
108
+ Track * CreateTrack(const track_type aType);
109
+ inline Track * GetTrack(const uint8 aTrackNb) const
110
+ {
111
+ if (aTrackNb > myTracks.size())
112
+ return NULL;
113
+ else
114
+ return myTracks[aTrackNb-1];
115
+ }
116
+
117
+ void Track_GetInfo(const Track * aTrack, TrackInfo & aTrackInfo) const;
118
+
119
+ void Track_SetInfo_Audio(Track * aTrack, const TrackInfoAudio & aTrackInfo);
120
+ void Track_GetInfo_Audio(const Track * aTrack, TrackInfoAudio & aTrackInfo) const;
121
+
122
+ void Track_SetInfo_Video(Track * aTrack, const TrackInfoVideo & aTrackInfo);
123
+ void Track_GetInfo_Video(const Track * aTrack, TrackInfoVideo & aTrackInfo) const;
124
+
125
+ void SelectReadingTrack(Track * aTrack, bool select = true);
126
+
127
+ /*!
128
+ \return wether the frame has been added or not
129
+ */
130
+ bool AddFrame(Track * aTrack, const uint32 aTimecode, const binary *aFrame, const uint32 aFrameSize,
131
+ bool aKeyFrame = true, bool aBFrame = false);
132
+
133
+ /*!
134
+ \return wether the frame has been read or not
135
+ */
136
+ bool ReadFrame(Track * & aTrack, uint32 & aTimecode, const binary * & aFrame, uint32 & aFrameSize,
137
+ bool & aKeyFrame, bool & aBFrame);
138
+
139
+ /*
140
+ Render the pending cluster to file
141
+ */
142
+ void Flush();
143
+
144
+ void SetMaxClusterSize(const uint32 value);
145
+ void SetMinClusterSize(const uint32 value) {myMinClusterSize = value;}
146
147
protected:
148
- MainHeader myMainHeader;
149
+ MainHeader myMainHeader;
150
151
- std::vector<Track *> myTracks;
152
- std::vector<uint8> mySelectedTracks;
153
+ std::vector<Track *> myTracks;
154
+ std::vector<uint8> mySelectedTracks;
155
156
-// Track *findTrack(Track * aTrack) const;
157
+// Track *findTrack(Track * aTrack) const;
158
159
- Cluster myCurrWriteCluster; /// \todo merge with the write one ?
160
- uint32 myReadBlockNumber;
161
- Cluster myCurrReadCluster;
162
- binary * myCurrReadBlock; ///< The buffer containing the current read block
163
- uint32 myCurrReadBlockSize; ///< The size of the buffer containing the current read block
164
- uint8 myCurrReadBlockTrack; ///< The track number of the current track to read
165
+ Cluster myCurrWriteCluster; /// \todo merge with the write one ?
166
+ uint32 myReadBlockNumber;
167
+ Cluster myCurrReadCluster;
168
+ binary * myCurrReadBlock; ///< The buffer containing the current read block
169
+ uint32 myCurrReadBlockSize; ///< The size of the buffer containing the current read block
170
+ uint8 myCurrReadBlockTrack; ///< The track number of the current track to read
171
172
- uint32 myMaxClusterSize;
173
- uint32 myMinClusterSize;
174
+ uint32 myMaxClusterSize;
175
+ uint32 myMinClusterSize;
176
177
- StreamInfo myStreamInfo;
178
+ StreamInfo myStreamInfo;
179
180
- CodecHeader myCodecHeader;
181
+ CodecHeader myCodecHeader;
182
183
- inline bool IsMyTrack(const Track * aTrack) const;
184
- inline bool IsReadingTrack(const uint8 aTrackNum) const;
185
+ inline bool IsMyTrack(const Track * aTrack) const;
186
+ inline bool IsReadingTrack(const uint8 aTrackNum) const;
187
#endif // OLD
188
- IOCallback & myFile;
189
+ IOCallback & myFile;
190
191
};
192
193
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxAttached.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxAttached.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxAttached.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxAttached.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_ATTACHED_H
28
#define LIBMATROSKA_ATTACHED_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxAttachments.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxAttachments.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxAttachments.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxAttachments.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_ATTACHEMENTS_H
28
#define LIBMATROSKA_ATTACHEMENTS_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxBlock.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxBlock.h
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \todo add a PureBlock class to group functionalities between Block and BlockVirtual
22
- \version \$Id: KaxBlock.h,v 1.24 2004/04/14 23:26:17 robux4 Exp $
23
- \author Steve Lhomme <robux4 @ users.sf.net>
24
- \author Julien Coloos <suiryc @ users.sf.net>
25
+ \file
26
+ \todo add a PureBlock class to group functionalities between Block and BlockVirtual
27
+ \version \$Id: KaxBlock.h,v 1.24 2004/04/14 23:26:17 robux4 Exp $
28
+ \author Steve Lhomme <robux4 @ users.sf.net>
29
+ \author Julien Coloos <suiryc @ users.sf.net>
30
*/
31
#ifndef LIBMATROSKA_BLOCK_H
32
#define LIBMATROSKA_BLOCK_H
33
34
class KaxBlockBlob;
35
36
class MATROSKA_DLL_API DataBuffer {
37
- protected:
38
- binary * myBuffer;
39
- uint32 mySize;
40
- bool bValidValue;
41
- bool (*myFreeBuffer)(const DataBuffer & aBuffer); // method to free the internal buffer
42
- bool bInternalBuffer;
43
-
44
- public:
45
- DataBuffer(binary * aBuffer, uint32 aSize, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = NULL, bool _bInternalBuffer = false)
46
- :myBuffer(NULL)
47
- ,mySize(aSize)
48
- ,bValidValue(true)
49
- ,myFreeBuffer(aFreeBuffer)
50
- ,bInternalBuffer(_bInternalBuffer)
51
- {
52
- if (bInternalBuffer)
53
- {
54
- myBuffer = new (std::nothrow) binary[mySize];
55
- if (myBuffer == NULL)
56
- bValidValue = false;
57
- else
58
- memcpy(myBuffer, aBuffer, mySize);
59
- }
60
- else
61
- myBuffer = aBuffer;
62
- }
63
-
64
- virtual ~DataBuffer() {}
65
- virtual binary * Buffer() {assert(bValidValue); return myBuffer;}
66
- virtual uint32 & Size() {return mySize;};
67
- virtual const binary * Buffer() const {assert(bValidValue); return myBuffer;}
68
- virtual uint32 Size() const {return mySize;};
69
- bool FreeBuffer(const DataBuffer & aBuffer) {
70
- bool bResult = true;
71
- if (myBuffer != NULL && bValidValue) {
72
- if (myFreeBuffer != NULL)
73
- bResult = myFreeBuffer(aBuffer);
74
- if (bInternalBuffer)
75
- delete [] myBuffer;
76
- myBuffer = NULL;
77
- mySize = 0;
78
- bValidValue = false;
79
- }
80
- return bResult;
81
- }
82
-
83
- virtual DataBuffer * Clone();
84
+ protected:
85
+ binary * myBuffer;
86
+ uint32 mySize;
87
+ bool bValidValue;
88
+ bool (*myFreeBuffer)(const DataBuffer & aBuffer); // method to free the internal buffer
89
+ bool bInternalBuffer;
90
+
91
+ public:
92
+ DataBuffer(binary * aBuffer, uint32 aSize, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = NULL, bool _bInternalBuffer = false)
93
+ :myBuffer(NULL)
94
+ ,mySize(aSize)
95
+ ,bValidValue(true)
96
+ ,myFreeBuffer(aFreeBuffer)
97
+ ,bInternalBuffer(_bInternalBuffer)
98
+ {
99
+ if (bInternalBuffer)
100
+ {
101
+ myBuffer = new (std::nothrow) binary[mySize];
102
+ if (myBuffer == NULL)
103
+ bValidValue = false;
104
+ else
105
+ memcpy(myBuffer, aBuffer, mySize);
106
+ }
107
+ else
108
+ myBuffer = aBuffer;
109
+ }
110
+
111
+ virtual ~DataBuffer() {}
112
+ virtual binary * Buffer() {assert(bValidValue); return myBuffer;}
113
+ virtual uint32 & Size() {return mySize;};
114
+ virtual const binary * Buffer() const {assert(bValidValue); return myBuffer;}
115
+ virtual uint32 Size() const {return mySize;};
116
+ bool FreeBuffer(const DataBuffer & aBuffer) {
117
+ bool bResult = true;
118
+ if (myBuffer != NULL && bValidValue) {
119
+ if (myFreeBuffer != NULL)
120
+ bResult = myFreeBuffer(aBuffer);
121
+ if (bInternalBuffer)
122
+ delete [] myBuffer;
123
+ myBuffer = NULL;
124
+ mySize = 0;
125
+ bValidValue = false;
126
+ }
127
+ return bResult;
128
+ }
129
+
130
+ virtual DataBuffer * Clone();
131
};
132
133
class MATROSKA_DLL_API SimpleDataBuffer : public DataBuffer {
134
- public:
135
- SimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = myFreeBuffer)
136
- :DataBuffer(aBuffer + aOffset, aSize, aFreeBuffer)
137
- ,Offset(aOffset)
138
- ,BaseBuffer(aBuffer)
139
- {}
140
- virtual ~SimpleDataBuffer() {}
141
-
142
- DataBuffer * Clone() {return new SimpleDataBuffer(*this);}
143
-
144
- protected:
145
- uint32 Offset;
146
- binary * BaseBuffer;
147
-
148
- static bool myFreeBuffer(const DataBuffer & aBuffer)
149
- {
150
- binary *_Buffer = static_cast<const SimpleDataBuffer*>(&aBuffer)->BaseBuffer;
151
- if (_Buffer != NULL)
152
- free(_Buffer);
153
- return true;
154
- }
155
-
156
- SimpleDataBuffer(const SimpleDataBuffer & ToClone);
157
+ public:
158
+ SimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset, bool (*aFreeBuffer)(const DataBuffer & aBuffer) = myFreeBuffer)
159
+ :DataBuffer(aBuffer + aOffset, aSize, aFreeBuffer)
160
+ ,Offset(aOffset)
161
+ ,BaseBuffer(aBuffer)
162
+ {}
163
+ virtual ~SimpleDataBuffer() {}
164
+
165
+ DataBuffer * Clone() {return new SimpleDataBuffer(*this);}
166
+
167
+ protected:
168
+ uint32 Offset;
169
+ binary * BaseBuffer;
170
+
171
+ static bool myFreeBuffer(const DataBuffer & aBuffer)
172
+ {
173
+ binary *_Buffer = static_cast<const SimpleDataBuffer*>(&aBuffer)->BaseBuffer;
174
+ if (_Buffer != NULL)
175
+ free(_Buffer);
176
+ return true;
177
+ }
178
+
179
+ SimpleDataBuffer(const SimpleDataBuffer & ToClone);
180
};
181
182
/*!
183
- \note the data is copied locally, it can be freed right away
184
+ \note the data is copied locally, it can be freed right away
185
* /
186
class MATROSKA_DLL_API NotSoSimpleDataBuffer : public SimpleDataBuffer {
187
- public:
188
- NotSoSimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset)
189
- :SimpleDataBuffer(new binary[aSize - aOffset], aSize, 0)
190
- {
191
- memcpy(BaseBuffer, aBuffer + aOffset, aSize - aOffset);
192
- }
193
+ public:
194
+ NotSoSimpleDataBuffer(binary * aBuffer, uint32 aSize, uint32 aOffset)
195
+ :SimpleDataBuffer(new binary[aSize - aOffset], aSize, 0)
196
+ {
197
+ memcpy(BaseBuffer, aBuffer + aOffset, aSize - aOffset);
198
+ }
199
};
200
*/
201
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxBlockData.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxBlockData.h
Changed
73
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxBlockData.h,v 1.10 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxBlockData.h,v 1.10 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_BLOCK_ADDITIONAL_H
28
#define LIBMATROSKA_BLOCK_ADDITIONAL_H
29
30
START_LIBMATROSKA_NAMESPACE
31
32
/*!
33
- \brief element used for B frame-likes
34
+ \brief element used for B frame-likes
35
*/
36
DECLARE_MKX_SINTEGER_CONS(KaxReferenceBlock)
37
- public:
38
+ public:
39
~KaxReferenceBlock();
40
- /*!
41
- \brief override this method to compute the timecode value
42
- */
43
- virtual filepos_t UpdateSize(bool bSaveDefault = false, bool bForceRender = false);
44
+ /*!
45
+ \brief override this method to compute the timecode value
46
+ */
47
+ virtual filepos_t UpdateSize(bool bSaveDefault = false, bool bForceRender = false);
48
+
49
+ const KaxBlockBlob & RefBlock() const;
50
+ void SetReferencedBlock(const KaxBlockBlob * aRefdBlock);
51
+ void SetReferencedBlock(const KaxBlockGroup & aRefdBlock);
52
+ void SetParentBlock(const KaxBlockGroup & aParentBlock) {ParentBlock = &aParentBlock;}
53
+ void SetReferencedTimecode(int64 refTimecode) {*static_cast<EbmlSInteger*>(this) = refTimecode; bTimecodeSet = true;};
54
55
- const KaxBlockBlob & RefBlock() const;
56
- void SetReferencedBlock(const KaxBlockBlob * aRefdBlock);
57
- void SetReferencedBlock(const KaxBlockGroup & aRefdBlock);
58
- void SetParentBlock(const KaxBlockGroup & aParentBlock) {ParentBlock = &aParentBlock;}
59
-
60
- protected:
61
- const KaxBlockBlob * RefdBlock;
62
- const KaxBlockGroup * ParentBlock;
63
- bool bTimecodeSet;
64
-public:
65
- void SetReferencedTimecode(int64 refTimecode) {*static_cast<EbmlSInteger*>(this) = refTimecode; bTimecodeSet = true;};
66
+ protected:
67
+ const KaxBlockBlob * RefdBlock;
68
+ const KaxBlockGroup * ParentBlock;
69
+ bool bTimecodeSet;
70
bool bOurBlob;
71
void FreeBlob();
72
};
73
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxChapters.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxChapters.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id$
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_CHAPTERS_H
28
#define LIBMATROSKA_CHAPTERS_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxCluster.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxCluster.h
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxCluster.h,v 1.10 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
- \author Julien Coloos <suiryc @ users.sf.net>
24
+ \file
25
+ \version \$Id: KaxCluster.h,v 1.10 2004/04/14 23:26:17 robux4 Exp $
26
+ \author Steve Lhomme <robux4 @ users.sf.net>
27
+ \author Julien Coloos <suiryc @ users.sf.net>
28
29
*/
30
#ifndef LIBMATROSKA_CLUSTER_H
31
32
class KaxSegment;
33
34
DECLARE_MKX_MASTER_CONS(KaxCluster)
35
- public:
36
- /*!
37
- \brief Addition of a frame without references
38
-
39
- \param the timecode is expressed in nanoseconds, relative to the beggining of the Segment
40
- */
41
- bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, LacingType lacing = LACING_AUTO);
42
- /*!
43
- \brief Addition of a frame with a backward reference (P frame)
44
- \param the timecode is expressed in nanoseconds, relative to the beggining of the Segment
45
-
46
- */
47
- bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup & PastBlock, LacingType lacing = LACING_AUTO);
48
-
49
- /*!
50
- \brief Addition of a frame with a backward+forward reference (B frame)
51
- \param the timecode is expressed in nanoseconds, relative to the beggining of the Segment
52
-
53
- */
54
- bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup & PastBlock, const KaxBlockGroup & ForwBlock, LacingType lacing = LACING_AUTO);
55
-
56
- /*!
57
- \brief Render the data to the stream and retrieve the position of BlockGroups for later cue entries
58
- */
59
- filepos_t Render(IOCallback & output, KaxCues & CueToUpdate, bool bSaveDefault = false);
60
-
61
- /*!
62
- \return the global timecode of this Cluster
63
- */
64
- uint64 GlobalTimecode() const;
65
-
66
- KaxBlockGroup & GetNewBlock();
67
-
68
- /*!
69
- \brief release all the frames of all Blocks
70
- \note this is a convenience to be able to keep Clusters+Blocks in memory (for future reference) withouht being a memory hog
71
- */
72
- void ReleaseFrames();
73
-
74
- /*!
75
- \brief return the position offset compared to the beggining of the Segment
76
- */
77
- uint64 GetPosition() const;
78
-
79
- void SetParent(const KaxSegment & aParentSegment) {ParentSegment = &aParentSegment;}
80
-
81
- void SetPreviousTimecode(uint64 aPreviousTimecode, int64 aTimecodeScale) {
82
- bPreviousTimecodeIsSet = true;
83
- PreviousTimecode = aPreviousTimecode;
84
- SetGlobalTimecodeScale(aTimecodeScale);
85
- }
86
-
87
- /*!
88
- \note dirty hack to get the mandatory data back after reading
89
- \todo there should be a better way to get mandatory data
90
- */
91
- void InitTimecode(uint64 aTimecode, int64 aTimecodeScale) {
92
- SetGlobalTimecodeScale(aTimecodeScale);
93
- MinTimecode = MaxTimecode = PreviousTimecode = aTimecode * TimecodeScale;
94
- bFirstFrameInside = bPreviousTimecodeIsSet = true;
95
- }
96
-
97
- int16 GetBlockLocalTimecode(uint64 GlobalTimecode) const;
98
-
99
- uint64 GetBlockGlobalTimecode(int16 LocalTimecode);
100
-
101
- void SetGlobalTimecodeScale(uint64 aGlobalTimecodeScale) {
102
- TimecodeScale = aGlobalTimecodeScale;
103
- bTimecodeScaleIsSet = true;
104
- }
105
- uint64 GlobalTimecodeScale() const {
106
- assert(bTimecodeScaleIsSet);
107
- return TimecodeScale;
108
- }
109
-
110
- bool SetSilentTrackUsed()
111
- {
112
- bSilentTracksUsed = true;
113
- return FindFirstElt(EBML_INFO(KaxClusterSilentTracks), true) != NULL;
114
- }
115
-
116
- bool AddBlockBlob(KaxBlockBlob * NewBlob);
117
-
118
- const KaxSegment *GetParentSegment() const { return ParentSegment; }
119
-
120
- protected:
121
- KaxBlockBlob * currentNewBlob;
122
- std::vector<KaxBlockBlob*> Blobs;
123
- KaxBlockGroup * currentNewBlock;
124
- const KaxSegment * ParentSegment;
125
-
126
- uint64 MinTimecode, MaxTimecode, PreviousTimecode;
127
- int64 TimecodeScale;
128
-
129
- bool bFirstFrameInside; // used to speed research
130
- bool bPreviousTimecodeIsSet;
131
- bool bTimecodeScaleIsSet;
132
- bool bSilentTracksUsed;
133
-
134
- /*!
135
- \note method used internally
136
- */
137
- bool AddFrameInternal(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup * PastBlock, const KaxBlockGroup * ForwBlock, LacingType lacing);
138
+ public:
139
+ /*!
140
+ \brief Addition of a frame without references
141
+
142
+ \param the timecode is expressed in nanoseconds, relative to the beggining of the Segment
143
+ */
144
+ bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, LacingType lacing = LACING_AUTO);
145
+ /*!
146
+ \brief Addition of a frame with a backward reference (P frame)
147
+ \param the timecode is expressed in nanoseconds, relative to the beggining of the Segment
148
+
149
+ */
150
+ bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup & PastBlock, LacingType lacing = LACING_AUTO);
151
+
152
+ /*!
153
+ \brief Addition of a frame with a backward+forward reference (B frame)
154
+ \param the timecode is expressed in nanoseconds, relative to the beggining of the Segment
155
+
156
+ */
157
+ bool AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup & PastBlock, const KaxBlockGroup & ForwBlock, LacingType lacing = LACING_AUTO);
158
+
159
+ /*!
160
+ \brief Render the data to the stream and retrieve the position of BlockGroups for later cue entries
161
+ */
162
+ filepos_t Render(IOCallback & output, KaxCues & CueToUpdate, bool bSaveDefault = false);
163
+
164
+ /*!
165
+ \return the global timecode of this Cluster
166
+ */
167
+ uint64 GlobalTimecode() const;
168
+
169
+ KaxBlockGroup & GetNewBlock();
170
+
171
+ /*!
172
+ \brief release all the frames of all Blocks
173
+ \note this is a convenience to be able to keep Clusters+Blocks in memory (for future reference) withouht being a memory hog
174
+ */
175
+ void ReleaseFrames();
176
+
177
+ /*!
178
+ \brief return the position offset compared to the beggining of the Segment
179
+ */
180
+ uint64 GetPosition() const;
181
+
182
+ void SetParent(const KaxSegment & aParentSegment) {ParentSegment = &aParentSegment;}
183
+
184
+ void SetPreviousTimecode(uint64 aPreviousTimecode, int64 aTimecodeScale) {
185
+ bPreviousTimecodeIsSet = true;
186
+ PreviousTimecode = aPreviousTimecode;
187
+ SetGlobalTimecodeScale(aTimecodeScale);
188
+ }
189
+
190
+ /*!
191
+ \note dirty hack to get the mandatory data back after reading
192
+ \todo there should be a better way to get mandatory data
193
+ */
194
+ void InitTimecode(uint64 aTimecode, int64 aTimecodeScale) {
195
+ SetGlobalTimecodeScale(aTimecodeScale);
196
+ MinTimecode = MaxTimecode = PreviousTimecode = aTimecode * TimecodeScale;
197
+ bFirstFrameInside = bPreviousTimecodeIsSet = true;
198
+ }
199
+
200
+ int16 GetBlockLocalTimecode(uint64 GlobalTimecode) const;
201
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxClusterData.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxClusterData.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxClusterData.h,v 1.9 2004/04/21 19:50:10 mosu Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxClusterData.h,v 1.9 2004/04/21 19:50:10 mosu Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_CLUSTER_DATA_H
28
#define LIBMATROSKA_CLUSTER_DATA_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxConfig.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxConfig.h
Changed
31
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxConfig.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
- \author Moritz Bunkus <moritz @ bunkus.org>
24
+ \file
25
+ \version \$Id: KaxConfig.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
26
+ \author Steve Lhomme <robux4 @ users.sf.net>
27
+ \author Moritz Bunkus <moritz @ bunkus.org>
28
*/
29
#ifndef LIBMATROSKA_CONFIG_H
30
#define LIBMATROSKA_CONFIG_H
31
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxContentEncoding.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxContentEncoding.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxContentEncoding.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxContentEncoding.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_CONTENT_ENCODING_H
28
#define LIBMATROSKA_CONTENT_ENCODING_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxContexts.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxContexts.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id$
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_CONTEXTS_H
28
#define LIBMATROSKA_CONTEXTS_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxCues.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxCues.h
Changed
102
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxCues.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxCues.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_CUES_H
28
#define LIBMATROSKA_CUES_H
29
30
class KaxCuePoint;
31
32
DECLARE_MKX_MASTER(KaxCues)
33
- public:
34
- ~KaxCues();
35
+ public:
36
+ ~KaxCues();
37
38
- //bool AddBlockGroup(const KaxBlockGroup & BlockReference); // deprecated
39
- bool AddBlockBlob(const KaxBlockBlob & BlockReference);
40
+ //bool AddBlockGroup(const KaxBlockGroup & BlockReference); // deprecated
41
+ bool AddBlockBlob(const KaxBlockBlob & BlockReference);
42
43
- /*!
44
- \brief Indicate that the position for this Block is set
45
- */
46
- void PositionSet(const KaxBlockGroup & BlockReference);
47
- void PositionSet(const KaxBlockBlob & BlockReference);
48
+ /*!
49
+ \brief Indicate that the position for this Block is set
50
+ */
51
+ void PositionSet(const KaxBlockGroup & BlockReference);
52
+ void PositionSet(const KaxBlockBlob & BlockReference);
53
54
- /*!
55
- \brief override to sort by timecode/track
56
- */
57
- filepos_t Render(IOCallback & output, bool bSaveDefault = false) {
58
- Sort();
59
- return EbmlMaster::Render(output, bSaveDefault);
60
- }
61
+ /*!
62
+ \brief override to sort by timecode/track
63
+ */
64
+ filepos_t Render(IOCallback & output, bool bSaveDefault = false) {
65
+ Sort();
66
+ return EbmlMaster::Render(output, bSaveDefault);
67
+ }
68
69
- uint64 GetTimecodePosition(uint64 aTimecode) const;
70
- const KaxCuePoint * GetTimecodePoint(uint64 aTimecode) const;
71
+ uint64 GetTimecodePosition(uint64 aTimecode) const;
72
+ const KaxCuePoint * GetTimecodePoint(uint64 aTimecode) const;
73
74
- void SetGlobalTimecodeScale(uint64 aGlobalTimecodeScale) {
75
- mGlobalTimecodeScale = aGlobalTimecodeScale;
76
- bGlobalTimecodeScaleIsSet = true;
77
- }
78
- uint64 GlobalTimecodeScale() const {
79
- assert(bGlobalTimecodeScaleIsSet);
80
- return mGlobalTimecodeScale;
81
- }
82
+ void SetGlobalTimecodeScale(uint64 aGlobalTimecodeScale) {
83
+ mGlobalTimecodeScale = aGlobalTimecodeScale;
84
+ bGlobalTimecodeScaleIsSet = true;
85
+ }
86
+ uint64 GlobalTimecodeScale() const {
87
+ assert(bGlobalTimecodeScaleIsSet);
88
+ return mGlobalTimecodeScale;
89
+ }
90
91
- protected:
92
- std::vector<const KaxBlockBlob *> myTempReferences;
93
- bool bGlobalTimecodeScaleIsSet;
94
- uint64 mGlobalTimecodeScale;
95
+ protected:
96
+ std::vector<const KaxBlockBlob *> myTempReferences;
97
+ bool bGlobalTimecodeScaleIsSet;
98
+ uint64 mGlobalTimecodeScale;
99
};
100
101
END_LIBMATROSKA_NAMESPACE
102
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxCuesData.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxCuesData.h
Changed
73
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxCuesData.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxCuesData.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_CUES_DATA_H
28
#define LIBMATROSKA_CUES_DATA_H
29
30
class KaxSimpleBlock;
31
32
DECLARE_MKX_MASTER(KaxCuePoint)
33
- public:
34
- void PositionSet(const KaxBlockGroup & BlockReference, uint64 GlobalTimecodeScale);
35
- void PositionSet(const KaxBlockBlob & BlobReference, uint64 GlobalTimecodeScale);
36
- void PositionSet(const KaxSimpleBlock & BlockReference, uint64 GlobalTimecodeScale);
37
- void PositionSet(const KaxInternalBlock & BlockReference, const KaxBlockGroup* BlockGroup, uint64 GlobalTimecodeScale);
38
+ public:
39
+ void PositionSet(const KaxBlockGroup & BlockReference, uint64 GlobalTimecodeScale);
40
+ void PositionSet(const KaxBlockBlob & BlobReference, uint64 GlobalTimecodeScale);
41
+ void PositionSet(const KaxSimpleBlock & BlockReference, uint64 GlobalTimecodeScale);
42
+ void PositionSet(const KaxInternalBlock & BlockReference, const KaxBlockGroup* BlockGroup, uint64 GlobalTimecodeScale);
43
44
- virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
45
+ virtual bool IsSmallerThan(const EbmlElement *Cmp) const;
46
47
- const KaxCueTrackPositions * GetSeekPosition() const;
48
- bool Timecode(uint64 & aTimecode, uint64 GlobalTimecodeScale) const;
49
+ const KaxCueTrackPositions * GetSeekPosition() const;
50
+ bool Timecode(uint64 & aTimecode, uint64 GlobalTimecodeScale) const;
51
};
52
53
DECLARE_MKX_MASTER(KaxCueTrackPositions)
54
- public:
55
- uint64 ClusterPosition() const;
56
- uint16 TrackNumber() const;
57
+ public:
58
+ uint64 ClusterPosition() const;
59
+ uint16 TrackNumber() const;
60
};
61
62
#if MATROSKA_VERSION >= 2
63
DECLARE_MKX_MASTER(KaxCueReference)
64
- public:
65
- void AddReference(const KaxBlockGroup & BlockReferenced, uint64 GlobalTimecodeScale);
66
- void AddReference(const KaxBlockBlob & BlockReferenced, uint64 GlobalTimecodeScale);
67
+ public:
68
+ void AddReference(const KaxBlockGroup & BlockReferenced, uint64 GlobalTimecodeScale);
69
+ void AddReference(const KaxBlockBlob & BlockReferenced, uint64 GlobalTimecodeScale);
70
};
71
#endif // MATROSKA_VERSION
72
73
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxDefines.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxDefines.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id$
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_DEFINES_H
28
#define LIBMATROSKA_DEFINES_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxInfo.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxInfo.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxInfo.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxInfo.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_INFO_H
28
#define LIBMATROSKA_INFO_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxInfoData.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxInfoData.h
Changed
62
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
- \author John Cannon <spyder2555 @ users.sf.net>
24
- \author Moritz Bunkus <moritz @ bunkus.org>
25
+ \file
26
+ \version \$Id$
27
+ \author Steve Lhomme <robux4 @ users.sf.net>
28
+ \author John Cannon <spyder2555 @ users.sf.net>
29
+ \author Moritz Bunkus <moritz @ bunkus.org>
30
*/
31
#ifndef LIBMATROSKA_INFO_DATA_H
32
#define LIBMATROSKA_INFO_DATA_H
33
34
35
DECLARE_MKX_CONTEXT(KaxPrevUID);
36
class MATROSKA_DLL_API KaxPrevUID : public KaxSegmentUID {
37
- public:
38
- KaxPrevUID(EBML_EXTRA_PARAM);
39
- KaxPrevUID(const KaxPrevUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
40
- virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
41
+ public:
42
+ KaxPrevUID(EBML_EXTRA_PARAM);
43
+ KaxPrevUID(const KaxPrevUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
44
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
45
46
EBML_CONCRETE_CLASS(KaxPrevUID)
47
};
48
49
DECLARE_MKX_CONTEXT(KaxNextUID);
50
class MATROSKA_DLL_API KaxNextUID : public KaxSegmentUID {
51
- public:
52
- KaxNextUID(EBML_EXTRA_PARAM);
53
- KaxNextUID(const KaxNextUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
54
- virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
55
+ public:
56
+ KaxNextUID(EBML_EXTRA_PARAM);
57
+ KaxNextUID(const KaxNextUID & ElementToClone) :KaxSegmentUID(ElementToClone){}
58
+ virtual bool ValidateSize() const { return IsFiniteSize() && (GetSize() == 16);}
59
60
EBML_CONCRETE_CLASS(KaxNextUID)
61
};
62
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxSeekHead.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxSeekHead.h
Changed
64
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id$
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_SEEK_HEAD_H
28
#define LIBMATROSKA_SEEK_HEAD_H
29
30
class KaxSegment;
31
32
DECLARE_MKX_MASTER(KaxSeek)
33
- public:
34
- int64 Location() const;
35
- bool IsEbmlId(const EbmlId & aId) const;
36
- bool IsEbmlId(const KaxSeek & aPoint) const;
37
+ public:
38
+ int64 Location() const;
39
+ bool IsEbmlId(const EbmlId & aId) const;
40
+ bool IsEbmlId(const KaxSeek & aPoint) const;
41
};
42
43
DECLARE_MKX_MASTER(KaxSeekHead)
44
- public:
45
- /*!
46
- \brief add an element to index in the Meta Seek data
47
- \note the element should already be written in the file
48
- */
49
- KaxSeek * IndexThis(const EbmlElement & aElt, const KaxSegment & ParentSegment);
50
+ public:
51
+ /*!
52
+ \brief add an element to index in the Meta Seek data
53
+ \note the element should already be written in the file
54
+ */
55
+ KaxSeek * IndexThis(const EbmlElement & aElt, const KaxSegment & ParentSegment);
56
57
- KaxSeek * FindFirstOf(const EbmlCallbacks & Callbacks) const;
58
- KaxSeek * FindNextOf(const KaxSeek &aPrev) const;
59
+ KaxSeek * FindFirstOf(const EbmlCallbacks & Callbacks) const;
60
+ KaxSeek * FindNextOf(const KaxSeek &aPrev) const;
61
};
62
63
END_LIBMATROSKA_NAMESPACE
64
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxSegment.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxSegment.h
Changed
58
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxSegment.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxSegment.h,v 1.8 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_SEGMENT_H
28
#define LIBMATROSKA_SEGMENT_H
29
30
START_LIBMATROSKA_NAMESPACE
31
32
DECLARE_MKX_MASTER_CONS(KaxSegment)
33
- public:
34
- /*!
35
- \brief give the position of the element in the segment
36
- */
37
- uint64 GetRelativePosition(const EbmlElement & Elt) const;
38
- uint64 GetRelativePosition(uint64 aGlobalPosition) const;
39
-
40
- /*!
41
- \brief give the position of the element in the file
42
- */
43
- uint64 GetGlobalPosition(uint64 aRelativePosition) const;
44
+ public:
45
+ /*!
46
+ \brief give the position of the element in the segment
47
+ */
48
+ uint64 GetRelativePosition(const EbmlElement & Elt) const;
49
+ uint64 GetRelativePosition(uint64 aGlobalPosition) const;
50
+
51
+ /*!
52
+ \brief give the position of the element in the file
53
+ */
54
+ uint64 GetGlobalPosition(uint64 aRelativePosition) const;
55
};
56
57
END_LIBMATROSKA_NAMESPACE
58
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxSemantic.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxSemantic.h
Changed
201
1
2
/**********************************************************************
3
** DO NOT EDIT, GENERATED WITH DATA2LIB
4
-**
5
+**
6
** libmatroska : parse Matroska files, see http://www.matroska.org/
7
-**
8
+**
9
** Copyright (c) 2002-2010, Matroska (non-profit organisation)
10
** All rights reserved.
11
-**
12
+**
13
** This file is part of libmatroska.
14
**
15
** This library is free software; you can redistribute it and/or
16
** modify it under the terms of the GNU Lesser General Public
17
** License as published by the Free Software Foundation; either
18
** version 2.1 of the License, or (at your option) any later version.
19
-**
20
+**
21
** This library is distributed in the hope that it will be useful,
22
** but WITHOUT ANY WARRANTY; without even the implied warranty of
23
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
** Lesser General Public License for more details.
25
-**
26
+**
27
** You should have received a copy of the GNU Lesser General Public
28
** License along with this library; if not, write to the Free Software
29
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30
31
32
DECLARE_MKX_BINARY (KaxSeekID)
33
public:
34
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() <= 4;}
35
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() <= 4;}
36
};
37
38
DECLARE_MKX_UINTEGER(KaxSeekPosition)
39
40
DECLARE_MKX_BINARY (KaxSegmentUID)
41
#if defined(HAVE_EBML2) || defined(HAS_EBML2)
42
public:
43
- KaxSegmentUID(EBML_DEF_CONS EBML_DEF_SEP EBML_EXTRA_PARAM);
44
+ KaxSegmentUID(EBML_DEF_CONS EBML_DEF_SEP EBML_EXTRA_PARAM);
45
#endif
46
public:
47
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
48
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
49
};
50
51
DECLARE_MKX_UNISTRING(KaxSegmentFilename)
52
53
54
DECLARE_MKX_BINARY (KaxSegmentFamily)
55
public:
56
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
57
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
58
};
59
60
DECLARE_MKX_MASTER(KaxChapterTranslate)
61
62
#if MATROSKA_VERSION >= 2
63
DECLARE_MKX_SINTEGER(KaxReferenceVirtual)
64
public:
65
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
66
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
67
};
68
69
DECLARE_MKX_BINARY (KaxCodecState)
70
71
#if MATROSKA_VERSION >= 2
72
DECLARE_MKX_UINTEGER(KaxSliceFrameNumber)
73
public:
74
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
75
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
76
};
77
78
DECLARE_MKX_UINTEGER(KaxSliceBlockAddID)
79
public:
80
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
81
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
82
};
83
84
DECLARE_MKX_UINTEGER(KaxSliceDelay)
85
public:
86
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
87
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
88
};
89
90
DECLARE_MKX_UINTEGER(KaxSliceDuration)
91
public:
92
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
93
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
94
};
95
96
DECLARE_MKX_MASTER(KaxReferenceFrame)
97
98
99
DECLARE_MKX_BINARY (KaxEncryptedBlock)
100
public:
101
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
102
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
103
};
104
#endif
105
106
107
108
DECLARE_MKX_FLOAT(KaxTrackTimecodeScale)
109
public:
110
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
111
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
112
};
113
114
#if MATROSKA_VERSION >= 2
115
DECLARE_MKX_SINTEGER(KaxTrackOffset)
116
public:
117
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
118
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
119
};
120
#endif
121
122
123
#if MATROSKA_VERSION >= 2
124
DECLARE_MKX_UNISTRING(KaxCodecSettings)
125
public:
126
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
127
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
128
};
129
130
DECLARE_MKX_STRING(KaxCodecInfoURL)
131
public:
132
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
133
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
134
};
135
136
DECLARE_MKX_STRING(KaxCodecDownloadURL)
137
public:
138
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
139
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
140
};
141
142
DECLARE_MKX_UINTEGER(KaxCodecDecodeAll)
143
144
145
DECLARE_MKX_UINTEGER(KaxOldStereoMode)
146
public:
147
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
148
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
149
};
150
#endif
151
152
153
154
DECLARE_MKX_BINARY (KaxVideoColourSpace)
155
public:
156
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 4;}
157
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 4;}
158
};
159
160
#if MATROSKA_VERSION >= 2
161
DECLARE_MKX_FLOAT(KaxVideoGamma)
162
public:
163
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
164
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
165
};
166
167
DECLARE_MKX_FLOAT(KaxVideoFrameRate)
168
public:
169
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
170
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
171
};
172
#endif
173
174
175
#if MATROSKA_VERSION >= 2
176
DECLARE_MKX_BINARY (KaxAudioPosition)
177
public:
178
- filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
179
+ filepos_t RenderData(IOCallback & output, bool bForceRender, bool bSaveDefault);
180
};
181
#endif
182
183
184
185
DECLARE_MKX_BINARY (KaxTrickTrackSegmentUID)
186
public:
187
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
188
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
189
};
190
191
DECLARE_MKX_UINTEGER(KaxTrickTrackFlag)
192
193
194
DECLARE_MKX_BINARY (KaxTrickMasterTrackSegmentUID)
195
public:
196
- virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
197
+ virtual bool ValidateSize() const {return IsFiniteSize() && GetSize() == 16;}
198
};
199
#endif
200
201
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTag.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTag.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id$
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_TAG_H
28
#define LIBMATROSKA_TAG_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTags.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTags.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxTags.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxTags.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_TAGS_H
28
#define LIBMATROSKA_TAGS_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTrackAudio.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTrackAudio.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxTrackAudio.h,v 1.11 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxTrackAudio.h,v 1.11 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_TRACK_AUDIO_H
28
#define LIBMATROSKA_TRACK_AUDIO_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTrackEntryData.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTrackEntryData.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxTrackEntryData.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxTrackEntryData.h,v 1.9 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_TRACK_ENTRY_DATA_H
28
#define LIBMATROSKA_TRACK_ENTRY_DATA_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTrackVideo.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTrackVideo.h
Changed
29
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id$
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_TRACK_VIDEO_H
28
#define LIBMATROSKA_TRACK_VIDEO_H
29
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTracks.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTracks.h
Changed
82
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxTracks.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxTracks.h,v 1.7 2004/04/14 23:26:17 robux4 Exp $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#ifndef LIBMATROSKA_TRACKS_H
28
#define LIBMATROSKA_TRACKS_H
29
30
START_LIBMATROSKA_NAMESPACE
31
32
DECLARE_MKX_MASTER(KaxTrackEntry)
33
- public:
34
- EbmlUInteger & TrackNumber() const { return *(static_cast<EbmlUInteger *>(FindElt(EBML_INFO(KaxTrackNumber)))); }
35
+ public:
36
+ EbmlUInteger & TrackNumber() const { return *(static_cast<EbmlUInteger *>(FindElt(EBML_INFO(KaxTrackNumber)))); }
37
38
- void EnableLacing(bool bEnable = true);
39
+ void EnableLacing(bool bEnable = true);
40
41
- /*!
42
- \note lacing set by default
43
- */
44
- inline bool LacingEnabled() const {
45
- KaxTrackFlagLacing * myLacing = static_cast<KaxTrackFlagLacing *>(FindFirstElt(EBML_INFO(KaxTrackFlagLacing)));
46
- return((myLacing == NULL) || (uint8(*myLacing) != 0));
47
- }
48
+ /*!
49
+ \note lacing set by default
50
+ */
51
+ inline bool LacingEnabled() const {
52
+ KaxTrackFlagLacing * myLacing = static_cast<KaxTrackFlagLacing *>(FindFirstElt(EBML_INFO(KaxTrackFlagLacing)));
53
+ return((myLacing == NULL) || (uint8(*myLacing) != 0));
54
+ }
55
56
- void SetGlobalTimecodeScale(uint64 aGlobalTimecodeScale) {
57
- mGlobalTimecodeScale = aGlobalTimecodeScale;
58
- bGlobalTimecodeScaleIsSet = true;
59
- }
60
- uint64 GlobalTimecodeScale() const {
61
- assert(bGlobalTimecodeScaleIsSet);
62
- return mGlobalTimecodeScale;
63
- }
64
+ void SetGlobalTimecodeScale(uint64 aGlobalTimecodeScale) {
65
+ mGlobalTimecodeScale = aGlobalTimecodeScale;
66
+ bGlobalTimecodeScaleIsSet = true;
67
+ }
68
+ uint64 GlobalTimecodeScale() const {
69
+ assert(bGlobalTimecodeScaleIsSet);
70
+ return mGlobalTimecodeScale;
71
+ }
72
73
- protected:
74
- bool bGlobalTimecodeScaleIsSet;
75
- uint64 mGlobalTimecodeScale;
76
+ protected:
77
+ bool bGlobalTimecodeScaleIsSet;
78
+ uint64 mGlobalTimecodeScale;
79
};
80
81
END_LIBMATROSKA_NAMESPACE
82
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxTypes.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxTypes.h
Changed
53
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxTypes.h,v 1.4 2004/04/14 23:26:17 robux4 Exp $
22
+ \file
23
+ \version \$Id: KaxTypes.h,v 1.4 2004/04/14 23:26:17 robux4 Exp $
24
*/
25
#ifndef LIBMATROSKA_TYPES_H
26
#define LIBMATROSKA_TYPES_H
27
28
START_LIBMATROSKA_NAMESPACE
29
30
enum LacingType {
31
- LACING_NONE = 0,
32
- LACING_XIPH,
33
- LACING_FIXED,
34
- LACING_EBML,
35
- LACING_AUTO
36
+ LACING_NONE = 0,
37
+ LACING_XIPH,
38
+ LACING_FIXED,
39
+ LACING_EBML,
40
+ LACING_AUTO
41
};
42
43
enum BlockBlobType {
44
- BLOCK_BLOB_NO_SIMPLE = 0,
45
- BLOCK_BLOB_SIMPLE_AUTO,
46
- BLOCK_BLOB_ALWAYS_SIMPLE,
47
+ BLOCK_BLOB_NO_SIMPLE = 0,
48
+ BLOCK_BLOB_SIMPLE_AUTO,
49
+ BLOCK_BLOB_ALWAYS_SIMPLE,
50
};
51
52
END_LIBMATROSKA_NAMESPACE
53
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/KaxVersion.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/KaxVersion.h
Changed
30
1
2
**********************************************************************/
3
4
/*!
5
- \file
6
- \version \$Id: KaxVersion.h,v 1.13 2004/04/23 16:46:07 mosu Exp $
7
- \author Steve Lhomme <robux4 @ users.sf.net>
8
+ \file
9
+ \version \$Id: KaxVersion.h,v 1.13 2004/04/23 16:46:07 mosu Exp $
10
+ \author Steve Lhomme <robux4 @ users.sf.net>
11
*/
12
#ifndef LIBMATROSKA_VERSION_H
13
#define LIBMATROSKA_VERSION_H
14
15
16
START_LIBMATROSKA_NAMESPACE
17
18
-#define LIBMATROSKA_VERSION 0x010401
19
+#define LIBMATROSKA_VERSION 0x010404
20
21
extern const ccc::string KaxCodeVersion;
22
extern const ccc::string KaxCodeDate;
23
24
/*!
25
- \todo Improve the CRC/ECC system (backward and forward possible ?) to fit streaming/live writing/simple reading
26
+ \todo Improve the CRC/ECC system (backward and forward possible ?) to fit streaming/live writing/simple reading
27
*/
28
29
END_LIBMATROSKA_NAMESPACE
30
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/c/libmatroska.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/c/libmatroska.h
Changed
16
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
makemkv-oss-1.9.5.tar.xz/libmatroska/inc/matroska/c/libmatroska_t.h -> makemkv-oss-1.10.2.tar.xz/libmatroska/inc/matroska/c/libmatroska_t.h
Changed
25
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
\note this should be used by the libmatroska internals
18
*/
19
typedef enum {
20
- error_null_pointer ///< NULL pointer where something else is expected
21
+ error_null_pointer ///< NULL pointer where something else is expected
22
} matroska_error_t;
23
24
typedef void *matroska_stream;
25
makemkv-oss-1.9.5.tar.xz/libmatroska/src/FileKax.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/FileKax.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
//typedef Track *TrackID;
18
19
FileMatroska::FileMatroska(IOCallback & output)
20
- :myFile(output)
21
+ :myFile(output)
22
#ifdef OLD
23
- ,myCurrReadBlock(NULL)
24
- ,myMinClusterSize(5*1024) // 5KB is the min size of a cluster
25
- ,myMaxClusterSize(2*1024*1024) // 2MB is the max size of a cluster
26
- ,myCurrReadBlockTrack(0)
27
- ,myCurrWriteCluster(2*1024*1024) // myMaxClusterSize
28
- ,myCurrReadCluster(NULL)
29
- ,myReadBlockNumber(0)
30
+ ,myCurrReadBlock(NULL)
31
+ ,myMinClusterSize(5*1024) // 5KB is the min size of a cluster
32
+ ,myMaxClusterSize(2*1024*1024) // 2MB is the max size of a cluster
33
+ ,myCurrReadBlockTrack(0)
34
+ ,myCurrWriteCluster(2*1024*1024) // myMaxClusterSize
35
+ ,myCurrReadCluster(NULL)
36
+ ,myReadBlockNumber(0)
37
#endif // OLD
38
{
39
#ifdef OLD
40
- myStreamInfo.MainHeaderSize = TypeHeader::default_size() +
41
- ActualHeader::default_size() +
42
- ExtendedInfo::default_size() +
43
- ContentInfo::default_size();
44
- myStreamInfo.TrackEntrySize = Track::default_size();
45
- myStreamInfo.BlockHeadSize = BLOCK_HEADER_SIZE;
46
- myStreamInfo.ClusterHeadSize = CLUSTER_HEADER_SIZE;
47
- myStreamInfo.ClusterFootSize = CLUSTER_TRAILER_SIZE;
48
+ myStreamInfo.MainHeaderSize = TypeHeader::default_size() +
49
+ ActualHeader::default_size() +
50
+ ExtendedInfo::default_size() +
51
+ ContentInfo::default_size();
52
+ myStreamInfo.TrackEntrySize = Track::default_size();
53
+ myStreamInfo.BlockHeadSize = BLOCK_HEADER_SIZE;
54
+ myStreamInfo.ClusterHeadSize = CLUSTER_HEADER_SIZE;
55
+ myStreamInfo.ClusterFootSize = CLUSTER_TRAILER_SIZE;
56
#endif // OLD
57
}
58
59
FileMatroska::~FileMatroska()
60
{
61
-// if (myCurrCluster != NULL)
62
-// throw 0; // there are some data left to write
63
-// if (myCurrReadCluster != NULL || myCurrReadBlock != NULL)
64
-// throw 0; // there are some data left to write
65
+ // if (myCurrCluster != NULL)
66
+ // throw 0; // there are some data left to write
67
+ // if (myCurrReadCluster != NULL || myCurrReadBlock != NULL)
68
+ // throw 0; // there are some data left to write
69
}
70
71
#ifdef OLD
72
void FileMatroska::SetMaxClusterSize(const uint32 value)
73
{
74
- myMaxClusterSize = value;
75
- myCurrWriteCluster.setMaxSize(value);
76
+ myMaxClusterSize = value;
77
+ myCurrWriteCluster.setMaxSize(value);
78
}
79
80
void FileMatroska::Close(const uint32 aTimeLength)
81
{
82
- Flush();
83
+ Flush();
84
85
- // get the file size
86
- myFile.setFilePointer(0,seek_end);
87
- myMainHeader.type_SetSize(myFile.getFilePointer());
88
+ // get the file size
89
+ myFile.setFilePointer(0,seek_end);
90
+ myMainHeader.type_SetSize(myFile.getFilePointer());
91
92
- // rewrite the header at the beginning
93
- myFile.setFilePointer(0,seek_beginning);
94
+ // rewrite the header at the beginning
95
+ myFile.setFilePointer(0,seek_beginning);
96
97
- // get the Track-entry size
98
- uint32 track_entries_size = 0;
99
- for (size_t i=0; i<myTracks.size(); i++)
100
- {
101
- track_entries_size += myTracks[i]->default_size();
102
- }
103
+ // get the Track-entry size
104
+ uint32 track_entries_size = 0;
105
+ for (size_t i=0; i<myTracks.size(); i++) {
106
+ track_entries_size += myTracks[i]->default_size();
107
+ }
108
109
- myStreamInfo.TrackEntriesSize = track_entries_size;
110
- myStreamInfo.TimeLength = aTimeLength;
111
- myMainHeader.Render(myFile, myStreamInfo);
112
+ myStreamInfo.TrackEntriesSize = track_entries_size;
113
+ myStreamInfo.TimeLength = aTimeLength;
114
+ myMainHeader.Render(myFile, myStreamInfo);
115
116
- for (i=0; i<myTracks.size(); i++)
117
- {
118
- delete myTracks[i];
119
- }
120
+ for (i=0; i<myTracks.size(); i++) {
121
+ delete myTracks[i];
122
+ }
123
}
124
125
/*!
126
- \warning after rendering the head, some parameters are locked
127
+ \warning after rendering the head, some parameters are locked
128
*/
129
filepos_t FileMatroska::RenderHead(const std::string & aEncoderApp)
130
{
131
- try {
132
- uint32 track_entries_size = 0;
133
- for (size_t i=0; i<myTracks.size(); i++)
134
- {
135
- track_entries_size += myTracks[i]->default_size();
136
- }
137
-
138
- std::string aStr = LIB_NAME;
139
- aStr += " ";
140
- aStr += VERSION;
141
- myStreamInfo.EncoderLib = aStr;
142
-
143
- myStreamInfo.EncoderApp = aEncoderApp;
144
-
145
- myStreamInfo.TrackEntryPosition = 0 + myStreamInfo.MainHeaderSize;
146
- myStreamInfo.TrackEntriesSize = myTracks.size() * myStreamInfo.TrackEntrySize;
147
-
148
- myStreamInfo.CodecEntryPosition = myStreamInfo.MainHeaderSize + myStreamInfo.TrackEntriesSize;
149
- myStreamInfo.CodecEntrySize = 4;
150
- for (i=0; i<myTracks.size(); i++)
151
- {
152
- myStreamInfo.CodecEntrySize += myTracks[i]->CodecSize();
153
- }
154
-
155
- // Main Header
156
- filepos_t result = myMainHeader.Render(myFile, myStreamInfo);
157
-
158
- // Track Entries
159
- for (i=0; i<myTracks.size(); i++)
160
- {
161
- myTracks[i]->RenderEntry(myFile, i+1);
162
- }
163
- myStreamInfo.ClusterPosition = myStreamInfo.CodecEntryPosition + myStreamInfo.CodecEntrySize;
164
-
165
- // Codec Header
166
- result = CodecHeader::Render(myFile, myTracks);
167
-
168
- return result;
169
+ try {
170
+ uint32 track_entries_size = 0;
171
+ for (size_t i=0; i<myTracks.size(); i++) {
172
+ track_entries_size += myTracks[i]->default_size();
173
+ }
174
+
175
+ std::string aStr = LIB_NAME;
176
+ aStr += " ";
177
+ aStr += VERSION;
178
+ myStreamInfo.EncoderLib = aStr;
179
+
180
+ myStreamInfo.EncoderApp = aEncoderApp;
181
+
182
+ myStreamInfo.TrackEntryPosition = 0 + myStreamInfo.MainHeaderSize;
183
+ myStreamInfo.TrackEntriesSize = myTracks.size() * myStreamInfo.TrackEntrySize;
184
+
185
+ myStreamInfo.CodecEntryPosition = myStreamInfo.MainHeaderSize + myStreamInfo.TrackEntriesSize;
186
+ myStreamInfo.CodecEntrySize = 4;
187
+ for (i=0; i<myTracks.size(); i++) {
188
+ myStreamInfo.CodecEntrySize += myTracks[i]->CodecSize();
189
}
190
- catch (exception & Ex)
191
- {
192
- throw Ex;
193
+
194
+ // Main Header
195
+ filepos_t result = myMainHeader.Render(myFile, myStreamInfo);
196
+
197
+ // Track Entries
198
+ for (i=0; i<myTracks.size(); i++) {
199
+ myTracks[i]->RenderEntry(myFile, i+1);
200
}
201
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxAttached.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxAttached.cpp
Changed
41
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxAttached.cpp 1202 2005-08-30 14:39:01Z robux4 $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxAttached.cpp 1202 2005-08-30 14:39:01Z robux4 $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "matroska/KaxContexts.h"
28
#include "matroska/KaxDefines.h"
29
30
START_LIBMATROSKA_NAMESPACE
31
32
KaxAttached::KaxAttached(EBML_EXTRA_DEF)
33
- :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxAttached) EBML_DEF_SEP EBML_EXTRA_CALL)
34
+ :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxAttached) EBML_DEF_SEP EBML_EXTRA_CALL)
35
{
36
- SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko)
37
+ SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko)
38
}
39
40
END_LIBMATROSKA_NAMESPACE
41
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxAttachments.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxAttachments.cpp
Changed
41
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxAttachments.cpp 640 2004-07-09 21:05:36Z mosu $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxAttachments.cpp 640 2004-07-09 21:05:36Z mosu $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "matroska/KaxContexts.h"
28
#include "matroska/KaxDefines.h"
29
30
START_LIBMATROSKA_NAMESPACE
31
32
KaxAttachments::KaxAttachments(EBML_EXTRA_DEF)
33
- :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxAttachments) EBML_DEF_SEP EBML_EXTRA_CALL)
34
+ :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxAttachments) EBML_DEF_SEP EBML_EXTRA_CALL)
35
{
36
- SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko)
37
+ SetSizeLength(2); // mandatory min size support (for easier updating) (2^(7*2)-2 = 16Ko)
38
}
39
40
END_LIBMATROSKA_NAMESPACE
41
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxBlock.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxBlock.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxBlock.cpp 1265 2007-01-14 17:20:35Z mosu $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
- \author Julien Coloos <suiryc @ users.sf.net>
24
+ \file
25
+ \version \$Id: KaxBlock.cpp 1265 2007-01-14 17:20:35Z mosu $
26
+ \author Steve Lhomme <robux4 @ users.sf.net>
27
+ \author Julien Coloos <suiryc @ users.sf.net>
28
+ \author Moritz Bunkus <moritz@bunkus.org>
29
*/
30
#include <lgpl/cassert>
31
32
//#include <streams.h>
33
34
+#include "ebml/MemReadIOCallback.h"
35
+#include "ebml/SafeReadIOCallback.h"
36
#include "matroska/KaxBlock.h"
37
#include "matroska/KaxContexts.h"
38
#include "matroska/KaxBlockData.h"
39
40
41
DataBuffer * DataBuffer::Clone()
42
{
43
- binary *ClonedData = (binary *)malloc(mySize * sizeof(binary));
44
- assert(ClonedData != NULL);
45
- memcpy(ClonedData, myBuffer ,mySize );
46
+ binary *ClonedData = (binary *)malloc(mySize * sizeof(binary));
47
+ assert(ClonedData != NULL);
48
+ memcpy(ClonedData, myBuffer ,mySize );
49
50
- SimpleDataBuffer * result = new SimpleDataBuffer(ClonedData, mySize, 0);
51
- result->bValidValue = bValidValue;
52
- return result;
53
+ SimpleDataBuffer * result = new SimpleDataBuffer(ClonedData, mySize, 0);
54
+ result->bValidValue = bValidValue;
55
+ return result;
56
}
57
58
SimpleDataBuffer::SimpleDataBuffer(const SimpleDataBuffer & ToClone)
59
- :DataBuffer((binary *)malloc(ToClone.mySize * sizeof(binary)), ToClone.mySize, myFreeBuffer)
60
+ :DataBuffer((binary *)malloc(ToClone.mySize * sizeof(binary)), ToClone.mySize, myFreeBuffer)
61
{
62
- assert(myBuffer != NULL);
63
- memcpy(myBuffer, ToClone.myBuffer ,mySize );
64
- bValidValue = ToClone.bValidValue;
65
+ assert(myBuffer != NULL);
66
+ memcpy(myBuffer, ToClone.myBuffer ,mySize );
67
+ bValidValue = ToClone.bValidValue;
68
}
69
70
bool KaxInternalBlock::ValidateSize() const
71
{
72
- return (GetSize() >= 4); /// for the moment
73
+ return (GetSize() >= 4); /// for the moment
74
}
75
76
KaxInternalBlock::~KaxInternalBlock()
77
{
78
- ReleaseFrames();
79
+ ReleaseFrames();
80
}
81
82
KaxInternalBlock::KaxInternalBlock(const KaxInternalBlock & ElementToClone)
83
- :EbmlBinary(ElementToClone)
84
- ,myBuffers(ElementToClone.myBuffers.size())
85
- ,Timecode(ElementToClone.Timecode)
86
- ,LocalTimecode(ElementToClone.LocalTimecode)
87
- ,bLocalTimecodeUsed(ElementToClone.bLocalTimecodeUsed)
88
- ,TrackNumber(ElementToClone.TrackNumber)
89
- ,ParentCluster(ElementToClone.ParentCluster) ///< \todo not exactly
90
+ :EbmlBinary(ElementToClone)
91
+ ,myBuffers(ElementToClone.myBuffers.size())
92
+ ,Timecode(ElementToClone.Timecode)
93
+ ,LocalTimecode(ElementToClone.LocalTimecode)
94
+ ,bLocalTimecodeUsed(ElementToClone.bLocalTimecodeUsed)
95
+ ,TrackNumber(ElementToClone.TrackNumber)
96
+ ,ParentCluster(ElementToClone.ParentCluster) ///< \todo not exactly
97
{
98
- // add a clone of the list
99
- std::vector<DataBuffer *>::const_iterator Itr = ElementToClone.myBuffers.begin();
100
- std::vector<DataBuffer *>::iterator myItr = myBuffers.begin();
101
- while (Itr != ElementToClone.myBuffers.end())
102
- {
103
- *myItr = (*Itr)->Clone();
104
- Itr++; myItr++;
105
- }
106
+ // add a clone of the list
107
+ std::vector<DataBuffer *>::const_iterator Itr = ElementToClone.myBuffers.begin();
108
+ std::vector<DataBuffer *>::iterator myItr = myBuffers.begin();
109
+ while (Itr != ElementToClone.myBuffers.end()) {
110
+ *myItr = (*Itr)->Clone();
111
+ ++Itr; ++myItr;
112
+ }
113
}
114
115
116
KaxBlockGroup::~KaxBlockGroup()
117
{
118
-//NOTE("KaxBlockGroup::~KaxBlockGroup");
119
+ //NOTE("KaxBlockGroup::~KaxBlockGroup");
120
}
121
122
KaxBlockGroup::KaxBlockGroup(EBML_EXTRA_DEF)
123
- :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxBlockGroup) EBML_DEF_SEP EBML_EXTRA_CALL)
124
- ,ParentCluster(NULL)
125
- ,ParentTrack(NULL)
126
+ :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxBlockGroup) EBML_DEF_SEP EBML_EXTRA_CALL)
127
+ ,ParentCluster(NULL)
128
+ ,ParentTrack(NULL)
129
{}
130
131
/*!
132
- \todo handle flags
133
- \todo hardcoded limit of the number of frames in a lace should be a parameter
134
- \return true if more frames can be added to this Block
135
+ \todo handle flags
136
+ \todo hardcoded limit of the number of frames in a lace should be a parameter
137
+ \return true if more frames can be added to this Block
138
*/
139
bool KaxInternalBlock::AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, LacingType lacing, bool invisible)
140
{
141
- SetValueIsSet();
142
- if (myBuffers.size() == 0) {
143
- // first frame
144
- Timecode = timecode;
145
- TrackNumber = track.TrackNumber();
146
- mInvisible = invisible;
147
- mLacing = lacing;
148
- }
149
- myBuffers.push_back(&buffer);
150
-
151
- // we don't allow more than 8 frames in a Block because the overhead improvement is minimal
152
- if (/*myBuffers.size() >= 8 ||*/ lacing == LACING_NONE)
153
- return false;
154
-
155
- if (lacing == LACING_XIPH)
156
- // decide wether a new frame can be added or not
157
- // a frame in a lace is not efficient when the place necessary to code it in a lace is bigger
158
- // than the size of a simple Block. That means more than 6 bytes (4 in struct + 2 for EBML) to code the size
159
- return (buffer.Size() < 6*0xFF);
160
- else
161
- return true;
162
+ SetValueIsSet();
163
+ if (myBuffers.size() == 0) {
164
+ // first frame
165
+ Timecode = timecode;
166
+ TrackNumber = track.TrackNumber();
167
+ mInvisible = invisible;
168
+ mLacing = lacing;
169
+ }
170
+ myBuffers.push_back(&buffer);
171
+
172
+ // we don't allow more than 8 frames in a Block because the overhead improvement is minimal
173
+ if (/*myBuffers.size() >= 8 ||*/ lacing == LACING_NONE)
174
+ return false;
175
+
176
+ if (lacing == LACING_XIPH)
177
+ // decide wether a new frame can be added or not
178
+ // a frame in a lace is not efficient when the place necessary to code it in a lace is bigger
179
+ // than the size of a simple Block. That means more than 6 bytes (4 in struct + 2 for EBML) to code the size
180
+ return (buffer.Size() < 6*0xFF);
181
+ else
182
+ return true;
183
}
184
185
/*!
186
- \return Returns the lacing type that produces the smallest footprint.
187
+ \return Returns the lacing type that produces the smallest footprint.
188
*/
189
LacingType KaxInternalBlock::GetBestLacingType() const {
190
- int XiphLacingSize, EbmlLacingSize, i;
191
- bool SameSize = true;
192
-
193
- if (myBuffers.size() <= 1)
194
- return LACING_NONE;
195
-
196
- XiphLacingSize = 1; // Number of laces is stored in 1 byte.
197
- EbmlLacingSize = 1;
198
- for (i = 0; i < (int)myBuffers.size() - 1; i++) {
199
- if (myBuffers[i]->Size() != myBuffers[i + 1]->Size())
200
- SameSize = false;
201
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxBlockData.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxBlockData.cpp
Changed
137
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxBlockData.cpp 1226 2005-10-13 21:16:43Z robux4 $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxBlockData.cpp 1226 2005-10-13 21:16:43Z robux4 $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include <lgpl/cassert>
28
29
30
31
const KaxBlockBlob & KaxReferenceBlock::RefBlock() const
32
{
33
- assert(RefdBlock != NULL);
34
- return *RefdBlock;
35
+ assert(RefdBlock != NULL);
36
+ return *RefdBlock;
37
}
38
39
KaxReferenceBlock::KaxReferenceBlock(EBML_EXTRA_DEF)
40
-:EBML_DEF_SINTEGER(KaxReferenceBlock)EBML_DEF_SEP
41
-RefdBlock(NULL)
42
-,ParentBlock(NULL)
43
-,bTimecodeSet(false)
44
-,bOurBlob(false)
45
+ :EBML_DEF_SINTEGER(KaxReferenceBlock)EBML_DEF_SEP
46
+ RefdBlock(NULL)
47
+ ,ParentBlock(NULL)
48
+ ,bTimecodeSet(false)
49
+ ,bOurBlob(false)
50
{
51
- bTimecodeSet = false;
52
+ bTimecodeSet = false;
53
}
54
55
KaxReferenceBlock::KaxReferenceBlock(const KaxReferenceBlock & ElementToClone)
56
-:EbmlSInteger(ElementToClone)
57
-,RefdBlock(NULL)
58
-,ParentBlock(NULL)
59
-,bTimecodeSet(ElementToClone.bTimecodeSet)
60
-,bOurBlob(false)
61
+ :EbmlSInteger(ElementToClone)
62
+ ,RefdBlock(NULL)
63
+ ,ParentBlock(NULL)
64
+ ,bTimecodeSet(ElementToClone.bTimecodeSet)
65
+ ,bOurBlob(false)
66
{
67
}
68
69
KaxReferenceBlock::~KaxReferenceBlock()
70
{
71
- FreeBlob();
72
+ FreeBlob();
73
}
74
75
void KaxReferenceBlock::FreeBlob()
76
{
77
- if (bOurBlob && RefdBlock!=NULL)
78
- delete RefdBlock;
79
- RefdBlock = NULL;
80
+ if (bOurBlob && RefdBlock!=NULL)
81
+ delete RefdBlock;
82
+ RefdBlock = NULL;
83
}
84
85
filepos_t KaxReferenceBlock::UpdateSize(bool bSaveDefault, bool bForceRender)
86
{
87
- if (!bTimecodeSet) {
88
- assert(RefdBlock != NULL);
89
- assert(ParentBlock != NULL);
90
+ if (!bTimecodeSet) {
91
+ assert(RefdBlock != NULL);
92
+ assert(ParentBlock != NULL);
93
94
- const KaxInternalBlock &block = *RefdBlock;
95
- *static_cast<EbmlSInteger*>(this) = (int64(block.GlobalTimecode()) - int64(ParentBlock->GlobalTimecode())) / int64(ParentBlock->GlobalTimecodeScale());
96
- }
97
- return EbmlSInteger::UpdateSize(bSaveDefault, bForceRender);
98
+ const KaxInternalBlock &block = *RefdBlock;
99
+ *static_cast<EbmlSInteger*>(this) = (int64(block.GlobalTimecode()) - int64(ParentBlock->GlobalTimecode())) / int64(ParentBlock->GlobalTimecodeScale());
100
+ }
101
+ return EbmlSInteger::UpdateSize(bSaveDefault, bForceRender);
102
}
103
104
void KaxReferenceBlock::SetReferencedBlock(const KaxBlockBlob * aRefdBlock)
105
{
106
- assert(RefdBlock == NULL);
107
- assert(aRefdBlock != NULL);
108
- FreeBlob();
109
- RefdBlock = aRefdBlock;
110
- bOurBlob = true;
111
- SetValueIsSet();
112
+ assert(RefdBlock == NULL);
113
+ assert(aRefdBlock != NULL);
114
+ FreeBlob();
115
+ RefdBlock = aRefdBlock;
116
+ bOurBlob = true;
117
+ SetValueIsSet();
118
}
119
120
void KaxReferenceBlock::SetReferencedBlock(const KaxBlockGroup & aRefdBlock)
121
{
122
- FreeBlob();
123
- KaxBlockBlob *block_blob = new KaxBlockBlob(BLOCK_BLOB_NO_SIMPLE);
124
- block_blob->SetBlockGroup(*const_cast<KaxBlockGroup*>(&aRefdBlock));
125
- RefdBlock = block_blob;
126
- bOurBlob = true;
127
- SetValueIsSet();
128
+ FreeBlob();
129
+ KaxBlockBlob *block_blob = new KaxBlockBlob(BLOCK_BLOB_NO_SIMPLE);
130
+ block_blob->SetBlockGroup(*const_cast<KaxBlockGroup*>(&aRefdBlock));
131
+ RefdBlock = block_blob;
132
+ bOurBlob = true;
133
+ SetValueIsSet();
134
}
135
136
END_LIBMATROSKA_NAMESPACE
137
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxCluster.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxCluster.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxCluster.cpp 1228 2005-10-14 19:36:51Z robux4 $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxCluster.cpp 1228 2005-10-14 19:36:51Z robux4 $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "matroska/KaxCluster.h"
28
#include "matroska/KaxBlock.h"
29
30
START_LIBMATROSKA_NAMESPACE
31
32
KaxCluster::KaxCluster(EBML_EXTRA_DEF)
33
- :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxCluster) EBML_DEF_SEP EBML_EXTRA_CALL)
34
- ,currentNewBlock(NULL)
35
- ,ParentSegment(NULL)
36
- ,bFirstFrameInside(false)
37
- ,bPreviousTimecodeIsSet(false)
38
- ,bTimecodeScaleIsSet(false)
39
- ,bSilentTracksUsed(false)
40
+ :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxCluster) EBML_DEF_SEP EBML_EXTRA_CALL)
41
+ ,currentNewBlock(NULL)
42
+ ,ParentSegment(NULL)
43
+ ,bFirstFrameInside(false)
44
+ ,bPreviousTimecodeIsSet(false)
45
+ ,bTimecodeScaleIsSet(false)
46
+ ,bSilentTracksUsed(false)
47
{}
48
49
-KaxCluster::KaxCluster(const KaxCluster & ElementToClone)
50
- :EbmlMaster(ElementToClone)
51
- ,bSilentTracksUsed(ElementToClone.bSilentTracksUsed)
52
+KaxCluster::KaxCluster(const KaxCluster & ElementToClone)
53
+ :EbmlMaster(ElementToClone)
54
+ ,bSilentTracksUsed(ElementToClone.bSilentTracksUsed)
55
{
56
- // update the parent of each children
57
- EBML_MASTER_ITERATOR Itr = begin();
58
- while (Itr != end())
59
- {
60
- if (EbmlId(**Itr) == EBML_ID(KaxBlockGroup)) {
61
- static_cast<KaxBlockGroup *>(*Itr)->SetParent(*this);
62
- } else if (EbmlId(**Itr) == EBML_ID(KaxBlock)) {
63
- static_cast<KaxBlock *>(*Itr)->SetParent(*this);
64
+ // update the parent of each children
65
+ EBML_MASTER_ITERATOR Itr = begin();
66
+ while (Itr != end()) {
67
+ if (EbmlId(**Itr) == EBML_ID(KaxBlockGroup)) {
68
+ static_cast<KaxBlockGroup *>(*Itr)->SetParent(*this);
69
+ } else if (EbmlId(**Itr) == EBML_ID(KaxBlock)) {
70
+ static_cast<KaxBlock *>(*Itr)->SetParent(*this);
71
#if MATROSKA_VERSION >= 2
72
- } else if (EbmlId(**Itr) == EBML_ID(KaxBlockVirtual)) {
73
- static_cast<KaxBlockVirtual *>(*Itr)->SetParent(*this);
74
+ } else if (EbmlId(**Itr) == EBML_ID(KaxBlockVirtual)) {
75
+ static_cast<KaxBlockVirtual *>(*Itr)->SetParent(*this);
76
#endif // MATROSKA_VERSION
77
- }
78
- ++Itr;
79
- }
80
+ }
81
+ ++Itr;
82
+ }
83
}
84
85
bool KaxCluster::AddBlockBlob(KaxBlockBlob * NewBlob)
86
{
87
- Blobs.push_back(NewBlob);
88
- return true;
89
+ Blobs.push_back(NewBlob);
90
+ return true;
91
}
92
93
bool KaxCluster::AddFrameInternal(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, const KaxBlockGroup * PastBlock, const KaxBlockGroup * ForwBlock, LacingType lacing)
94
{
95
- if (!bFirstFrameInside) {
96
- bFirstFrameInside = true;
97
- MinTimecode = MaxTimecode = timecode;
98
- } else {
99
- if (timecode < MinTimecode)
100
- MinTimecode = timecode;
101
- if (timecode > MaxTimecode)
102
- MaxTimecode = timecode;
103
- }
104
-
105
- MyNewBlock = NULL;
106
-
107
- if (lacing == LACING_NONE || !track.LacingEnabled()) {
108
- currentNewBlock = NULL;
109
- }
110
-
111
- // force creation of a new block
112
- if (currentNewBlock == NULL || uint32(track.TrackNumber()) != uint32(currentNewBlock->TrackNumber()) || PastBlock != NULL || ForwBlock != NULL) {
113
- KaxBlockGroup & aNewBlock = GetNewBlock();
114
- MyNewBlock = currentNewBlock = &aNewBlock;
115
- }
116
-
117
- if (PastBlock != NULL) {
118
- if (ForwBlock != NULL) {
119
- if (currentNewBlock->AddFrame(track, timecode, buffer, *PastBlock, *ForwBlock, lacing)) {
120
- // more data are allowed in this Block
121
- return true;
122
- } else {
123
- currentNewBlock = NULL;
124
- return false;
125
- }
126
- } else {
127
- if (currentNewBlock->AddFrame(track, timecode, buffer, *PastBlock, lacing)) {
128
- // more data are allowed in this Block
129
- return true;
130
- } else {
131
- currentNewBlock = NULL;
132
- return false;
133
- }
134
- }
135
- } else {
136
- if (currentNewBlock->AddFrame(track, timecode, buffer, lacing)) {
137
- // more data are allowed in this Block
138
- return true;
139
- } else {
140
- currentNewBlock = NULL;
141
- return false;
142
- }
143
- }
144
+ if (!bFirstFrameInside) {
145
+ bFirstFrameInside = true;
146
+ MinTimecode = MaxTimecode = timecode;
147
+ } else {
148
+ if (timecode < MinTimecode)
149
+ MinTimecode = timecode;
150
+ if (timecode > MaxTimecode)
151
+ MaxTimecode = timecode;
152
+ }
153
+
154
+ MyNewBlock = NULL;
155
+
156
+ if (lacing == LACING_NONE || !track.LacingEnabled()) {
157
+ currentNewBlock = NULL;
158
+ }
159
+
160
+ // force creation of a new block
161
+ if (currentNewBlock == NULL || uint32(track.TrackNumber()) != uint32(currentNewBlock->TrackNumber()) || PastBlock != NULL || ForwBlock != NULL) {
162
+ KaxBlockGroup & aNewBlock = GetNewBlock();
163
+ MyNewBlock = currentNewBlock = &aNewBlock;
164
+ }
165
+
166
+ if (PastBlock != NULL) {
167
+ if (ForwBlock != NULL) {
168
+ if (currentNewBlock->AddFrame(track, timecode, buffer, *PastBlock, *ForwBlock, lacing)) {
169
+ // more data are allowed in this Block
170
+ return true;
171
+ } else {
172
+ currentNewBlock = NULL;
173
+ return false;
174
+ }
175
+ } else {
176
+ if (currentNewBlock->AddFrame(track, timecode, buffer, *PastBlock, lacing)) {
177
+ // more data are allowed in this Block
178
+ return true;
179
+ } else {
180
+ currentNewBlock = NULL;
181
+ return false;
182
+ }
183
+ }
184
+ } else {
185
+ if (currentNewBlock->AddFrame(track, timecode, buffer, lacing)) {
186
+ // more data are allowed in this Block
187
+ return true;
188
+ } else {
189
+ currentNewBlock = NULL;
190
+ return false;
191
+ }
192
+ }
193
}
194
195
bool KaxCluster::AddFrame(const KaxTrackEntry & track, uint64 timecode, DataBuffer & buffer, KaxBlockGroup * & MyNewBlock, LacingType lacing)
196
{
197
- assert(Blobs.size() == 0); // mutually exclusive for the moment
198
- return AddFrameInternal(track, timecode, buffer, MyNewBlock, NULL, NULL, lacing);
199
+ assert(Blobs.size() == 0); // mutually exclusive for the moment
200
+ return AddFrameInternal(track, timecode, buffer, MyNewBlock, NULL, NULL, lacing);
201
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxContexts.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxContexts.cpp
Changed
38
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxContexts.cpp 640 2004-07-09 21:05:36Z mosu $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxContexts.cpp 640 2004-07-09 21:05:36Z mosu $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "ebml/EbmlContexts.h"
28
#include "ebml/EbmlHead.h"
29
30
// for the moment
31
const EbmlSemanticContext & GetKaxGlobal_Context()
32
{
33
- return GetEbmlGlobal_Context();
34
+ return GetEbmlGlobal_Context();
35
}
36
37
END_LIBMATROSKA_NAMESPACE
38
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxCues.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxCues.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxCues.cpp 1265 2007-01-14 17:20:35Z mosu $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxCues.cpp 1265 2007-01-14 17:20:35Z mosu $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include <lgpl/cassert>
28
29
30
31
KaxCues::~KaxCues()
32
{
33
- assert(myTempReferences.size() == 0); // otherwise that means you have added references and forgot to set the position
34
+ assert(myTempReferences.size() == 0); // otherwise that means you have added references and forgot to set the position
35
}
36
/* deprecated and wrong
37
bool KaxCues::AddBlockGroup(const KaxBlockGroup & BlockRef)
38
{
39
- // Do not add the element if it's already present.
40
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
41
- KaxBlockBlob *BlockReference = new KaxBlockBlob(BLOCK_BLOB_NO_SIMPLE);
42
- BlockReference->SetBlockGroup(*const_cast<KaxBlockGroup*>(&BlockRef));
43
-
44
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ListIdx++)
45
- if (&(KaxBlockGroup&)*ListIdx == &BlockRef)
46
- {
47
- delete BlockReference;
48
- return true;
49
- }
50
-
51
- myTempReferences.push_back(BlockReference);
52
- return true;
53
+ // Do not add the element if it's already present.
54
+ std::vector<const KaxBlockBlob *>::iterator ListIdx;
55
+ KaxBlockBlob *BlockReference = new KaxBlockBlob(BLOCK_BLOB_NO_SIMPLE);
56
+ BlockReference->SetBlockGroup(*const_cast<KaxBlockGroup*>(&BlockRef));
57
+
58
+ for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ListIdx++)
59
+ if (&(KaxBlockGroup&)*ListIdx == &BlockRef) {
60
+ delete BlockReference;
61
+ return true;
62
+ }
63
+
64
+ myTempReferences.push_back(BlockReference);
65
+ return true;
66
}
67
*/
68
bool KaxCues::AddBlockBlob(const KaxBlockBlob & BlockReference)
69
{
70
- // Do not add the element if it's already present.
71
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
72
+ // Do not add the element if it's already present.
73
+ std::vector<const KaxBlockBlob *>::iterator ListIdx;
74
75
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx)
76
- if (*ListIdx == &BlockReference)
77
- return true;
78
+ for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx)
79
+ if (*ListIdx == &BlockReference)
80
+ return true;
81
82
- myTempReferences.push_back(&BlockReference);
83
- return true;
84
+ myTempReferences.push_back(&BlockReference);
85
+ return true;
86
}
87
88
void KaxCues::PositionSet(const KaxBlockBlob & BlockReference)
89
{
90
- // look for the element in the temporary references
91
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
92
-
93
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx) {
94
- if (*ListIdx == &BlockReference) {
95
- // found, now add the element to the entry list
96
- KaxCuePoint & NewPoint = AddNewChild<KaxCuePoint>(*this);
97
- NewPoint.PositionSet(BlockReference, GlobalTimecodeScale());
98
- myTempReferences.erase(ListIdx);
99
- break;
100
- }
101
- }
102
+ // look for the element in the temporary references
103
+ std::vector<const KaxBlockBlob *>::iterator ListIdx;
104
+
105
+ for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx) {
106
+ if (*ListIdx == &BlockReference) {
107
+ // found, now add the element to the entry list
108
+ KaxCuePoint & NewPoint = AddNewChild<KaxCuePoint>(*this);
109
+ NewPoint.PositionSet(BlockReference, GlobalTimecodeScale());
110
+ myTempReferences.erase(ListIdx);
111
+ break;
112
+ }
113
+ }
114
}
115
116
void KaxCues::PositionSet(const KaxBlockGroup & BlockRef)
117
{
118
- // look for the element in the temporary references
119
- std::vector<const KaxBlockBlob *>::iterator ListIdx;
120
-
121
- for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx) {
122
- const KaxInternalBlock &refTmp = **ListIdx;
123
- if (refTmp.GlobalTimecode() == BlockRef.GlobalTimecode() &&
124
- refTmp.TrackNum() == BlockRef.TrackNumber()) {
125
- // found, now add the element to the entry list
126
- KaxCuePoint & NewPoint = AddNewChild<KaxCuePoint>(*this);
127
- NewPoint.PositionSet(**ListIdx, GlobalTimecodeScale());
128
- myTempReferences.erase(ListIdx);
129
- break;
130
- }
131
- }
132
+ // look for the element in the temporary references
133
+ std::vector<const KaxBlockBlob *>::iterator ListIdx;
134
+
135
+ for (ListIdx = myTempReferences.begin(); ListIdx != myTempReferences.end(); ++ListIdx) {
136
+ const KaxInternalBlock &refTmp = **ListIdx;
137
+ if (refTmp.GlobalTimecode() == BlockRef.GlobalTimecode() &&
138
+ refTmp.TrackNum() == BlockRef.TrackNumber()) {
139
+ // found, now add the element to the entry list
140
+ KaxCuePoint & NewPoint = AddNewChild<KaxCuePoint>(*this);
141
+ NewPoint.PositionSet(**ListIdx, GlobalTimecodeScale());
142
+ myTempReferences.erase(ListIdx);
143
+ break;
144
+ }
145
+ }
146
}
147
148
/*!
149
- \warning Assume that the list has been sorted (Sort())
150
+ \warning Assume that the list has been sorted (Sort())
151
*/
152
const KaxCuePoint * KaxCues::GetTimecodePoint(uint64 aTimecode) const
153
{
154
- uint64 TimecodeToLocate = aTimecode / GlobalTimecodeScale();
155
- const KaxCuePoint * aPointPrev = NULL;
156
- uint64 aPrevTime = 0;
157
- uint64 aNextTime = EBML_PRETTYLONGINT(0xFFFFFFFFFFFF);
158
-
159
- EBML_MASTER_CONST_ITERATOR Itr;
160
- for (Itr = begin(); Itr != end(); ++Itr)
161
- {
162
- if (EbmlId(*(*Itr)) == EBML_ID(KaxCuePoint)) {
163
- const KaxCuePoint *tmp = static_cast<const KaxCuePoint *>(*Itr);
164
- // check the tile
165
- const KaxCueTime *aTime = static_cast<const KaxCueTime *>(tmp->FindFirstElt(EBML_INFO(KaxCueTime)));
166
- if (aTime != NULL)
167
- {
168
- uint64 _Time = uint64(*aTime);
169
- if (_Time > aPrevTime && _Time < TimecodeToLocate) {
170
- aPrevTime = _Time;
171
- aPointPrev = tmp;
172
- }
173
- if (_Time < aNextTime && _Time > TimecodeToLocate) {
174
- aNextTime= _Time;
175
- }
176
- }
177
- }
178
- }
179
-
180
- return aPointPrev;
181
+ uint64 TimecodeToLocate = aTimecode / GlobalTimecodeScale();
182
+ const KaxCuePoint * aPointPrev = NULL;
183
+ uint64 aPrevTime = 0;
184
+ uint64 aNextTime = EBML_PRETTYLONGINT(0xFFFFFFFFFFFF);
185
+
186
+ EBML_MASTER_CONST_ITERATOR Itr;
187
+ for (Itr = begin(); Itr != end(); ++Itr) {
188
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxCuePoint)) {
189
+ const KaxCuePoint *tmp = static_cast<const KaxCuePoint *>(*Itr);
190
+ // check the tile
191
+ const KaxCueTime *aTime = static_cast<const KaxCueTime *>(tmp->FindFirstElt(EBML_INFO(KaxCueTime)));
192
+ if (aTime != NULL) {
193
+ uint64 _Time = uint64(*aTime);
194
+ if (_Time > aPrevTime && _Time < TimecodeToLocate) {
195
+ aPrevTime = _Time;
196
+ aPointPrev = tmp;
197
+ }
198
+ if (_Time < aNextTime && _Time > TimecodeToLocate) {
199
+ aNextTime= _Time;
200
+ }
201
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxCuesData.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxCuesData.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxCuesData.cpp 1265 2007-01-14 17:20:35Z mosu $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxCuesData.cpp 1265 2007-01-14 17:20:35Z mosu $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include <lgpl/cassert>
28
29
30
START_LIBMATROSKA_NAMESPACE
31
32
/*!
33
- \todo handle codec state checking
34
- \todo remove duplicate references (reference to 2 frames that each reference the same frame)
35
+ \todo handle codec state checking
36
+ \todo remove duplicate references (reference to 2 frames that each reference the same frame)
37
*/
38
void KaxCuePoint::PositionSet(const KaxBlockGroup & BlockReference, uint64 GlobalTimecodeScale)
39
{
40
- // fill me
41
- KaxCueTime & NewTime = GetChild<KaxCueTime>(*this);
42
- *static_cast<EbmlUInteger*>(&NewTime) = BlockReference.GlobalTimecode() / GlobalTimecodeScale;
43
+ // fill me
44
+ KaxCueTime & NewTime = GetChild<KaxCueTime>(*this);
45
+ *static_cast<EbmlUInteger*>(&NewTime) = BlockReference.GlobalTimecode() / GlobalTimecodeScale;
46
+
47
+ KaxCueTrackPositions & NewPositions = AddNewChild<KaxCueTrackPositions>(*this);
48
+ KaxCueTrack & TheTrack = GetChild<KaxCueTrack>(NewPositions);
49
+ *static_cast<EbmlUInteger*>(&TheTrack) = BlockReference.TrackNumber();
50
51
- KaxCueTrackPositions & NewPositions = AddNewChild<KaxCueTrackPositions>(*this);
52
- KaxCueTrack & TheTrack = GetChild<KaxCueTrack>(NewPositions);
53
- *static_cast<EbmlUInteger*>(&TheTrack) = BlockReference.TrackNumber();
54
-
55
- KaxCueClusterPosition & TheClustPos = GetChild<KaxCueClusterPosition>(NewPositions);
56
- *static_cast<EbmlUInteger*>(&TheClustPos) = BlockReference.ClusterPosition();
57
+ KaxCueClusterPosition & TheClustPos = GetChild<KaxCueClusterPosition>(NewPositions);
58
+ *static_cast<EbmlUInteger*>(&TheClustPos) = BlockReference.ClusterPosition();
59
60
#if MATROSKA_VERSION >= 2
61
- // handle reference use
62
- if (BlockReference.ReferenceCount() != 0)
63
- {
64
- unsigned int i;
65
- for (i=0; i<BlockReference.ReferenceCount(); i++) {
66
- KaxCueReference & NewRefs = AddNewChild<KaxCueReference>(NewPositions);
67
- NewRefs.AddReference(BlockReference.Reference(i).RefBlock(), GlobalTimecodeScale);
68
- }
69
- }
70
-
71
- KaxCodecState *CodecState = static_cast<KaxCodecState *>(BlockReference.FindFirstElt(EBML_INFO(KaxCodecState)));
72
- if (CodecState != NULL) {
73
- KaxCueCodecState &CueCodecState = AddNewChild<KaxCueCodecState>(NewPositions);
74
- *static_cast<EbmlUInteger*>(&CueCodecState) = BlockReference.GetParentCluster()->GetParentSegment()->GetRelativePosition(CodecState->GetElementPosition());
75
- }
76
+ // handle reference use
77
+ if (BlockReference.ReferenceCount() != 0) {
78
+ unsigned int i;
79
+ for (i=0; i<BlockReference.ReferenceCount(); i++) {
80
+ KaxCueReference & NewRefs = AddNewChild<KaxCueReference>(NewPositions);
81
+ NewRefs.AddReference(BlockReference.Reference(i).RefBlock(), GlobalTimecodeScale);
82
+ }
83
+ }
84
+
85
+ KaxCodecState *CodecState = static_cast<KaxCodecState *>(BlockReference.FindFirstElt(EBML_INFO(KaxCodecState)));
86
+ if (CodecState != NULL) {
87
+ KaxCueCodecState &CueCodecState = AddNewChild<KaxCueCodecState>(NewPositions);
88
+ *static_cast<EbmlUInteger*>(&CueCodecState) = BlockReference.GetParentCluster()->GetParentSegment()->GetRelativePosition(CodecState->GetElementPosition());
89
+ }
90
#endif // MATROSKA_VERSION
91
92
- SetValueIsSet();
93
+ SetValueIsSet();
94
}
95
96
void KaxCuePoint::PositionSet(const KaxBlockBlob & BlobReference, uint64 GlobalTimecodeScale)
97
{
98
- const KaxInternalBlock &BlockReference = BlobReference;
99
- const KaxBlockGroup* BlockGroupPointer = NULL;
100
-
101
- if (!BlobReference.IsSimpleBlock()) {
102
- const KaxBlockGroup &BlockGroup = BlobReference;
103
- BlockGroupPointer = & BlockGroup;
104
- }
105
- PositionSet(BlockReference,BlockGroupPointer,GlobalTimecodeScale);
106
+ const KaxInternalBlock &BlockReference = BlobReference;
107
+ const KaxBlockGroup* BlockGroupPointer = NULL;
108
+
109
+ if (!BlobReference.IsSimpleBlock()) {
110
+ const KaxBlockGroup &BlockGroup = BlobReference;
111
+ BlockGroupPointer = & BlockGroup;
112
+ }
113
+ PositionSet(BlockReference,BlockGroupPointer,GlobalTimecodeScale);
114
}
115
116
void KaxCuePoint::PositionSet(const KaxSimpleBlock & BlockReference, uint64 GlobalTimecodeScale)
117
{
118
- PositionSet(BlockReference,NULL,GlobalTimecodeScale);
119
+ PositionSet(BlockReference,NULL,GlobalTimecodeScale);
120
}
121
122
void KaxCuePoint::PositionSet(const KaxInternalBlock & BlockReference, const KaxBlockGroup* BlockGroup, uint64 GlobalTimecodeScale)
123
{
124
- // fill me
125
- KaxCueTime & NewTime = GetChild<KaxCueTime>(*this);
126
- *static_cast<EbmlUInteger*>(&NewTime) = BlockReference.GlobalTimecode() / GlobalTimecodeScale;
127
+ // fill me
128
+ KaxCueTime & NewTime = GetChild<KaxCueTime>(*this);
129
+ *static_cast<EbmlUInteger*>(&NewTime) = BlockReference.GlobalTimecode() / GlobalTimecodeScale;
130
+ KaxCueTrackPositions & NewPositions = AddNewChild<KaxCueTrackPositions>(*this);
131
+ KaxCueTrack & TheTrack = GetChild<KaxCueTrack>(NewPositions);
132
+ *static_cast<EbmlUInteger*>(&TheTrack) = BlockReference.TrackNum();
133
134
- KaxCueTrackPositions & NewPositions = AddNewChild<KaxCueTrackPositions>(*this);
135
- KaxCueTrack & TheTrack = GetChild<KaxCueTrack>(NewPositions);
136
- *static_cast<EbmlUInteger*>(&TheTrack) = BlockReference.TrackNum();
137
-
138
- KaxCueClusterPosition & TheClustPos = GetChild<KaxCueClusterPosition>(NewPositions);
139
- *static_cast<EbmlUInteger*>(&TheClustPos) = BlockReference.ClusterPosition();
140
+ KaxCueClusterPosition & TheClustPos = GetChild<KaxCueClusterPosition>(NewPositions);
141
+ *static_cast<EbmlUInteger*>(&TheClustPos) = BlockReference.ClusterPosition();
142
143
#if 0 // MATROSKA_VERSION >= 2
144
- // handle reference use
145
- if (BlockReference.ReferenceCount() != 0)
146
- {
147
- unsigned int i;
148
- for (i=0; i<BlockReference.ReferenceCount(); i++) {
149
- KaxCueReference & NewRefs = AddNewChild<KaxCueReference>(NewPositions);
150
- NewRefs.AddReference(BlockReference.Reference(i).RefBlock(), GlobalTimecodeScale);
151
- }
152
- }
153
+ // handle reference use
154
+ if (BlockReference.ReferenceCount() != 0) {
155
+ unsigned int i;
156
+ for (i=0; i<BlockReference.ReferenceCount(); i++) {
157
+ KaxCueReference & NewRefs = AddNewChild<KaxCueReference>(NewPositions);
158
+ NewRefs.AddReference(BlockReference.Reference(i).RefBlock(), GlobalTimecodeScale);
159
+ }
160
+ }
161
#endif // MATROSKA_VERSION
162
163
#if MATROSKA_VERSION >= 2
164
- if (BlockGroup!=NULL) {
165
- const KaxCodecState *CodecState = static_cast<KaxCodecState *>(BlockGroup->FindFirstElt(EBML_INFO(KaxCodecState)));
166
- if (CodecState != NULL) {
167
- KaxCueCodecState &CueCodecState = AddNewChild<KaxCueCodecState>(NewPositions);
168
- *static_cast<EbmlUInteger*>(&CueCodecState) = BlockGroup->GetParentCluster()->GetParentSegment()->GetRelativePosition(CodecState->GetElementPosition());
169
- }
170
- }
171
+ if (BlockGroup!=NULL) {
172
+ const KaxCodecState *CodecState = static_cast<KaxCodecState *>(BlockGroup->FindFirstElt(EBML_INFO(KaxCodecState)));
173
+ if (CodecState != NULL) {
174
+ KaxCueCodecState &CueCodecState = AddNewChild<KaxCueCodecState>(NewPositions);
175
+ *static_cast<EbmlUInteger*>(&CueCodecState) = BlockGroup->GetParentCluster()->GetParentSegment()->GetRelativePosition(CodecState->GetElementPosition());
176
+ }
177
+ }
178
#endif // MATROSKA_VERSION
179
180
- SetValueIsSet();
181
+ SetValueIsSet();
182
}
183
184
#if MATROSKA_VERSION >= 2
185
/*!
186
- \todo handle codec state checking
187
+ \todo handle codec state checking
188
*/
189
void KaxCueReference::AddReference(const KaxBlockBlob & BlockReference, uint64 GlobalTimecodeScale)
190
{
191
- const KaxInternalBlock & theBlock = BlockReference;
192
- KaxCueRefTime & NewTime = GetChild<KaxCueRefTime>(*this);
193
- *static_cast<EbmlUInteger*>(&NewTime) = theBlock.GlobalTimecode() / GlobalTimecodeScale;
194
+ const KaxInternalBlock & theBlock = BlockReference;
195
+ KaxCueRefTime & NewTime = GetChild<KaxCueRefTime>(*this);
196
+ *static_cast<EbmlUInteger*>(&NewTime) = theBlock.GlobalTimecode() / GlobalTimecodeScale;
197
198
- KaxCueRefCluster & TheClustPos = GetChild<KaxCueRefCluster>(*this);
199
- *static_cast<EbmlUInteger*>(&TheClustPos) = theBlock.ClusterPosition();
200
+ KaxCueRefCluster & TheClustPos = GetChild<KaxCueRefCluster>(*this);
201
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxInfoData.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxInfoData.cpp
Changed
53
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id$
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
- \author John Cannon <spyder2555 @ users.sf.net>
24
+ \file
25
+ \version \$Id$
26
+ \author Steve Lhomme <robux4 @ users.sf.net>
27
+ \author John Cannon <spyder2555 @ users.sf.net>
28
*/
29
#include "matroska/KaxInfoData.h"
30
#include "matroska/KaxContexts.h"
31
32
START_LIBMATROSKA_NAMESPACE
33
34
KaxPrevUID::KaxPrevUID(EBML_EXTRA_DEF)
35
-:KaxSegmentUID(EBML_DEF_BINARY_CTX(KaxPrevUID) EBML_DEF_SEP EBML_EXTRA_CALL)
36
+ :KaxSegmentUID(EBML_DEF_BINARY_CTX(KaxPrevUID) EBML_DEF_SEP EBML_EXTRA_CALL)
37
{
38
}
39
40
KaxNextUID::KaxNextUID(EBML_EXTRA_DEF)
41
-:KaxSegmentUID(EBML_DEF_BINARY_CTX(KaxNextUID) EBML_DEF_SEP EBML_EXTRA_CALL)
42
+ :KaxSegmentUID(EBML_DEF_BINARY_CTX(KaxNextUID) EBML_DEF_SEP EBML_EXTRA_CALL)
43
{
44
}
45
46
#if defined(HAVE_EBML2) || defined(HAS_EBML2)
47
KaxSegmentUID::KaxSegmentUID(EBML_DEF_CONS EBML_DEF_SEP EBML_EXTRA_DEF)
48
-:EbmlBinary(EBML_DEF_PARAM EBML_DEF_SEP EBML_EXTRA_CALL)
49
+ :EbmlBinary(EBML_DEF_PARAM EBML_DEF_SEP EBML_EXTRA_CALL)
50
{
51
}
52
#endif
53
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxSeekHead.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxSeekHead.cpp
Changed
201
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxSeekHead.cpp 640 2004-07-09 21:05:36Z mosu $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxSeekHead.cpp 640 2004-07-09 21:05:36Z mosu $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "matroska/KaxSeekHead.h"
28
#include "matroska/KaxContexts.h"
29
30
START_LIBMATROSKA_NAMESPACE
31
32
/*!
33
- \todo verify that the element is not already in the list
34
+ \todo verify that the element is not already in the list
35
*/
36
KaxSeek * KaxSeekHead::IndexThis(const EbmlElement & aElt, const KaxSegment & ParentSegment)
37
{
38
- // create a new point
39
- KaxSeek & aNewPoint = AddNewChild<KaxSeek>(*this);
40
-
41
- // add the informations to this element
42
- KaxSeekPosition & aNewPos = GetChild<KaxSeekPosition>(aNewPoint);
43
- *static_cast<EbmlUInteger *>(&aNewPos) = ParentSegment.GetRelativePosition(aElt);
44
-
45
- KaxSeekID & aNewID = GetChild<KaxSeekID>(aNewPoint);
46
- binary ID[4];
47
- ((const EbmlId&)aElt).Fill(ID);
48
- aNewID.CopyBuffer(ID, EBML_ID_LENGTH((const EbmlId&)aElt));
49
- return &aNewPoint;
50
+ // create a new point
51
+ KaxSeek & aNewPoint = AddNewChild<KaxSeek>(*this);
52
+
53
+ // add the informations to this element
54
+ KaxSeekPosition & aNewPos = GetChild<KaxSeekPosition>(aNewPoint);
55
+ *static_cast<EbmlUInteger *>(&aNewPos) = ParentSegment.GetRelativePosition(aElt);
56
+
57
+ KaxSeekID & aNewID = GetChild<KaxSeekID>(aNewPoint);
58
+ binary ID[4];
59
+ ((const EbmlId&)aElt).Fill(ID);
60
+ aNewID.CopyBuffer(ID, EBML_ID_LENGTH((const EbmlId&)aElt));
61
+ return &aNewPoint;
62
}
63
64
KaxSeek * KaxSeekHead::FindFirstOf(const EbmlCallbacks & Callbacks) const
65
{
66
- // parse all the Entries and find the first to match the type
67
- KaxSeek * aElt = static_cast<KaxSeek *>(FindFirstElt(EBML_INFO(KaxSeek)));
68
- while (aElt != NULL)
69
- {
70
- KaxSeekID * aId = NULL;
71
- EBML_MASTER_ITERATOR Itr;
72
- for (Itr = aElt->begin(); Itr != aElt->end(); ++Itr)
73
- {
74
- if (EbmlId(*(*Itr)) == EBML_ID(KaxSeekID)) {
75
- aId = static_cast<KaxSeekID*>(*Itr);
76
- EbmlId aEbmlId(aId->GetBuffer(), (unsigned int) aId->GetSize());
77
- if (aEbmlId == EBML_INFO_ID(Callbacks))
78
- {
79
- return aElt;
80
- }
81
- break;
82
- }
83
- }
84
- aElt = static_cast<KaxSeek *>(FindNextElt(*aElt));
85
- }
86
-
87
- return NULL;
88
+ // parse all the Entries and find the first to match the type
89
+ KaxSeek * aElt = static_cast<KaxSeek *>(FindFirstElt(EBML_INFO(KaxSeek)));
90
+ while (aElt != NULL) {
91
+ KaxSeekID * aId = NULL;
92
+ EBML_MASTER_ITERATOR Itr;
93
+ for (Itr = aElt->begin(); Itr != aElt->end(); ++Itr) {
94
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxSeekID)) {
95
+ aId = static_cast<KaxSeekID*>(*Itr);
96
+ EbmlId aEbmlId(aId->GetBuffer(), (unsigned int)aId->GetSize());
97
+ if (aEbmlId == EBML_INFO_ID(Callbacks)) {
98
+ return aElt;
99
+ }
100
+ break;
101
+ }
102
+ }
103
+ aElt = static_cast<KaxSeek *>(FindNextElt(*aElt));
104
+ }
105
+
106
+ return NULL;
107
}
108
109
KaxSeek * KaxSeekHead::FindNextOf(const KaxSeek &aPrev) const
110
{
111
- EBML_MASTER_CONST_ITERATOR Itr;
112
- KaxSeek *tmp;
113
-
114
- // look for the previous in the list
115
- for (Itr = begin(); Itr != end(); ++Itr)
116
- {
117
- if (*Itr == static_cast<const EbmlElement*>(&aPrev))
118
- break;
119
- }
120
-
121
- if (Itr != end())
122
- {
123
- ++Itr;
124
- for (; Itr != end(); ++Itr)
125
- {
126
- if (EbmlId(*(*Itr)) == EBML_ID(KaxSeek))
127
- {
128
- tmp = (KaxSeek *)(*Itr);
129
- if (tmp->IsEbmlId(aPrev))
130
- return tmp;
131
- }
132
- }
133
- }
134
-
135
- return NULL;
136
+ EBML_MASTER_CONST_ITERATOR Itr;
137
+ KaxSeek *tmp;
138
+
139
+ // look for the previous in the list
140
+ for (Itr = begin(); Itr != end(); ++Itr) {
141
+ if (*Itr == static_cast<const EbmlElement*>(&aPrev))
142
+ break;
143
+ }
144
+
145
+ if (Itr != end()) {
146
+ ++Itr;
147
+ for (; Itr != end(); ++Itr) {
148
+ if (EbmlId(*(*Itr)) == EBML_ID(KaxSeek)) {
149
+ tmp = (KaxSeek *)(*Itr);
150
+ if (tmp->IsEbmlId(aPrev))
151
+ return tmp;
152
+ }
153
+ }
154
+ }
155
+
156
+ return NULL;
157
}
158
159
int64 KaxSeek::Location() const
160
{
161
- KaxSeekPosition *aPos = static_cast<KaxSeekPosition*>(FindFirstElt(EBML_INFO(KaxSeekPosition)));
162
- if (aPos == NULL)
163
- return 0;
164
- return uint64(*aPos);
165
+ KaxSeekPosition *aPos = static_cast<KaxSeekPosition*>(FindFirstElt(EBML_INFO(KaxSeekPosition)));
166
+ if (aPos == NULL)
167
+ return 0;
168
+ return uint64(*aPos);
169
}
170
171
bool KaxSeek::IsEbmlId(const EbmlId & aId) const
172
{
173
- KaxSeekID *_Id = static_cast<KaxSeekID*>(FindFirstElt(EBML_INFO(KaxSeekID)));
174
- if (_Id == NULL)
175
- return false;
176
- EbmlId aEbmlId(_Id->GetBuffer(), (unsigned int) _Id->GetSize());
177
- return (aId == aEbmlId);
178
+ KaxSeekID *_Id = static_cast<KaxSeekID*>(FindFirstElt(EBML_INFO(KaxSeekID)));
179
+ if (_Id == NULL)
180
+ return false;
181
+ EbmlId aEbmlId(_Id->GetBuffer(), (unsigned int)_Id->GetSize());
182
+ return (aId == aEbmlId);
183
}
184
185
bool KaxSeek::IsEbmlId(const KaxSeek & aPoint) const
186
{
187
- KaxSeekID *_IdA = static_cast<KaxSeekID*>(FindFirstElt(EBML_INFO(KaxSeekID)));
188
- if (_IdA == NULL)
189
- return false;
190
- KaxSeekID *_IdB = static_cast<KaxSeekID*>(aPoint.FindFirstElt(EBML_INFO(KaxSeekID)));
191
- if (_IdB == NULL)
192
- return false;
193
- EbmlId aEbmlIdA(_IdA->GetBuffer(), _IdA->GetSize());
194
- EbmlId aEbmlIdB(_IdB->GetBuffer(), _IdB->GetSize());
195
- return (aEbmlIdA == aEbmlIdB);
196
+ KaxSeekID *_IdA = static_cast<KaxSeekID*>(FindFirstElt(EBML_INFO(KaxSeekID)));
197
+ if (_IdA == NULL)
198
+ return false;
199
+ KaxSeekID *_IdB = static_cast<KaxSeekID*>(aPoint.FindFirstElt(EBML_INFO(KaxSeekID)));
200
+ if (_IdB == NULL)
201
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxSegment.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxSegment.cpp
Changed
85
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxSegment.cpp 1096 2005-03-17 09:14:52Z robux4 $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxSegment.cpp 1096 2005-03-17 09:14:52Z robux4 $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "matroska/KaxSegment.h"
28
#include "ebml/EbmlHead.h"
29
30
START_LIBMATROSKA_NAMESPACE
31
32
KaxSegment::KaxSegment(EBML_EXTRA_DEF)
33
- :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxSegment) EBML_DEF_SEP EBML_EXTRA_CALL)
34
+ :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxSegment) EBML_DEF_SEP EBML_EXTRA_CALL)
35
{
36
- SetSizeLength(5); // mandatory min size support (for easier updating) (2^(7*5)-2 = 32Go)
37
- SetSizeInfinite(); // by default a segment is big and the size is unknown in advance
38
+ SetSizeLength(5); // mandatory min size support (for easier updating) (2^(7*5)-2 = 32Go)
39
+ SetSizeInfinite(); // by default a segment is big and the size is unknown in advance
40
}
41
42
KaxSegment::KaxSegment(const KaxSegment & ElementToClone)
43
- :EbmlMaster(ElementToClone)
44
+ :EbmlMaster(ElementToClone)
45
{
46
- // update the parent of each children
47
- EBML_MASTER_ITERATOR Itr = begin();
48
- while (Itr != end())
49
- {
50
- if (EbmlId(**Itr) == EBML_ID(KaxCluster)) {
51
- static_cast<KaxCluster *>(*Itr)->SetParent(*this);
52
- }
53
- ++Itr;
54
- }
55
+ // update the parent of each children
56
+ EBML_MASTER_ITERATOR Itr = begin();
57
+ while (Itr != end()) {
58
+ if (EbmlId(**Itr) == EBML_ID(KaxCluster)) {
59
+ static_cast<KaxCluster *>(*Itr)->SetParent(*this);
60
+ }
61
+ ++Itr;
62
+ }
63
}
64
65
66
uint64 KaxSegment::GetRelativePosition(uint64 aGlobalPosition) const
67
{
68
- return aGlobalPosition - GetElementPosition() - HeadSize();
69
+ return aGlobalPosition - GetElementPosition() - HeadSize();
70
}
71
72
uint64 KaxSegment::GetRelativePosition(const EbmlElement & Elt) const
73
{
74
- return GetRelativePosition(Elt.GetElementPosition());
75
+ return GetRelativePosition(Elt.GetElementPosition());
76
}
77
78
uint64 KaxSegment::GetGlobalPosition(uint64 aRelativePosition) const
79
{
80
- return aRelativePosition + GetElementPosition() + HeadSize();
81
+ return aRelativePosition + GetElementPosition() + HeadSize();
82
}
83
84
END_LIBMATROSKA_NAMESPACE
85
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxSemantic.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxSemantic.cpp
Changed
174
1
2
/**********************************************************************
3
** DO NOT EDIT, GENERATED WITH DATA2LIB
4
-**
5
+**
6
** libmatroska : parse Matroska files, see http://www.matroska.org/
7
-**
8
+**
9
** Copyright (c) 2002-2010, Matroska (non-profit organisation)
10
** All rights reserved.
11
-**
12
+**
13
** This file is part of libmatroska.
14
**
15
** This library is free software; you can redistribute it and/or
16
** modify it under the terms of the GNU Lesser General Public
17
** License as published by the Free Software Foundation; either
18
** version 2.1 of the License, or (at your option) any later version.
19
-**
20
+**
21
** This library is distributed in the hope that it will be useful,
22
** but WITHOUT ANY WARRANTY; without even the implied warranty of
23
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
24
** Lesser General Public License for more details.
25
-**
26
+**
27
** You should have received a copy of the GNU Lesser General Public
28
** License along with this library; if not, write to the Free Software
29
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
30
31
DEFINE_MKX_BINARY (KaxTagBinary, 0x4485, 2, KaxTagSimple, "TagBinary");
32
33
filepos_t KaxBlockVirtual::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
34
- assert(false); // no you are not allowed to use this element !
35
- return 0;
36
+ assert(false); // no you are not allowed to use this element !
37
+ return 0;
38
}
39
40
filepos_t KaxReferenceVirtual::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
41
- assert(false); // no you are not allowed to use this element !
42
- return 0;
43
+ assert(false); // no you are not allowed to use this element !
44
+ return 0;
45
}
46
47
filepos_t KaxSliceFrameNumber::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
48
- assert(false); // no you are not allowed to use this element !
49
- return 0;
50
+ assert(false); // no you are not allowed to use this element !
51
+ return 0;
52
}
53
54
filepos_t KaxSliceBlockAddID::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
55
- assert(false); // no you are not allowed to use this element !
56
- return 0;
57
+ assert(false); // no you are not allowed to use this element !
58
+ return 0;
59
}
60
61
filepos_t KaxSliceDelay::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
62
- assert(false); // no you are not allowed to use this element !
63
- return 0;
64
+ assert(false); // no you are not allowed to use this element !
65
+ return 0;
66
}
67
68
filepos_t KaxSliceDuration::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
69
- assert(false); // no you are not allowed to use this element !
70
- return 0;
71
+ assert(false); // no you are not allowed to use this element !
72
+ return 0;
73
}
74
75
filepos_t KaxEncryptedBlock::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
76
- assert(false); // no you are not allowed to use this element !
77
- return 0;
78
+ assert(false); // no you are not allowed to use this element !
79
+ return 0;
80
}
81
82
filepos_t KaxTrackTimecodeScale::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
83
- assert(false); // no you are not allowed to use this element !
84
- return 0;
85
+ assert(false); // no you are not allowed to use this element !
86
+ return 0;
87
}
88
89
filepos_t KaxTrackOffset::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
90
- assert(false); // no you are not allowed to use this element !
91
- return 0;
92
+ assert(false); // no you are not allowed to use this element !
93
+ return 0;
94
}
95
96
filepos_t KaxCodecSettings::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
97
- assert(false); // no you are not allowed to use this element !
98
- return 0;
99
+ assert(false); // no you are not allowed to use this element !
100
+ return 0;
101
}
102
103
filepos_t KaxCodecInfoURL::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
104
- assert(false); // no you are not allowed to use this element !
105
- return 0;
106
+ assert(false); // no you are not allowed to use this element !
107
+ return 0;
108
}
109
110
filepos_t KaxCodecDownloadURL::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
111
- assert(false); // no you are not allowed to use this element !
112
- return 0;
113
+ assert(false); // no you are not allowed to use this element !
114
+ return 0;
115
}
116
117
filepos_t KaxOldStereoMode::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
118
- assert(false); // no you are not allowed to use this element !
119
- return 0;
120
+ assert(false); // no you are not allowed to use this element !
121
+ return 0;
122
}
123
124
filepos_t KaxVideoGamma::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
125
- assert(false); // no you are not allowed to use this element !
126
- return 0;
127
+ assert(false); // no you are not allowed to use this element !
128
+ return 0;
129
}
130
131
filepos_t KaxVideoFrameRate::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
132
- assert(false); // no you are not allowed to use this element !
133
- return 0;
134
+ assert(false); // no you are not allowed to use this element !
135
+ return 0;
136
}
137
138
filepos_t KaxAudioPosition::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
139
- assert(false); // no you are not allowed to use this element !
140
- return 0;
141
+ assert(false); // no you are not allowed to use this element !
142
+ return 0;
143
}
144
145
filepos_t KaxCueRefCluster::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
146
- assert(false); // no you are not allowed to use this element !
147
- return 0;
148
+ assert(false); // no you are not allowed to use this element !
149
+ return 0;
150
}
151
152
filepos_t KaxCueRefNumber::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
153
- assert(false); // no you are not allowed to use this element !
154
- return 0;
155
+ assert(false); // no you are not allowed to use this element !
156
+ return 0;
157
}
158
159
filepos_t KaxCueRefCodecState::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
160
- assert(false); // no you are not allowed to use this element !
161
- return 0;
162
+ assert(false); // no you are not allowed to use this element !
163
+ return 0;
164
}
165
166
filepos_t KaxFileReferral::RenderData(IOCallback & /* output */, bool /* bForceRender */, bool /* bSaveDefault */) {
167
- assert(false); // no you are not allowed to use this element !
168
- return 0;
169
+ assert(false); // no you are not allowed to use this element !
170
+ return 0;
171
}
172
173
END_LIBMATROSKA_NAMESPACE
174
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxTracks.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxTracks.cpp
Changed
48
1
2
** modify it under the terms of the GNU Lesser General Public
3
** License as published by the Free Software Foundation; either
4
** version 2.1 of the License, or (at your option) any later version.
5
-**
6
+**
7
** This library is distributed in the hope that it will be useful,
8
** but WITHOUT ANY WARRANTY; without even the implied warranty of
9
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
10
** Lesser General Public License for more details.
11
-**
12
+**
13
** You should have received a copy of the GNU Lesser General Public
14
** License along with this library; if not, write to the Free Software
15
** Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
16
17
**********************************************************************/
18
19
/*!
20
- \file
21
- \version \$Id: KaxTracks.cpp 1202 2005-08-30 14:39:01Z robux4 $
22
- \author Steve Lhomme <robux4 @ users.sf.net>
23
+ \file
24
+ \version \$Id: KaxTracks.cpp 1202 2005-08-30 14:39:01Z robux4 $
25
+ \author Steve Lhomme <robux4 @ users.sf.net>
26
*/
27
#include "matroska/KaxTracks.h"
28
29
30
START_LIBMATROSKA_NAMESPACE
31
32
KaxTrackEntry::KaxTrackEntry(EBML_EXTRA_DEF)
33
- :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxTrackEntry) EBML_DEF_SEP EBML_EXTRA_CALL)
34
- ,bGlobalTimecodeScaleIsSet(false)
35
+ :EbmlMaster(EBML_CLASS_SEMCONTEXT(KaxTrackEntry) EBML_DEF_SEP EBML_EXTRA_CALL)
36
+ ,bGlobalTimecodeScaleIsSet(false)
37
{}
38
39
void KaxTrackEntry::EnableLacing(bool bEnable)
40
{
41
- KaxTrackFlagLacing & myLacing = GetChild<KaxTrackFlagLacing>(*this);
42
- *(static_cast<EbmlUInteger *>(&myLacing)) = bEnable ? 1 : 0;
43
+ KaxTrackFlagLacing & myLacing = GetChild<KaxTrackFlagLacing>(*this);
44
+ *(static_cast<EbmlUInteger *>(&myLacing)) = bEnable ? 1 : 0;
45
}
46
47
END_LIBMATROSKA_NAMESPACE
48
makemkv-oss-1.9.5.tar.xz/libmatroska/src/KaxVersion.cpp -> makemkv-oss-1.10.2.tar.xz/libmatroska/src/KaxVersion.cpp
Changed
21
1
2
**********************************************************************/
3
4
/*!
5
- \file
6
- \version \$Id: KaxVersion.cpp 640 2004-07-09 21:05:36Z mosu $
7
- \author Steve Lhomme <robux4 @ users.sf.net>
8
+ \file
9
+ \version \$Id: KaxVersion.cpp 640 2004-07-09 21:05:36Z mosu $
10
+ \author Steve Lhomme <robux4 @ users.sf.net>
11
*/
12
13
#include "matroska/KaxVersion.h"
14
15
START_LIBMATROSKA_NAMESPACE
16
17
-const ccc::string KaxCodeVersion = "1.4.1";
18
+const ccc::string KaxCodeVersion = "1.4.4";
19
20
END_LIBMATROSKA_NAMESPACE
21
makemkv-oss-1.9.5.tar.xz/libmmbd/inc/libmmbd/mmbd.h -> makemkv-oss-1.10.2.tar.xz/libmmbd/inc/libmmbd/mmbd.h
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/aacs.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/aacs.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/bdplus.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/bdplus.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/bdplus.h -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/bdplus.h
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/crypto.h -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/crypto.h
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/crypto_ossl.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/crypto_ossl.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/marmmbd.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/marmmbd.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/mmbd.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/mmbd.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/mmbdipc.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/mmbdipc.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/mmbdipc.h -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/mmbdipc.h
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/mmconn.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/mmconn.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/mmconn.h -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/mmconn.h
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/nstring.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/nstring.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/utf8.cpp -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/utf8.cpp
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/libmmbd/src/utf8.h -> makemkv-oss-1.10.2.tar.xz/libmmbd/src/utf8.h
Changed
10
1
2
/*
3
libMMBD - MakeMKV BD decryption API library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libmmbd@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libmmbd@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/makefile.common -> makemkv-oss-1.10.2.tar.xz/makefile.common
Changed
10
1
2
LIBDCADEC_SRC=libffabi/src/dcadec/bitstream.cpp libffabi/src/dcadec/core_decoder.cpp libffabi/src/dcadec/dca_context.cpp \
3
libffabi/src/dcadec/dmix_tables.cpp libffabi/src/dcadec/exss_parser.cpp libffabi/src/dcadec/idct_fixed.cpp \
4
libffabi/src/dcadec/interpolator.cpp libffabi/src/dcadec/interpolator_fixed.cpp libffabi/src/dcadec/interpolator_float.cpp \
5
- libffabi/src/dcadec/ta.cpp libffabi/src/dcadec/xll_decoder.cpp
6
+ libffabi/src/dcadec/ta.cpp libffabi/src/dcadec/xll_decoder.cpp libffabi/src/dcadec/idct_float.cpp \
7
8
LIBDCADEC_DEF=-DDCA_LOG -DDCA_FFMALLOC
9
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/inc/QtExt/NativeFileDialog.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/inc/QtExt/NativeFileDialog.h
Changed
10
1
2
/*
3
Qt extension library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libqtext@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libqtext@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/inc/lgpl/apdefs.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/inc/lgpl/apdefs.h
Changed
41
1
2
ap_iaOutputAudioChannelLayoutName=46,
3
ap_iaOutputAudioChannelLayout=47,
4
ap_iaOutputAudioMixDescription=48,
5
+ ap_iaComment=49,
6
+ ap_iaOffsetSequenceId=50,
7
ap_iaMaxValue
8
} AP_ItemAttributeId;
9
10
11
static const unsigned int AP_AVStreamFlag_DerivedStream=2048;
12
static const unsigned int AP_AVStreamFlag_ForcedSubtitles=4096;
13
static const unsigned int AP_AVStreamFlag_ProfileSecondaryStream=16384;
14
+static const unsigned int AP_AVStreamFlag_OffsetSequenceIdPresent=32768;
15
16
17
static const unsigned int AP_APP_LOC_POGZ=1;
18
19
static const unsigned long APP_IFACE_SETTINGS_ADV_DEFAULT_SELECTION=6174;
20
static const unsigned long APP_IFACE_SETTINGS_ADV_FFMPEG_PATH=6175;
21
static const unsigned long APP_IFACE_SETTINGS_ADV_DTSHDDEC_PATH=6176;
22
+static const unsigned long APP_IFACE_SETTINGS_PROT_JAVA_PATH=6177;
23
static const unsigned long APP_IFACE_BACKUPDLG_TEXT_CAPTION=6137;
24
static const unsigned long APP_IFACE_BACKUPDLG_TEXT=6138;
25
static const unsigned long APP_IFACE_BACKUPDLG_FOLDER=6139;
26
27
apset_screen_state ,
28
apset_app_DefaultProfileName ,
29
apset_app_DefaultSelectionString ,
30
- apset_old_app_ffmpeg ,
31
+ apset_app_Java ,
32
apset_app_dtshddec ,
33
apset_app_SiteInfoString ,
34
apset_path_OpenFile ,
35
+ apset_path_DestDir ,
36
+ apset_path_BackupDirMRU ,
37
+ apset_path_DestDirMRU ,
38
apset_MaxValue
39
} ApSettingId;
40
41
makemkv-oss-1.9.5.tar.xz/makemkvgui/inc/ver_num.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/inc/ver_num.h
Changed
10
1
2
#ifndef VERNUM_H_INCLUDED
3
#define VERNUM_H_INCLUDED
4
5
-#define MAKEMKV_VERSION_NUMBER "v1.9.5"
6
+#define MAKEMKV_VERSION_NUMBER "v1.10.2"
7
#define LIBMMBD_VERSION_NUMBER "v1.2.0"
8
9
#endif // VERNUM_H_INCLUDED
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/aboutbox.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/aboutbox.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/aboutbox.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/aboutbox.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/abutton.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/abutton.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/abutton.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/abutton.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/api_linux.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/api_linux.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/api_posix.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/api_posix.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/backupdlg.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/backupdlg.cpp
Changed
19
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
labelText->setWordWrap(true);
12
labelText->setText(UI_QSTRING(APP_IFACE_BACKUPDLG_TEXT));
13
14
- backupDir = new CDirSelectBox(CDirSelectBox::DirBoxOutDir,UI_QSTRING(APP_IFACE_BACKUPDLG_FOLDER));
15
+ backupDir = new CDirSelectBox(ap_client,CDirSelectBox::DirBoxOutDirBackup,UI_QSTRING(APP_IFACE_BACKUPDLG_FOLDER));
16
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel , Qt::Horizontal);
17
18
QGroupBox* box = new QGroupBox(UI_QSTRING(APP_IFACE_BACKUPDLG_TEXT_CAPTION));
19
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/backupdlg.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/backupdlg.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/client.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/client.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/dirselectbox.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/dirselectbox.cpp
Changed
201
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
#include "qtapp.h"
12
#include "image_defs.h"
13
14
-CDirSelectBox::CDirSelectBox(CDirSelectBox::Style BoxStyle,const QString &Name, QWidgetList widgets , QWidget *parent) : QGroupBox(Name,parent)
15
+CDirSelectBox::CDirSelectBox(CApClient* ap_client,CDirSelectBox::Style BoxStyle,const QString &Name, QWidgetList widgets , QWidget *parent) : QGroupBox(Name,parent)
16
{
17
+ client = ap_client;
18
style = BoxStyle;
19
- lineEditDir = new QLineEdit();
20
+ comboBoxDir = new QComboBox();
21
+ comboBoxDir->setEditable(true);
22
+ comboBoxDir->setInsertPolicy(QComboBox::NoInsert);
23
+ lineEditDir = comboBoxDir->lineEdit();
24
+ appendName = NULL;
25
+
26
connect(lineEditDir,SIGNAL(textChanged(const QString &)),this,SLOT(SlotTextChanged(const QString &)));
27
QGridLayout *lay = new QGridLayout();
28
29
30
connect(btn, SIGNAL(toggled(bool)) , this , SLOT(SlotRadioToggled()) );
31
}
32
33
- lay->addWidget(lineEditDir,row,0);
34
+ lay->addWidget(comboBoxDir,row,0);
35
lay->setColumnStretch(0,2);
36
37
static QIcon *set_folder_icon;
38
39
case DirBoxDir:
40
toolButtonAction = new QAction(*set_folder_icon, Name, this);
41
break;
42
- case DirBoxOutDir:
43
+ case DirBoxOutDirMKV:
44
+ case DirBoxOutDirBackup:
45
toolButtonAction = new QAction(*set_out_folder_icon, UI_QSTRING(APP_IFACE_ACT_SETFOLDER_NAME), this);
46
toolButtonAction->setStatusTip(UI_QSTRING(APP_IFACE_ACT_SETFOLDER_STIP));
47
break;
48
49
EmitValidChanged();
50
}
51
52
+void CDirSelectBox::setAppendName(const QString* AppendName)
53
+{
54
+ appendName = AppendName;
55
+}
56
+
57
void CDirSelectBox::setIndexValue(int Index)
58
{
59
if (Index>=MaxRadioButtons) return;
60
61
void CDirSelectBox::SlotButtonPressed()
62
{
63
QString dir;
64
+
65
+ dir = lineEditDir->text();
66
+ if (appendName) {
67
+ unsigned int dlen = dir.length();
68
+ unsigned int alen = appendName->length();
69
+ if (dlen>(alen+1)) {
70
+ if ( (dir.at(dlen-(alen+1))==QLatin1Char('/')) ||
71
+ (dir.at(dlen-(alen+1))==QLatin1Char('\\')) )
72
+ {
73
+ if (dir.endsWith(appendName)) {
74
+ dir.chop(alen+1);
75
+ }
76
+ }
77
+ }
78
+ }
79
+
80
switch(style)
81
{
82
case DirBoxDir:
83
- case DirBoxOutDir:
84
+ case DirBoxOutDirMKV:
85
+ case DirBoxOutDirBackup:
86
dir = QFileDialog::getExistingDirectory(
87
this,
88
UI_QSTRING(APP_IFACE_OPENFOLDER_TITLE),
89
- lineEditDir->text());
90
+ dir);
91
break;
92
case DirBoxFile:
93
dir = QFileDialog::getOpenFileName(
94
95
96
if ( (dir.isEmpty()) || (dir.isNull()) ) return;
97
98
- setText(dir);
99
+ if (appendName) {
100
+ dir = append(dir,appendName);
101
+ }
102
+
103
+ setText(dir,true);
104
+
105
+ if (client && (style==DirBoxOutDirMKV)) {
106
+ client->SetSettingString(apset_path_DestDirMRU,Utf16FromQString(getMRU()));
107
+ }
108
+ if (client && (style==DirBoxOutDirBackup)) {
109
+ client->SetSettingString(apset_path_BackupDirMRU,Utf16FromQString(getMRU()));
110
+ }
111
}
112
113
-void CDirSelectBox::setText(const QString &Text)
114
+void CDirSelectBox::setText(const QString &Text,bool AddMRU)
115
{
116
- lineEditDir->setText(Text);
117
+ if (AddMRU) {
118
+ addMRU(Text,true);
119
+ lineEditDir->setText(Text);
120
+ comboBoxDir->setCurrentIndex(0);
121
+ } else {
122
+ lineEditDir->setText(Text);
123
+ }
124
EmitValidChanged();
125
emit SignalChanged();
126
}
127
128
+void CDirSelectBox::clear()
129
+{
130
+ comboBoxDir->clear();
131
+ setText(QString(),false);
132
+}
133
+
134
+QString CDirSelectBox::append(const QString& Text,const QString* AppendName)
135
+{
136
+ QString path;
137
+
138
+ path.reserve( Text.length() + 2 + AppendName->length() );
139
+ path.append(Text);
140
+ if (!Text.endsWith(QLatin1Char('/'))) {
141
+ path.append(QLatin1Char('/'));
142
+ }
143
+ path.append(*AppendName);
144
+
145
+ return path;
146
+}
147
+
148
+void CDirSelectBox::setMRU(const utf16_t* Data,const QString* AppendLast)
149
+{
150
+ const utf16_t *start,*end;
151
+
152
+ if (Data==NULL) return;
153
+
154
+ start = Data;
155
+ while(start) {
156
+ QString path;
157
+
158
+ while(*start=='*') start++;
159
+ end = start;
160
+ while ( (*end!='*') && (*end!=0) ) end++;
161
+
162
+ if (start!=end) {
163
+ path = QStringFromUtf16(start,end-start);
164
+ if (AppendLast) {
165
+ path = append(path,AppendLast);
166
+ }
167
+ addMRU(path,false);
168
+ }
169
+ if (*end==0) break;
170
+ start = end+1;
171
+ }
172
+}
173
+
174
QAction* CDirSelectBox::selectDialogAction()
175
{
176
return toolButtonAction;
177
178
179
void CDirSelectBox::setDirEnabled(bool Enabled)
180
{
181
- lineEditDir->setEnabled(Enabled);
182
+ comboBoxDir->setEnabled(Enabled);
183
toolButtonAction->setEnabled(Enabled);
184
}
185
186
+void CDirSelectBox::addMRU(const QString &Text,bool Top)
187
+{
188
+ int count = comboBoxDir->count();
189
+
190
+ if (Text.length()==0) return;
191
+
192
+ bool added = false;
193
+ for (int i=0;i<count;i++)
194
+ {
195
+ if (Text == comboBoxDir->itemText(i)) {
196
+ if (Top) {
197
+ comboBoxDir->removeItem(i);
198
+ comboBoxDir->insertItem(0,Text);
199
+ };
200
+ added = true;
201
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/dirselectbox.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/dirselectbox.h
Changed
59
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
typedef enum Style
12
{
13
DirBoxDir,
14
- DirBoxOutDir,
15
+ DirBoxOutDirMKV,
16
+ DirBoxOutDirBackup,
17
DirBoxFile
18
} Style;
19
20
private:
21
+ CApClient* client;
22
QLineEdit* lineEditDir;
23
+ QComboBox* comboBoxDir;
24
+ QStringList mru;
25
QToolButton* toolButtonSelect;
26
QAction* toolButtonAction;
27
bool validState;
28
Style style;
29
-
30
+ const QString* appendName;
31
private:
32
33
static const unsigned int MaxRadioButtons = 5;
34
QAbstractButton* radioButtons[MaxRadioButtons];
35
36
public:
37
- CDirSelectBox(CDirSelectBox::Style BoxStyle,const QString &Name, QWidgetList widgets = QWidgetList(), QWidget *parent = 0);
38
+ CDirSelectBox(CApClient* ap_client,CDirSelectBox::Style BoxStyle,const QString &Name, QWidgetList widgets = QWidgetList(), QWidget *parent = 0);
39
void setIndexValue(int Index);
40
int getIndexValue();
41
bool IsDirValid();
42
- void setText(const QString &Text);
43
+ void setText(const QString &Text,bool addMRU=false);
44
+ void setMRU(const utf16_t* Data,const QString* AppendLast=NULL);
45
QString text();
46
QAction* selectDialogAction();
47
void setDirEnabled(bool Enabled);
48
+ QString getMRU();
49
+ void setAppendName(const QString* AppendName);
50
+ void clear();
51
52
private:
53
void EmitValidChanged();
54
+ void addMRU(const QString &Text,bool Top);
55
+ static QString append(const QString& Text,const QString* AppendName);
56
57
private slots:
58
void SlotButtonPressed();
59
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/drivebox.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/drivebox.cpp
Changed
26
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
{
12
setWindowIcon(*icon);
13
setWindowTitle(UI_QSTRING(APP_SINGLE_DRIVE_TITLE));
14
- m_MainWnd = MainWnd;
15
16
QLabel *text = new QLabel();
17
text->setTextFormat(Qt::PlainText);
18
19
20
QBoxLayout *lay = new QVBoxLayout();
21
lay->addWidget(text);
22
- //lay->addSpacing(12);
23
lay->addStretch(1);
24
lay->addWidget(box);
25
lay->addWidget(btn_box);
26
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/drivebox.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/drivebox.h
Changed
18
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
unsigned int result();
12
13
private:
14
- MainWnd *m_MainWnd;
15
QComboBox *m_Box;
16
};
17
18
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/dvdbox.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/dvdbox.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/dvdbox.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/dvdbox.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/image.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/image.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/image_data.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/image_data.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/image_defs.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/image_defs.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/image_linux.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/image_linux.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/lineeditk.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/lineeditk.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/lineeditk.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/lineeditk.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/logic.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/logic.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/logic_posix.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/logic_posix.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/logtext.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/logtext.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/logtext.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/logtext.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/lstring.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/lstring.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/main.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/main.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/mainwnd.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/mainwnd.cpp
Changed
58
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
12
QString name = DriveInfo[ndx].label;
13
14
- dlg.backupDir->setText(QStringFromUtf16(m_app->GetAppString(AP_vastr_OutputBaseName)) + QLatin1String("/backup/") + name);
15
+ dlg.backupDir->setAppendName(&name);
16
+ dlg.backupDir->setText(QStringFromUtf16(m_app->GetAppString(AP_vastr_OutputBaseName)) + QLatin1String("/backup/") + name,true);
17
+ dlg.backupDir->setMRU(m_app->GetSettingString(apset_path_BackupDirMRU),&name);
18
19
if (dlg.exec()==QDialog::Accepted)
20
{
21
+ dlg.backupDir->setText(dlg.backupDir->text(),true);
22
+ m_app->SetSettingString(apset_path_BackupDirMRU,Utf16FromQString(dlg.backupDir->getMRU()));
23
m_app->BackupDisc(ndx,Utf16FromQString(dlg.backupDir->text()),dlg.backupDecrypt);
24
}
25
}
26
27
{
28
m_FileInfo.setFile(saveFolderBox->text());
29
30
+ QString defPath = QStringFromUtf16(m_app->GetAppString(AP_vastr_OutputFolderName));
31
+ bool custPath = (defPath != saveFolderBox->text());
32
+
33
SlotInfoCboxIndexChanged();
34
35
QString absname;
36
37
38
}
39
40
- saveFolderBox->setText(absname);
41
+ saveFolderBox->setText(absname,custPath);
42
m_app->SetOutputFolder(Utf16FromQString(absname));
43
44
+ m_app->SetSettingString(apset_path_DestDirMRU,Utf16FromQString(saveFolderBox->getMRU()));
45
+
46
m_app->SaveAllSelectedTitlesToMkv();
47
}
48
49
50
51
QFrame* r_frame = new QFrame();
52
53
- saveFolderBox = new CDirSelectBox(CDirSelectBox::DirBoxOutDir, UI_QSTRING(APP_IFACE_OPENFOLDER_INFO_TITLE) );
54
+ saveFolderBox = new CDirSelectBox(m_app,CDirSelectBox::DirBoxOutDirMKV, UI_QSTRING(APP_IFACE_OPENFOLDER_INFO_TITLE) );
55
connect( saveFolderBox , SIGNAL(SignalDirValidChanged()) , this , SLOT(SlotOutputFolderEdited()) );
56
57
QGroupBox* info_box = new QGroupBox(UI_QSTRING(APP_IFACE_MAIN_FRAME_INFO));
58
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/mainwnd.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/mainwnd.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/margui.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/margui.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/marshall.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/marshall.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/nativefiledialog.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/nativefiledialog.cpp
Changed
10
1
2
/*
3
Qt extension library
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <libqtext@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <libqtext@makemkv.com>
7
8
This library is free software; you can redistribute it and/or
9
modify it under the terms of the GNU Lesser General Public
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/notify.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/notify.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/notify.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/notify.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/notify_linux.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/notify_linux.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/notify_none.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/notify_none.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/progress.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/progress.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/qtapp.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/qtapp.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/qtgui.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/qtgui.h
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/qtstr.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/qtstr.h
Changed
25
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
return t;
12
}
13
14
+static inline QString QStringFromUtf16(const utf16_t *str,size_t count)
15
+{
16
+ QString t;
17
+ t.setUtf16((const ushort*)str,count);
18
+ return t;
19
+}
20
+
21
+
22
static inline utf16_t* QStringAccessBufferRW(QString &str)
23
{
24
QChar* p = str.data();
25
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/scsiinfo.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/scsiinfo.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/sem_posix.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/sem_posix.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/settingdlg.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/settingdlg.cpp
Changed
95
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel | QDialogButtonBox::Apply , Qt::Horizontal);
12
13
// dvd
14
- dvdTab = new CDVDTab();
15
+ dvdTab = new CDVDTab(client);
16
tabWidget->addTab(dvdTab, UI_QSTRING(APP_TTREE_VIDEO));
17
18
// IO
19
20
// dvd
21
const utf16_t *dest_path = client->GetSettingString(apset_app_DestinationDir);
22
if (NULL==dest_path) dest_path=zero;
23
- dvdTab->destinationDir->setText(QStringFromUtf16(dest_path));
24
+ dvdTab->destinationDir->setText(QStringFromUtf16(dest_path),true);
25
+ dvdTab->destinationDir->setMRU(client->GetSettingString(apset_path_DestDirMRU));
26
27
int dest_type = client->GetSettingInt(apset_app_DestinationType);
28
dvdTab->destinationDir->setIndexValue(dest_type);
29
30
// prot
31
int SpRemoveMethod = client->GetSettingInt(apset_dvd_SPRemoveMethod);
32
protTab->comboBoxSpRemoveMethod->setCurrentIndex(SpRemoveMethod);
33
+ protTab->javaDir->setText(QStringFromUtf16( client->GetSettingString(apset_app_Java)));
34
35
int dump_always = client->GetSettingInt(apset_bdplus_DumpAlways);
36
protTab->check_DumpAlways->setCheckState( (dump_always==0) ? Qt::Unchecked : Qt::Checked );
37
38
//prot
39
client->SetSettingInt(apset_dvd_SPRemoveMethod,protTab->comboBoxSpRemoveMethod->currentIndex());
40
client->SetSettingInt( apset_bdplus_DumpAlways , (protTab->check_DumpAlways->checkState() == Qt::Checked) ? 1 : 0 );
41
+ client->SetSettingString(apset_app_Java,Utf16FromQString(protTab->javaDir->text()));
42
43
// stream
44
client->SetSettingInt(apset_stream_EnableUPNP , (streamTab->checkEnableUpnp->checkState() == Qt::Checked) ? 1 : 0 );
45
46
this->setLayout(lay);
47
}
48
49
-CDVDTab::CDVDTab(QWidget *parent) : QWidget(parent)
50
+CDVDTab::CDVDTab(CApClient* client,QWidget *parent) : QWidget(parent)
51
{
52
radio_None = new QRadioButton(UI_QSTRING(APP_IFACE_SETTINGS_DEST_TYPE_NONE));
53
radio_Auto = new QRadioButton(UI_QSTRING(APP_IFACE_SETTINGS_DEST_TYPE_AUTO));
54
55
lst.append(radio_SemiAuto);
56
lst.append(radio_Custom);
57
58
- destinationDir = new CDirSelectBox(CDirSelectBox::DirBoxOutDir,UI_QSTRING(APP_IFACE_SETTINGS_DESTDIR),lst);
59
+ destinationDir = new CDirSelectBox(client,CDirSelectBox::DirBoxOutDirMKV,UI_QSTRING(APP_IFACE_SETTINGS_DESTDIR),lst);
60
61
connect(destinationDir, SIGNAL(SignalIndexChanged()) , this , SLOT(SlotIndexChanged()) );
62
63
64
m_lay->addWidget(check_DumpAlways,0,1);
65
miscBox->setLayout(m_lay);
66
67
+ javaDir = new CDirSelectBox(NULL,CDirSelectBox::DirBoxFile,UI_QSTRING(APP_IFACE_SETTINGS_PROT_JAVA_PATH));
68
+
69
QBoxLayout *lay = new QVBoxLayout();
70
71
lay->addWidget(dvdBox);
72
lay->addWidget(miscBox);
73
+ lay->addWidget(javaDir);
74
75
lay->addStretch(2);
76
this->setLayout(lay);
77
78
79
CGeneralTab::CGeneralTab(QWidget *parent) : QWidget(parent)
80
{
81
- dataDir = new CDirSelectBox(CDirSelectBox::DirBoxDir,UI_QSTRING(APP_IFACE_SETTINGS_DATA_DIR));
82
+ dataDir = new CDirSelectBox(NULL,CDirSelectBox::DirBoxDir,UI_QSTRING(APP_IFACE_SETTINGS_DATA_DIR));
83
84
QGroupBox* miscBox = new QGroupBox(UI_QSTRING(APP_IFACE_SETTINGS_GENERAL_MISC));
85
QGridLayout *m_lay = new QGridLayout();
86
87
b_lay->addWidget(lineEditSelection,1,1);
88
box->setLayout(b_lay);
89
90
- dtshddecDir = new CDirSelectBox(CDirSelectBox::DirBoxFile,UI_QSTRING(APP_IFACE_SETTINGS_ADV_DTSHDDEC_PATH));
91
+ dtshddecDir = new CDirSelectBox(NULL,CDirSelectBox::DirBoxFile,UI_QSTRING(APP_IFACE_SETTINGS_ADV_DTSHDDEC_PATH));
92
93
QBoxLayout *lay = new QVBoxLayout();
94
95
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/settingdlg.h -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/settingdlg.h
Changed
27
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
12
13
public:
14
- CDVDTab(QWidget *parent = 0);
15
+ CDVDTab(CApClient* ap_client,QWidget *parent = 0);
16
private slots:
17
void SlotIndexChanged();
18
};
19
20
public:
21
QComboBox* comboBoxSpRemoveMethod;
22
QCheckBox* check_DumpAlways;
23
+ CDirSelectBox* javaDir;
24
25
public:
26
CProtTab(QWidget *parent = 0);
27
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/spawn_posix.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/spawn_posix.cpp
Changed
10
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/str/en_utf16.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/str/en_utf16.cpp
Changed
166
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
12
*/
13
14
-static const unsigned short en_po_str[21356]={
15
+static const unsigned short en_po_str[21645]={
16
'e','n','g',':','E','n','g','l','i','s','h',0,
17
'D','B','G',' ','A','S','S','E','R','T',':',' ','%','1',' ','a','t',' ','%','2',':','%','3',0,
18
'L','I','B','M','K','V','_','T','R','A','C','E',':',' ','%','1',0,
19
20
'P','r','o','c','e','s','s','i','n','g',' ','t','i','t','l','e','s',0,
21
'V','C','-','1',' ','v','i','d','e','o',' ','s','t','r','e','a','m',' ','w','i','t','h','o','u','t',' ','T','F','C','N','T','R',' ','i','n','f','o','r','m','a','t','i','o','n',' ','i','s',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',',',' ','s','o','r','r','y','.',' ','F','e','w',' ','H','D','-','D','V','D','s',' ','u','s','e',' ','i','t',' ','a','n','y','w','a','y','.',0,
22
'O','p','e','n','i','n','g',' ','M','K','V',' ','f','i','l','e',0,
23
-'T','r','a','c','k',' ','#','%','1',' ','o','f',' ','t','y','p','e',' ','%','2',' ','i','n',' ','M','K','V',' ','f','i','l','e',' ','i','s',' ','n','o','t',' ','r','e','c','o','g','n','i','z','e','d',' ','a','n','d',' ','w','a','s',' ','s','k','i','p','p','e','d','.',0,
24
+'T','r','a','c','k',' ','#','%','1',' ','o','f',' ','t','y','p','e',' ','%','2',' ','i','n',' ','%','3',' ','f','i','l','e',' ','i','s',' ','n','o','t',' ','r','e','c','o','g','n','i','z','e','d',' ','a','n','d',' ','w','a','s',' ','s','k','i','p','p','e','d','.',0,
25
'M','K','V',' ','f','i','l','e',' ','h','a','s',' ','n','o',' ','v','i','d','e','o',' ','t','r','a','c','k','s',' ','a','n','d',' ','c','a','n',0x27,'t',' ','b','e',' ','o','p','e','n','e','d','.',0,
26
'S','k','i','p','p','i','n','g',' ','A','V',' ','c','l','i','p',' ','%','1',' ','s','i','n','c','e',' ','i','t',' ','i','s',' ','n','o','t',' ','a',' ','v','i','d','e','o',' ','a','p','p','l','i','c','a','t','i','o','n',0,
27
'A','A','C','S','-','p','r','o','t','e','c','t','e','d',' ','d','i','s','c','s',' ','t','h','a','t',' ','u','s','e',' ','S','K','B',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d',0,
28
29
'H','i','g','h','e','s','t',' ','A','A','C','S',' ','v','e','r','s','i','o','n',' ','i','s',' ','v','%','1',' ',',',' ','M','K','B',' ','s','a','v','e','d',' ','a','s',' ','%','2',0,
30
'I','t',' ','a','p','p','e','a','r','s',' ','t','h','a','t',' ','y','o','u',' ','a','r','e',' ','o','p','e','n','i','n','g',' ','t','h','e',' ','d','i','s','c',' ','p','r','o','c','e','s','s','e','d',' ','b','y',' ','D','v','d','F','a','b','/','M','a','c','T','h','e','R','i','p','p','e','r',' ','w','h','i','c','h',' ','i','s',' ','k','n','o','w','n',' ','t','o',' ','p','r','o','d','u','c','e',' ','d','a','m','a','g','e','d',' ','V','O','B',' ','f','i','l','e','s','.',' ','E','r','r','o','r','s',' ','m','a','y',' ','f','o','l','l','o','w',' ','-',' ','p','l','e','a','s','e',' ','u','s','e',' ','o','r','i','g','i','n','a','l',' ','d','i','s','c',' ','i','n','s','t','e','a','d','.',0,
31
'B','o','t','h',' ','d','i','s','c',' ','a','n','d',' ','d','r','i','v','e',' ','r','e','q','u','i','r','e',' ','b','u','s',' ','e','n','c','r','y','p','t','i','o','n',',',' ','b','u','t',' ','t','h','e',' ','b','u','s',' ','k','e','y',' ','i','s',' ','n','o','t',' ','k','n','o','w','n','.',0,
32
+'U','s','i','n','g',' ','J','a','v','a',' ','r','u','n','t','i','m','e',' ','f','r','o','m',' ','%','1',0,
33
+'T','h','i','s',' ','d','i','s','c',' ','r','e','q','u','i','r','e','s',' ','J','a','v','a',' ','r','u','n','t','i','m','e',' ','(','J','R','E',')',',',' ','b','u','t',' ','n','o','n','e',' ','w','a','s',' ','f','o','u','n','d','.',' ','C','e','r','t','a','i','n',' ','f','u','n','c','t','i','o','n','s',' ','w','i','l','l',' ','f','a','i','l',',',' ','p','l','e','a','s','e',' ','i','n','s','t','a','l','l',' ','J','a','v','a','.',' ','S','e','e',' ','%','1',' ','f','o','r',' ','d','e','t','a','i','l','s','.',0,
34
'P','r','o','c','e','s','s','i','n','g',' ','A','V',' ','c','l','i','p','s',0,
35
'P','r','o','c','e','s','s','i','n','g',' ','m','o','v','i','e',' ','p','l','a','y','l','i','s','t','s',0,
36
'D','e','c','r','y','p','t','i','n','g',0,
37
38
'c','o','n','v','e','r','t','i','n','g',' ','a','u','d','i','o',' ','f','r','o','m',' ','%','1',' ','t','o',' ','%','2',0,
39
'a','u','d','i','o',' ','c','h','a','n','g','e','s',' ','f','r','o','m',' ','%','1',' ','t','o',' ','%','2',',',' ','y','o','u',' ','w','o','n',0x27,'t',' ','b','e',' ','a','b','l','e',' ','t','o',' ','c','o','n','v','e','r','t',' ','t','h','i','s',' ','t','r','a','c','k',' ','t','o',' ','a','n','y',' ','o','t','h','e','r',' ','f','o','r','m','a','t',' ','l','a','t','e','r',',',' ','p','l','e','a','s','e',' ','u','s','e',' ','a',' ','c','o','n','v','e','r','s','i','o','n',' ','p','r','o','f','i','l','e',' ','w','i','t','h',' ','a','u','d','i','o',' ','t','r','a','n','s','c','o','d','i','n','g',0,
40
'F','F','M','P','E','G','_','E','R','R','O','R',':',' ','%','1',0,
41
+'C','l','i','p',' ','b','o','u','n','d','a','r','y',' ','n','o','t',' ','a','l','i','g','n','e','d',',',' ','m','o','v','i','n','g',' ','t','o',' ','t','h','e',' ','c','l','o','s','e','s','t',' ','a','l','i','g','n','e','d',' ','v','a','l','u','e',0,
42
'S','t','r','e','a','m','s',' ','w','i','t','h',' ','w','i','d','e',' ','l','e','f','t','/','r','i','g','h','t',' ','c','h','a','n','n','e','l','s',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','.',0,
43
'S','t','r','e','a','m','s',' ','w','i','t','h',' ','s','i','d','e',' ','h','i','g','h',' ','l','e','f','t','/','r','i','g','h','t',' ','c','h','a','n','n','e','l','s',' ','a','r','e',' ','n','o','t',' ','s','u','p','p','o','r','t','e','d','.',0,
44
'T','h','i','s',' ','s','t','r','e','a','m',' ','c','a','n',0x27,'t',' ','b','e',' ','p','r','o','p','e','r','l','y',' ','d','e','c','o','d','e','d',' ','b','y',' ','t','h','i','s',' ','D','L','L',',',' ','p','l','e','a','s','e',' ','u','s','e',' ','d','t','s','d','e','c','o','d','e','r','d','l','l',' ','v','1','.','1','.','0','.','5',' ','o','r',' ','l','a','t','e','r','.',0,
45
46
'S','t','e','r','e','o',0,
47
'S','u','r','r','o','u','n','d',0,
48
'M','a','k','e','M','K','V',' ','w','e','b','s','i','t','e',' ','a','d','d','r','e','s','s',' ','i','s',' ','%','1',0,
49
+'F','i','l','e',' ','"','%','1','"',' ','w','a','s',' ','s','k','i','p','p','e','d',0,
50
'P','r','i','m','a','r','y',' ','t','i','t','l','e',0,
51
'T','y','p','e',0,
52
'N','a','m','e',0,
53
54
'M','K','V',' ','F','l','a','g','s',0,
55
'C','h','a','n','n','e','l',' ','l','a','y','o','u','t',0,
56
'A','u','d','i','o',' ','m','i','x',0,
57
+'C','o','m','m','e','n','t',0,
58
+'3','D',' ','p','l','a','n','e',0,
59
'C','o','p','y',' ','a','s',' ','i','s',0,
60
'R','a','w',' ','L','P','C','M',' ','a','u','d','i','o',' ','w','i','t','h','o','u','t',' ','c','h','a','n','n','e','l',' ','c','o','n','f','i','g','u','r','a','t','i','o','n',' ','m','e','t','a','d','a','t','a',0,
61
'L','P','C','M',' ','a','u','d','i','o',' ','i','n',' ','W','A','V',' ','c','o','n','t','a','i','n','e','r',' ','w','i','t','h',' ','c','h','a','n','n','e','l',' ','c','o','n','f','i','g','u','r','a','t','i','o','n',' ','m','e','t','a','d','a','t','a',0,
62
63
'D','e','f','a','u','l','t',' ','s','e','l','e','c','t','i','o','n',' ','r','u','l','e',' ',':',0,
64
'F','F','M','P','E','G',' ','l','o','c','a','t','i','o','n',0,
65
'd','t','s','d','e','c','o','d','e','r','d','l','l','.','d','l','l',' ','l','o','c','a','t','i','o','n',0,
66
+'C','u','s','t','o','m',' ','J','a','v','a',' ','e','x','e','c','u','t','a','b','l','e',' ','l','o','c','a','t','i','o','n',0,
67
'P','r','o','f','i','l','e',0,
68
'P','r','o','p','e','r','t','i','e','s',0,
69
'T','i','t','l','e',0,
70
71
'O','S',' ','d','e','v','i','c','e',' ','n','a','m','e',':',' ',0,
72
0};
73
74
-static const unsigned int en_po_off[1087]={
75
+static const unsigned int en_po_off[1101]={
76
1000,0,1001,12,1002,36,1003,53,1004,77,1005,124,1006,135,1007,136,1008,226,1009,275,1010,301,
77
1011,320,1012,323,2001,329,2002,378,2003,464,2004,518,2006,586,2007,703,2008,858,2009,981,2010,1109,
78
2011,1154,2012,1298,2013,1382,2014,1468,2015,1516,2016,1598,2017,1761,2018,1876,2019,1938,2020,1978,2021,2145,
79
80
3027,4216,3028,4272,3029,4309,3030,4369,3031,4432,3032,4582,3033,4691,3034,4737,3035,4782,3036,4872,3037,4931,
81
3038,4972,3039,5012,3040,5070,3041,5104,3042,5142,3043,5250,3100,5333,3101,5350,3102,5383,3103,5405,3104,5423,
82
3105,5439,3106,5446,3107,5459,3108,5468,3109,5481,3110,5494,3111,5506,3200,5526,3201,5555,3202,5573,3203,5584,
83
-3204,5602,3210,5699,3220,5716,3221,5784,3300,5834,3301,5890,3302,5942,3303,5989,3304,6056,3305,6077,3306,6131,
84
-3307,6230,3308,6261,3309,6303,3310,6349,3311,6441,3312,6508,3313,6585,3314,6653,3315,6702,3316,6725,3317,6748,
85
-3318,6770,3319,6823,3320,6885,3321,6945,3322,7023,3323,7075,3324,7134,3325,7180,3326,7233,3327,7306,3328,7370,
86
-3329,7419,3330,7512,3331,7569,3332,7603,3333,7629,3334,7694,3335,8093,3336,8461,3337,8844,3338,8923,3339,8959,
87
-3340,9008,3341,9081,3342,9127,3343,9300,3400,9374,3401,9394,3402,9421,3403,9432,3404,9450,3405,9471,3406,9479,
88
-3407,9499,4001,9512,4002,9595,4003,9661,4004,9726,4007,9809,4008,9871,4009,9929,4020,10040,4021,10075,4022,10127,
89
-4023,10159,4024,10223,4025,10257,4026,10303,4027,10350,4028,10398,4040,10441,4041,10519,4042,10578,4043,10630,4044,10727,
90
-4045,10798,4046,10896,4047,10939,4048,10977,4049,11012,4050,11064,4051,11145,4052,11195,4053,11226,4054,11377,4060,11394,
91
-4061,11451,4062,11513,4500,11608,4501,11689,4502,11714,4503,11747,4504,11781,5000,11833,5001,11858,5002,11910,5003,11927,
92
-5004,11962,5005,11989,5006,12005,5007,12028,5008,12051,5009,12092,5010,12125,5011,12145,5012,12178,5013,12217,5014,12272,
93
-5015,12307,5016,12376,5017,12400,5018,12419,5019,12443,5020,12468,5021,12623,5022,12769,5024,12852,5025,12883,5026,12899,
94
-5027,12906,5028,12918,5029,12930,5030,12940,5031,12952,5033,12964,5036,12975,5037,13007,5038,13050,5039,13215,5040,13396,
95
-5041,13622,5042,13769,5043,13819,5044,13915,5045,13928,5046,13942,5047,13955,5048,13973,5049,13988,5050,13995,5051,14045,
96
-5052,14203,5053,14376,5054,14572,5055,14632,5056,14700,5057,14768,5058,14796,5060,14943,5061,14952,5062,14965,5063,14976,
97
-5064,14988,5065,14994,5066,15002,5067,15017,5068,15023,5069,15089,5070,15103,5071,15115,5072,15292,5073,15325,5074,15405,
98
-5075,15531,5076,15582,5077,15643,5078,15682,5079,15744,5080,15787,5081,15802,5082,15815,5083,15859,5084,15929,5085,16006,
99
-5086,16070,5087,16078,5088,16099,5089,16123,5090,16134,5091,16139,5092,16146,5093,16155,5100,16185,5201,16199,5202,16204,
100
-5203,16209,5204,16218,5207,16227,5208,16233,5209,16248,5210,16257,5214,16262,5215,16271,5216,16277,5217,16294,5218,16306,
101
-5219,16322,5220,16333,5221,16346,5222,16357,5223,16363,5224,16373,5225,16389,5226,16403,5227,16415,5228,16425,5233,16443,
102
-5234,16456,5235,16470,5238,16489,5239,16499,5240,16509,5248,16524,5301,16534,5302,16545,5303,16599,5304,16663,5305,16674,
103
-5306,16691,5307,16701,5380,16711,5381,16719,6000,16726,6001,16739,6002,16758,6003,16777,6005,16811,6006,16832,6007,16846,
104
-6008,16928,6010,16942,6011,16954,6012,16961,6013,17005,6014,17012,6015,17037,6016,17055,6017,17102,6018,17123,6019,17144,
105
-6020,17150,6021,17157,6022,17174,6023,17181,6024,17214,6026,17238,6030,17295,6031,17301,6032,17307,6034,17313,6035,17321,
106
-6036,17331,6037,17339,6038,17364,6039,17376,6040,17388,6041,17417,6042,17472,6043,17485,6044,17513,6045,17526,6046,17539,
107
-6047,17561,6048,17571,6050,17595,6051,17640,6052,17733,6053,17745,6054,17761,6055,17777,6056,17792,6057,17805,6058,17826,
108
-6059,17832,6060,17839,6061,17846,6062,17859,6063,17873,6064,17890,6065,17908,6066,17924,6067,17937,6068,17949,6069,17963,
109
-6070,17968,6071,17977,6072,17984,6073,17991,6074,17999,6075,18012,6076,18017,6077,18041,6078,18072,6079,18127,6080,18197,
110
-6081,18205,6082,18210,6083,18229,6084,18253,6085,18273,6086,18278,6087,18311,6088,18353,6089,18373,6090,18378,6091,18383,
111
-6092,18392,6093,18399,6094,18419,6095,18433,6096,18454,6097,18462,6098,18486,6099,18548,6100,18569,6101,18580,6102,18592,
112
-6103,18600,6104,18605,6105,18630,6106,18637,6107,18662,6108,18683,6109,18724,6110,18741,6111,18752,6112,18769,6119,18783,
113
-6120,18813,6121,18842,6122,18871,6123,18905,6124,18936,6125,18968,6126,18988,6127,19018,6128,19046,6129,19068,6130,19082,
114
-6131,19108,6132,19116,6133,19139,6134,19150,6135,19162,6136,19182,6137,19202,6138,19214,6139,19479,6142,19511,6143,19534,
115
-6144,19545,6145,19562,6146,19572,6147,19597,6148,19605,6149,19625,6150,19667,6151,19691,6152,19731,6153,19740,6154,19761,
116
-6156,19782,6157,19787,6158,19792,6159,19818,6161,19831,6162,19845,6163,19871,6164,19889,6165,19892,6166,19902,6167,19913,
117
-6168,19936,6169,19964,6170,19978,6171,20013,6172,20046,6173,20055,6174,20073,6175,20098,6176,20114,6180,20141,6181,20149,
118
-6200,20160,6201,20166,6202,20172,6203,20178,6204,20188,6205,20193,6206,20205,6207,20214,6209,20228,6210,20241,6211,20252,
119
-6212,20267,6213,20279,6214,20288,6215,20299,6216,20308,6220,20316,6221,20340,6222,20353,6223,20364,6224,20374,6225,20387,
120
-6226,20756,6227,20774,6228,20875,6229,20886,6300,20903,6301,20932,6302,20950,6303,20965,6304,20975,6305,20986,6306,21002,
121
-6307,21021,6308,21037,6309,21060,6320,21083,6321,21115,6322,21147,6323,21172,6324,21188,6325,21200,6326,21212,6327,21232,
122
-6329,21251,6330,21272,6331,21305,6332,21338,0};
123
+3204,5602,3210,5699,3220,5716,3221,5783,3300,5833,3301,5889,3302,5941,3303,5988,3304,6055,3305,6076,3306,6130,
124
+3307,6229,3308,6260,3309,6302,3310,6348,3311,6440,3312,6507,3313,6584,3314,6652,3315,6701,3316,6724,3317,6747,
125
+3318,6769,3319,6822,3320,6884,3321,6944,3322,7022,3323,7074,3324,7133,3325,7179,3326,7232,3327,7305,3328,7369,
126
+3329,7418,3330,7511,3331,7568,3332,7602,3333,7628,3334,7693,3335,8092,3336,8460,3337,8843,3338,8922,3339,8958,
127
+3340,9007,3341,9080,3342,9126,3343,9299,3344,9373,3345,9400,3400,9529,3401,9549,3402,9576,3403,9587,3404,9605,
128
+3405,9626,3406,9634,3407,9654,4001,9667,4002,9750,4003,9816,4004,9881,4007,9964,4008,10026,4009,10084,4020,10195,
129
+4021,10230,4022,10282,4023,10314,4024,10378,4025,10412,4026,10458,4027,10505,4028,10553,4040,10596,4041,10674,4042,10733,
130
+4043,10785,4044,10882,4045,10953,4046,11051,4047,11094,4048,11132,4049,11167,4050,11219,4051,11300,4052,11350,4053,11381,
131
+4054,11532,4055,11549,4060,11612,4061,11669,4062,11731,4500,11826,4501,11907,4502,11932,4503,11965,4504,11999,5000,12051,
132
+5001,12076,5002,12128,5003,12145,5004,12180,5005,12207,5006,12223,5007,12246,5008,12269,5009,12310,5010,12343,5011,12363,
133
+5012,12396,5013,12435,5014,12490,5015,12525,5016,12594,5017,12618,5018,12637,5019,12661,5020,12686,5021,12841,5022,12987,
134
+5024,13070,5025,13101,5026,13117,5027,13124,5028,13136,5029,13148,5030,13158,5031,13170,5033,13182,5036,13193,5037,13225,
135
+5038,13268,5039,13433,5040,13614,5041,13840,5042,13987,5043,14037,5044,14133,5045,14146,5046,14160,5047,14173,5048,14191,
136
+5049,14206,5050,14213,5051,14263,5052,14421,5053,14594,5054,14790,5055,14850,5056,14918,5057,14986,5058,15014,5060,15161,
137
+5061,15170,5062,15183,5063,15194,5064,15206,5065,15212,5066,15220,5067,15235,5068,15241,5069,15307,5070,15321,5071,15333,
138
+5072,15510,5073,15543,5074,15623,5075,15749,5076,15800,5077,15861,5078,15900,5079,15962,5080,16005,5081,16020,5082,16033,
139
+5083,16077,5084,16147,5085,16224,5086,16288,5087,16296,5088,16317,5089,16341,5090,16352,5091,16357,5092,16364,5093,16373,
140
+5094,16403,5100,16425,5201,16439,5202,16444,5203,16449,5204,16458,5207,16467,5208,16473,5209,16488,5210,16497,5214,16502,
141
+5215,16511,5216,16517,5217,16534,5218,16546,5219,16562,5220,16573,5221,16586,5222,16597,5223,16603,5224,16613,5225,16629,
142
+5226,16643,5227,16655,5228,16665,5233,16683,5234,16696,5235,16710,5238,16729,5239,16739,5240,16749,5248,16764,5249,16774,
143
+5250,16782,5301,16791,5302,16802,5303,16856,5304,16920,5305,16931,5306,16948,5307,16958,5380,16968,5381,16976,6000,16983,
144
+6001,16996,6002,17015,6003,17034,6005,17068,6006,17089,6007,17103,6008,17185,6010,17199,6011,17211,6012,17218,6013,17262,
145
+6014,17269,6015,17294,6016,17312,6017,17359,6018,17380,6019,17401,6020,17407,6021,17414,6022,17431,6023,17438,6024,17471,
146
+6026,17495,6030,17552,6031,17558,6032,17564,6034,17570,6035,17578,6036,17588,6037,17596,6038,17621,6039,17633,6040,17645,
147
+6041,17674,6042,17729,6043,17742,6044,17770,6045,17783,6046,17796,6047,17818,6048,17828,6050,17852,6051,17897,6052,17990,
148
+6053,18002,6054,18018,6055,18034,6056,18049,6057,18062,6058,18083,6059,18089,6060,18096,6061,18103,6062,18116,6063,18130,
149
+6064,18147,6065,18165,6066,18181,6067,18194,6068,18206,6069,18220,6070,18225,6071,18234,6072,18241,6073,18248,6074,18256,
150
+6075,18269,6076,18274,6077,18298,6078,18329,6079,18384,6080,18454,6081,18462,6082,18467,6083,18486,6084,18510,6085,18530,
151
+6086,18535,6087,18568,6088,18610,6089,18630,6090,18635,6091,18640,6092,18649,6093,18656,6094,18676,6095,18690,6096,18711,
152
+6097,18719,6098,18743,6099,18805,6100,18826,6101,18837,6102,18849,6103,18857,6104,18862,6105,18887,6106,18894,6107,18919,
153
+6108,18940,6109,18981,6110,18998,6111,19009,6112,19026,6119,19040,6120,19070,6121,19099,6122,19128,6123,19162,6124,19193,
154
+6125,19225,6126,19245,6127,19275,6128,19303,6129,19325,6130,19339,6131,19365,6132,19373,6133,19396,6134,19407,6135,19419,
155
+6136,19439,6137,19459,6138,19471,6139,19736,6142,19768,6143,19791,6144,19802,6145,19819,6146,19829,6147,19854,6148,19862,
156
+6149,19882,6150,19924,6151,19948,6152,19988,6153,19997,6154,20018,6156,20039,6157,20044,6158,20049,6159,20075,6161,20088,
157
+6162,20102,6163,20128,6164,20146,6165,20149,6166,20159,6167,20170,6168,20193,6169,20221,6170,20235,6171,20270,6172,20303,
158
+6173,20312,6174,20330,6175,20355,6176,20371,6177,20398,6180,20430,6181,20438,6200,20449,6201,20455,6202,20461,6203,20467,
159
+6204,20477,6205,20482,6206,20494,6207,20503,6209,20517,6210,20530,6211,20541,6212,20556,6213,20568,6214,20577,6215,20588,
160
+6216,20597,6220,20605,6221,20629,6222,20642,6223,20653,6224,20663,6225,20676,6226,21045,6227,21063,6228,21164,6229,21175,
161
+6300,21192,6301,21221,6302,21239,6303,21254,6304,21264,6305,21275,6306,21291,6307,21310,6308,21326,6309,21349,6320,21372,
162
+6321,21404,6322,21436,6323,21461,6324,21477,6325,21489,6326,21501,6327,21521,6329,21540,6330,21561,6331,21594,6332,21627,0};
163
164
extern "C" const unsigned short * en_po_getstr_utf16(unsigned int code)
165
{
166
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/uisync.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/uisync.cpp
Changed
25
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
12
if (setFolder)
13
{
14
+ saveFolderBox->clear();
15
saveFolderBox->setText(QStringFromUtf16(m_app->GetAppString(AP_vastr_OutputFolderName)));
16
+ saveFolderBox->setMRU(m_app->GetSettingString(apset_path_DestDirMRU));
17
}
18
19
} else {
20
- saveFolderBox->setText(QString());
21
+ saveFolderBox->clear();
22
m_uisync_disabled--;
23
}
24
25
makemkv-oss-1.9.5.tar.xz/makemkvgui/src/viteminfo.cpp -> makemkv-oss-1.10.2.tar.xz/makemkvgui/src/viteminfo.cpp
Changed
26
1
2
/*
3
MakeMKV GUI - Graphics user interface application for MakeMKV
4
5
- Copyright (C) 2007-2015 GuinpinSoft inc <makemkvgui@makemkv.com>
6
+ Copyright (C) 2007-2016 GuinpinSoft inc <makemkvgui@makemkv.com>
7
8
You may use this file in accordance with the end user license
9
agreement provided with the Software. For licensing terms and
10
11
12
AppendItem(str,pi,ap_iaDateTime);
13
AppendItem(str,pi,ap_iaName,expertMode);
14
+ AppendItem(str,pi,ap_iaComment);
15
AppendItem(str,pi,ap_iaSourceFileName);
16
AppendItem(str,pi,ap_iaOriginalTitleId);
17
AppendItem(str,pi,ap_iaAngleInfo);
18
19
AppendItem(str,pi,ap_iaDuration);
20
AppendItem(str,pi,ap_iaChapterCount);
21
AppendItem(str,pi,ap_iaCodecLong,ap_iaOutputCodecShort);
22
+ AppendItem(str,pi,ap_iaOffsetSequenceId);
23
AppendItem(str,pi,ap_iaAudioChannelsCount,ap_iaOutputAudioChannelsCount);
24
AppendItem(str,pi,ap_iaAudioChannelLayoutName,ap_iaOutputAudioChannelLayoutName);
25
AppendItem(str,pi,ap_iaAudioSampleRate,ap_iaOutputAudioSampleRate);
26
makemkv-oss-1.9.5.tar.xz/msvc/inc/stdint.h -> makemkv-oss-1.10.2.tar.xz/msvc/inc/stdint.h
Changed
26
1
2
#define INTMAX_C(value) _i__CONCAT(value, LL)
3
#define UINTMAX_C(value) _i__CONCAT(value, ULL)
4
5
+/* Minimum of signed integral types. */
6
+# define INT8_MIN (-128)
7
+# define INT16_MIN (-32767-1)
8
+# define INT32_MIN (-2147483647-1)
9
+# define INT64_MIN (-__INT64_C(9223372036854775807)-1)
10
+
11
+/* Maximum of signed integral types. */
12
+# define INT8_MAX (127)
13
+# define INT16_MAX (32767)
14
+# define INT32_MAX (2147483647)
15
+# define INT64_MAX (__INT64_C(9223372036854775807))
16
+
17
+/* Maximum of unsigned integral types. */
18
+# define UINT8_MAX (255)
19
+# define UINT16_MAX (65535)
20
+# define UINT32_MAX (4294967295U)
21
+# define UINT64_MAX (__UINT64_C(18446744073709551615))
22
+
23
#endif
24
25
#endif // MSVC_STDDEF_H_INCLUDED
26
makemkv-oss-1.9.5.tar.xz/libffabi/src/dcadec/idct_fixed.h
Deleted
27
1
2
-/*
3
- * This file is part of libdcadec.
4
- *
5
- * This library is free software; you can redistribute it and/or modify it
6
- * under the terms of the GNU Lesser General Public License as published by the
7
- * Free Software Foundation; either version 2.1 of the License, or (at your
8
- * option) any later version.
9
- *
10
- * This library is distributed in the hope that it will be useful, but WITHOUT
11
- * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
12
- * FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License
13
- * for more details.
14
- *
15
- * You should have received a copy of the GNU Lesser General Public License
16
- * along with this library; if not, write to the Free Software Foundation,
17
- * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
18
- */
19
-
20
-#ifndef IDCT_FIXED_H
21
-#define IDCT_FIXED_H
22
-
23
-void inverse_dct32_fixed(int *input, int *output);
24
-void inverse_dct64_fixed(int *input, int *output);
25
-
26
-#endif
27