1.0 release (cleaned up)
@@ -0,0 +1,12 @@
|
|||||||
|
################################################################################
|
||||||
|
# This .gitignore file was automatically created by Microsoft(R) Visual Studio.
|
||||||
|
################################################################################
|
||||||
|
|
||||||
|
/.vs/MotionDecoder/v16/Server/sqlite3
|
||||||
|
/.vs
|
||||||
|
/MovementDecoder/bin/Debug
|
||||||
|
/MovementDecoder/obj
|
||||||
|
/packages
|
||||||
|
/MotionDecoder/bin/Debug
|
||||||
|
/MotionDecoder/obj
|
||||||
|
/MotionDecoder/bin/Release
|
||||||
@@ -0,0 +1,674 @@
|
|||||||
|
GNU GENERAL PUBLIC LICENSE
|
||||||
|
Version 3, 29 June 2007
|
||||||
|
|
||||||
|
Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
|
||||||
|
Everyone is permitted to copy and distribute verbatim copies
|
||||||
|
of this license document, but changing it is not allowed.
|
||||||
|
|
||||||
|
Preamble
|
||||||
|
|
||||||
|
The GNU General Public License is a free, copyleft license for
|
||||||
|
software and other kinds of works.
|
||||||
|
|
||||||
|
The licenses for most software and other practical works are designed
|
||||||
|
to take away your freedom to share and change the works. By contrast,
|
||||||
|
the GNU General Public License is intended to guarantee your freedom to
|
||||||
|
share and change all versions of a program--to make sure it remains free
|
||||||
|
software for all its users. We, the Free Software Foundation, use the
|
||||||
|
GNU General Public License for most of our software; it applies also to
|
||||||
|
any other work released this way by its authors. You can apply it to
|
||||||
|
your programs, too.
|
||||||
|
|
||||||
|
When we speak of free software, we are referring to freedom, not
|
||||||
|
price. Our General Public Licenses are designed to make sure that you
|
||||||
|
have the freedom to distribute copies of free software (and charge for
|
||||||
|
them if you wish), that you receive source code or can get it if you
|
||||||
|
want it, that you can change the software or use pieces of it in new
|
||||||
|
free programs, and that you know you can do these things.
|
||||||
|
|
||||||
|
To protect your rights, we need to prevent others from denying you
|
||||||
|
these rights or asking you to surrender the rights. Therefore, you have
|
||||||
|
certain responsibilities if you distribute copies of the software, or if
|
||||||
|
you modify it: responsibilities to respect the freedom of others.
|
||||||
|
|
||||||
|
For example, if you distribute copies of such a program, whether
|
||||||
|
gratis or for a fee, you must pass on to the recipients the same
|
||||||
|
freedoms that you received. You must make sure that they, too, receive
|
||||||
|
or can get the source code. And you must show them these terms so they
|
||||||
|
know their rights.
|
||||||
|
|
||||||
|
Developers that use the GNU GPL protect your rights with two steps:
|
||||||
|
(1) assert copyright on the software, and (2) offer you this License
|
||||||
|
giving you legal permission to copy, distribute and/or modify it.
|
||||||
|
|
||||||
|
For the developers' and authors' protection, the GPL clearly explains
|
||||||
|
that there is no warranty for this free software. For both users' and
|
||||||
|
authors' sake, the GPL requires that modified versions be marked as
|
||||||
|
changed, so that their problems will not be attributed erroneously to
|
||||||
|
authors of previous versions.
|
||||||
|
|
||||||
|
Some devices are designed to deny users access to install or run
|
||||||
|
modified versions of the software inside them, although the manufacturer
|
||||||
|
can do so. This is fundamentally incompatible with the aim of
|
||||||
|
protecting users' freedom to change the software. The systematic
|
||||||
|
pattern of such abuse occurs in the area of products for individuals to
|
||||||
|
use, which is precisely where it is most unacceptable. Therefore, we
|
||||||
|
have designed this version of the GPL to prohibit the practice for those
|
||||||
|
products. If such problems arise substantially in other domains, we
|
||||||
|
stand ready to extend this provision to those domains in future versions
|
||||||
|
of the GPL, as needed to protect the freedom of users.
|
||||||
|
|
||||||
|
Finally, every program is threatened constantly by software patents.
|
||||||
|
States should not allow patents to restrict development and use of
|
||||||
|
software on general-purpose computers, but in those that do, we wish to
|
||||||
|
avoid the special danger that patents applied to a free program could
|
||||||
|
make it effectively proprietary. To prevent this, the GPL assures that
|
||||||
|
patents cannot be used to render the program non-free.
|
||||||
|
|
||||||
|
The precise terms and conditions for copying, distribution and
|
||||||
|
modification follow.
|
||||||
|
|
||||||
|
TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
0. Definitions.
|
||||||
|
|
||||||
|
"This License" refers to version 3 of the GNU General Public License.
|
||||||
|
|
||||||
|
"Copyright" also means copyright-like laws that apply to other kinds of
|
||||||
|
works, such as semiconductor masks.
|
||||||
|
|
||||||
|
"The Program" refers to any copyrightable work licensed under this
|
||||||
|
License. Each licensee is addressed as "you". "Licensees" and
|
||||||
|
"recipients" may be individuals or organizations.
|
||||||
|
|
||||||
|
To "modify" a work means to copy from or adapt all or part of the work
|
||||||
|
in a fashion requiring copyright permission, other than the making of an
|
||||||
|
exact copy. The resulting work is called a "modified version" of the
|
||||||
|
earlier work or a work "based on" the earlier work.
|
||||||
|
|
||||||
|
A "covered work" means either the unmodified Program or a work based
|
||||||
|
on the Program.
|
||||||
|
|
||||||
|
To "propagate" a work means to do anything with it that, without
|
||||||
|
permission, would make you directly or secondarily liable for
|
||||||
|
infringement under applicable copyright law, except executing it on a
|
||||||
|
computer or modifying a private copy. Propagation includes copying,
|
||||||
|
distribution (with or without modification), making available to the
|
||||||
|
public, and in some countries other activities as well.
|
||||||
|
|
||||||
|
To "convey" a work means any kind of propagation that enables other
|
||||||
|
parties to make or receive copies. Mere interaction with a user through
|
||||||
|
a computer network, with no transfer of a copy, is not conveying.
|
||||||
|
|
||||||
|
An interactive user interface displays "Appropriate Legal Notices"
|
||||||
|
to the extent that it includes a convenient and prominently visible
|
||||||
|
feature that (1) displays an appropriate copyright notice, and (2)
|
||||||
|
tells the user that there is no warranty for the work (except to the
|
||||||
|
extent that warranties are provided), that licensees may convey the
|
||||||
|
work under this License, and how to view a copy of this License. If
|
||||||
|
the interface presents a list of user commands or options, such as a
|
||||||
|
menu, a prominent item in the list meets this criterion.
|
||||||
|
|
||||||
|
1. Source Code.
|
||||||
|
|
||||||
|
The "source code" for a work means the preferred form of the work
|
||||||
|
for making modifications to it. "Object code" means any non-source
|
||||||
|
form of a work.
|
||||||
|
|
||||||
|
A "Standard Interface" means an interface that either is an official
|
||||||
|
standard defined by a recognized standards body, or, in the case of
|
||||||
|
interfaces specified for a particular programming language, one that
|
||||||
|
is widely used among developers working in that language.
|
||||||
|
|
||||||
|
The "System Libraries" of an executable work include anything, other
|
||||||
|
than the work as a whole, that (a) is included in the normal form of
|
||||||
|
packaging a Major Component, but which is not part of that Major
|
||||||
|
Component, and (b) serves only to enable use of the work with that
|
||||||
|
Major Component, or to implement a Standard Interface for which an
|
||||||
|
implementation is available to the public in source code form. A
|
||||||
|
"Major Component", in this context, means a major essential component
|
||||||
|
(kernel, window system, and so on) of the specific operating system
|
||||||
|
(if any) on which the executable work runs, or a compiler used to
|
||||||
|
produce the work, or an object code interpreter used to run it.
|
||||||
|
|
||||||
|
The "Corresponding Source" for a work in object code form means all
|
||||||
|
the source code needed to generate, install, and (for an executable
|
||||||
|
work) run the object code and to modify the work, including scripts to
|
||||||
|
control those activities. However, it does not include the work's
|
||||||
|
System Libraries, or general-purpose tools or generally available free
|
||||||
|
programs which are used unmodified in performing those activities but
|
||||||
|
which are not part of the work. For example, Corresponding Source
|
||||||
|
includes interface definition files associated with source files for
|
||||||
|
the work, and the source code for shared libraries and dynamically
|
||||||
|
linked subprograms that the work is specifically designed to require,
|
||||||
|
such as by intimate data communication or control flow between those
|
||||||
|
subprograms and other parts of the work.
|
||||||
|
|
||||||
|
The Corresponding Source need not include anything that users
|
||||||
|
can regenerate automatically from other parts of the Corresponding
|
||||||
|
Source.
|
||||||
|
|
||||||
|
The Corresponding Source for a work in source code form is that
|
||||||
|
same work.
|
||||||
|
|
||||||
|
2. Basic Permissions.
|
||||||
|
|
||||||
|
All rights granted under this License are granted for the term of
|
||||||
|
copyright on the Program, and are irrevocable provided the stated
|
||||||
|
conditions are met. This License explicitly affirms your unlimited
|
||||||
|
permission to run the unmodified Program. The output from running a
|
||||||
|
covered work is covered by this License only if the output, given its
|
||||||
|
content, constitutes a covered work. This License acknowledges your
|
||||||
|
rights of fair use or other equivalent, as provided by copyright law.
|
||||||
|
|
||||||
|
You may make, run and propagate covered works that you do not
|
||||||
|
convey, without conditions so long as your license otherwise remains
|
||||||
|
in force. You may convey covered works to others for the sole purpose
|
||||||
|
of having them make modifications exclusively for you, or provide you
|
||||||
|
with facilities for running those works, provided that you comply with
|
||||||
|
the terms of this License in conveying all material for which you do
|
||||||
|
not control copyright. Those thus making or running the covered works
|
||||||
|
for you must do so exclusively on your behalf, under your direction
|
||||||
|
and control, on terms that prohibit them from making any copies of
|
||||||
|
your copyrighted material outside their relationship with you.
|
||||||
|
|
||||||
|
Conveying under any other circumstances is permitted solely under
|
||||||
|
the conditions stated below. Sublicensing is not allowed; section 10
|
||||||
|
makes it unnecessary.
|
||||||
|
|
||||||
|
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
|
||||||
|
|
||||||
|
No covered work shall be deemed part of an effective technological
|
||||||
|
measure under any applicable law fulfilling obligations under article
|
||||||
|
11 of the WIPO copyright treaty adopted on 20 December 1996, or
|
||||||
|
similar laws prohibiting or restricting circumvention of such
|
||||||
|
measures.
|
||||||
|
|
||||||
|
When you convey a covered work, you waive any legal power to forbid
|
||||||
|
circumvention of technological measures to the extent such circumvention
|
||||||
|
is effected by exercising rights under this License with respect to
|
||||||
|
the covered work, and you disclaim any intention to limit operation or
|
||||||
|
modification of the work as a means of enforcing, against the work's
|
||||||
|
users, your or third parties' legal rights to forbid circumvention of
|
||||||
|
technological measures.
|
||||||
|
|
||||||
|
4. Conveying Verbatim Copies.
|
||||||
|
|
||||||
|
You may convey verbatim copies of the Program's source code as you
|
||||||
|
receive it, in any medium, provided that you conspicuously and
|
||||||
|
appropriately publish on each copy an appropriate copyright notice;
|
||||||
|
keep intact all notices stating that this License and any
|
||||||
|
non-permissive terms added in accord with section 7 apply to the code;
|
||||||
|
keep intact all notices of the absence of any warranty; and give all
|
||||||
|
recipients a copy of this License along with the Program.
|
||||||
|
|
||||||
|
You may charge any price or no price for each copy that you convey,
|
||||||
|
and you may offer support or warranty protection for a fee.
|
||||||
|
|
||||||
|
5. Conveying Modified Source Versions.
|
||||||
|
|
||||||
|
You may convey a work based on the Program, or the modifications to
|
||||||
|
produce it from the Program, in the form of source code under the
|
||||||
|
terms of section 4, provided that you also meet all of these conditions:
|
||||||
|
|
||||||
|
a) The work must carry prominent notices stating that you modified
|
||||||
|
it, and giving a relevant date.
|
||||||
|
|
||||||
|
b) The work must carry prominent notices stating that it is
|
||||||
|
released under this License and any conditions added under section
|
||||||
|
7. This requirement modifies the requirement in section 4 to
|
||||||
|
"keep intact all notices".
|
||||||
|
|
||||||
|
c) You must license the entire work, as a whole, under this
|
||||||
|
License to anyone who comes into possession of a copy. This
|
||||||
|
License will therefore apply, along with any applicable section 7
|
||||||
|
additional terms, to the whole of the work, and all its parts,
|
||||||
|
regardless of how they are packaged. This License gives no
|
||||||
|
permission to license the work in any other way, but it does not
|
||||||
|
invalidate such permission if you have separately received it.
|
||||||
|
|
||||||
|
d) If the work has interactive user interfaces, each must display
|
||||||
|
Appropriate Legal Notices; however, if the Program has interactive
|
||||||
|
interfaces that do not display Appropriate Legal Notices, your
|
||||||
|
work need not make them do so.
|
||||||
|
|
||||||
|
A compilation of a covered work with other separate and independent
|
||||||
|
works, which are not by their nature extensions of the covered work,
|
||||||
|
and which are not combined with it such as to form a larger program,
|
||||||
|
in or on a volume of a storage or distribution medium, is called an
|
||||||
|
"aggregate" if the compilation and its resulting copyright are not
|
||||||
|
used to limit the access or legal rights of the compilation's users
|
||||||
|
beyond what the individual works permit. Inclusion of a covered work
|
||||||
|
in an aggregate does not cause this License to apply to the other
|
||||||
|
parts of the aggregate.
|
||||||
|
|
||||||
|
6. Conveying Non-Source Forms.
|
||||||
|
|
||||||
|
You may convey a covered work in object code form under the terms
|
||||||
|
of sections 4 and 5, provided that you also convey the
|
||||||
|
machine-readable Corresponding Source under the terms of this License,
|
||||||
|
in one of these ways:
|
||||||
|
|
||||||
|
a) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by the
|
||||||
|
Corresponding Source fixed on a durable physical medium
|
||||||
|
customarily used for software interchange.
|
||||||
|
|
||||||
|
b) Convey the object code in, or embodied in, a physical product
|
||||||
|
(including a physical distribution medium), accompanied by a
|
||||||
|
written offer, valid for at least three years and valid for as
|
||||||
|
long as you offer spare parts or customer support for that product
|
||||||
|
model, to give anyone who possesses the object code either (1) a
|
||||||
|
copy of the Corresponding Source for all the software in the
|
||||||
|
product that is covered by this License, on a durable physical
|
||||||
|
medium customarily used for software interchange, for a price no
|
||||||
|
more than your reasonable cost of physically performing this
|
||||||
|
conveying of source, or (2) access to copy the
|
||||||
|
Corresponding Source from a network server at no charge.
|
||||||
|
|
||||||
|
c) Convey individual copies of the object code with a copy of the
|
||||||
|
written offer to provide the Corresponding Source. This
|
||||||
|
alternative is allowed only occasionally and noncommercially, and
|
||||||
|
only if you received the object code with such an offer, in accord
|
||||||
|
with subsection 6b.
|
||||||
|
|
||||||
|
d) Convey the object code by offering access from a designated
|
||||||
|
place (gratis or for a charge), and offer equivalent access to the
|
||||||
|
Corresponding Source in the same way through the same place at no
|
||||||
|
further charge. You need not require recipients to copy the
|
||||||
|
Corresponding Source along with the object code. If the place to
|
||||||
|
copy the object code is a network server, the Corresponding Source
|
||||||
|
may be on a different server (operated by you or a third party)
|
||||||
|
that supports equivalent copying facilities, provided you maintain
|
||||||
|
clear directions next to the object code saying where to find the
|
||||||
|
Corresponding Source. Regardless of what server hosts the
|
||||||
|
Corresponding Source, you remain obligated to ensure that it is
|
||||||
|
available for as long as needed to satisfy these requirements.
|
||||||
|
|
||||||
|
e) Convey the object code using peer-to-peer transmission, provided
|
||||||
|
you inform other peers where the object code and Corresponding
|
||||||
|
Source of the work are being offered to the general public at no
|
||||||
|
charge under subsection 6d.
|
||||||
|
|
||||||
|
A separable portion of the object code, whose source code is excluded
|
||||||
|
from the Corresponding Source as a System Library, need not be
|
||||||
|
included in conveying the object code work.
|
||||||
|
|
||||||
|
A "User Product" is either (1) a "consumer product", which means any
|
||||||
|
tangible personal property which is normally used for personal, family,
|
||||||
|
or household purposes, or (2) anything designed or sold for incorporation
|
||||||
|
into a dwelling. In determining whether a product is a consumer product,
|
||||||
|
doubtful cases shall be resolved in favor of coverage. For a particular
|
||||||
|
product received by a particular user, "normally used" refers to a
|
||||||
|
typical or common use of that class of product, regardless of the status
|
||||||
|
of the particular user or of the way in which the particular user
|
||||||
|
actually uses, or expects or is expected to use, the product. A product
|
||||||
|
is a consumer product regardless of whether the product has substantial
|
||||||
|
commercial, industrial or non-consumer uses, unless such uses represent
|
||||||
|
the only significant mode of use of the product.
|
||||||
|
|
||||||
|
"Installation Information" for a User Product means any methods,
|
||||||
|
procedures, authorization keys, or other information required to install
|
||||||
|
and execute modified versions of a covered work in that User Product from
|
||||||
|
a modified version of its Corresponding Source. The information must
|
||||||
|
suffice to ensure that the continued functioning of the modified object
|
||||||
|
code is in no case prevented or interfered with solely because
|
||||||
|
modification has been made.
|
||||||
|
|
||||||
|
If you convey an object code work under this section in, or with, or
|
||||||
|
specifically for use in, a User Product, and the conveying occurs as
|
||||||
|
part of a transaction in which the right of possession and use of the
|
||||||
|
User Product is transferred to the recipient in perpetuity or for a
|
||||||
|
fixed term (regardless of how the transaction is characterized), the
|
||||||
|
Corresponding Source conveyed under this section must be accompanied
|
||||||
|
by the Installation Information. But this requirement does not apply
|
||||||
|
if neither you nor any third party retains the ability to install
|
||||||
|
modified object code on the User Product (for example, the work has
|
||||||
|
been installed in ROM).
|
||||||
|
|
||||||
|
The requirement to provide Installation Information does not include a
|
||||||
|
requirement to continue to provide support service, warranty, or updates
|
||||||
|
for a work that has been modified or installed by the recipient, or for
|
||||||
|
the User Product in which it has been modified or installed. Access to a
|
||||||
|
network may be denied when the modification itself materially and
|
||||||
|
adversely affects the operation of the network or violates the rules and
|
||||||
|
protocols for communication across the network.
|
||||||
|
|
||||||
|
Corresponding Source conveyed, and Installation Information provided,
|
||||||
|
in accord with this section must be in a format that is publicly
|
||||||
|
documented (and with an implementation available to the public in
|
||||||
|
source code form), and must require no special password or key for
|
||||||
|
unpacking, reading or copying.
|
||||||
|
|
||||||
|
7. Additional Terms.
|
||||||
|
|
||||||
|
"Additional permissions" are terms that supplement the terms of this
|
||||||
|
License by making exceptions from one or more of its conditions.
|
||||||
|
Additional permissions that are applicable to the entire Program shall
|
||||||
|
be treated as though they were included in this License, to the extent
|
||||||
|
that they are valid under applicable law. If additional permissions
|
||||||
|
apply only to part of the Program, that part may be used separately
|
||||||
|
under those permissions, but the entire Program remains governed by
|
||||||
|
this License without regard to the additional permissions.
|
||||||
|
|
||||||
|
When you convey a copy of a covered work, you may at your option
|
||||||
|
remove any additional permissions from that copy, or from any part of
|
||||||
|
it. (Additional permissions may be written to require their own
|
||||||
|
removal in certain cases when you modify the work.) You may place
|
||||||
|
additional permissions on material, added by you to a covered work,
|
||||||
|
for which you have or can give appropriate copyright permission.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, for material you
|
||||||
|
add to a covered work, you may (if authorized by the copyright holders of
|
||||||
|
that material) supplement the terms of this License with terms:
|
||||||
|
|
||||||
|
a) Disclaiming warranty or limiting liability differently from the
|
||||||
|
terms of sections 15 and 16 of this License; or
|
||||||
|
|
||||||
|
b) Requiring preservation of specified reasonable legal notices or
|
||||||
|
author attributions in that material or in the Appropriate Legal
|
||||||
|
Notices displayed by works containing it; or
|
||||||
|
|
||||||
|
c) Prohibiting misrepresentation of the origin of that material, or
|
||||||
|
requiring that modified versions of such material be marked in
|
||||||
|
reasonable ways as different from the original version; or
|
||||||
|
|
||||||
|
d) Limiting the use for publicity purposes of names of licensors or
|
||||||
|
authors of the material; or
|
||||||
|
|
||||||
|
e) Declining to grant rights under trademark law for use of some
|
||||||
|
trade names, trademarks, or service marks; or
|
||||||
|
|
||||||
|
f) Requiring indemnification of licensors and authors of that
|
||||||
|
material by anyone who conveys the material (or modified versions of
|
||||||
|
it) with contractual assumptions of liability to the recipient, for
|
||||||
|
any liability that these contractual assumptions directly impose on
|
||||||
|
those licensors and authors.
|
||||||
|
|
||||||
|
All other non-permissive additional terms are considered "further
|
||||||
|
restrictions" within the meaning of section 10. If the Program as you
|
||||||
|
received it, or any part of it, contains a notice stating that it is
|
||||||
|
governed by this License along with a term that is a further
|
||||||
|
restriction, you may remove that term. If a license document contains
|
||||||
|
a further restriction but permits relicensing or conveying under this
|
||||||
|
License, you may add to a covered work material governed by the terms
|
||||||
|
of that license document, provided that the further restriction does
|
||||||
|
not survive such relicensing or conveying.
|
||||||
|
|
||||||
|
If you add terms to a covered work in accord with this section, you
|
||||||
|
must place, in the relevant source files, a statement of the
|
||||||
|
additional terms that apply to those files, or a notice indicating
|
||||||
|
where to find the applicable terms.
|
||||||
|
|
||||||
|
Additional terms, permissive or non-permissive, may be stated in the
|
||||||
|
form of a separately written license, or stated as exceptions;
|
||||||
|
the above requirements apply either way.
|
||||||
|
|
||||||
|
8. Termination.
|
||||||
|
|
||||||
|
You may not propagate or modify a covered work except as expressly
|
||||||
|
provided under this License. Any attempt otherwise to propagate or
|
||||||
|
modify it is void, and will automatically terminate your rights under
|
||||||
|
this License (including any patent licenses granted under the third
|
||||||
|
paragraph of section 11).
|
||||||
|
|
||||||
|
However, if you cease all violation of this License, then your
|
||||||
|
license from a particular copyright holder is reinstated (a)
|
||||||
|
provisionally, unless and until the copyright holder explicitly and
|
||||||
|
finally terminates your license, and (b) permanently, if the copyright
|
||||||
|
holder fails to notify you of the violation by some reasonable means
|
||||||
|
prior to 60 days after the cessation.
|
||||||
|
|
||||||
|
Moreover, your license from a particular copyright holder is
|
||||||
|
reinstated permanently if the copyright holder notifies you of the
|
||||||
|
violation by some reasonable means, this is the first time you have
|
||||||
|
received notice of violation of this License (for any work) from that
|
||||||
|
copyright holder, and you cure the violation prior to 30 days after
|
||||||
|
your receipt of the notice.
|
||||||
|
|
||||||
|
Termination of your rights under this section does not terminate the
|
||||||
|
licenses of parties who have received copies or rights from you under
|
||||||
|
this License. If your rights have been terminated and not permanently
|
||||||
|
reinstated, you do not qualify to receive new licenses for the same
|
||||||
|
material under section 10.
|
||||||
|
|
||||||
|
9. Acceptance Not Required for Having Copies.
|
||||||
|
|
||||||
|
You are not required to accept this License in order to receive or
|
||||||
|
run a copy of the Program. Ancillary propagation of a covered work
|
||||||
|
occurring solely as a consequence of using peer-to-peer transmission
|
||||||
|
to receive a copy likewise does not require acceptance. However,
|
||||||
|
nothing other than this License grants you permission to propagate or
|
||||||
|
modify any covered work. These actions infringe copyright if you do
|
||||||
|
not accept this License. Therefore, by modifying or propagating a
|
||||||
|
covered work, you indicate your acceptance of this License to do so.
|
||||||
|
|
||||||
|
10. Automatic Licensing of Downstream Recipients.
|
||||||
|
|
||||||
|
Each time you convey a covered work, the recipient automatically
|
||||||
|
receives a license from the original licensors, to run, modify and
|
||||||
|
propagate that work, subject to this License. You are not responsible
|
||||||
|
for enforcing compliance by third parties with this License.
|
||||||
|
|
||||||
|
An "entity transaction" is a transaction transferring control of an
|
||||||
|
organization, or substantially all assets of one, or subdividing an
|
||||||
|
organization, or merging organizations. If propagation of a covered
|
||||||
|
work results from an entity transaction, each party to that
|
||||||
|
transaction who receives a copy of the work also receives whatever
|
||||||
|
licenses to the work the party's predecessor in interest had or could
|
||||||
|
give under the previous paragraph, plus a right to possession of the
|
||||||
|
Corresponding Source of the work from the predecessor in interest, if
|
||||||
|
the predecessor has it or can get it with reasonable efforts.
|
||||||
|
|
||||||
|
You may not impose any further restrictions on the exercise of the
|
||||||
|
rights granted or affirmed under this License. For example, you may
|
||||||
|
not impose a license fee, royalty, or other charge for exercise of
|
||||||
|
rights granted under this License, and you may not initiate litigation
|
||||||
|
(including a cross-claim or counterclaim in a lawsuit) alleging that
|
||||||
|
any patent claim is infringed by making, using, selling, offering for
|
||||||
|
sale, or importing the Program or any portion of it.
|
||||||
|
|
||||||
|
11. Patents.
|
||||||
|
|
||||||
|
A "contributor" is a copyright holder who authorizes use under this
|
||||||
|
License of the Program or a work on which the Program is based. The
|
||||||
|
work thus licensed is called the contributor's "contributor version".
|
||||||
|
|
||||||
|
A contributor's "essential patent claims" are all patent claims
|
||||||
|
owned or controlled by the contributor, whether already acquired or
|
||||||
|
hereafter acquired, that would be infringed by some manner, permitted
|
||||||
|
by this License, of making, using, or selling its contributor version,
|
||||||
|
but do not include claims that would be infringed only as a
|
||||||
|
consequence of further modification of the contributor version. For
|
||||||
|
purposes of this definition, "control" includes the right to grant
|
||||||
|
patent sublicenses in a manner consistent with the requirements of
|
||||||
|
this License.
|
||||||
|
|
||||||
|
Each contributor grants you a non-exclusive, worldwide, royalty-free
|
||||||
|
patent license under the contributor's essential patent claims, to
|
||||||
|
make, use, sell, offer for sale, import and otherwise run, modify and
|
||||||
|
propagate the contents of its contributor version.
|
||||||
|
|
||||||
|
In the following three paragraphs, a "patent license" is any express
|
||||||
|
agreement or commitment, however denominated, not to enforce a patent
|
||||||
|
(such as an express permission to practice a patent or covenant not to
|
||||||
|
sue for patent infringement). To "grant" such a patent license to a
|
||||||
|
party means to make such an agreement or commitment not to enforce a
|
||||||
|
patent against the party.
|
||||||
|
|
||||||
|
If you convey a covered work, knowingly relying on a patent license,
|
||||||
|
and the Corresponding Source of the work is not available for anyone
|
||||||
|
to copy, free of charge and under the terms of this License, through a
|
||||||
|
publicly available network server or other readily accessible means,
|
||||||
|
then you must either (1) cause the Corresponding Source to be so
|
||||||
|
available, or (2) arrange to deprive yourself of the benefit of the
|
||||||
|
patent license for this particular work, or (3) arrange, in a manner
|
||||||
|
consistent with the requirements of this License, to extend the patent
|
||||||
|
license to downstream recipients. "Knowingly relying" means you have
|
||||||
|
actual knowledge that, but for the patent license, your conveying the
|
||||||
|
covered work in a country, or your recipient's use of the covered work
|
||||||
|
in a country, would infringe one or more identifiable patents in that
|
||||||
|
country that you have reason to believe are valid.
|
||||||
|
|
||||||
|
If, pursuant to or in connection with a single transaction or
|
||||||
|
arrangement, you convey, or propagate by procuring conveyance of, a
|
||||||
|
covered work, and grant a patent license to some of the parties
|
||||||
|
receiving the covered work authorizing them to use, propagate, modify
|
||||||
|
or convey a specific copy of the covered work, then the patent license
|
||||||
|
you grant is automatically extended to all recipients of the covered
|
||||||
|
work and works based on it.
|
||||||
|
|
||||||
|
A patent license is "discriminatory" if it does not include within
|
||||||
|
the scope of its coverage, prohibits the exercise of, or is
|
||||||
|
conditioned on the non-exercise of one or more of the rights that are
|
||||||
|
specifically granted under this License. You may not convey a covered
|
||||||
|
work if you are a party to an arrangement with a third party that is
|
||||||
|
in the business of distributing software, under which you make payment
|
||||||
|
to the third party based on the extent of your activity of conveying
|
||||||
|
the work, and under which the third party grants, to any of the
|
||||||
|
parties who would receive the covered work from you, a discriminatory
|
||||||
|
patent license (a) in connection with copies of the covered work
|
||||||
|
conveyed by you (or copies made from those copies), or (b) primarily
|
||||||
|
for and in connection with specific products or compilations that
|
||||||
|
contain the covered work, unless you entered into that arrangement,
|
||||||
|
or that patent license was granted, prior to 28 March 2007.
|
||||||
|
|
||||||
|
Nothing in this License shall be construed as excluding or limiting
|
||||||
|
any implied license or other defenses to infringement that may
|
||||||
|
otherwise be available to you under applicable patent law.
|
||||||
|
|
||||||
|
12. No Surrender of Others' Freedom.
|
||||||
|
|
||||||
|
If conditions are imposed on you (whether by court order, agreement or
|
||||||
|
otherwise) that contradict the conditions of this License, they do not
|
||||||
|
excuse you from the conditions of this License. If you cannot convey a
|
||||||
|
covered work so as to satisfy simultaneously your obligations under this
|
||||||
|
License and any other pertinent obligations, then as a consequence you may
|
||||||
|
not convey it at all. For example, if you agree to terms that obligate you
|
||||||
|
to collect a royalty for further conveying from those to whom you convey
|
||||||
|
the Program, the only way you could satisfy both those terms and this
|
||||||
|
License would be to refrain entirely from conveying the Program.
|
||||||
|
|
||||||
|
13. Use with the GNU Affero General Public License.
|
||||||
|
|
||||||
|
Notwithstanding any other provision of this License, you have
|
||||||
|
permission to link or combine any covered work with a work licensed
|
||||||
|
under version 3 of the GNU Affero General Public License into a single
|
||||||
|
combined work, and to convey the resulting work. The terms of this
|
||||||
|
License will continue to apply to the part which is the covered work,
|
||||||
|
but the special requirements of the GNU Affero General Public License,
|
||||||
|
section 13, concerning interaction through a network will apply to the
|
||||||
|
combination as such.
|
||||||
|
|
||||||
|
14. Revised Versions of this License.
|
||||||
|
|
||||||
|
The Free Software Foundation may publish revised and/or new versions of
|
||||||
|
the GNU General Public License from time to time. Such new versions will
|
||||||
|
be similar in spirit to the present version, but may differ in detail to
|
||||||
|
address new problems or concerns.
|
||||||
|
|
||||||
|
Each version is given a distinguishing version number. If the
|
||||||
|
Program specifies that a certain numbered version of the GNU General
|
||||||
|
Public License "or any later version" applies to it, you have the
|
||||||
|
option of following the terms and conditions either of that numbered
|
||||||
|
version or of any later version published by the Free Software
|
||||||
|
Foundation. If the Program does not specify a version number of the
|
||||||
|
GNU General Public License, you may choose any version ever published
|
||||||
|
by the Free Software Foundation.
|
||||||
|
|
||||||
|
If the Program specifies that a proxy can decide which future
|
||||||
|
versions of the GNU General Public License can be used, that proxy's
|
||||||
|
public statement of acceptance of a version permanently authorizes you
|
||||||
|
to choose that version for the Program.
|
||||||
|
|
||||||
|
Later license versions may give you additional or different
|
||||||
|
permissions. However, no additional obligations are imposed on any
|
||||||
|
author or copyright holder as a result of your choosing to follow a
|
||||||
|
later version.
|
||||||
|
|
||||||
|
15. Disclaimer of Warranty.
|
||||||
|
|
||||||
|
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
|
||||||
|
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
|
||||||
|
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
|
||||||
|
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
|
||||||
|
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
|
||||||
|
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
|
||||||
|
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
|
||||||
|
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
|
||||||
|
|
||||||
|
16. Limitation of Liability.
|
||||||
|
|
||||||
|
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||||
|
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
|
||||||
|
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
|
||||||
|
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
|
||||||
|
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
|
||||||
|
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
|
||||||
|
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
|
||||||
|
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
|
||||||
|
SUCH DAMAGES.
|
||||||
|
|
||||||
|
17. Interpretation of Sections 15 and 16.
|
||||||
|
|
||||||
|
If the disclaimer of warranty and limitation of liability provided
|
||||||
|
above cannot be given local legal effect according to their terms,
|
||||||
|
reviewing courts shall apply local law that most closely approximates
|
||||||
|
an absolute waiver of all civil liability in connection with the
|
||||||
|
Program, unless a warranty or assumption of liability accompanies a
|
||||||
|
copy of the Program in return for a fee.
|
||||||
|
|
||||||
|
END OF TERMS AND CONDITIONS
|
||||||
|
|
||||||
|
How to Apply These Terms to Your New Programs
|
||||||
|
|
||||||
|
If you develop a new program, and you want it to be of the greatest
|
||||||
|
possible use to the public, the best way to achieve this is to make it
|
||||||
|
free software which everyone can redistribute and change under these terms.
|
||||||
|
|
||||||
|
To do so, attach the following notices to the program. It is safest
|
||||||
|
to attach them to the start of each source file to most effectively
|
||||||
|
state the exclusion of warranty; and each file should have at least
|
||||||
|
the "copyright" line and a pointer to where the full notice is found.
|
||||||
|
|
||||||
|
<one line to give the program's name and a brief idea of what it does.>
|
||||||
|
Copyright (C) <year> <name of author>
|
||||||
|
|
||||||
|
This program is free software: you can redistribute it and/or modify
|
||||||
|
it under the terms of the GNU General Public License as published by
|
||||||
|
the Free Software Foundation, either version 3 of the License, or
|
||||||
|
(at your option) any later version.
|
||||||
|
|
||||||
|
This program is distributed in the hope that it will be useful,
|
||||||
|
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||||
|
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||||
|
GNU General Public License for more details.
|
||||||
|
|
||||||
|
You should have received a copy of the GNU General Public License
|
||||||
|
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
Also add information on how to contact you by electronic and paper mail.
|
||||||
|
|
||||||
|
If the program does terminal interaction, make it output a short
|
||||||
|
notice like this when it starts in an interactive mode:
|
||||||
|
|
||||||
|
<program> Copyright (C) <year> <name of author>
|
||||||
|
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||||
|
This is free software, and you are welcome to redistribute it
|
||||||
|
under certain conditions; type `show c' for details.
|
||||||
|
|
||||||
|
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||||
|
parts of the General Public License. Of course, your program's commands
|
||||||
|
might be different; for a GUI interface, you would use an "about box".
|
||||||
|
|
||||||
|
You should also get your employer (if you work as a programmer) or school,
|
||||||
|
if any, to sign a "copyright disclaimer" for the program, if necessary.
|
||||||
|
For more information on this, and how to apply and follow the GNU GPL, see
|
||||||
|
<http://www.gnu.org/licenses/>.
|
||||||
|
|
||||||
|
The GNU General Public License does not permit incorporating your program
|
||||||
|
into proprietary programs. If your program is a subroutine library, you
|
||||||
|
may consider it more useful to permit linking proprietary applications with
|
||||||
|
the library. If this is what you want to do, use the GNU Lesser General
|
||||||
|
Public License instead of this License. But first, please read
|
||||||
|
<http://www.gnu.org/philosophy/why-not-lgpl.html>.
|
||||||
@@ -0,0 +1,25 @@
|
|||||||
|
|
||||||
|
Microsoft Visual Studio Solution File, Format Version 12.00
|
||||||
|
# Visual Studio Version 16
|
||||||
|
VisualStudioVersion = 16.0.29509.3
|
||||||
|
MinimumVisualStudioVersion = 10.0.40219.1
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MotionDecoder", "MotionDecoder\MotionDecoder.csproj", "{F6D82605-6E5F-4FD6-AF07-CD4EC9DE5DC9}"
|
||||||
|
EndProject
|
||||||
|
Global
|
||||||
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
|
Debug|Any CPU = Debug|Any CPU
|
||||||
|
Release|Any CPU = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ProjectConfigurationPlatforms) = postSolution
|
||||||
|
{F6D82605-6E5F-4FD6-AF07-CD4EC9DE5DC9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{F6D82605-6E5F-4FD6-AF07-CD4EC9DE5DC9}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{F6D82605-6E5F-4FD6-AF07-CD4EC9DE5DC9}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{F6D82605-6E5F-4FD6-AF07-CD4EC9DE5DC9}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
|
HideSolutionNode = FALSE
|
||||||
|
EndGlobalSection
|
||||||
|
GlobalSection(ExtensibilityGlobals) = postSolution
|
||||||
|
SolutionGuid = {DCDB3D43-4794-40E6-8A3B-788F864511C4}
|
||||||
|
EndGlobalSection
|
||||||
|
EndGlobal
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8" ?>
|
||||||
|
<configuration>
|
||||||
|
<configSections>
|
||||||
|
<sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
|
||||||
|
<section name="MotionDecoder.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
|
<section name="MovementDecoder.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
|
||||||
|
</sectionGroup>
|
||||||
|
</configSections>
|
||||||
|
<startup useLegacyV2RuntimeActivationPolicy="true">
|
||||||
|
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6" />
|
||||||
|
</startup>
|
||||||
|
<userSettings>
|
||||||
|
<MotionDecoder.Properties.Settings>
|
||||||
|
<setting name="filters" serializeAs="String">
|
||||||
|
<value>All video files|*.avi;*.mkv;*.mov;*.mp4;*.wmv;*.3gp; *.flv; *.,mpeg; *.ts; *.m2ts; *.rm; *.rmvb; *.ogm; *.webm|AVI|*.avi|MKV|*.mkv|MOV|*.mov|MP4|*.mp4|WMV|*.wmv|FLV|*.flv|MPEG|*.,mpeg|TS|*.ts|M2TS|*.m2ts|RM|*.rm|MVB|*.rmvb|OGM|*.ogm|WebM|*.webm|All files|*.*</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="threshold" serializeAs="String">
|
||||||
|
<value>60</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="duration" serializeAs="String">
|
||||||
|
<value>60</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="volume" serializeAs="String">
|
||||||
|
<value>-1000</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="showMessage" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
</MotionDecoder.Properties.Settings>
|
||||||
|
<MovementDecoder.Properties.Settings>
|
||||||
|
<setting name="filters" serializeAs="String">
|
||||||
|
<value>All video files|*.avi;*.mkv;*.mov;*.mp4;*.wmv;*.3gp; *.flv; *.,mpeg; *.ts; *.m2ts; *.rm; *.rmvb; *.ogm; *.webm|AVI|*.avi|MKV|*.mkv|MOV|*.mov|MP4|*.mp4|WMV|*.wmv|FLV|*.flv|MPEG|*.,mpeg|TS|*.ts|M2TS|*.m2ts|RM|*.rm|MVB|*.rmvb|OGM|*.ogm|WebM|*.webm|All files|*.*</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="threshold" serializeAs="String">
|
||||||
|
<value>60</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="duration" serializeAs="String">
|
||||||
|
<value>60</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="volume" serializeAs="String">
|
||||||
|
<value>-1000</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="showMessage" serializeAs="String">
|
||||||
|
<value>True</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="videoPlayerSize" serializeAs="String">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</setting>
|
||||||
|
<setting name="darkTheme" serializeAs="String">
|
||||||
|
<value>False</value>
|
||||||
|
</setting>
|
||||||
|
</MovementDecoder.Properties.Settings>
|
||||||
|
</userSettings>
|
||||||
|
</configuration>
|
||||||
@@ -0,0 +1,97 @@
|
|||||||
|
namespace MotionDecoder.Forms
|
||||||
|
{
|
||||||
|
partial class About
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(About));
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.label2 = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.githubLink = new System.Windows.Forms.LinkLabel();
|
||||||
|
this.pictureBox1 = new System.Windows.Forms.PictureBox();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// label2
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label2, "label2");
|
||||||
|
this.label2.Name = "label2";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// githubLink
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.githubLink, "githubLink");
|
||||||
|
this.githubLink.Name = "githubLink";
|
||||||
|
this.githubLink.TabStop = true;
|
||||||
|
this.githubLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.githubLink_LinkClicked);
|
||||||
|
//
|
||||||
|
// pictureBox1
|
||||||
|
//
|
||||||
|
this.pictureBox1.Image = global::MotionDecoder.Properties.Resources.logo;
|
||||||
|
resources.ApplyResources(this.pictureBox1, "pictureBox1");
|
||||||
|
this.pictureBox1.Name = "pictureBox1";
|
||||||
|
this.pictureBox1.TabStop = false;
|
||||||
|
//
|
||||||
|
// aboutFrame
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.pictureBox1);
|
||||||
|
this.Controls.Add(this.githubLink);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.label2);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "aboutFrame";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label2;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.LinkLabel githubLink;
|
||||||
|
private System.Windows.Forms.PictureBox pictureBox1;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,14 @@
|
|||||||
|
using System.Diagnostics;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MotionDecoder.Forms
|
||||||
|
{
|
||||||
|
public partial class About : Form
|
||||||
|
{
|
||||||
|
public About() =>
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
void githubLink_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) =>
|
||||||
|
Process.Start(githubLink.Text);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,288 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label1.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Arial, 18pt, style=Bold</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>56, 8</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>189, 29</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>MotionDecoder</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>131, 37</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Security cameras video processing</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Name" xml:space="preserve">
|
||||||
|
<value>label2</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label2.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Bottom, Left, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>12, 63</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>293, 107</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Copyright 2018 Michael Gordeev. All rights reserved.
|
||||||
|
GNU General Public License 3.0
|
||||||
|
(You may not remove or alter any initial copyright labels)
|
||||||
|
|
||||||
|
This program and algorithm are created for projects competetion "Sirius".
|
||||||
|
|
||||||
|
Source code is available on GitHub:</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="githubLink.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="githubLink.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>14, 170</value>
|
||||||
|
</data>
|
||||||
|
<data name="githubLink.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>217, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="githubLink.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="githubLink.Text" xml:space="preserve">
|
||||||
|
<value>https://github.com/XFox111/motiondecoder</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>githubLink.Name" xml:space="preserve">
|
||||||
|
<value>githubLink</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>githubLink.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.LinkLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>githubLink.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>githubLink.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox1.InitialImage" type="System.Resources.ResXNullRef, System.Windows.Forms">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>8, 8</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>2, 2, 2, 2</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>43, 42</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
|
||||||
|
<value>StretchImage</value>
|
||||||
|
</data>
|
||||||
|
<data name="pictureBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox1.Name" xml:space="preserve">
|
||||||
|
<value>pictureBox1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>pictureBox1.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>314, 201</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>About</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>aboutFrame</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,141 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>86, 37</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>216, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label2.Text" xml:space="preserve">
|
||||||
|
<value>Обработка записей с камер наблюдения</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>(с) 2018 Михаил Гордеев. Все права защищены.
|
||||||
|
GNU General Public License 3.0
|
||||||
|
(Вы не можете изменять или удалять метки об авторских правах)
|
||||||
|
|
||||||
|
Программа и алгоритм были созданы для конкурса проектных работ "Сириус".
|
||||||
|
Исходный код доступен на GitHub:</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>О программе</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,157 @@
|
|||||||
|
namespace MotionDecoder.Forms
|
||||||
|
{
|
||||||
|
partial class Main
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Main));
|
||||||
|
this.fileBrowser = new System.Windows.Forms.OpenFileDialog();
|
||||||
|
this.treeView = new System.Windows.Forms.TreeView();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.helpToolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.menuStrip1 = new System.Windows.Forms.MenuStrip();
|
||||||
|
this.file = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.open = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.clear = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.about = new System.Windows.Forms.ToolStripMenuItem();
|
||||||
|
this.comboBox = new System.Windows.Forms.ComboBox();
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.videoPlayer = new MotionDecoder.VideoPlayer();
|
||||||
|
this.menuStrip1.SuspendLayout();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// fileBrowser
|
||||||
|
//
|
||||||
|
this.fileBrowser.InitialDirectory = "%Desktop%";
|
||||||
|
this.fileBrowser.Multiselect = true;
|
||||||
|
//
|
||||||
|
// treeView
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.treeView, "treeView");
|
||||||
|
this.treeView.Name = "treeView";
|
||||||
|
this.treeView.NodeMouseDoubleClick += new System.Windows.Forms.TreeNodeMouseClickEventHandler(this.OnSegmentChanged);
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// menuStrip1
|
||||||
|
//
|
||||||
|
this.menuStrip1.ImageScalingSize = new System.Drawing.Size(24, 24);
|
||||||
|
this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.file});
|
||||||
|
resources.ApplyResources(this.menuStrip1, "menuStrip1");
|
||||||
|
this.menuStrip1.Name = "menuStrip1";
|
||||||
|
//
|
||||||
|
// file
|
||||||
|
//
|
||||||
|
this.file.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
|
||||||
|
this.open,
|
||||||
|
this.clear,
|
||||||
|
this.about});
|
||||||
|
this.file.Name = "file";
|
||||||
|
resources.ApplyResources(this.file, "file");
|
||||||
|
//
|
||||||
|
// open
|
||||||
|
//
|
||||||
|
this.open.Name = "open";
|
||||||
|
resources.ApplyResources(this.open, "open");
|
||||||
|
this.open.Click += new System.EventHandler(this.OpenFiles);
|
||||||
|
//
|
||||||
|
// clear
|
||||||
|
//
|
||||||
|
this.clear.Name = "clear";
|
||||||
|
resources.ApplyResources(this.clear, "clear");
|
||||||
|
this.clear.Click += new System.EventHandler(this.ClearView);
|
||||||
|
//
|
||||||
|
// about
|
||||||
|
//
|
||||||
|
this.about.Name = "about";
|
||||||
|
resources.ApplyResources(this.about, "about");
|
||||||
|
this.about.Click += new System.EventHandler(this.OpenAboutWindow);
|
||||||
|
//
|
||||||
|
// comboBox
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.comboBox, "comboBox");
|
||||||
|
this.comboBox.DisplayMember = "0";
|
||||||
|
this.comboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList;
|
||||||
|
this.comboBox.FormattingEnabled = true;
|
||||||
|
this.comboBox.Name = "comboBox";
|
||||||
|
this.comboBox.SelectedIndexChanged += new System.EventHandler(this.OnVideoChanged);
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// videoPlayer
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.videoPlayer, "videoPlayer");
|
||||||
|
this.videoPlayer.Name = "videoPlayer";
|
||||||
|
this.videoPlayer.NextSegmentRequested += new System.EventHandler(this.NextSegment);
|
||||||
|
this.videoPlayer.PreviousSegmentRequested += new System.EventHandler(this.PreviousSegment);
|
||||||
|
//
|
||||||
|
// Main
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.videoPlayer);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.Controls.Add(this.comboBox);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.treeView);
|
||||||
|
this.Controls.Add(this.menuStrip1);
|
||||||
|
this.HelpButton = true;
|
||||||
|
this.KeyPreview = true;
|
||||||
|
this.MainMenuStrip = this.menuStrip1;
|
||||||
|
this.Name = "Main";
|
||||||
|
this.KeyUp += new System.Windows.Forms.KeyEventHandler(this.OnKeyUp);
|
||||||
|
this.menuStrip1.ResumeLayout(false);
|
||||||
|
this.menuStrip1.PerformLayout();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.OpenFileDialog fileBrowser;
|
||||||
|
private System.Windows.Forms.TreeView treeView;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
private System.Windows.Forms.ToolTip helpToolTip;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem file;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem open;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem clear;
|
||||||
|
private System.Windows.Forms.ToolStripMenuItem about;
|
||||||
|
private System.Windows.Forms.MenuStrip menuStrip1;
|
||||||
|
private System.Windows.Forms.ComboBox comboBox;
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private VideoPlayer videoPlayer;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using MotionDecoder.Properties;
|
||||||
|
using MotionDecoder.Models;
|
||||||
|
|
||||||
|
namespace MotionDecoder.Forms
|
||||||
|
{
|
||||||
|
public partial class Main : Form
|
||||||
|
{
|
||||||
|
Video[] collection = null; // Collection of currently opened videos
|
||||||
|
|
||||||
|
public Main()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
fileBrowser.Filter = Settings.Default.filters; // Settings file filters for picker
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenAboutWindow(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
About about = new About();
|
||||||
|
about.Show(this);
|
||||||
|
about.Dispose();
|
||||||
|
}
|
||||||
|
|
||||||
|
void ClearView(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (comboBox.Items.Count > 0 && MessageBox.Show(Resources.clearConf, Resources.questionHeader, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) == DialogResult.Yes)
|
||||||
|
Clear();
|
||||||
|
}
|
||||||
|
|
||||||
|
void OpenFiles(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (Settings.Default.showMessage) // Shows information about project capabilities issues
|
||||||
|
{
|
||||||
|
Settings.Default.showMessage = false;
|
||||||
|
Settings.Default.Save();
|
||||||
|
MessageBox.Show(Resources.attentionBody, Resources.attentionHead, MessageBoxButtons.OK, MessageBoxIcon.Information);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (fileBrowser.ShowDialog() == DialogResult.OK)
|
||||||
|
ProcessFiles(fileBrowser.FileNames);
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clears menus, list, disposes instances etc
|
||||||
|
/// </summary>
|
||||||
|
void Clear()
|
||||||
|
{
|
||||||
|
comboBox.Enabled = false;
|
||||||
|
comboBox.Items.Clear();
|
||||||
|
treeView.Nodes.Clear();
|
||||||
|
|
||||||
|
videoPlayer.Clear();
|
||||||
|
collection = null;
|
||||||
|
GC.Collect();
|
||||||
|
}
|
||||||
|
|
||||||
|
async void ProcessFiles(string[] paths)
|
||||||
|
{
|
||||||
|
Clear();
|
||||||
|
Processing processingFrame = new Processing();
|
||||||
|
processingFrame.Show(this);
|
||||||
|
Enabled = false;
|
||||||
|
collection = await processingFrame.ProcessAsync(paths);
|
||||||
|
Enabled = true;
|
||||||
|
processingFrame.Hide();
|
||||||
|
processingFrame.Dispose();
|
||||||
|
|
||||||
|
if (collection == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
foreach (Video video in collection)
|
||||||
|
comboBox.Items.Add($"{video.Name} ({video.Markers.Count})");
|
||||||
|
|
||||||
|
comboBox.Enabled = true;
|
||||||
|
comboBox.SelectedIndex = 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnKeyUp(object sender, KeyEventArgs e)
|
||||||
|
{
|
||||||
|
switch (e.KeyCode)
|
||||||
|
{
|
||||||
|
case Keys.Space:
|
||||||
|
videoPlayer.Play();
|
||||||
|
break;
|
||||||
|
case Keys.Escape:
|
||||||
|
videoPlayer.Stop();
|
||||||
|
break;
|
||||||
|
case Keys.Left:
|
||||||
|
PreviousSegment(this, null);
|
||||||
|
break;
|
||||||
|
case Keys.Right:
|
||||||
|
NextSegment(this, null);
|
||||||
|
break;
|
||||||
|
case Keys.Up:
|
||||||
|
videoPlayer.IncrementVolume();
|
||||||
|
break;
|
||||||
|
case Keys.Down:
|
||||||
|
videoPlayer.DecrementVolume();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnVideoChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (collection == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
videoPlayer.Open(collection[comboBox.SelectedIndex]);
|
||||||
|
treeView.Nodes.Clear();
|
||||||
|
foreach (Segment segment in collection[comboBox.SelectedIndex].Markers)
|
||||||
|
treeView.Nodes.Add($"{TimeSpan.FromSeconds(segment.Start).ToString("c")} - {TimeSpan.FromSeconds(segment.End).ToString("c")}");
|
||||||
|
}
|
||||||
|
|
||||||
|
void OnSegmentChanged(object sender, TreeNodeMouseClickEventArgs e) =>
|
||||||
|
videoPlayer.GoToSegment(treeView.SelectedNode.Index);
|
||||||
|
|
||||||
|
void NextSegment(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (treeView.SelectedNode == null && treeView.Nodes.Count > 0)
|
||||||
|
treeView.SelectedNode = treeView.Nodes[0];
|
||||||
|
else if (treeView.SelectedNode?.Index == treeView.Nodes.Count - 1)
|
||||||
|
{
|
||||||
|
videoPlayer.Stop();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
treeView.SelectedNode = treeView.SelectedNode.NextNode;
|
||||||
|
|
||||||
|
OnSegmentChanged(sender, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
void PreviousSegment(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (treeView.SelectedNode.Index == 0)
|
||||||
|
videoPlayer.GoToSegment(treeView.SelectedNode.Index);
|
||||||
|
else
|
||||||
|
treeView.SelectedNode = treeView.SelectedNode.PrevNode;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,671 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<metadata name="fileBrowser.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>375, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="treeView.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Bottom, Right</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="treeView.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>633, 78</value>
|
||||||
|
</data>
|
||||||
|
<data name="treeView.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>210, 346</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="treeView.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>treeView.Name" xml:space="preserve">
|
||||||
|
<value>treeView</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>treeView.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TreeView, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>treeView.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>treeView.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>634, 24</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>93, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>11</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Loaded video files</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="helpToolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>681, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="menuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>486, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="open.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
|
||||||
|
<value>Ctrl+O</value>
|
||||||
|
</data>
|
||||||
|
<data name="open.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>146, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="open.Text" xml:space="preserve">
|
||||||
|
<value>Open</value>
|
||||||
|
</data>
|
||||||
|
<data name="clear.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
|
||||||
|
<value>Ctrl+W</value>
|
||||||
|
</data>
|
||||||
|
<data name="clear.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>146, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="clear.Text" xml:space="preserve">
|
||||||
|
<value>Clear</value>
|
||||||
|
</data>
|
||||||
|
<data name="about.ShortcutKeys" type="System.Windows.Forms.Keys, System.Windows.Forms">
|
||||||
|
<value>F1</value>
|
||||||
|
</data>
|
||||||
|
<data name="about.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>146, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="about.Text" xml:space="preserve">
|
||||||
|
<value>About</value>
|
||||||
|
</data>
|
||||||
|
<data name="file.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>37, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="file.Text" xml:space="preserve">
|
||||||
|
<value>File</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuStrip1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuStrip1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>855, 24</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuStrip1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuStrip1.Text" xml:space="preserve">
|
||||||
|
<value>menuStrip1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuStrip1.Name" xml:space="preserve">
|
||||||
|
<value>menuStrip1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuStrip1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.MenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuStrip1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>menuStrip1.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.Enabled" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>633, 39</value>
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>2, 2, 2, 2</value>
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>211, 21</value>
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>13</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>comboBox.Name" xml:space="preserve">
|
||||||
|
<value>comboBox</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>comboBox.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ComboBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>comboBox.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>comboBox.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>634, 62</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>2, 0, 2, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>45, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>14</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Markers</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="videoPlayer.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Bottom, Left, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="videoPlayer.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>15, 30</value>
|
||||||
|
</data>
|
||||||
|
<data name="videoPlayer.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 6, 6, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="videoPlayer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>609, 391</value>
|
||||||
|
</data>
|
||||||
|
<data name="videoPlayer.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>15</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>videoPlayer.Name" xml:space="preserve">
|
||||||
|
<value>videoPlayer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>videoPlayer.Type" xml:space="preserve">
|
||||||
|
<value>MotionDecoder.VideoPlayer, MotionDecoder, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>videoPlayer.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>videoPlayer.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>855, 436</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
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
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.MinimumSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>859, 446</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>MotionDecoder - Security cameras video processing</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>fileBrowser.Name" xml:space="preserve">
|
||||||
|
<value>fileBrowser</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>fileBrowser.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.OpenFileDialog, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>helpToolTip.Name" xml:space="preserve">
|
||||||
|
<value>helpToolTip</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>helpToolTip.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>file.Name" xml:space="preserve">
|
||||||
|
<value>file</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>file.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>open.Name" xml:space="preserve">
|
||||||
|
<value>open</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>open.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clear.Name" xml:space="preserve">
|
||||||
|
<value>clear</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>clear.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>about.Name" xml:space="preserve">
|
||||||
|
<value>about</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>about.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>Main</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,471 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="treeView.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>146, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Загруженные видео файлы</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="open.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="open.Text" xml:space="preserve">
|
||||||
|
<value>Открыть</value>
|
||||||
|
</data>
|
||||||
|
<data name="clear.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="clear.Text" xml:space="preserve">
|
||||||
|
<value>Очистить</value>
|
||||||
|
</data>
|
||||||
|
<data name="about.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="about.Text" xml:space="preserve">
|
||||||
|
<value>О программе</value>
|
||||||
|
</data>
|
||||||
|
<data name="darkMenu.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>118, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="darkMenu.Text" xml:space="preserve">
|
||||||
|
<value>Темная</value>
|
||||||
|
</data>
|
||||||
|
<data name="lightMenu.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>118, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="lightMenu.Text" xml:space="preserve">
|
||||||
|
<value>Светлая</value>
|
||||||
|
</data>
|
||||||
|
<data name="themeToolStripMenuItem.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>171, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="themeToolStripMenuItem.Text" xml:space="preserve">
|
||||||
|
<value>Тема</value>
|
||||||
|
</data>
|
||||||
|
<data name="file.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>48, 20</value>
|
||||||
|
</data>
|
||||||
|
<data name="file.Text" xml:space="preserve">
|
||||||
|
<value>Файл</value>
|
||||||
|
</data>
|
||||||
|
<data name="menuStrip1.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="comboBox.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>39, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Метки</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="videoPlayer.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAABAAEAAAAAAAEAIACqPgAAFgAAAIlQTkcNChoKAAAADUlIRFIAAAEAAAABAAgGAAAAXHKoZgAAPnFJ
|
||||||
|
REFUeNrtnXm4HFWZ/z/VVbk3ZCMEAgRQFhVZwiKGLYCioGFT0BERcUBwHHBDBxn9gSOKoigDriOo48Im
|
||||||
|
uOECKoth30JYhyASlpCwBZIAITfr3fr3x/dUum7d6q7qW1XdVX3P93n6Idy3T3XVqfO+55x3+R4HC4uS
|
||||||
|
w3W88J8mAK8H9gLeArwB2AbYxMi6gXXASuBlYCGwAHgQmAssAnrCFx2o9ndc3zl2+Fh0iOJXjKIfBMwy
|
||||||
|
ij8VGNfEJVcDy4CHgOuBG4EngMFONQLWAFiUXfEB3gScAHwIzfRuBj8zgFYCvwUuBuYPEXaIIbAGwKLM
|
||||||
|
yr+lUfqTgJ1y/NnHgF8CVwDPdZIRsAbAooyK7wFHAacDM8hmxo/DIPAAcAFwFdDXCYbALe2dW4xW5Z8A
|
||||||
|
fBb4Flr6V1p0Gw6wBXCw+c0HgV6AilOhWnMTWANgYZGT8k8DvgH8BzCxTbc0Ftgf2NwYgRVlNgLWAFiU
|
||||||
|
Rfm3B34EHIu2AO3Wmz2AnYH7UeSglEbAGgCLwqLirF/dbw78AHgPxfJbvRHYDrgZkzdgDYCFRRYDszb7
|
||||||
|
jwe+DnykYMofNAITgVuA3rKtAqwBsCiy8nvI4XcaMKagt+sA04E1wBxgsExGwBoAi8IhsPQ/EjiP9jn8
|
||||||
|
ksJDPoEngEehPFsBawAsijUga7P/ZsB3gB1KcusbAFsBfwNWlmUVUCn8HVqMVnwA2Kdk97wXcEyZbtga
|
||||||
|
AIvCIDD7bw18jOLu++vBM/e9Xeh5rAGwsGgCxwG7lfTepwPHU5I0+zgfQBfKfOoyDzQQ8Z1uIx8YQfsk
|
||||||
|
13fR/gqI3FQ1kleMbIz59I/g+mn7IG0fpe2DLOR590FwtnwdSvPdrKQGwEF5C38FlhfdF9DIAIwFPokK
|
||||||
|
Lo4GNgUeplYE0W1e0n8AhwB3I5KFpO3j5A7y/u4HfAUlWjwZ6uhGctAsci6aUd6NiB8WN9E+bR+k7aO0
|
||||||
|
fZBFH+bdB7LUNc//Eai6r/jr5/rYEHgE8QqUMkV4EnAq8BJiSnkMpTueRS0kcxRwL7AKuA/YuIn2ExNc
|
||||||
|
f0NUh/00mrn/PaKT68krwO7AtcBr5kUsNYNvz4TXT9sHafsobR9kIc+7D2ozkePhOl6X63iXuI5X7YDP
|
||||||
|
la7jjS26H6CeD2Bv4EwzY56I8q/nA5+h5pldi2bTVQxfNjZqv6f5xF2/agbbMjM4q6HfaCQfa2asmcD/
|
||||||
|
AIcD5wO7oMSSseaeG10/bR+k6aMs+iALed59EMbUgIEuO2ZQgm1MPQPg7/kuA25DVU9XomVZl/nObLRU
|
||||||
|
mxtxnbj2Sa7fYwbfuSjLKuxUiZNPNLPWhcAL5reeMH+vJGiftg/S9lEWfZBWnncfAEP2/zsiko9OwOao
|
||||||
|
WKjQ0YBGd+Zb65OBjZAlD84Q/YhDrX+E7ePkVVRvvbbO9ePkoH3q9mg1cJv5fhBx7dP2Qdo+StsHWfRh
|
||||||
|
3n0QxM4UP+svKSaY5/lbkW8yLgzooqXM/sjiVyO+46Ron/b6cfIqclrNQrHlkVw/73vM+/pZyFtxjyAm
|
||||||
|
305iqdqagofavZgXthoVYrjIA9zMw8S1T3v9JKigmf9AM3CPa7J93vfYij4oyz1ugEKAnYStzHOtKuoN
|
||||||
|
1nuRvoWfiTzFFZTm6BBt/Zttn/b6STCA9mEzUSRgF8QoM5Cwfd732Io+KNM9jgEmd5gBmEzBsxnrrQDm
|
||||||
|
Ab9DXt9paN/3LuAaIwvCiTAkjdr/w3wn6fX932i0NAzLe4HLUVbW+aiqbE/zvL9muC8g6vpp+yBNH2XR
|
||||||
|
B1nI8+6D8FhshsO/DBhPwfMZ6t3cs8A3kSPjIPO3a4AvG5mPKoqvewwN8TRq79MqJ7k+ZtA9j05xiUKU
|
||||||
|
vB/4kxlQZyEfwGvI4/0Hhjqk6l0/bR+k6aMs+iALed59EESFWmShUzCGgvsA4hwuk83LB4WMXotoPwXt
|
||||||
|
DZdFvNy49nFyUBhqipGtalLuodiyi5b+SxnujY67fto+SNtHafsgC3mufWDCZBsBfwYO6CADMBc4DHi5
|
||||||
|
qNTh9lwAi7bDGICJaLsxq4Me7Wbg/cDyohoAWw1oURT0ooM6OwkvE1H3YA2AhcVwrGO476PseA5lWFoD
|
||||||
|
YGGRAIugpEfsDEcV1VAUGtYAWBQJ84h2gpYRK4gO5xYKZa65HnVotqikLIdWDlT7/Wd7HK0CNuqA1/Uc
|
||||||
|
Kp8u9HtIMqJmoHj6HIYn0ExH57GDljuPZNx+EipJ7UZ7xDmYE1gSykFhwD1QGevCiPuLk+f9jA3ldZR+
|
||||||
|
c1Q592bTB31GceajffSKqLYlMAgvA3chLoeyYw4KO5cWOyAmmLnArSiOGx641xuFW4HKPvfKsP1YREbx
|
||||||
|
IrAc1ZSfQS0enUT+XuD75jsnhn4/Tt6KZ2woNyQZ/qfiOt4OruN9yXW8B1zHW+46Xn+AgGKV63jPu453
|
||||||
|
g+t4X3Md7zDX8bYyJBtEfYqEwH2913W8lSUnA1ntOt4HitjPzeAEakkbcxnK5OIP3FeB7wJfA14B7sDU
|
||||||
|
QKds7yEKqZeAe4yizzaKcrpR8s81kHtGGWcjL2wf8PHQ88XJ83zGHYGd4q4fUIrtXcc7z3W8J1zHG0w4
|
||||||
|
CHtcx/un63iXuY73KdfxZriOt5HreE4RjUHgXqa6jndXyQ3Ava7jbV52A7A1SmK4B1E6BQf3EUbZvoeK
|
||||||
|
RLqBC8wsdkTK9oeb/78aUVUdaNrsgwg+/oyW7fXkV6Pl+BjEdXe2+a0w3VVXjDzPZzzUfBpe3wygw1zH
|
||||||
|
uz/lgBxwHW+J63i3u453vpmdtnMdb4MirQ4Cv3+y63jrSqr8va7jfbosyt/oDhehpfHxqKwxiKqZNR81
|
||||||
|
M2kXYtsJ0kqlbe/TVS1Ce8JXzf/78sEYeR9wJ8ow64t4vt4YeSuesa7cUZLmIcBFqE4+DSrGaE5FNf1r
|
||||||
|
zH0/iPaqc5D/4GVMtWRw8LbBd/AHdMDGO0o4cd6DMhpLgTgT5dI4XXgcWrpuAfydaMKPNO0HgX2BbyBu
|
||||||
|
v8Em5Unuod3PGCUfrDjudoiqK63yR2EDYFvzeb8xngvQNmYOWs08h3GotsqZGIgGLAV+ghy8ZaoQXAP8
|
||||||
|
GG1NSxGFSbtG6UVL7kloX+5k3N4xA/MiFFM9pkl5Fsj7GaPkHvIv7N6icbAR8Fbz+ZhRwHnUVgePmL/1
|
||||||
|
ttAgXIsM4pElMgA3An8p0f2O2AD4td3d1JY7nzV/czJq7xj58+iE2C3M/yeVp0Wez+gjSo6D80bad8Zc
|
||||||
|
FyLm3BJtQXqAZxCl9xy0SliAIi+EDUJaYxBYBaxAXA67opVK0bHI3O9rWfRD0Q3AcsS0e4r59wrz72XB
|
||||||
|
gZGifdUMsgOAc4BfoMMi3wjcgvbJC4C3RchvJZt00jyf0c92i5Q7TmUvzPlyBcBEFJXYGfgI8hP80xiD
|
||||||
|
e5Af4UUMsWjGq4M7EPfADyl2ctBriHfi1lJofRMYj5Y0DzHUw+0B/2Ks3lq093kexdLdjNpPAy5Fy84e
|
||||||
|
870/UdsTx8l9+N74U+o8Yz153s/oRsifBedzruPNLonHe5UJTf7WdbzTXMeb6TreJiZnIVVkIdDOcx3v
|
||||||
|
DNfx1ha0D9a5jvdl1/HGlDHsF7eUHWMG6SREsbU6IOtCIbu3mP9/EJ2H1pth+22BDxolW4WWyguakAO8
|
||||||
|
CTm6ZgP3RzxjI3nezxiW3+c63jrgCoYnFRUdVeRMfJKaM/E+5EyMJMWMWx0ElGkC8N+ImrxIHBZVtPo8
|
||||||
|
DZN9WZalf1IDYNFiuI53gRlQZcc6YAnwf2irMAfxQS4jOuwaqTwBIzAV+Co6ZGRsAZ6vF7gELf1fLKPy
|
||||||
|
WwNQHKX3/7k1Okhipw58zBVouzPXGIS5qPbhtUaGILSkHg98GvgC7V0hLUcOvx8QqD2xBsAirQE4EcW/
|
||||||
|
C00lnQH60UrgUWMMbkZFQEn48/2zCc4B3tCGe1+IZv0rCfBLllH5/c60aDPM0djjUTHTzqPhkdG+flsU
|
||||||
|
6XkPqp3YAIVF/WSp3oi2VZSXcC/yu7zetMkbK5Gz9wvmv4O+4pfx+G8fdgXQZgRm/71RQtCmo7g71hlF
|
||||||
|
W4qcifej5Jp5RIdex6NzCk4B3k4+voF1wO0ow+96AtTpZZ31rQEopgH4Gop5WwzFKyjEegMK886P+M5G
|
||||||
|
KGPwBBRR2TCD311hfvdS87tDCEs7QfmTGoButGQLnwoLCmP5+9U+opdsjdrHySsMtepriM7F7za/H+Vd
|
||||||
|
TivPrQ8Cyj8NLSv3sPreEP9EPpIriCbb8FOaZ6EakTehMw2SHDjSixySTwJ3o9n+PmOAOk7xkxiAbpTY
|
||||||
|
cjLar52NiXUajAU+gSq2HOTI+Qk1R05c+zg5KBf+dLTXWwF8B3ggcO8TEIHGSegM++tCz5ZGnnsfBAzA
|
||||||
|
B4GL0R7YojH6UIbg9837WldnXG+Eoio+49LrzN/GGYPQiyaUVxGL0kIUpnza/K3ayYqfBEchR8sqYwmD
|
||||||
|
WW6TEAnHSyjx5jHk1T2L2vnujdrHyStG+a9FVvkhZPHvRmf8gZZ5F5sX1s/wev608tz7wGSOdbuOd3nJ
|
||||||
|
CTDa8XnNdbxvG5ITEnw8w38w0XW8Dc1/x5m/UwbWpDzQiBV4LaLZWsXw3Pq90Tl7C1Ho6li0N/sMIuaI
|
||||||
|
ax8nH4tm/pmozPdwFHfdBRXMjKXGB7CMoTX2Pqop5bn2QWBwvRk5sLLCgDGanUKvXQ+TUMLU9wkdKz5Q
|
||||||
|
7V//CaAfzfj+0WY9KGuzP6pdRPtRZwBmo6Xx3IjvdRklvAy4DaW4Xony37sStE8in4hm1gtR0cxliDBj
|
||||||
|
ovl+j1HAc82LDW9n0spb0QcgZqAtM3ynDwIfQpRqv0ZMu4U9nz4lPOBfgZ8SCJ+GqxOTfkYjGq1x+sMW
|
||||||
|
MgR/hjkZ7a3CDrK49nFy0H5ve7QauI3hDrZe87tRqKaU59YHgQG6MSpGyjIa82e0N77OKMZmwG5oVbI3
|
||||||
|
yjLchM6ihD8EhQRPQk48iwwMgI84Np3dkRf7NqKX0U6K61dRXHwWSiPN+vpJ5Hn2wT5GObPCYpRK7GOt
|
||||||
|
6bdFKMdgQ+QQ28sYg72Qo2xSB4zlA1Ao9VPAq67jjdpZPWsD0EgpVqN9mJ+emfVJQxWjVAeiZfVxBeu/
|
||||||
|
NH3gIVryiRnez+0oVLZ+8IccWa+h4pz/Qw7QTdDSeR/z2RUZ3G7KiaOBp4CvA73WCORnAPxZbiZaaq5G
|
||||||
|
s4lD9Aw4EgygAzBmohj5O9EsW5QDJNP2wXbAQRnezzo0yw85jDKsAAGD0IdWDIuRr2IC8kXMMMZgL0Sw
|
||||||
|
shHlSRjzUGTmMeBXVr2zMQA+tVUQ81Dt/bFGKdeilMxrGH4eWlT7OHkvqq2fjrz/R6Lwn4ccW70R13Bi
|
||||||
|
fiOtPOs+eDe1E4GywGOILakhGhiElSiKMR85M6cg/8veKEoxi2KU4cbBjw7cDjxjVwHpDEAVxd89hoaV
|
||||||
|
ngW+iWYNfxa7BqWyPpugfZy8H6VfjkNx9Vlo+XomoowOvtG1iGlnZZ1nSCvPtA8c2YENUQFMlsVY16Jo
|
||||||
|
SVMDvk7pbTDEepe5/3eXaFzvjqID3/CfyxqBaCRxkE0xA3VZhBJPpnYUlx9fbaZ9nNxDRBAu2hIsZbhH
|
||||||
|
fqy5xmtEh7vSyjPtA9fxBlHm4FVkx3P3Mlol3dmsAaiHgDHYAvgtOkSlTHgSeB/mrEVrAEZmACwyRMVx
|
||||||
|
cXAqiN4qS9afv6CtyMocDMDpwLcp51HyPwI+j0kXtkYgYkzaLmgNXMfDnPbzOhS3zgr9yPmXh/JvBXy4
|
||||||
|
xOPkeJQUZWENQGHwDuRdzwpPoZr5PHA4csSWFROB//T7ezTk9lsDUGyMQ7H/rgyveQNK9Ml69t8Ezf5l
|
||||||
|
pyfbCVVbWlgD0B4ElGoXsnWmvYYiDwM53PbB1CovywwH0b5PC70Li4QGoBvVqUc5DLtQDvZ46s9qjdon
|
||||||
|
kbvUjvuOuv9xgY+TsTyrPvBxONlSft2Pyo2zNlQTUdZlp/AT7Ey2FZcdAy9G8dtJCJKEsGNX6hOGZCFP
|
||||||
|
2wdBpdocOCzDdzeIvP/LIXMP9/7o2LVOwVgUEvwzoUxJi/o4ivYRgkBjwo44whAXFdmMVO5k1AdBcomj
|
||||||
|
XcdbnSEhxtOu4+2YFXFF4D7HdihByYuu4+1ZVKKPOEKTvFBUQhBoTNgRRxgyOaV8bEZ94KMbOf+yXFLf
|
||||||
|
hCl9zXj2n0G5sv6SYjOUfVlIpQ/AQ9vJcUH9zMsYFJkQJI6wI44wZFIKuZNFH4RYfw7M8L2tQrH/vozH
|
||||||
|
pGcM2dQONAAg7oUtQu+mbcofQDdaeX4e0Y9fbj4/RJTnOxBIG8/y3otMCJKEsCOKMKQaaD8SeZZ94CNr
|
||||||
|
1p95KEc/68G4MwWbJTPGTshf09ZKwZAC74ZWnYciP1EYA8AzqPDsIrTizKy+IUkUII4MYwZyGnXResKO
|
||||||
|
IGHI1kTz/qWRZ9EHebD+/BVDi53h8t9B8fLXdbAB6EbOwHHtUvyA8vurrV+jLeTmDcbXtuhEoisQ3XmU
|
||||||
|
IcnNADQaMD4ZxkcQlXKr8wqChCG/Z3h1XVp5Fn2QB+vPX7MclAZvQMecdzoOQL6elm4DIg45/TyqVdih
|
||||||
|
icvsi1YBb81SgUaCIBnGhuY6WROCxCFIGPKaeanTqCXFpJWn7AMHZOXfQ7asP7cRYv3JCO9DB2l0OjZF
|
||||||
|
Dtl2Kf+mwLfQUecjqQbdDfgv5MhObcSKSggS9Z3gEroRYchvkAPxV0apm5XXIxxpqg8qjgNi/Tk4w7Hk
|
||||||
|
s/6szXhgbomKZkZLZugRaCZ9Lm+ugJCCvhk5tY9M2deHoUKnH/i/MdJnKCohSBBRhB1JCEPSylP1gSH+
|
||||||
|
eBfZs/7cmsM4PdwYw9GCHRDF3KV5/khI+fdHZeD7ZHDpLpSDcjuKPo0YRScEgcaEHXGEIWnlI+oD8+In
|
||||||
|
oRVCljH1c4EvAdW0s1aImvwqRl+q7J+Q32YVZLudCil+BflWvkm2VaAAFyDn4OBI798SguQAMwAORKuJ
|
||||||
|
rFh/lqGl411ZDNjAID0G+CWj71zCTPuzjvJvgELEX0LVlVnjUcQt8exI799WA+aj/BXk/Nsow0vfDTyc
|
||||||
|
8SDttKKfZrAJcgZmNgmGlH9j4BzES7hJTs/welJGNKwByF75QbH0WRleOnPWH4P96Kyin2ZxuHlXqb3p
|
||||||
|
ofZvQBmmnyXfnIMJwI5pLmANQD54B9mG1DJj/QkM1LFo9t9wFL+nN5PB2Qwh5d8bbak+SLasz/WQ6v1Z
|
||||||
|
A5A98mD9uZ4MWX8M3kpnFv00gzEo/2FChCI3q/wO8ilcjJKNWoVUA8IagIwQGAjTyYf1J8vjvv001E2x
|
||||||
|
mAm8ZSTvO/DOu1HRzo9pLrMvLXpRQVuqgdAI06nFsRdiONZbKJ+EllTdKAlmDgq1BTEV2AOV4i5ssn2S
|
||||||
|
68fdYxhvz1ix7jOfLI3UTnR20U8z2JjamQqJjGxopbARIh79DLVwcKuwwIzZXJKZpqOlZw9iwZmNUl1b
|
||||||
|
JR+Lkh1eRKw3i4EzAp08Fi21v2++c2Lo/pO0byRPco9DBoXreBu4jve7DEksBlzH+2zGpB+O63jndCDh
|
||||||
|
R5rPP1zH2yZJP4eIOrZ2He8y1/H62nDPva7j/ad5nyMfEw2U/wIz2H+B8s+PRDPt3WaG+05O8ntQUc2n
|
||||||
|
UGbeIpTyOAUtW1eh+vwJKI3X38NdS43Oqwv4ZIP2DyOGoUbX3zHmHpcGO6zirD/y6xOITz8LLEJHXi8D
|
||||||
|
qKbYBQQGyRvR6bl5habKiMmovuKBRv0cUrQ9EJnMUbR+Kz0A/BQd2LIuzdioZzq2QXujn6OihbWogunj
|
||||||
|
1JbDecqfRJ701cAX0aGXc1E55NtQiKUH+ApyZJ3G0HjumAbtDwAuQamg9a7/w5g+2Bb4Rx2DmmVM/Uay
|
||||||
|
Z/05CnEgWAwdL+/D1IlE5daHlP9Qo3ztSJ9ejaoIz8XwU6YZG/UMgE+W8SiaGbsQW06QmitvuU8Jtgjx
|
||||||
|
/71q/j/Y/k6UzNIXcf9x7Qdj5En6IIw+hqdDjxSZsf6EzvkbTUU/zWAfNKvf2kDxu9Cho2eTLcFLUixD
|
||||||
|
iUU/ISNy07iBMA4tQS9Ey6Rqi+WDqAb6j6iCK2qd41I/myuufZLrx91jWGlTeWUDeBhtl7LE4YgJ2WI4
|
||||||
|
phBazoeUfxLaMn6nTcr/FNoW/zCo/GlXhnEGoBfNQlcQzcuXt9wxCnURKr9tduaKa5/k+nH3GP7uHaSM
|
||||||
|
zRpcQwasP4FBPIXOOOknTxyK2aKGlH9Lo/hnGEPQasxF3JS/xfBVDFT7c6UE8+vfu1FF288jvp+X3Anc
|
||||||
|
QzcqBT4Phd+6SZ67Hdc+iTzuHqNwI4awIwXmo0KiLHEwdSIYFuvxBlTCHcQuwM+Aj5FtclcSVNHZDyci
|
||||||
|
JzS+8meFej6A5Ygp9xTz7xXm38uo7XHzki83D74AOezOQV74DyAP9q3Ex2sbtb8FzdALkMMv6vrVmD5Y
|
||||||
|
Hv7BgWq/P2s8jfZoFxjj0Sz6zIB7PO3LDsxiE1Dab1u48EoEDzkDr0BO5oNQDf9b2nAvvYiv4CtmHGau
|
||||||
|
/HEd8S/IQbYWLX2fN5bINZ885SCWnUtNR/SY7/0JVUAFcYSRnxL6e1z7OLmX4B6HKZz5THQd7yLX8QZH
|
||||||
|
EN+9xHW8yVnE/gP3M8t1vOU23p/o84rreIe6jvdh1/EWtukeXnMd76uu403K+3CQRkvZLuQ08q3fg4iM
|
||||||
|
srdFclC47YMo/LYKLcXDTrY3ocMfZ6Oz8miifZw8yT3Wm3WnovDhSdQOGomz+JcjRqEX0lr7UJrq/yLv
|
||||||
|
tUU8qijEuzntyZVYjGb9S4LjLK+Z3xKCZIwI9tfjUO7ArkTvIXuRz+CnxgCsyOKlB+5jJopy2Lz/4uNR
|
||||||
|
lJfyV0y0Ke8lvzUA+RsBkBf5QFR3sA3ak69EBz7MQQ6eZ4INMmL8cYHvAZ/u4O4eRNlwZSc1uQ3VFMzN
|
||||||
|
agxYA1A8Q+AfR+5RO3VoMEvFD/3uriiEuXUHd/PT5hlPJtlWq2gYRJyMZ6BYf8uU3x+QFjkhIlY7iGb+
|
||||||
|
5ea/gw2+mxYOcHSHKz9oufw/xhCUDWtRYs8n26H8kOxcAIsMDEGrEJj9t6PzT/pZis5xeBLlX+xYont/
|
||||||
|
BR0Q8iO0Emz5WAG7AuhkHIUorzoZN1CL/PyVgAO14FiEStG/207lh2QrgBlo3zqH4eGvvAlBoDHhR5w8
|
||||||
|
C0KQtH2QRfu4PgBGXdHPa+h0J/+UpHtR/cT+Bb/vB5Gz78Z2Kn4S7ID2JnNRdtyUiIGbNyFIHOFH3oQg
|
||||||
|
afsgbfu4ZxxmAMzn3wxhRCcn7FxtEq6Cz31Gwe/5Otfxds07uScrnEDtJJy5iDopPHBfRcuYr6E9zR1o
|
||||||
|
H7ZTCvnO5jemGIVYg9JjPx66v0byLuA/gJcQecep5rs9wOlGyT/XQN6Vsg92zqh9XB9EKf8U1/Fu6nDl
|
||||||
|
X+063jEh5cd1vD1cx3uhgPfb5zrexa7jva4syg/yHr/fKMi9ocHrp99+D7HgdKPc9xWoourQFPIjAkq8
|
||||||
|
H6q97kEMPoSUvJ58PAoNPY3i76B67wXAn9GSup78atM+TR8ckVH7uD6IMgBHu463qsMNwC2u420cVKQA
|
||||||
|
JdvvC3avPa7jfTOY3l0k5W90J4vMsvN4hlNctYIwpJf6hB9x8rSEINWM+iBt+7g+WD/4DUZD0U8fKtZ5
|
||||||
|
GYbtn9eg6rn30PrKvSgsQSu7n2GouyLuua2IcxI1ItuA/AlBktxD3oQgafsgbfsk1/Axk9qKplPxMPL4
|
||||||
|
18MtZEfKkgaPowK1i3zlzyHXIzXSrkV8soxJaPZxMpanRZjw45gm5Vn0Qa7tQ0U/nX7SzyDi7XveVygf
|
||||||
|
gXLsZ4G/01p+/jDuRr6ku4L3V0SMNEyUJ2FIVkYgLSFImj5wWtA+jD3I9jzCIuJxtFprhAHalxNQRSXl
|
||||||
|
J5ZB+WHkK4Dl5EsIksWLSEMIMpiyD5a3oH0QLqI036zDDcBVmJTZGKW6j9bnBKwz4+hsFF0qvPInwXjk
|
||||||
|
VHmIoR7svAlDgqhH+BEnT0sIkrYPsmpf9xkDXuVd2khe0arPItfxdovzorcpJ2C563hfch1vQpnCfP4g
|
||||||
|
bASfpGISQ2mI+6mdVxcmyxgw/59W7mM+mqXvrXOP9eQ+scI/GEr48UxCeRZ9kEX7uD4YLUU/15h3lXRW
|
||||||
|
vQ4d1zUt5/t6DjjLvOP1kZqyzPy2HLikCBX9/IVyFcI0iyUon+LOJMpl+mYDtML7QI73NQ/4AjI2pVJ8
|
||||||
|
H7YYqPw4itFV9JMUa4ihb0uJm4CPlln5rQEoKQKz/zRGWdFPk0p2K/KxZIkB4EpEE/5AmZXfGoDy4zBg
|
||||||
|
tw5/xlsxS//EGlpTxhfI6Gh1g9WobuPTBKoyy+zptwagZIg46acIKa95YTWa/XtGqGjrgNshxbHKNSwD
|
||||||
|
voQcfq90gvJbA1BuvBMVMHUy5hKomx8hrkHFWGmwAM36mZ7LVxYD0I08qlERgy4UQhtP9EyUVg6KiY+j
|
||||||
|
/pl2jeQ+Caf/cUZw/bR9ENc+iVw3aot+EiPw/efQuX6vjvA+7kNnO/yGjM/lKwLcmEG/GaqrPwTlN68L
|
||||||
|
yMcisovTURx6U5R91ZeR3EFVcPuheH0P4n4joRy0Pz7XKMu70b5tcRPt0/ZBXPs4+VBr5qy3129D4acy
|
||||||
|
suAmxUOoSKoHoDqCVXygv54whmQvhhK+xOE24BMEVhCdovhJcBRKPFllrGAwi20SItF4CS2PHkN7pLOM
|
||||||
|
Uk1MKQcVtVyMavb7GV4L30heQSW+1yIv8kOIQPJuYM+E10/bB3Htk8iHWmtlmFVcx/tuh2f9DbiOd3rG
|
||||||
|
x6NVXMc73HW82a7jrUlQw/8r1/HeXLbMvqaNZAPZWjRbrmK4E2VvdFb6QpS6eizKVvuMUbA9U8j9fa1f
|
||||||
|
z7+MoTXyJJCPRbPyTEQZfThwPjrp9bNGPhhz/TR9sE+C9knkQwaywaZ0fsnv4ygtOzUCM/Ygygs4Bi3p
|
||||||
|
L0ZcDEvR6mCxMcKXIyanfzfvM3ydUWMAZpuOmhvxvS6jRJehZdKDKDbqGVlaOWjpdyZawq9h+P44Tj4R
|
||||||
|
zcwXonDQZWgpONE8T1z7tH0Q1z6JPAoH0vmJP0mLfpo1Ahhlv9Io+MHoOPBDkVP1UODf0NHsqzpd+aFx
|
||||||
|
LYB/ck29p/dnrJOBjdBsVs1QXkVZXGvr/H6cHLQX3x6tBm5jeFZYXPu0fRDXPk4ODJn9N0d70rIfg9UI
|
||||||
|
zwC/JXpFltoIBPqyD836ixMajlFnAHzEsfHsjjLSbiOaDSeNPO734+RVtGSehTLCRnL9tH2Q6hlCe88T
|
||||||
|
kNOyk3E1zRX9jMgQWCQ3AI0G7WrgNKMERzN0GZtWngUqRikPRMvy4zK+fiuewcfuaNnqdvB4XIKW5wNW
|
||||||
|
NVuDkQ5Wf5abibzpFRRicRhKqjlSeRYYQEvmmSgSsAuapbMaXLk/Q2D2H4sSUbbr8PF4Pc0X/VikQNIt
|
||||||
|
QNhQzEO188capVqLnCnra7ZTyOfVuQcn5h6Dcr8Gfzry/h+JIg8eOkuudwTXb6YP5iVo34x8FvmWtRYB
|
||||||
|
ftHPegJNi/YbgCoKk3gMDVM9C3wTJVUcZP52DfBllHlFCvmzoXtYi5hyVta5xyh5PwojjUNx+VlmgJ2J
|
||||||
|
PLz9TVx/JH3wbIL2DeWhsN/n6GyyTxhB0Y9FeiRxTk1B+85lEQN4MrXMqh5qfH9ZyUHL3ylGtqpJuYcO
|
||||||
|
AXHR0n8pwz3ucddP2wdx7YfJQ46/z6NTZDv5JOfVqLb+d2Bn/yIZAIs2IGAAdkEx8Td1+CPfgvgRX7EG
|
||||||
|
oLWw1YDFVf5u5PjrdOXvQ3t/q/zWAFgEcDDwwVHwnP8H/M2+bmsARj0Cs/9UVCE4ucMfeRBFZV4AO/tb
|
||||||
|
A2CV38dxqOS30zGfjIp+LKwB6BTsjA4AGTMKnvUqzEGedvZvD5KElmagePocoimWG8mnA9uYfy9E5+81
|
||||||
|
e/2p6Ny7+QSIGA0mobLcbpRAMgdDIJFQHnf9JM+QVh6c/bsQwUinV/uBajN+R8ZFPxbZYQczGOeiJI0p
|
||||||
|
Tcqno9TOHnTu3WyUKpu0/VjgvcD3gRdRzX1YfqqRLUdVXWdQi8knkTe6fpJnSCtfbwDM5xDX8V7ucLIP
|
||||||
|
//ND1/HcTiXa6AScQC1xZS7D2Woayf2B/yqiUf4aCvPcgZa4Sa4/xSjMGhQq+nhA1oWcZC8huqZTzXd7
|
||||||
|
UOnvBJQ9V0/uxVw/7hl2BHZKId85Qvk3dh3v+lGi/C+5jrdvJzPtdAK2Rscx3YNoqzZuQu4fZvk9lMLa
|
||||||
|
DVxgZsEjEl6/C5W+nm2uFaTsGo/KRp+mxo6zD9pP/hkt6+vJr6ZGAlrv+nHPcKj5jFR+REj5cR3v067j
|
||||||
|
rRslBuBS1/G6rQFoPxr1/iK0ND4e2KpJeRXNqo+imbYLsfEEqbfirt+LcsMnEjh0MXB9nxJsESqVfdX8
|
||||||
|
v3/9wRh5X4PrJ32GtHIf/naokzn+fdiinwIhLgrgEk+G0Ug+Di19L0Qx7WqT7eO+MwjsC/wRzaqDTcqz
|
||||||
|
eIa08jFG+Tv5cM8gbsQW/RQGea+/etGSexLal2dde+CgZf1FqAT3mCblWTxDWvmBqKR4NGAp8CNM5aWd
|
||||||
|
/duPvPIA/Pr2bhTq+Xng95wMf6MblfKeh8Jr3YHrx8nTPEOw/0YidxzdxkbImbnJKBlvv0JHdVkUBHmt
|
||||||
|
AJaj9M5TzL9XmH8vM/+fFlU0sx8AnAP8AhFmvBFVlvUb+dsi5LeS7Ky4Rs/gl/yOVO73wYeocQl0Ov4J
|
||||||
|
/ATjb7GzfzkwHvgLOlhj4ybkHirvXIQIN9agmfhEhnLaxV0fat74U0J/nwZcipbYPeZ3/gS8PqE87vpx
|
||||||
|
z+CmkDuu423vOt68UeL1X+s63qc6/ZCNMiLuTfjUWpMIHIqYQN6P2HEGgbeYvz2IDmYYaOL6oAy9c1Co
|
||||||
|
MIjF6EivfxhDsgottZ9JKI+7fpJnGJHcc8ZUqlRPQbkGnY5BtP251P+Dnf2LA0sI0mK4jgs470RVcFNH
|
||||||
|
wSP/DvEaLLHKXzzYtVjLFH99V09GWYqjQfn/DnzRV36L4sFWA7ZW+UFnB7x7FDz2OuRzedr/g539Czg2
|
||||||
|
bRfkj8Ax1W9E6cBbjoLH9lDNw8soG3Kw4lSoOJURHfVtYQ1AOTu4Nvt7wBdQ/cNowWTgHcih+hAmBGiN
|
||||||
|
gDUAowaB2d/PWZgwyrpgA2B/VBB1P6IAt0agRAZgBlq6Lib6WK1G8umo/n17VOiypEk5yFl2gLn28pBs
|
||||||
|
Ekr22QlVFy5lOKlI2vZJ+iC6c2uz/yTg2+Y6oxFj0MlM2wIPoMIsawQKjrwJQeLkWRCCpGmf5BkbKn/g
|
||||||
|
c5LreGtGSdJP3Odm1/Fm2KSg4iMvQpCkZBlpCEG8lO27EvZBEgOwnet4D1jFH/KZ5zreodYItB+NtgDL
|
||||||
|
0Z5tWxQuvJyh2XqN5HsZBfsl8FXgZqM8hxlFm4yO1I6S3wQ8jpbaj6MZek/gBmonx441ijoFJZn8xnz3
|
||||||
|
ULTn/KO5lydStO9L0Ad1lT/Qv/+JQn8WNWyKqiBfRZmaNkLQJjTKA1iE0loXE50x2EgeJtPYhqFkGHFy
|
||||||
|
qBGC3M3ICEH6UrSvJuyDOOyLVhEWw7ElWv19gcC2y64GimMAIH9CkDh53G+kJfzIgjBk6JdrA3giyvib
|
||||||
|
ZodZXWyITlP+NloVWCNQMAOQFj4ZxhVo6ew0KY9DmPCj0uL2jfA+tKVpF1ageoMXCz4Gu1El5o8JnINo
|
||||||
|
jUC5DUAaMo1mCDvSEn6kaT8MgUG7NXIsbtDGd/sXo1ifAp4swTh8H/IJ7WONQOvQDkKQpGQZjdCIECQJ
|
||||||
|
4Ufa9o2UvwL8GzpspF14FviB6es/oPyG/0aHpBQZ+xkj8EVUSl11Hc/WELQReRGCxJFpBDFSQpCs2ich
|
||||||
|
LQmG/Wa6jvdcG0Nsg67jfdV1vEooF2FH1/GuMfKihwlfcB3v313H67KhwnyRJBOwH3gYZXD1JZQPAk+h
|
||||||
|
WXYBcBeaZa+i5ulvJA+iimawO5A33sdKo5RLUKjuBuRVXphx+9g+CAzOCcA3kWOxXbgXOJPhK6lliC5t
|
||||||
|
Q2AXip0GPhGFCT3T5+vAZg7mAUsIkgECBuA44KcoutEOrEYHnPwKauW3odlzEsrBOM0oWpHRC1yCmJ3W
|
||||||
|
G2+7Jchw7NouyEz5X4dKfbdp4+38ETk0e4H1s2WVwWBR0jq04lqCahOKbARc5Et5M1qtLQO7ErAGoHjK
|
||||||
|
X0GZjx+mfauq51F241MwfJasMhg0BANoaf044issMi25YwzADOAxDKejNQLWALQdgVl1L+BctL9uB6rA
|
||||||
|
D4HLzL/rKkdoNfA48n/swHDnZ9GwFarcfAERuVatEbAGoH0dV5v9x6NQ4v5tvJ0HUOhsOcTvkUNG4Dnk
|
||||||
|
IN0SzbRF9gtNQc7BNcD/AQO2hsAagLYgoEDvRwU/7TrYcw1Kp70tifLXMQKvoAjBeGA3ik0WOx54O0qy
|
||||||
|
uh+Fb60RyNEAdJvBPTACeReqvOtCM8tAk3L/Hv2MuvAbrhjZGPPpb1I+sk6rzf5bIsffG9r4Dq8GvkXI
|
||||||
|
8TcCI7AKJUGtA95q3ktR0YVCrVsC96FEMmsEMjYA3cBmyLl1CKqqW9eEfCwi0zgdlcNuimLpfQnlDvJQ
|
||||||
|
74fCQD0MT2ndDe29j0NMuwsZGuuPk6dRfgel+36E9i2bFwOf9/tlJOGxkBHoA+agffYMFDIsKiqoinMn
|
||||||
|
M26WWCOQLY5CSSWrkJXduAn5JKMcL6FEn8dQCOcso9QTY+Qgh9rFiFa6H8W3wy//WpTu+hBK9rkb1f67
|
||||||
|
RvnryVPl+5vPDNfxFrY5Y+5c1/HcrDLlQpmDh7iO93BJCEbucx3vHTZrcGRWtB7WohlmFdG58Y3ke6Ns
|
||||||
|
tIUovfdY5Ln9jFHAPRvI/WIQv15/GUN5AqBG6DET+B/gcOB8lOH2WVRa3Eg+ouVtYGCNMwZs6za+uweB
|
||||||
|
/8Vsm7JIjgld4zrzbm4uwTh+Kyoo+5Ax/tYQZGAAZgMnISqsSpNyf29/GXJOPQhciZxLXQnkoCX/mWgJ
|
||||||
|
H1UqPBGtHi5ES9bLEKnIRHM/kxrI0y7ZD0MroHZhrTFsC7K+cMgI3A98DJUVD1BsbGv6ZEgVpjUCjdGo
|
||||||
|
d/pRamn/COX+quBkYCMzaKtNyKvIsbW2wT32IUbh040h6Q1co1pHPiIEBtI0tIpoZwbddcDv6yhtJkYg
|
||||||
|
8LxPI9q0F4BP0N4S5zhsjEKyW6CJ4xX/3dn04Wgk4QNwUshd5EzaH83s1SblcdevIufhLLQcrzYpj1X6
|
||||||
|
iKXkR2lvsc9LwPcwnu+8Bnboui8D/4XCja8UfEyPQ47pHxA4gcmuBKKRZ684aIVwmlH0o0MGJ06eBBU0
|
||||||
|
sx9oDMhxTcojlT4C4xFXwLsRwUY78ycuRVyHuSO0ElhjDM8LqOJxmwKPa9e8axfRsr1kVb2+AuUBf6ad
|
||||||
|
ibz5FZQu6zCUdLOePNH4BDY313gNOfimUdurxsmHKH3ETD8e2BXtKa9AEYVv0d5z/R5G1Yb9voK2wggE
|
||||||
|
fmcA+Wo+hrIPi45j0FZgsv+eLYYiSY84MYYiSj4PUX0da5RuLfAuxPLyD/OdevJ5dX4juBXoRRTd05F3
|
||||||
|
/0gUWfAQxXcPKondJUL+a9M+akCMQzP924GDTJvNKcYpyuuQk6st9F6h1cBNKELw3xT7pGMH5Wk8YPrO
|
||||||
|
+gOaNAA+mYZHdCiwnvxZtEycYBQJo9xfRrnnNJA/G/qNtajSbWXgb/2IvWccyh2YhWb5MxEFVkN5xan0
|
||||||
|
OzWdHocy+d4OHFwwpQ/iBmQ01ytkm43Aw4j67BxUBVnU6XUMSjibjfJNLAJI4uCbgvZSyyKMQJx8MjXO
|
||||||
|
9x5qfIBJ5aBw4RQjWxVhwKaa3x8wxqi/gfzFiuNWHZyg0vsz/bQCKr2PJWi1dFO7lD+I0MppMipE+gza
|
||||||
|
NhUV56DJoGpXAMkNQCnhOh4Vp8JAdQDfpVDBHVulGlze74Vm+jIURPkHaLRs79+kERiLjl77MjK4RcS9
|
||||||
|
iB9yiTUAHWgA6jh4NkAz/duM0u9dIqX38QgiUH28KMpfp899au9vIT9K0dADfBDlUFg/gEGp3aINlH47
|
||||||
|
o/QHo5l+WsmU3sc64Ee+8hcNIc7BQUTqugQ5Xvcq2O1ORPUj11m1L7EBSKD0/kxfVqUP4kYU1RiicEU0
|
||||||
|
BIH3cjtKljoP1WAUaZW5Bc2Fmq0BKLjSbxtS+i06QOl9LEOJN68WWfnrGIF/ourNs9HhqF0Fuc3Nkb9i
|
||||||
|
TUHuxxqAJpV+bEDpD+5ApQ/iCsTSUxqEjMBiVIPxAkrNLQK3wCB29i+uAYhR+gNCSt/JaV2PogNL+3zF
|
||||||
|
KqkRWAF8A9USnEv7w4Qvk6IgzBqA1ir9NtSW9/uMAqX30WuUv7RJKyEjUEXbtSK8u+Vg6YLabgBilP4A
|
||||||
|
o/T7jiKlD+JmlG+/XpnKhhBt2vHAGYhCrp0YRNsRi3YYgAZKv3VI6bcchUrv42WU9PNyByg/qAbjHEwx
|
||||||
|
TpuxAm2tLFplAOoofTea6fdHe/rRrvQ+BtDS/6ayPkDofb8dFQtNK8jtzUP1CzYJKE8D0EDpt45Q+jH2
|
||||||
|
FaxX/ouB71BCx1/Ee98drWSKkhFYRfTpL9uhlpMBiFD8oNIfhOryrdJH44/A/6MkMf+Yd/8GZMjeUqBb
|
||||||
|
nI+qTS3yMAChAbAh2vvNQjP9VlbpG+JJVBq9rIw3H3r3m6MMwHcU6BbXoNXIfLDL/8wNQGgAbIqcPsfT
|
||||||
|
fq9vGbAazZYP+n8o8QDdEPg6KggqEn6LyGEs8jAAAWyGUlePoUPLjDPGKlQ5d3FZlT9g/DdAob4TCvbu
|
||||||
|
b0cT0qoy9m/hDUBgAHSjAzKt8ifDS6hi7oeY49RKrPweIkr9DMXa6j2MUpCfLNA9dZYBCOD9iBDCKn99
|
||||||
|
vIpCUX83nwcov8ffAf4V+BKiVisKnkZs0/f7f7Czf8YGIDAINkPMuUU+SLJdWIFIUG9EnHQPG0NAWQdm
|
||||||
|
yOfzHoqT6OPjJcSedKNV/hwNQACHAnvYrlyPlcjj7Cv9g0R4+Dsgy+9taBuzRYFucQXi/bvKKn9rDMAE
|
||||||
|
RFdVlHrvdmE12mvejJb39yFmnGrZlb6O8u+GohdvKtAtrgW+DfzS73er/PkbgC3MYBiNWIv2mrciyu57
|
||||||
|
gBeJqDYr+0AMKf92RvnfWqBb7Edp1N+jpH6VshqAXYFNRlF/9QLPoPDSDcBdwPNVBgeqVXAcqFarVBy3
|
||||||
|
UwfgZmiWfWfB7usKlIOw2ip/CwxAYEZ4PcU+LTYL9KPDTO5Ey/vb0eElfYPVQRzHYbA6OAMYV60yB+gN
|
||||||
|
DcDp1M7RW4hYfsOYgbzoc4gmrJiK/CzzzTWCmIRIUrpRSHEOYsBNKk/6ricBX0NbviLhL+jAl1etOrfI
|
||||||
|
AARQ5IMg0mAAUVrdbZT+NqN469Z/QUq+Q7XKOxEJ5hqUBfdKSPkvQHUQVWCuGaxzjXwHaNh+LDp66yCU
|
||||||
|
Y3EG2uMG5R811/S57n6A8gtWJpAnVf6x6PCPEylWqPcORDv2fOi9WLTIAHSS86+KQkhzjdLfAjxFBIFk
|
||||||
|
YJDtjWbFKcjx50Qo/17Az9Cs+2m0fz4ZhQcbtQetCk4F9jPvygv1/SdQEdFClO76XqPsfcCP0dFdZ9SR
|
||||||
|
/4AG9FihRJ9PolN2i5ToMw/F+udb5W+fAeiEZddSlDDyd+TFf5zhR5DVG1y3IPbbLzL8WLFt0Mz/c+Cr
|
||||||
|
yGk4HiVMbWsMQKP2oFn6K2gVcFrIQIxBRTerTftbjPG6AhGsXIJWF1HytyGnWW+M8oPO/fsvipXos9D0
|
||||||
|
x71W+dtrAJ5DM2TZ/ACvAA+hOP2NiMa6J6HSB7EIef6PR1WPQVTRTPsomuG7gCeQT6GaoD1GQe9Eh1r0
|
||||||
|
RVy/inIMFqEa/FfN//vXH2wgryZQ/vegSsWNCvTuliCDNtsqf5sMQID08QmUfFEGA7AcOeD8BJ1HzN+a
|
||||||
|
VfphOkPjffE4tMzfAq0yqk22j/vOICq7/gY6AnuwSXk95d8fMfpsWaB32INWRL+3yt9GAxDAk2j5fFhB
|
||||||
|
n68Hze6+0j/EUCdbKwZRL2KjmYQSp7J2ojnAArSkn4echc3Io5R/F+SreHOB3uVaxDXwC4wRs8rffgPQ
|
||||||
|
A1wPHEJxjtZehVYmN6EZ9360z2+l0vuKV0Hht9+Zv33W/M3J8De6kRf8PLTK6A5cP04epfzbGOXfs0Dj
|
||||||
|
dAA5Nb+L8VtY5S+GAQDNbifQ3nqANWiWuwUl6NyL9tbVNii+j+WIhvoU8+8V5t/LiNh6jABV88wHoIKc
|
||||||
|
XwAfQDx8tyBfwwLk8AvLbyV6K7CpMRQHF2yc+ok+tq6/SHAdz/+c6DreGtfxqi38rHUdb77reD91He9o
|
||||||
|
1/G2ch3PDdzT+k/OGI+SUR4CNg783UNJM4vQ8nUNmolPZOhRZvXaB3EEWm2dEvr7NOBSNCv2mN/5E0rQ
|
||||||
|
SiIP9tNE1/Euch1voMXvMe7zF/NuW/U+RxWy6s3fIxroE3K+3z6UhXcHmunvRJGIYVNCC2eJXuBytMcP
|
||||||
|
5gz0IyLKQWoEmQ8Cf0VL2rj2QcxHs/i9ob8vRk6xfxhDsgptN55JIq846+3QWFRCexLF2cqBUq1PN++4
|
||||||
|
1e91VCD1XjRgkbcCLkShoywxgGbOu6il4i4iIoZtB0dyVBwXR6/fRWw+51CszM5HgI9Ry5q07zcHZLme
|
||||||
|
eg5RMA2iJWuaE3uraPa6h1pW3tNoCWuVPiUiEn2+XDDlXwR83ip//sjEGx0aUJug9NVPMLJKwUWIKPMP
|
||||||
|
KMy42ip9bsp/OPKub1WgW1yKViS/se+7BeMhi4tUGaTirN86rkZ79LloP7k5in83wiCa8a9C5KJXorz8
|
||||||
|
vuAgqDJI1R7umpXyzwR+hOr7i4IelHZ8KZbUoyXIvLIrNMi6kQPsAPPfHRB/XLdR7hdRXvccFLefz/CK
|
||||||
|
O4vs38t0VKOwV4FucR1KO/4WNtZfXgPgDzY/XbhqQvEOzliU0z7GGIABVOyyqkp1nfkOg1WtJuzLz035
|
||||||
|
twZ+igqMioIBtBr5khkT9v0XxAB0USsB7WO45z1OjlH2CrBm6ECsMlAd8KiVFPdHtK+gEJWPNQxN7omT
|
||||||
|
g7Y5/oqjL0o/YuRZ9sFaootwGsmTPGNSAzAVcQEcU7Bx+CuUJVnaY9HLikZRgLHIkfcOYyhuBn5CrVQ2
|
||||||
|
Tt6NEltORj6Asweq/SuauD6Icux0FCNfgVJUH0god8zv7oXi25cB14WMXyN5Ln1g7pOE8iR9kFT5J6Ky
|
||||||
|
5KMLNgavRZwF9uTeAmES8uS/hNJJH0MprGeZgTQxRg5wFEpcWYXILjZu4voOKl+9FngNZcktRQw9e6JZ
|
||||||
|
e7cGctBZdRej8GE/qrsPIk6edx/EySsxfRC7fQtkz3W7jne263jrCpbld5freDvaLL/i4V3IQXcPyvB7
|
||||||
|
C8q6W4pIJt7ZQP4uc41DUJ3AEhQR2Djh9Q9Gy+rLzcD/BipJ/SLaH15urnVZA7nvbzjfKNhaRMQRVvBG
|
||||||
|
8rz7IE4+LqYPNkio/K7reKe6jtdTMOV/xHW8va3ytxf10j67jBJdhvjwHkShOX/PHicHld+eRC0c2Mz1
|
||||||
|
HaPAC1B24Qvmu0+Yv1eMAjeS9yD6q3PRvjk8Y8bJ8+6DJPJGfeA0Uv4APoRWJRMoDp5B25p7/D/YfX97
|
||||||
|
0Mjs+gH3kxEjTNhBFSfvRzkB/SO8Psiptr0ZLLchB5v/nWodeRC9RGQPBto3kreiD+LkJHjGRsp/qDFw
|
||||||
|
GxdozC1DPIbXWeVvP+IKP1xEWb0/mtWqTcqh8V41rn0VlajOQuGrZuVxv59EnncfxMmTPGOU8u+LSElf
|
||||||
|
V6DxthI5Om2WX0HgxQzK1Yh80UXe40oT8jgkaV9Bs96BRrmOa1KeFnn3QRIkesaQ8u+EogU7FmisrTMG
|
||||||
|
6X+xjD6FQb3B6s8yM5G3vILCZQ5DCSXryeOQpP0ASiOeiRxhu6D69oGE8rTIuw+SYCTPuKVRtH0KNM4G
|
||||||
|
jeKfbwyBVf6CoN4KYB6qGz/WDLi1yLN9Daotp4F8XuhaToShaXT9R9Ce+HKUsno+cCQKfXlo+diDkkd2
|
||||||
|
iZD/muH7ZIfGy+woed59ECfvbdAHQ54xMPt3o1qKQwo2zn6Dlv42y69E2AZRMb1kPr9m6GmwcXJQqOrn
|
||||||
|
wN8YTi0d174CfATx9L9k/ntSwGjFyX0cZBS23vagkTzvPoiTJ3rGQCjtONfxVhQs3Het63ivt+G+YiLO
|
||||||
|
OTWZWvioBy1Dm5E7iBPfRd7fwSbbeyh91UXL3qUM9ZjHyUGhuinm2qsinjFOnncfxMkbPmNAoaYhuq8i
|
||||||
|
FfjMQaQej/p/sLN/uQyARcERMAAfRWnIRTmu7Z9G+e+2yl9cFIn/zWLkmIAISIui/M8iRh+r/NYAWLQA
|
||||||
|
m6PaiCLgZVTcc61VfmsALFqDnZAfod1YiY5B+7VVfmsALFqHbWj/6b29KPnoJ5g8Bav81gBY5IiAA3Ac
|
||||||
|
7XXoDgI/wyb6lA5JgrIzzACbQ3QhSp7yScDeKMFlnflO+BjvqehYsvmIX5CM5XH3OB3NwJj2j2QsT4J2
|
||||||
|
O/9+h8hGeqzydw52AD6JSlVvZfgeM2/5WES48SI6S28xci5NCMjfC3zffOfEiPZp5EnucTo6HLUHsfXM
|
||||||
|
ZmgcPq28IQLJNae6jjfYpkSf613H29om+nQeTqCWmBJFZpGnvAsdMvISqhk/1ShHDyqL9Ywyzka1/H0M
|
||||||
|
J/RIK4+7R195X0Wn1n4NHT1+ByrC2SmFfOcmDcB7Xcdb2Qblv8d1vOlW+TsTWwPvNwp4b4QC5ykfj5hy
|
||||||
|
nkZVcKDilgXm7+MQEed+KMe8h+GUXl0p5XH36B/Y+T1UDNSNinBWoDr8Q1PIj0j6kozi7ew63nMtVv5/
|
||||||
|
uo430yp/udHICbgIHWS5mGgHU55yv9pumfne7mimXEat0q4PUXDdTTSbb29KeZJ77ENprlPQPv4JlKZb
|
||||||
|
zUDeDJ4mcIxWC/AcWond5f/B7vs7zwCA8s+dNsoHEbHFH9GsOFjAexyHlu8XorqAasbyJFhtDFUrtPAV
|
||||||
|
5Iv5q1X+8qPo6zYHLfsvQiW2ReOzB60krkYRiwkRxiKtPCmuQ9uUfXN81lXA1xH3oVX+DkCR8wActC9+
|
||||||
|
HjgPhce6KU4Bk1/D343CYD+P6NORyhM/Y0ABn0cRjZU5PW8vclb+GJvo0zEo6gqgimb+A9C59b8APgC8
|
||||||
|
EYXjinBC6HLE1HuK+fcK8+9l1EqCRypfPsJ7uga4BB1WkqVxHzTv4DwMiapV/tFhABy0B/ZaLF8DfBs5
|
||||||
|
x45FnvgxaJl7PkOZfB3TvtLgN9LKo+5xDvBllP56kTFar6DTbX2H3EjldzfzEv1zGJEv4GxELPLhjMbI
|
||||||
|
AKIjPwub6NNxSHI8eD/wMDqOqq+F8pXoNJwlwP3ADWgJujDUvopIMu5A3noylte7x0HgKbRSWYA84r9A
|
||||||
|
R5z7nvw08qYQOp79HpThuAPpVnm96CDRM9HKxHSYPaK9U2AJQToIoVj8JETI8Tng9SO43BMoMvFzAunX
|
||||||
|
dvbvsDFju6BzUGUwuBJYh1YCd6At1VRqpybVwzq0GvkVOrzjagK1D1b5Ow92BdChCK0GXHTK8EGIWXg3
|
||||||
|
lNXYjbYbC9GMfydKT36KwDbEKn7n4v8D64wh+VZf3icAAAAASUVORK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>MotionDecoder - Обработка записей с камер наблюдения</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ToolTip" xml:space="preserve">
|
||||||
|
<value />
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,119 @@
|
|||||||
|
namespace MotionDecoder
|
||||||
|
{
|
||||||
|
partial class Processing
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Windows Form Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Processing));
|
||||||
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
|
this.step = new System.Windows.Forms.Label();
|
||||||
|
this.label3 = new System.Windows.Forms.Label();
|
||||||
|
this.cancelButton = new System.Windows.Forms.Button();
|
||||||
|
this.progressBar = new System.Windows.Forms.ProgressBar();
|
||||||
|
this.percentage = new System.Windows.Forms.Label();
|
||||||
|
this.timer = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.overallProgressBar = new System.Windows.Forms.ProgressBar();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// label1
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label1, "label1");
|
||||||
|
this.label1.Name = "label1";
|
||||||
|
//
|
||||||
|
// step
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.step, "step");
|
||||||
|
this.step.Name = "step";
|
||||||
|
//
|
||||||
|
// label3
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.label3, "label3");
|
||||||
|
this.label3.Name = "label3";
|
||||||
|
//
|
||||||
|
// cancelButton
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cancelButton, "cancelButton");
|
||||||
|
this.cancelButton.Name = "cancelButton";
|
||||||
|
this.cancelButton.UseVisualStyleBackColor = true;
|
||||||
|
this.cancelButton.Click += new System.EventHandler(this.Cancel);
|
||||||
|
//
|
||||||
|
// progressBar
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.progressBar, "progressBar");
|
||||||
|
this.progressBar.Name = "progressBar";
|
||||||
|
this.progressBar.Step = 1;
|
||||||
|
//
|
||||||
|
// percentage
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.percentage, "percentage");
|
||||||
|
this.percentage.Name = "percentage";
|
||||||
|
//
|
||||||
|
// timer
|
||||||
|
//
|
||||||
|
this.timer.Interval = 1000;
|
||||||
|
//
|
||||||
|
// overallProgressBar
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.overallProgressBar, "overallProgressBar");
|
||||||
|
this.overallProgressBar.Name = "overallProgressBar";
|
||||||
|
//
|
||||||
|
// Processing
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.ControlBox = false;
|
||||||
|
this.Controls.Add(this.overallProgressBar);
|
||||||
|
this.Controls.Add(this.percentage);
|
||||||
|
this.Controls.Add(this.progressBar);
|
||||||
|
this.Controls.Add(this.cancelButton);
|
||||||
|
this.Controls.Add(this.label3);
|
||||||
|
this.Controls.Add(this.step);
|
||||||
|
this.Controls.Add(this.label1);
|
||||||
|
this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle;
|
||||||
|
this.MaximizeBox = false;
|
||||||
|
this.MinimizeBox = false;
|
||||||
|
this.Name = "Processing";
|
||||||
|
this.ShowIcon = false;
|
||||||
|
this.ShowInTaskbar = false;
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
this.PerformLayout();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
|
||||||
|
private System.Windows.Forms.Label label1;
|
||||||
|
private System.Windows.Forms.Label label3;
|
||||||
|
public System.Windows.Forms.Label step;
|
||||||
|
private System.Windows.Forms.Timer timer;
|
||||||
|
public System.Windows.Forms.ProgressBar progressBar;
|
||||||
|
public System.Windows.Forms.Label percentage;
|
||||||
|
public System.Windows.Forms.ProgressBar overallProgressBar;
|
||||||
|
private System.Windows.Forms.Button cancelButton;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,164 @@
|
|||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using System.Diagnostics;
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
using MotionDecoder.Models;
|
||||||
|
using Newtonsoft.Json;
|
||||||
|
using System.IO;
|
||||||
|
using System.Threading;
|
||||||
|
using MotionDecoder.Properties;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using Accord.Vision.Motion;
|
||||||
|
using Accord.Video.FFMPEG;
|
||||||
|
|
||||||
|
namespace MotionDecoder
|
||||||
|
{
|
||||||
|
public partial class Processing : Form
|
||||||
|
{
|
||||||
|
#pragma warning disable IDE0069 // Disposable fields should be disposed
|
||||||
|
CancellationTokenSource cts = new CancellationTokenSource(); // I disposed it on line 48
|
||||||
|
#pragma warning restore IDE0069 // Disposable fields should be disposed
|
||||||
|
|
||||||
|
public Processing() =>
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Processes videos - analyzes them or loads pre-defined metadata
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="paths"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public async Task<Video[]> ProcessAsync(string[] paths)
|
||||||
|
{
|
||||||
|
List<Video> videos = new List<Video>();
|
||||||
|
|
||||||
|
overallProgressBar.Maximum = paths.Length;
|
||||||
|
|
||||||
|
for (int i = 0; i < paths.Length; i++)
|
||||||
|
{
|
||||||
|
step.Text = $"({i + 1}/{paths.Length})";
|
||||||
|
|
||||||
|
string path = paths[i];
|
||||||
|
Video item;
|
||||||
|
if (File.Exists(path + ".data")) // Checks if pre-defined metadata exists
|
||||||
|
try { item = JsonConvert.DeserializeObject<Video>(File.ReadAllText(path + ".data")); } // Loads it if exists and correct
|
||||||
|
catch { item = await Analyze(path); }
|
||||||
|
else
|
||||||
|
item = await Analyze(path); // Analyzes video
|
||||||
|
|
||||||
|
if (item != null)
|
||||||
|
videos.Add(item);
|
||||||
|
|
||||||
|
overallProgressBar.Value++;
|
||||||
|
|
||||||
|
if (cts.IsCancellationRequested)
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
cts.Dispose();
|
||||||
|
GC.Collect();
|
||||||
|
|
||||||
|
return videos.Count == 0 ? null : videos.ToArray();
|
||||||
|
}
|
||||||
|
|
||||||
|
async Task<Video> Analyze(string path) => await Task.Run(() =>
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
BlobCountingObjectsProcessing processingAlgorithm = new BlobCountingObjectsProcessing()
|
||||||
|
{
|
||||||
|
MinObjectsHeight = 35,
|
||||||
|
MinObjectsWidth = 35
|
||||||
|
};
|
||||||
|
MotionDetector detector = new MotionDetector(new TwoFramesDifferenceDetector(), processingAlgorithm);
|
||||||
|
|
||||||
|
VideoFileReader reader = new VideoFileReader();
|
||||||
|
List<Segment> markers = new List<Segment>();
|
||||||
|
|
||||||
|
reader.Open(path); // Opens video file
|
||||||
|
|
||||||
|
progressBar.Value = 0;
|
||||||
|
Invoke(new Action(() => progressBar.Maximum = (int)(reader.FrameCount / reader.FrameRate - 1)));
|
||||||
|
|
||||||
|
bool isMoving = false;
|
||||||
|
Segment temp = new Segment();
|
||||||
|
|
||||||
|
//Algorythm
|
||||||
|
for (int k = 1; k < (int)(reader.FrameCount / reader.FrameRate); k++) // Loop processes every second
|
||||||
|
{
|
||||||
|
for(int step = 0; step < 2; step++) // Processes two halfs of the current second
|
||||||
|
{
|
||||||
|
detector.ProcessFrame(reader.ReadVideoFrame()); // Processes frame
|
||||||
|
for (int i = 1; i < (int)(reader.FrameRate / 2); i++) // Skips other frames
|
||||||
|
reader.ReadVideoFrame();
|
||||||
|
}
|
||||||
|
GC.Collect(); // Releases memory
|
||||||
|
|
||||||
|
if (processingAlgorithm.ObjectsCount > 0 && !isMoving) // If there's any new moving object - creates new segment
|
||||||
|
{
|
||||||
|
isMoving = true;
|
||||||
|
temp.Start = k - 1;
|
||||||
|
}
|
||||||
|
else if (processingAlgorithm.ObjectsCount == 0 && isMoving) // If there's both opened segment and no moving objects - closes segment
|
||||||
|
{
|
||||||
|
isMoving = false;
|
||||||
|
temp.End = k;
|
||||||
|
markers.Add(temp);
|
||||||
|
temp = new Segment();
|
||||||
|
}
|
||||||
|
|
||||||
|
Invoke(new Action(() => // Updates progress bar
|
||||||
|
{
|
||||||
|
progressBar.Value++;
|
||||||
|
percentage.Text = $"{Math.Round((float)progressBar.Value / progressBar.Maximum * 100)}%";
|
||||||
|
}));
|
||||||
|
|
||||||
|
cts.Token.ThrowIfCancellationRequested();
|
||||||
|
}
|
||||||
|
|
||||||
|
// Markers post-processing
|
||||||
|
for (int k = 0; k < markers.Count; k++)
|
||||||
|
if (markers[k].Duration < 3) // Deletes segments if they last less than 3 seconds
|
||||||
|
markers.RemoveAt(k--);
|
||||||
|
|
||||||
|
for (int k = 1; k < markers.Count; k++)
|
||||||
|
if (Segment.AbsoluteDistanceBetweenSegments(markers[k - 1], markers[k]) <= 5)
|
||||||
|
{
|
||||||
|
markers[k - 1].End = markers[k].End; // Joins two segments if between them is less than 5 seconds
|
||||||
|
markers.RemoveAt(k--);
|
||||||
|
}
|
||||||
|
|
||||||
|
Video video = new Video()
|
||||||
|
{
|
||||||
|
Path = path,
|
||||||
|
Name = new FileInfo(path).Name,
|
||||||
|
Markers = markers
|
||||||
|
};
|
||||||
|
|
||||||
|
// Writing data to disk
|
||||||
|
File.WriteAllText(path + ".data", JsonConvert.SerializeObject(video));
|
||||||
|
|
||||||
|
return video;
|
||||||
|
}
|
||||||
|
catch (OperationCanceledException)
|
||||||
|
{
|
||||||
|
cts = new CancellationTokenSource();
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
MessageBox.Show(e.Message, e.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error);
|
||||||
|
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
void Cancel(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (MessageBox.Show(Resources.cancelProcConf, Resources.questionHeader, MessageBoxButtons.YesNo, MessageBoxIcon.Warning) != DialogResult.Yes)
|
||||||
|
return;
|
||||||
|
|
||||||
|
cancelButton.Enabled = false;
|
||||||
|
cts.Cancel();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,363 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label1.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="label1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 0, 6, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>215, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Processing video files...</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Name" xml:space="preserve">
|
||||||
|
<value>label1</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label1.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>22, 140</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 0, 6, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>54, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="step.Text" xml:space="preserve">
|
||||||
|
<value>(0/0)</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>step.Name" xml:space="preserve">
|
||||||
|
<value>step</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>step.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>step.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>step.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>True</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>17, 41</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 0, 6, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>361, 25</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Please, wait. It can take several minutes.</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Name" xml:space="preserve">
|
||||||
|
<value>label3</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>label3.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>453, 181</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 6, 6, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>138, 42</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.Text" xml:space="preserve">
|
||||||
|
<value>Cancel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cancelButton.Name" xml:space="preserve">
|
||||||
|
<value>cancelButton</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cancelButton.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cancelButton.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cancelButton.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="progressBar.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="progressBar.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>22, 92</value>
|
||||||
|
</data>
|
||||||
|
<data name="progressBar.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 6, 6, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="progressBar.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>568, 42</value>
|
||||||
|
</data>
|
||||||
|
<data name="progressBar.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>progressBar.Name" xml:space="preserve">
|
||||||
|
<value>progressBar</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>progressBar.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>progressBar.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>progressBar.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>517, 140</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 0, 6, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>73, 24</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.Text" xml:space="preserve">
|
||||||
|
<value>0%</value>
|
||||||
|
</data>
|
||||||
|
<data name="percentage.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||||
|
<value>TopRight</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>percentage.Name" xml:space="preserve">
|
||||||
|
<value>percentage</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>percentage.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>percentage.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>percentage.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="overallProgressBar.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="overallProgressBar.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>22, 70</value>
|
||||||
|
</data>
|
||||||
|
<data name="overallProgressBar.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 6, 6, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="overallProgressBar.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>568, 24</value>
|
||||||
|
</data>
|
||||||
|
<data name="overallProgressBar.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>overallProgressBar.Name" xml:space="preserve">
|
||||||
|
<value>overallProgressBar</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>overallProgressBar.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ProgressBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>overallProgressBar.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>overallProgressBar.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>11, 24</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>612, 246</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>6, 6, 6, 6</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Processing</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timer.Name" xml:space="preserve">
|
||||||
|
<value>timer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timer.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>Processing</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Form, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,154 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>274, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label1.Text" xml:space="preserve">
|
||||||
|
<value>Обработка видео файлов... Пожалуйста, подождите.</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>193, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label3.Text" xml:space="preserve">
|
||||||
|
<value>Это может занять некоторое время.</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelButton.Text" xml:space="preserve">
|
||||||
|
<value>Отмена</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>59, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="label4.Text" xml:space="preserve">
|
||||||
|
<value>Осталось:</value>
|
||||||
|
</data>
|
||||||
|
<data name="eta.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>77, 103</value>
|
||||||
|
</data>
|
||||||
|
<data name="eta.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>78, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="eta.Text" xml:space="preserve">
|
||||||
|
<value>Вычисление...</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Text" xml:space="preserve">
|
||||||
|
<value>Обработка</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,158 @@
|
|||||||
|
namespace MotionDecoder
|
||||||
|
{
|
||||||
|
partial class VideoPlayer
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Required designer variable.
|
||||||
|
/// </summary>
|
||||||
|
private System.ComponentModel.IContainer components = null;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Clean up any resources being used.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
|
||||||
|
protected override void Dispose(bool disposing)
|
||||||
|
{
|
||||||
|
if (disposing && (components != null))
|
||||||
|
{
|
||||||
|
components.Dispose();
|
||||||
|
}
|
||||||
|
base.Dispose(disposing);
|
||||||
|
}
|
||||||
|
|
||||||
|
#region Component Designer generated code
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Required method for Designer support - do not modify
|
||||||
|
/// the contents of this method with the code editor.
|
||||||
|
/// </summary>
|
||||||
|
private void InitializeComponent()
|
||||||
|
{
|
||||||
|
this.components = new System.ComponentModel.Container();
|
||||||
|
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(VideoPlayer));
|
||||||
|
this.timeCodeLabel = new System.Windows.Forms.Label();
|
||||||
|
this.volumeBar = new System.Windows.Forms.TrackBar();
|
||||||
|
this.stopBtn = new System.Windows.Forms.Button();
|
||||||
|
this.playBtn = new System.Windows.Forms.Button();
|
||||||
|
this.prevBtn = new System.Windows.Forms.Button();
|
||||||
|
this.nextBtn = new System.Windows.Forms.Button();
|
||||||
|
this.trackBar = new System.Windows.Forms.TrackBar();
|
||||||
|
this.timer = new System.Windows.Forms.Timer(this.components);
|
||||||
|
this.toolTip = new System.Windows.Forms.ToolTip(this.components);
|
||||||
|
this.cut = new System.Windows.Forms.CheckBox();
|
||||||
|
this.outputFrame = new System.Windows.Forms.Panel();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.volumeBar)).BeginInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.trackBar)).BeginInit();
|
||||||
|
this.SuspendLayout();
|
||||||
|
//
|
||||||
|
// timeCodeLabel
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.timeCodeLabel, "timeCodeLabel");
|
||||||
|
this.timeCodeLabel.Name = "timeCodeLabel";
|
||||||
|
this.toolTip.SetToolTip(this.timeCodeLabel, resources.GetString("timeCodeLabel.ToolTip"));
|
||||||
|
//
|
||||||
|
// volumeBar
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.volumeBar, "volumeBar");
|
||||||
|
this.volumeBar.Maximum = 0;
|
||||||
|
this.volumeBar.Minimum = -3000;
|
||||||
|
this.volumeBar.Name = "volumeBar";
|
||||||
|
this.volumeBar.TickStyle = System.Windows.Forms.TickStyle.None;
|
||||||
|
this.toolTip.SetToolTip(this.volumeBar, resources.GetString("volumeBar.ToolTip"));
|
||||||
|
this.volumeBar.Scroll += new System.EventHandler(this.VolumeChanged);
|
||||||
|
//
|
||||||
|
// stopBtn
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.stopBtn, "stopBtn");
|
||||||
|
this.stopBtn.Name = "stopBtn";
|
||||||
|
this.toolTip.SetToolTip(this.stopBtn, resources.GetString("stopBtn.ToolTip"));
|
||||||
|
this.stopBtn.UseVisualStyleBackColor = true;
|
||||||
|
this.stopBtn.Click += new System.EventHandler(this.StopClicked);
|
||||||
|
//
|
||||||
|
// playBtn
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.playBtn, "playBtn");
|
||||||
|
this.playBtn.Name = "playBtn";
|
||||||
|
this.toolTip.SetToolTip(this.playBtn, resources.GetString("playBtn.ToolTip"));
|
||||||
|
this.playBtn.UseVisualStyleBackColor = true;
|
||||||
|
this.playBtn.Click += new System.EventHandler(this.PlayClicked);
|
||||||
|
//
|
||||||
|
// prevBtn
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.prevBtn, "prevBtn");
|
||||||
|
this.prevBtn.Name = "prevBtn";
|
||||||
|
this.toolTip.SetToolTip(this.prevBtn, resources.GetString("prevBtn.ToolTip"));
|
||||||
|
this.prevBtn.UseVisualStyleBackColor = true;
|
||||||
|
this.prevBtn.Click += new System.EventHandler(this.PreviousClicked);
|
||||||
|
//
|
||||||
|
// nextBtn
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.nextBtn, "nextBtn");
|
||||||
|
this.nextBtn.Name = "nextBtn";
|
||||||
|
this.toolTip.SetToolTip(this.nextBtn, resources.GetString("nextBtn.ToolTip"));
|
||||||
|
this.nextBtn.UseVisualStyleBackColor = true;
|
||||||
|
this.nextBtn.Click += new System.EventHandler(this.NextClicked);
|
||||||
|
//
|
||||||
|
// trackBar
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.trackBar, "trackBar");
|
||||||
|
this.trackBar.Name = "trackBar";
|
||||||
|
this.trackBar.TickStyle = System.Windows.Forms.TickStyle.None;
|
||||||
|
this.toolTip.SetToolTip(this.trackBar, resources.GetString("trackBar.ToolTip"));
|
||||||
|
this.trackBar.MouseCaptureChanged += new System.EventHandler(this.SeekPositionChanged);
|
||||||
|
//
|
||||||
|
// timer
|
||||||
|
//
|
||||||
|
this.timer.Interval = 1000;
|
||||||
|
this.timer.Tick += new System.EventHandler(this.TimerTicked);
|
||||||
|
//
|
||||||
|
// cut
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.cut, "cut");
|
||||||
|
this.cut.Checked = true;
|
||||||
|
this.cut.CheckState = System.Windows.Forms.CheckState.Checked;
|
||||||
|
this.cut.Name = "cut";
|
||||||
|
this.toolTip.SetToolTip(this.cut, resources.GetString("cut.ToolTip"));
|
||||||
|
this.cut.UseVisualStyleBackColor = true;
|
||||||
|
this.cut.CheckedChanged += new System.EventHandler(this.CutChanged);
|
||||||
|
//
|
||||||
|
// outputFrame
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this.outputFrame, "outputFrame");
|
||||||
|
this.outputFrame.BackColor = System.Drawing.Color.Black;
|
||||||
|
this.outputFrame.Name = "outputFrame";
|
||||||
|
//
|
||||||
|
// VideoPlayer
|
||||||
|
//
|
||||||
|
resources.ApplyResources(this, "$this");
|
||||||
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
|
this.Controls.Add(this.outputFrame);
|
||||||
|
this.Controls.Add(this.cut);
|
||||||
|
this.Controls.Add(this.timeCodeLabel);
|
||||||
|
this.Controls.Add(this.volumeBar);
|
||||||
|
this.Controls.Add(this.stopBtn);
|
||||||
|
this.Controls.Add(this.playBtn);
|
||||||
|
this.Controls.Add(this.prevBtn);
|
||||||
|
this.Controls.Add(this.nextBtn);
|
||||||
|
this.Controls.Add(this.trackBar);
|
||||||
|
this.Name = "VideoPlayer";
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.volumeBar)).EndInit();
|
||||||
|
((System.ComponentModel.ISupportInitialize)(this.trackBar)).EndInit();
|
||||||
|
this.ResumeLayout(false);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
#endregion
|
||||||
|
private System.Windows.Forms.Label timeCodeLabel;
|
||||||
|
private System.Windows.Forms.Button stopBtn;
|
||||||
|
private System.Windows.Forms.Button playBtn;
|
||||||
|
private System.Windows.Forms.Button prevBtn;
|
||||||
|
private System.Windows.Forms.Button nextBtn;
|
||||||
|
private System.Windows.Forms.Timer timer;
|
||||||
|
private System.Windows.Forms.ToolTip toolTip;
|
||||||
|
public System.Windows.Forms.TrackBar trackBar;
|
||||||
|
public System.Windows.Forms.CheckBox cut;
|
||||||
|
public System.Windows.Forms.TrackBar volumeBar;
|
||||||
|
private System.Windows.Forms.Panel outputFrame;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,167 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Drawing;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
using MotionDecoder.Forms;
|
||||||
|
using MotionDecoder.Models;
|
||||||
|
using MotionDecoder.Properties;
|
||||||
|
|
||||||
|
namespace MotionDecoder
|
||||||
|
{
|
||||||
|
public enum PlayState { Playing, Paused, Stopped, Empty, Unencoutered }
|
||||||
|
|
||||||
|
public partial class VideoPlayer : UserControl
|
||||||
|
{
|
||||||
|
public List<Segment> playlist = new List<Segment>();
|
||||||
|
Microsoft.DirectX.AudioVideoPlayback.Video video;
|
||||||
|
|
||||||
|
int checkpoint = -100;
|
||||||
|
|
||||||
|
public event EventHandler NextSegmentRequested;
|
||||||
|
public event EventHandler PreviousSegmentRequested;
|
||||||
|
|
||||||
|
public VideoPlayer()
|
||||||
|
{
|
||||||
|
InitializeComponent();
|
||||||
|
|
||||||
|
volumeBar.Value = Settings.Default.volume;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Play()
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (checkpoint == -100 && cut.Checked)
|
||||||
|
{
|
||||||
|
NextSegmentRequested?.Invoke(this, null);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
video.Play();
|
||||||
|
timer.Start();
|
||||||
|
TimerTicked(this, null);
|
||||||
|
|
||||||
|
playBtn.Text = "\x23F8";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Pause()
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
video.Pause();
|
||||||
|
timer.Stop();
|
||||||
|
|
||||||
|
playBtn.Text = "\x23F5";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Stop()
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
video.Stop();
|
||||||
|
timer.Stop();
|
||||||
|
TimerTicked(this, null);
|
||||||
|
|
||||||
|
playBtn.Text = "\x23F5";
|
||||||
|
}
|
||||||
|
|
||||||
|
public void IncrementVolume() =>
|
||||||
|
volumeBar.Value++;
|
||||||
|
public void DecrementVolume() =>
|
||||||
|
volumeBar.Value--;
|
||||||
|
|
||||||
|
void NextClicked(object sender, EventArgs e) =>
|
||||||
|
NextSegmentRequested?.Invoke(this, null);
|
||||||
|
|
||||||
|
void PreviousClicked(object sender, EventArgs e) =>
|
||||||
|
PreviousSegmentRequested?.Invoke(this, null);
|
||||||
|
|
||||||
|
void StopClicked(object sender, EventArgs e) =>
|
||||||
|
Stop();
|
||||||
|
|
||||||
|
void PlayClicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if(video.State == Microsoft.DirectX.AudioVideoPlayback.StateFlags.Running)
|
||||||
|
Pause();
|
||||||
|
else
|
||||||
|
Play();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Clear()
|
||||||
|
{
|
||||||
|
Stop();
|
||||||
|
playlist.Clear();
|
||||||
|
video?.Dispose();
|
||||||
|
video = null;
|
||||||
|
trackBar.Value = 0;
|
||||||
|
trackBar.Enabled = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void Open(Video source)
|
||||||
|
{
|
||||||
|
Clear();
|
||||||
|
Size size = outputFrame.Size;
|
||||||
|
video = new Microsoft.DirectX.AudioVideoPlayback.Video(source.Path) { Owner = outputFrame };
|
||||||
|
outputFrame.Size = size;
|
||||||
|
playlist.AddRange(source.Markers);
|
||||||
|
|
||||||
|
trackBar.Maximum = (int)video.Duration;
|
||||||
|
trackBar.Enabled = !cut.Checked;
|
||||||
|
|
||||||
|
video.Audio.Volume = volumeBar.Value;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void GoToSegment(int index)
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
video.CurrentPosition = Mathf.Clamp(playlist[index].Start - 5, 0, video.Duration);
|
||||||
|
checkpoint = (int)video.CurrentPosition + playlist[index].Duration + 15;
|
||||||
|
|
||||||
|
Play();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void VolumeChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if(video != null)
|
||||||
|
video.Audio.Volume = volumeBar.Value;
|
||||||
|
|
||||||
|
Settings.Default.volume = volumeBar.Value;
|
||||||
|
Settings.Default.Save();
|
||||||
|
}
|
||||||
|
|
||||||
|
void CutChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
Pause();
|
||||||
|
trackBar.Enabled = !cut.Checked;
|
||||||
|
}
|
||||||
|
|
||||||
|
void TimerTicked(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
trackBar.Value = (int)video.CurrentPosition;
|
||||||
|
timeCodeLabel.Text = TimeSpan.FromSeconds(video.CurrentPosition).ToString(@"hh\:mm\:ss") + " / " + TimeSpan.FromSeconds(video.Duration).ToString(@"hh\:mm\:ss");
|
||||||
|
|
||||||
|
if (cut.Checked && (int)video.CurrentPosition == checkpoint)
|
||||||
|
NextSegmentRequested?.Invoke(this, null);
|
||||||
|
}
|
||||||
|
|
||||||
|
void SeekPositionChanged(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (video == null)
|
||||||
|
return;
|
||||||
|
|
||||||
|
video.CurrentPosition = trackBar.Value;
|
||||||
|
Play();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,465 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="timeCodeLabel.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="timeCodeLabel.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="timeCodeLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>509, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="timeCodeLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>128, 23</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="mscorlib" name="mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="timeCodeLabel.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>33</value>
|
||||||
|
</data>
|
||||||
|
<data name="timeCodeLabel.Text" xml:space="preserve">
|
||||||
|
<value>00:00:00 / 00:00:00</value>
|
||||||
|
</data>
|
||||||
|
<data name="timeCodeLabel.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
|
||||||
|
<value>MiddleRight</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="toolTip.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>97, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="timeCodeLabel.ToolTip" xml:space="preserve">
|
||||||
|
<value>Timecode</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timeCodeLabel.Name" xml:space="preserve">
|
||||||
|
<value>timeCodeLabel</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timeCodeLabel.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timeCodeLabel.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timeCodeLabel.ZOrder" xml:space="preserve">
|
||||||
|
<value>2</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>116, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>104, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>32</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.ToolTip" xml:space="preserve">
|
||||||
|
<value>Volume</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>volumeBar.Name" xml:space="preserve">
|
||||||
|
<value>volumeBar</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>volumeBar.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>volumeBar.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>volumeBar.ZOrder" xml:space="preserve">
|
||||||
|
<value>3</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Segoe UI Symbol, 8.25pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>29, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>26</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.Text" xml:space="preserve">
|
||||||
|
<value>⏹</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Stop</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>stopBtn.Name" xml:space="preserve">
|
||||||
|
<value>stopBtn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>stopBtn.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>stopBtn.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>stopBtn.ZOrder" xml:space="preserve">
|
||||||
|
<value>4</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Segoe UI Symbol, 8.25pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>27</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.Text" xml:space="preserve">
|
||||||
|
<value></value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Play / Pause</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>playBtn.Name" xml:space="preserve">
|
||||||
|
<value>playBtn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>playBtn.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>playBtn.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>playBtn.ZOrder" xml:space="preserve">
|
||||||
|
<value>5</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Segoe UI Symbol, 8.25pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>58, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>28</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.Text" xml:space="preserve">
|
||||||
|
<value></value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Previous</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>prevBtn.Name" xml:space="preserve">
|
||||||
|
<value>prevBtn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>prevBtn.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>prevBtn.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>prevBtn.ZOrder" xml:space="preserve">
|
||||||
|
<value>6</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
|
<value>Segoe UI Symbol, 8.25pt</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>87, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>23, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>25</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.Text" xml:space="preserve">
|
||||||
|
<value></value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Next</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>nextBtn.Name" xml:space="preserve">
|
||||||
|
<value>nextBtn</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>nextBtn.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>nextBtn.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>nextBtn.ZOrder" xml:space="preserve">
|
||||||
|
<value>7</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.AutoSize" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.Enabled" type="System.Boolean, mscorlib">
|
||||||
|
<value>False</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 352</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>640, 22</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>30</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.ToolTip" xml:space="preserve">
|
||||||
|
<value>Seek</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>trackBar.Name" xml:space="preserve">
|
||||||
|
<value>trackBar</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>trackBar.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.TrackBar, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>trackBar.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>trackBar.ZOrder" xml:space="preserve">
|
||||||
|
<value>8</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="timer.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>17, 17</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="cut.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Bottom, Left</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
|
||||||
|
<value>NoControl</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>226, 374</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>100, 23</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>35</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.Text" xml:space="preserve">
|
||||||
|
<value>Cut</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.ToolTip" xml:space="preserve">
|
||||||
|
<value>Should program show you only clips with detected motions within?</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cut.Name" xml:space="preserve">
|
||||||
|
<value>cut</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cut.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cut.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>cut.ZOrder" xml:space="preserve">
|
||||||
|
<value>1</value>
|
||||||
|
</data>
|
||||||
|
<data name="outputFrame.Anchor" type="System.Windows.Forms.AnchorStyles, System.Windows.Forms">
|
||||||
|
<value>Top, Bottom, Left, Right</value>
|
||||||
|
</data>
|
||||||
|
<data name="outputFrame.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
|
<value>0, 0</value>
|
||||||
|
</data>
|
||||||
|
<data name="outputFrame.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>2, 2, 2, 2</value>
|
||||||
|
</data>
|
||||||
|
<data name="outputFrame.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>640, 347</value>
|
||||||
|
</data>
|
||||||
|
<data name="outputFrame.TabIndex" type="System.Int32, mscorlib">
|
||||||
|
<value>36</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>outputFrame.Name" xml:space="preserve">
|
||||||
|
<value>outputFrame</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>outputFrame.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>outputFrame.Parent" xml:space="preserve">
|
||||||
|
<value>$this</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>outputFrame.ZOrder" xml:space="preserve">
|
||||||
|
<value>0</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>True</value>
|
||||||
|
</metadata>
|
||||||
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
|
<value>6, 13</value>
|
||||||
|
</data>
|
||||||
|
<data name="$this.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
|
<value>640, 400</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timer.Name" xml:space="preserve">
|
||||||
|
<value>timer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>timer.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.Timer, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolTip.Name" xml:space="preserve">
|
||||||
|
<value>toolTip</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>toolTip.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.ToolTip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Name" xml:space="preserve">
|
||||||
|
<value>VideoPlayer</value>
|
||||||
|
</data>
|
||||||
|
<data name=">>$this.Type" xml:space="preserve">
|
||||||
|
<value>System.Windows.Forms.UserControl, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,147 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="timeCodeLabel.ToolTip" xml:space="preserve">
|
||||||
|
<value>Таймкод</value>
|
||||||
|
</data>
|
||||||
|
<data name="volumeBar.ToolTip" xml:space="preserve">
|
||||||
|
<value>Громкость</value>
|
||||||
|
</data>
|
||||||
|
<data name="stopBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Стоп</value>
|
||||||
|
</data>
|
||||||
|
<data name="playBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Воспроизвести / Пауза</value>
|
||||||
|
</data>
|
||||||
|
<data name="prevBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Предыдущий отрезок</value>
|
||||||
|
</data>
|
||||||
|
<data name="nextBtn.ToolTip" xml:space="preserve">
|
||||||
|
<value>Следующий отрезок</value>
|
||||||
|
</data>
|
||||||
|
<data name="trackBar.ToolTip" xml:space="preserve">
|
||||||
|
<value>Прокрутка</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.Text" xml:space="preserve">
|
||||||
|
<value>Обрезание</value>
|
||||||
|
</data>
|
||||||
|
<data name="cut.ToolTip" xml:space="preserve">
|
||||||
|
<value>Должна ли программа показывать вам только отрезки на которых замечено движение.</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
|
After Width: | Height: | Size: 16 KiB |
@@ -0,0 +1,19 @@
|
|||||||
|
namespace MotionDecoder
|
||||||
|
{
|
||||||
|
public static class Mathf
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Clamps value between to numbers
|
||||||
|
/// Returns <paramref name="min"/> if <paramref name="value"/> is less than <paramref name="min"/>, <paramref name="max"/> if the value is greater than <paramref name="max"/>. Otherwise returns <paramref name="value"/>
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>Returns <paramref name="min"/> if <paramref name="value"/> is less than <paramref name="min"/>, <paramref name="max"/> if the value is greater than <paramref name="max"/>. Otherwise returns <paramref name="value"/></returns>
|
||||||
|
public static double Clamp(double value, double min, double max)
|
||||||
|
{
|
||||||
|
if (value < min)
|
||||||
|
return min;
|
||||||
|
else if (value > max)
|
||||||
|
return max;
|
||||||
|
else return value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,41 @@
|
|||||||
|
using System;
|
||||||
|
|
||||||
|
namespace MotionDecoder.Models
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Video segment metadata
|
||||||
|
/// </summary>
|
||||||
|
public class Segment
|
||||||
|
{
|
||||||
|
public int Start { get; set; }
|
||||||
|
public int End { get; set; }
|
||||||
|
public int Duration => End - Start;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Creates new class instance
|
||||||
|
/// </summary>
|
||||||
|
public Segment() : this(0, 0) { }
|
||||||
|
/// <summary>
|
||||||
|
/// Creates new class instance
|
||||||
|
/// </summary>
|
||||||
|
/// <exception cref="System.NotSupportedException">Thrown when <paramref name="firstSecond"/> is greater than <paramref name="lastSecond"/></exception>
|
||||||
|
/// <param name="firstSecond">Second in the video where the segment begins</param>
|
||||||
|
/// <param name="lastSecond">Second in the video where the segment ends (must be greater or equal than</param>
|
||||||
|
public Segment(int firstSecond, int lastSecond)
|
||||||
|
{
|
||||||
|
if (firstSecond > lastSecond)
|
||||||
|
throw new NotSupportedException("Segment must begin earlier than end");
|
||||||
|
Start = firstSecond;
|
||||||
|
End = lastSecond;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Calculates time between end of <paramref name="seg1"/> segment and begining of <paramref name="seg2"/> segment
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="seg1">First segment which is intended to be first in the time line</param>
|
||||||
|
/// <param name="seg2">Second segment</param>
|
||||||
|
/// <returns>Time spent between two segments</returns>
|
||||||
|
public static int AbsoluteDistanceBetweenSegments(Segment seg1, Segment seg2) =>
|
||||||
|
Math.Abs(seg2.Start - seg1.End);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,23 @@
|
|||||||
|
using System.Collections.Generic;
|
||||||
|
|
||||||
|
namespace MotionDecoder.Models
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Represents video metadata
|
||||||
|
/// </summary>
|
||||||
|
public class Video
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// Absolute path to the file
|
||||||
|
/// </summary>
|
||||||
|
public string Path { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Video file name including extension
|
||||||
|
/// </summary>
|
||||||
|
public string Name { get; set; }
|
||||||
|
/// <summary>
|
||||||
|
/// Set of <see cref="Segment"/> found in the video
|
||||||
|
/// </summary>
|
||||||
|
public List<Segment> Markers { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,241 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||||
|
<PropertyGroup>
|
||||||
|
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||||
|
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||||
|
<ProjectGuid>{F6D82605-6E5F-4FD6-AF07-CD4EC9DE5DC9}</ProjectGuid>
|
||||||
|
<OutputType>WinExe</OutputType>
|
||||||
|
<RootNamespace>MotionDecoder</RootNamespace>
|
||||||
|
<AssemblyName>MotionDecoder</AssemblyName>
|
||||||
|
<TargetFrameworkVersion>v4.6</TargetFrameworkVersion>
|
||||||
|
<FileAlignment>512</FileAlignment>
|
||||||
|
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
|
||||||
|
<IsWebBootstrapper>false</IsWebBootstrapper>
|
||||||
|
<PublishUrl>publish\</PublishUrl>
|
||||||
|
<Install>true</Install>
|
||||||
|
<InstallFrom>Disk</InstallFrom>
|
||||||
|
<UpdateEnabled>false</UpdateEnabled>
|
||||||
|
<UpdateMode>Foreground</UpdateMode>
|
||||||
|
<UpdateInterval>7</UpdateInterval>
|
||||||
|
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
|
||||||
|
<UpdatePeriodically>false</UpdatePeriodically>
|
||||||
|
<UpdateRequired>false</UpdateRequired>
|
||||||
|
<MapFileExtensions>true</MapFileExtensions>
|
||||||
|
<ApplicationRevision>0</ApplicationRevision>
|
||||||
|
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
|
||||||
|
<UseApplicationTrust>false</UseApplicationTrust>
|
||||||
|
<BootstrapperEnabled>true</BootstrapperEnabled>
|
||||||
|
<NuGetPackageImportStamp>
|
||||||
|
</NuGetPackageImportStamp>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugSymbols>true</DebugSymbols>
|
||||||
|
<DebugType>full</DebugType>
|
||||||
|
<Optimize>false</Optimize>
|
||||||
|
<OutputPath>bin\Debug\</OutputPath>
|
||||||
|
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
<GenerateSerializationAssemblies>Auto</GenerateSerializationAssemblies>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||||
|
<PlatformTarget>AnyCPU</PlatformTarget>
|
||||||
|
<DebugType>pdbonly</DebugType>
|
||||||
|
<Optimize>true</Optimize>
|
||||||
|
<OutputPath>bin\Release\</OutputPath>
|
||||||
|
<DefineConstants>TRACE</DefineConstants>
|
||||||
|
<ErrorReport>prompt</ErrorReport>
|
||||||
|
<WarningLevel>4</WarningLevel>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<StartupObject>
|
||||||
|
</StartupObject>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<ApplicationIcon>MDlogo.ico</ApplicationIcon>
|
||||||
|
</PropertyGroup>
|
||||||
|
<PropertyGroup>
|
||||||
|
<NoWin32Manifest>true</NoWin32Manifest>
|
||||||
|
</PropertyGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Reference Include="Accord, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.3.8.0\lib\net46\Accord.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Imaging, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.Imaging.3.8.0\lib\net46\Accord.Imaging.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.MachineLearning, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.MachineLearning.3.8.0\lib\net46\Accord.MachineLearning.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Math, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.Math.3.8.0\lib\net46\Accord.Math.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Math.Core, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.Math.3.8.0\lib\net46\Accord.Math.Core.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Statistics, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.Statistics.3.8.0\lib\net46\Accord.Statistics.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Video, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.Video.3.8.0\lib\net46\Accord.Video.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Video.FFMPEG, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=x86">
|
||||||
|
<HintPath>..\packages\Accord.Video.FFMPEG.3.8.0\lib\net46\Accord.Video.FFMPEG.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Accord.Vision, Version=3.8.0.0, Culture=neutral, PublicKeyToken=fa1a88e29555ccf7, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Accord.Vision.3.8.0\lib\net46\Accord.Vision.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.DirectX, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\Dependencies\Microsoft.DirectX.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.DirectX.AudioVideoPlayback, Version=1.0.2902.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>..\Dependencies\Microsoft.DirectX.AudioVideoPlayback.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Microsoft.VisualStudio.DebuggerVisualizers, Version=15.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
|
||||||
|
<SpecificVersion>False</SpecificVersion>
|
||||||
|
<HintPath>Libraries\Accord.NET\Release\Microsoft.VisualStudio.DebuggerVisualizers.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
|
||||||
|
<HintPath>..\packages\Newtonsoft.Json.12.0.3\lib\net45\Newtonsoft.Json.dll</HintPath>
|
||||||
|
</Reference>
|
||||||
|
<Reference Include="System" />
|
||||||
|
<Reference Include="System.Core" />
|
||||||
|
<Reference Include="System.Data.DataSetExtensions" />
|
||||||
|
<Reference Include="Microsoft.CSharp" />
|
||||||
|
<Reference Include="System.Data" />
|
||||||
|
<Reference Include="System.Deployment" />
|
||||||
|
<Reference Include="System.Drawing" />
|
||||||
|
<Reference Include="System.Drawing.Design" />
|
||||||
|
<Reference Include="System.Windows.Forms" />
|
||||||
|
<Reference Include="System.Xml" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Compile Include="Forms\About\About.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\About\About.Designer.cs">
|
||||||
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\Main\Main.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\Main\Main.Designer.cs">
|
||||||
|
<DependentUpon>Main.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\Processing\Processing.cs">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\Processing\Processing.Designer.cs">
|
||||||
|
<DependentUpon>Processing.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Mathf.cs" />
|
||||||
|
<Compile Include="Models\Segment.cs" />
|
||||||
|
<Compile Include="Models\Video.cs" />
|
||||||
|
<Compile Include="Program.cs" />
|
||||||
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
|
<Compile Include="Forms\VideoPlayer\VideoPlayer.cs">
|
||||||
|
<SubType>UserControl</SubType>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="Forms\VideoPlayer\VideoPlayer.Designer.cs">
|
||||||
|
<DependentUpon>VideoPlayer.cs</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="Forms\About\About.resx">
|
||||||
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\About\About.ru.resx">
|
||||||
|
<DependentUpon>About.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\Main\Main.resx">
|
||||||
|
<DependentUpon>Main.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\Main\Main.ru.resx">
|
||||||
|
<DependentUpon>Main.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\Processing\Processing.resx">
|
||||||
|
<DependentUpon>Processing.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\Processing\Processing.ru.resx">
|
||||||
|
<DependentUpon>Processing.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.resx">
|
||||||
|
<Generator>ResXFileCodeGenerator</Generator>
|
||||||
|
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
|
||||||
|
<SubType>Designer</SubType>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<Compile Include="Properties\Resources.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Resources.resx</DependentUpon>
|
||||||
|
<DesignTime>True</DesignTime>
|
||||||
|
</Compile>
|
||||||
|
<EmbeddedResource Include="Properties\Resources.ru.resx" />
|
||||||
|
<EmbeddedResource Include="Forms\VideoPlayer\VideoPlayer.resx">
|
||||||
|
<DependentUpon>VideoPlayer.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="Forms\VideoPlayer\VideoPlayer.ru.resx">
|
||||||
|
<DependentUpon>VideoPlayer.cs</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
|
<None Include="packages.config" />
|
||||||
|
<None Include="Properties\Settings.settings">
|
||||||
|
<Generator>SettingsSingleFileGenerator</Generator>
|
||||||
|
<LastGenOutput>Settings.Designer.cs</LastGenOutput>
|
||||||
|
</None>
|
||||||
|
<Compile Include="Properties\Settings.Designer.cs">
|
||||||
|
<AutoGen>True</AutoGen>
|
||||||
|
<DependentUpon>Settings.settings</DependentUpon>
|
||||||
|
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||||
|
</Compile>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="App.config" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\logo.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<None Include="Resources\MDlogo.png" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<BootstrapperPackage Include=".NETFramework,Version=v4.6">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>Microsoft .NET Framework 4.6 %28x86 and x64%29</ProductName>
|
||||||
|
<Install>true</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
|
||||||
|
<Visible>False</Visible>
|
||||||
|
<ProductName>.NET Framework 3.5 SP1</ProductName>
|
||||||
|
<Install>false</Install>
|
||||||
|
</BootstrapperPackage>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<Content Include="MDlogo.ico" />
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup />
|
||||||
|
<ItemGroup>
|
||||||
|
<COMReference Include="stdole">
|
||||||
|
<Guid>{00020430-0000-0000-C000-000000000046}</Guid>
|
||||||
|
<VersionMajor>2</VersionMajor>
|
||||||
|
<VersionMinor>0</VersionMinor>
|
||||||
|
<Lcid>0</Lcid>
|
||||||
|
<WrapperTool>primary</WrapperTool>
|
||||||
|
<Isolated>False</Isolated>
|
||||||
|
<EmbedInteropTypes>True</EmbedInteropTypes>
|
||||||
|
</COMReference>
|
||||||
|
</ItemGroup>
|
||||||
|
<ItemGroup>
|
||||||
|
<WCFMetadata Include="Connected Services\" />
|
||||||
|
</ItemGroup>
|
||||||
|
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||||
|
<Import Project="..\packages\Accord.3.8.0\build\Accord.targets" Condition="Exists('..\packages\Accord.3.8.0\build\Accord.targets')" />
|
||||||
|
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
|
||||||
|
<PropertyGroup>
|
||||||
|
<ErrorText>This project references NuGet package(s) that are missing on this computer. Use NuGet Package Restore to download them. For more information, see http://go.microsoft.com/fwlink/?LinkID=322105. The missing file is {0}.</ErrorText>
|
||||||
|
</PropertyGroup>
|
||||||
|
<Error Condition="!Exists('..\packages\Accord.3.8.0\build\Accord.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Accord.3.8.0\build\Accord.targets'))" />
|
||||||
|
<Error Condition="!Exists('..\packages\Accord.Video.FFMPEG.3.8.0\build\Accord.Video.FFMPEG.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\packages\Accord.Video.FFMPEG.3.8.0\build\Accord.Video.FFMPEG.targets'))" />
|
||||||
|
</Target>
|
||||||
|
<Import Project="..\packages\Accord.Video.FFMPEG.3.8.0\build\Accord.Video.FFMPEG.targets" Condition="Exists('..\packages\Accord.Video.FFMPEG.3.8.0\build\Accord.Video.FFMPEG.targets')" />
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||||
|
<PropertyGroup>
|
||||||
|
<PublishUrlHistory>publish\</PublishUrlHistory>
|
||||||
|
<InstallUrlHistory />
|
||||||
|
<SupportUrlHistory />
|
||||||
|
<UpdateUrlHistory />
|
||||||
|
<BootstrapperUrlHistory />
|
||||||
|
<ErrorReportUrlHistory />
|
||||||
|
<FallbackCulture>en-US</FallbackCulture>
|
||||||
|
<VerifyUploadedFiles>false</VerifyUploadedFiles>
|
||||||
|
</PropertyGroup>
|
||||||
|
</Project>
|
||||||
@@ -0,0 +1,20 @@
|
|||||||
|
using MotionDecoder.Forms;
|
||||||
|
using System;
|
||||||
|
using System.Windows.Forms;
|
||||||
|
|
||||||
|
namespace MotionDecoder
|
||||||
|
{
|
||||||
|
static class Program
|
||||||
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// The main entry point for the application.
|
||||||
|
/// </summary>
|
||||||
|
[STAThread]
|
||||||
|
static void Main()
|
||||||
|
{
|
||||||
|
Application.EnableVisualStyles();
|
||||||
|
Application.SetCompatibleTextRenderingDefault(false);
|
||||||
|
Application.Run(new Main());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,36 @@
|
|||||||
|
using System.Reflection;
|
||||||
|
using System.Runtime.CompilerServices;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
|
// General Information about an assembly is controlled through the following
|
||||||
|
// set of attributes. Change these attribute values to modify the information
|
||||||
|
// associated with an assembly.
|
||||||
|
[assembly: AssemblyTitle("MovementDecoder")]
|
||||||
|
[assembly: AssemblyDescription("")]
|
||||||
|
[assembly: AssemblyConfiguration("")]
|
||||||
|
[assembly: AssemblyCompany("")]
|
||||||
|
[assembly: AssemblyProduct("MovementDecoder")]
|
||||||
|
[assembly: AssemblyCopyright("Copyright © 2017")]
|
||||||
|
[assembly: AssemblyTrademark("")]
|
||||||
|
[assembly: AssemblyCulture("")]
|
||||||
|
|
||||||
|
// Setting ComVisible to false makes the types in this assembly not visible
|
||||||
|
// to COM components. If you need to access a type in this assembly from
|
||||||
|
// COM, set the ComVisible attribute to true on that type.
|
||||||
|
[assembly: ComVisible(false)]
|
||||||
|
|
||||||
|
// The following GUID is for the ID of the typelib if this project is exposed to COM
|
||||||
|
[assembly: Guid("f6d82605-6e5f-4fd6-af07-cd4ec9de5dc9")]
|
||||||
|
|
||||||
|
// Version information for an assembly consists of the following four values:
|
||||||
|
//
|
||||||
|
// Major Version
|
||||||
|
// Minor Version
|
||||||
|
// Build Number
|
||||||
|
// Revision
|
||||||
|
//
|
||||||
|
// You can specify all the values or you can default the Build and Revision Numbers
|
||||||
|
// by using the '*' as shown below:
|
||||||
|
// [assembly: AssemblyVersion("1.0.*")]
|
||||||
|
[assembly: AssemblyVersion("1.0.0.0")]
|
||||||
|
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||||
@@ -0,0 +1,127 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace MotionDecoder.Properties {
|
||||||
|
using System;
|
||||||
|
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// A strongly-typed resource class, for looking up localized strings, etc.
|
||||||
|
/// </summary>
|
||||||
|
// This class was auto-generated by the StronglyTypedResourceBuilder
|
||||||
|
// class via a tool like ResGen or Visual Studio.
|
||||||
|
// To add or remove a member, edit your .ResX file then rerun ResGen
|
||||||
|
// with the /str option, or rebuild your VS project.
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
internal class Resources {
|
||||||
|
|
||||||
|
private static global::System.Resources.ResourceManager resourceMan;
|
||||||
|
|
||||||
|
private static global::System.Globalization.CultureInfo resourceCulture;
|
||||||
|
|
||||||
|
[global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
|
||||||
|
internal Resources() {
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Returns the cached ResourceManager instance used by this class.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Resources.ResourceManager ResourceManager {
|
||||||
|
get {
|
||||||
|
if (object.ReferenceEquals(resourceMan, null)) {
|
||||||
|
global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MotionDecoder.Properties.Resources", typeof(Resources).Assembly);
|
||||||
|
resourceMan = temp;
|
||||||
|
}
|
||||||
|
return resourceMan;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Overrides the current thread's CurrentUICulture property for all
|
||||||
|
/// resource lookups using this strongly typed resource class.
|
||||||
|
/// </summary>
|
||||||
|
[global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
|
||||||
|
internal static global::System.Globalization.CultureInfo Culture {
|
||||||
|
get {
|
||||||
|
return resourceCulture;
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
resourceCulture = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to The algorythm isn't designed to process video files containig precipitations (rain, snowfall and etc).
|
||||||
|
/// </summary>
|
||||||
|
internal static string attentionBody {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("attentionBody", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Attention.
|
||||||
|
/// </summary>
|
||||||
|
internal static string attentionHead {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("attentionHead", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Do you really want to cancel this operation?.
|
||||||
|
/// </summary>
|
||||||
|
internal static string cancelProcConf {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("cancelProcConf", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Clear playlist?.
|
||||||
|
/// </summary>
|
||||||
|
internal static string clearConf {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("clearConf", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized resource of type System.Drawing.Bitmap.
|
||||||
|
/// </summary>
|
||||||
|
internal static System.Drawing.Bitmap logo {
|
||||||
|
get {
|
||||||
|
object obj = ResourceManager.GetObject("logo", resourceCulture);
|
||||||
|
return ((System.Drawing.Bitmap)(obj));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Confirmiration.
|
||||||
|
/// </summary>
|
||||||
|
internal static string questionHeader {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("questionHeader", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Looks up a localized string similar to Supress noise? Can decrease results quality if there is no such..
|
||||||
|
/// </summary>
|
||||||
|
internal static string supressNoiseConf {
|
||||||
|
get {
|
||||||
|
return ResourceManager.GetString("supressNoiseConf", resourceCulture);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,142 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="attentionBody" xml:space="preserve">
|
||||||
|
<value>The algorythm isn't designed to process video files containig precipitations (rain, snowfall and etc)</value>
|
||||||
|
</data>
|
||||||
|
<data name="attentionHead" xml:space="preserve">
|
||||||
|
<value>Attention</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelProcConf" xml:space="preserve">
|
||||||
|
<value>Do you really want to cancel this operation?</value>
|
||||||
|
</data>
|
||||||
|
<data name="clearConf" xml:space="preserve">
|
||||||
|
<value>Clear playlist?</value>
|
||||||
|
</data>
|
||||||
|
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
|
||||||
|
<data name="logo" type="System.Resources.ResXFileRef, System.Windows.Forms">
|
||||||
|
<value>..\Resources\MDlogo.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
|
||||||
|
</data>
|
||||||
|
<data name="questionHeader" xml:space="preserve">
|
||||||
|
<value>Confirmiration</value>
|
||||||
|
</data>
|
||||||
|
<data name="supressNoiseConf" xml:space="preserve">
|
||||||
|
<value>Supress noise? Can decrease results quality if there is no such.</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,138 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<data name="attentionBody" xml:space="preserve">
|
||||||
|
<value>Алгоритм не предназначен для обработки фидеофайлов в которых присутствуют активные осадки (дождь, снегопад и т.д.)</value>
|
||||||
|
</data>
|
||||||
|
<data name="attentionHead" xml:space="preserve">
|
||||||
|
<value>Внимание</value>
|
||||||
|
</data>
|
||||||
|
<data name="cancelProcConf" xml:space="preserve">
|
||||||
|
<value>Вы действительно хотите прервать операцию?</value>
|
||||||
|
</data>
|
||||||
|
<data name="clearConf" xml:space="preserve">
|
||||||
|
<value>Очистить список файлов?</value>
|
||||||
|
</data>
|
||||||
|
<data name="questionHeader" xml:space="preserve">
|
||||||
|
<value>Подтверждение</value>
|
||||||
|
</data>
|
||||||
|
<data name="supressNoiseConf" xml:space="preserve">
|
||||||
|
<value>Использовать алгоритм подавления шума? Может понизить качество результатов, если нет таковых.</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
@@ -0,0 +1,86 @@
|
|||||||
|
//------------------------------------------------------------------------------
|
||||||
|
// <auto-generated>
|
||||||
|
// This code was generated by a tool.
|
||||||
|
// Runtime Version:4.0.30319.42000
|
||||||
|
//
|
||||||
|
// Changes to this file may cause incorrect behavior and will be lost if
|
||||||
|
// the code is regenerated.
|
||||||
|
// </auto-generated>
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
namespace MotionDecoder.Properties {
|
||||||
|
|
||||||
|
|
||||||
|
[global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
|
||||||
|
[global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "16.3.0.0")]
|
||||||
|
internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase {
|
||||||
|
|
||||||
|
private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
|
||||||
|
|
||||||
|
public static Settings Default {
|
||||||
|
get {
|
||||||
|
return defaultInstance;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute(@"All video files|*.avi;*.mkv;*.mov;*.mp4;*.wmv;*.3gp; *.flv; *.,mpeg; *.ts; *.m2ts; *.rm; *.rmvb; *.ogm; *.webm|AVI|*.avi|MKV|*.mkv|MOV|*.mov|MP4|*.mp4|WMV|*.wmv|FLV|*.flv|MPEG|*.,mpeg|TS|*.ts|M2TS|*.m2ts|RM|*.rm|MVB|*.rmvb|OGM|*.ogm|WebM|*.webm|All files|*.*")]
|
||||||
|
public string filters {
|
||||||
|
get {
|
||||||
|
return ((string)(this["filters"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["filters"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("60")]
|
||||||
|
public int threshold {
|
||||||
|
get {
|
||||||
|
return ((int)(this["threshold"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["threshold"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("60")]
|
||||||
|
public int duration {
|
||||||
|
get {
|
||||||
|
return ((int)(this["duration"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["duration"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("-1000")]
|
||||||
|
public int volume {
|
||||||
|
get {
|
||||||
|
return ((int)(this["volume"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["volume"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
[global::System.Configuration.UserScopedSettingAttribute()]
|
||||||
|
[global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
|
||||||
|
[global::System.Configuration.DefaultSettingValueAttribute("True")]
|
||||||
|
public bool showMessage {
|
||||||
|
get {
|
||||||
|
return ((bool)(this["showMessage"]));
|
||||||
|
}
|
||||||
|
set {
|
||||||
|
this["showMessage"] = value;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,21 @@
|
|||||||
|
<?xml version='1.0' encoding='utf-8'?>
|
||||||
|
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" GeneratedClassNamespace="MotionDecoder.Properties" GeneratedClassName="Settings">
|
||||||
|
<Profiles />
|
||||||
|
<Settings>
|
||||||
|
<Setting Name="filters" Type="System.String" Scope="User">
|
||||||
|
<Value Profile="(Default)">All video files|*.avi;*.mkv;*.mov;*.mp4;*.wmv;*.3gp; *.flv; *.,mpeg; *.ts; *.m2ts; *.rm; *.rmvb; *.ogm; *.webm|AVI|*.avi|MKV|*.mkv|MOV|*.mov|MP4|*.mp4|WMV|*.wmv|FLV|*.flv|MPEG|*.,mpeg|TS|*.ts|M2TS|*.m2ts|RM|*.rm|MVB|*.rmvb|OGM|*.ogm|WebM|*.webm|All files|*.*</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="threshold" Type="System.Int32" Scope="User">
|
||||||
|
<Value Profile="(Default)">60</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="duration" Type="System.Int32" Scope="User">
|
||||||
|
<Value Profile="(Default)">60</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="volume" Type="System.Int32" Scope="User">
|
||||||
|
<Value Profile="(Default)">-1000</Value>
|
||||||
|
</Setting>
|
||||||
|
<Setting Name="showMessage" Type="System.Boolean" Scope="User">
|
||||||
|
<Value Profile="(Default)">True</Value>
|
||||||
|
</Setting>
|
||||||
|
</Settings>
|
||||||
|
</SettingsFile>
|
||||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 233 B |
@@ -0,0 +1,12 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<packages>
|
||||||
|
<package id="Accord" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.Imaging" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.MachineLearning" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.Math" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.Statistics" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.Video" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.Video.FFMPEG" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Accord.Vision" version="3.8.0" targetFramework="net46" />
|
||||||
|
<package id="Newtonsoft.Json" version="12.0.3" targetFramework="net46" />
|
||||||
|
</packages>
|
||||||
@@ -0,0 +1,45 @@
|
|||||||
|
# MotionDecoder
|
||||||
|
[](https://github.com/xfox111/MotionDecoder/releases/latest)
|
||||||
|
[](https://github.com/xfox111/MotionDecoder/issues)
|
||||||
|
[](https://www.gnu.org/licenses/gpl-3.0)
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
[](https://twitter.com/xfox111)
|
||||||
|
[](https://github.com/xfox111)
|
||||||
|
|
||||||
|
## Overview
|
||||||
|
This project is used to analyze videos from security cameras and shows short clips from the videos which contain detected motions.
|
||||||
|
It uses C# programming language, .NET Framework 4.6 and [Accord.NET](http://accord-framework.net) libraries
|
||||||
|
|
||||||
|
## Algorithm overview
|
||||||
|
1. The algorithm reads first frames of every half-second (e.g. if a video has framerate of 30 the algorithm retrieves 1st frame, 15th, 30th, 45th and so on)
|
||||||
|
2. Images are converted to Grayscale
|
||||||
|
3. Images' pixels are compared to each other
|
||||||
|
4. Highlights regions with an area of changed pixels 35x35 or more
|
||||||
|
5. Creates video segments metadata based on "moving" frames
|
||||||
|
6. Segments with the distance between is less than 5 seconds are combined
|
||||||
|
7. Segments with the duration less than 3 seconds are deleted
|
||||||
|
8. Segments data is recorded to ".data" file with JSON structure
|
||||||
|
|
||||||
|
## Screenshots
|
||||||
|

|
||||||
|

|
||||||
|
|
||||||
|
## Dependencies
|
||||||
|
- **K-Lite Codec Pack** - used for video playback. The program will crash without this codec. Other codecs might do well but I've not checked.
|
||||||
|
- **DirectX Playback library** - used for playback as well as codec
|
||||||
|
|
||||||
|
## Getting Started
|
||||||
|
1. Install [K-Lite Codec Pack](https://www.codecguide.com/download_kl.htm) (Any edition will do)
|
||||||
|
2. Launch Visual Studio 2017 or later
|
||||||
|
3. Go to "View -> Team explorer"
|
||||||
|
4. In the Team explorer click "Manage connections button" and click "Clone" button
|
||||||
|
5. Insert Git URL from repository GitHub page and clone repository to your PC
|
||||||
|
6. Open MotionDecoder solution
|
||||||
|
7. Go to "Solution Explorer -> MotionDecoder -> References" and check if all dependencies are loaded
|
||||||
|
8. If DirectX libraries are missing add them through "References -> (double-click) -> Add Reference -> Browse" (Libraries are situated in "{Repository root}/Dependencies")
|
||||||
|
6. Build and debug solution
|
||||||
|
|
||||||
|
## Copyrights
|
||||||
|
> ©2020 Michael "XFox" Gordeev
|
||||||
|
After Width: | Height: | Size: 284 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 353 KiB |